1. 07 Aug, 2009 1 commit
    • Mattias Jonsson's avatar
      Bug#32430: 'show innodb status' causes errors · f42fab1b
      Mattias Jonsson authored
      Invalid (old?) table or database name in logs
      
      Post push patch.
      
      Bug was that a non partitioned table file was not
      converted to system_charset, (due to table_name_len was not set).
      
      Also missing DBUG_RETURN.
      
      And Innodb adds quotes after calling the function,
      so I added one more mode where explain_filename does not
      add quotes. But it still appends the [sub]partition name
      as a comment.
      
      Also caught a minor quoting bug, the character '`' was
      not quoted in the identifier. (so 'a`b' was quoted as `a`b`
      and not `a``b`, this is mulitbyte characters aware.)
      
      sql/mysql_priv.h:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        Added an unquoted mode
      sql/share/errmsg.txt:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        Removed the quoting of identifier, only leaving the translated word.
      sql/sql_table.cc:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        Fixed quoting of '`'
        Added DBUG_RETURN.
        Corrected table_name_len.
        Added unquoted mode.
      f42fab1b
  2. 06 Aug, 2009 4 commits
    • Ignacio Galarza's avatar
      Auto-merge · 466847a0
      Ignacio Galarza authored
      466847a0
    • Ignacio Galarza's avatar
      a791f200
    • Satya B's avatar
      Fix for BUG#45816 - assertion failure with index containing double · d933cb16
      Satya B authored
                          column on partitioned table
            
            
      An assertion 'ASSERT_COULUMN_MARKED_FOR_READ' is failed if the query 
      is executed with index containing double column on partitioned table.
      The problem is that assertion expects all the fields which are read,
      to be in the read_set.
            
      In this query only the field 'a' is in the readset as the tables in
      the query are joined by the field 'a' and so the assertion fails 
      expecting other field 'b'.
            
      Since the function cmp() is just comparison of two parameters passed, 
      the assertion is not required.
            
      Fixed by removing the assertion in the double fields comparision
      function and also fixed the index initialization to do ordered
      index scan with RW LOCK which ensures all the fields from a key are in
      the read_set.
       
      
      Note: this bug is not reproducible with other datatypes because the
            assertion doesn't exist in comparision function for other 
            datatypes.
      
      mysql-test/r/partition.result:
        Testcase for BUG#45816
      mysql-test/t/partition.test:
        Testcase for BUG#45816
      sql/field.cc:
        Removed the assertion ASSERT_COLUMN_MARED_FOR_READ in Field_double::cmp()
        function
      sql/ha_partition.cc:
        Fixed index_int() method to make it initialize the read_set properly if
        ordered index scan with RW lock is requested.
      d933cb16
    • unknown's avatar
      Bug #45630 rpl_trigger.test causes valgrind failures within nptl_pthread_exit_hack_handler · 70cd9772
      unknown authored
      The server shutdown and start code triggered the valgrind failures 
      within nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64) 
      in rpl_trigger.test file.
      
      For fixing the bug, suppress valgrind failures within nptl_pthread_exit_hack_handler 
      on Ubuntu 9.04, x86 (but not amd64). Because the server shutdown and start
      code has been heavily used in mysql test set.
      
      mysql-test/valgrind.supp:
        Add code for suppressing valgrind failures within nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64).
      70cd9772
  3. 05 Aug, 2009 1 commit
  4. 04 Aug, 2009 2 commits
  5. 03 Aug, 2009 2 commits
  6. 02 Aug, 2009 1 commit
    • Alfranio Correia's avatar
      BUG#43264 Test rpl_trigger is failing randomly w/ use of copy_file in 5.0 · 968ec5ea
      Alfranio Correia authored
      The test case fails sporadically on Windows while trying to overwrite an unused
      binary log. The problem stems from the fact that MySQL on Windows does not
      immediately unlock/release a file while the process that opened and closed it is
      still running. In BUG 38603, this issue was circumvented by stopping the MySQL
      process, copying the file and then restarting the MySQL process. 
      
      Unfortunately, such facilities are not available in the 5.0.  Other approaches
      such as stopping the slave and issuing change master do not work because the relay
      log file and index are not closed when a slave is stopped. So to fix the problem,
      we simply don't run on windows the part of the test that was failing.
      968ec5ea
  7. 01 Aug, 2009 1 commit
  8. 31 Jul, 2009 4 commits
    • Jim Winstead's avatar
      ba1f513f
    • Ignacio Galarza's avatar
      Bug#17270 - mysql client tool could not find ../share/charsets folder and fails. · 09877515
      Ignacio Galarza authored
      - Define and pass compile time path variables as pre-processor definitions to 
        mimic the makefile build.
      - Set new CMake version and policy requirements explicitly.
      - Changed DATADIR to MYSQL_DATADIR to avoid conflicting definition in 
        Platform SDK header ObjIdl.h which also defines DATADIR.
      09877515
    • Jim Winstead's avatar
      Merge bug fix. · a90bcde0
      Jim Winstead authored
      a90bcde0
    • Davi Arnaut's avatar
      Bug#45017: Failure to connect if hostname maps to multiple addresses · 543e8672
      Davi Arnaut authored
      The problem is that the C API function mysql_real_connect
      only attempts to connect to the first IP address returned
      for a hostname. This can be a problem if a hostname maps
      to multiple IP address and the server is not bound to the
      first one that is returned.
      
      The solution is to augment mysql_real_connect so that it
      attempts to connect to all IPv4 addresses that a domain
      name maps to. The function goes over the list of address
      until a successful connection is established.
      
      No test case is provided as its not possible to test this
      automatically with the current testing infrastructure.
      
      sql-common/client.c:
        The client will try to connect to each IPv4 address from
        the list of addresses that hostname maps to until a successful
        connection is established or there are no more address.
      543e8672
  9. 04 Aug, 2009 1 commit
  10. 03 Aug, 2009 7 commits
  11. 01 Aug, 2009 1 commit
  12. 31 Jul, 2009 8 commits
    • Jim Winstead's avatar
      Merge fix to test results · f18c256c
      Jim Winstead authored
      f18c256c
    • Davi Arnaut's avatar
      Test case clean up: Move test cases that depend on the CSV storage · d0f98f38
      Davi Arnaut authored
      engine to the partition_csv test. Also remove test case that was
      duplicated. Fix connection procedure with the embedded server.
      
      mysql-test/r/partition.result:
        Update test case result.
      mysql-test/r/partition_csv.result:
        Update test case result.
      mysql-test/t/partition.test:
        Move test cases to the partition_csv test.
      mysql-test/t/partition_csv.test:
        Move tests from partition.test and remove duplicate.
        Tweaky connection procedure to work with embedded.
      d0f98f38
    • Ignacio Galarza's avatar
      Auto-merge · 276d3dd2
      Ignacio Galarza authored
      276d3dd2
    • Tatiana A. Nurnberg's avatar
      auto-merge · e26350e0
      Tatiana A. Nurnberg authored
      e26350e0
    • Ignacio Galarza's avatar
      Auto-merge · 008dd95f
      Ignacio Galarza authored
      008dd95f
    • Gleb Shchepa's avatar
      Bug# 30946: mysqldump silently ignores --default-character-set · 4e95179a
      Gleb Shchepa authored
                  when used with --tab
      
      1) New syntax: added CHARACTER SET clause to the
        SELECT ... INTO OUTFILE (to complement the same clause in
        LOAD DATA INFILE).
        mysqldump is updated to use this in --tab mode.
      
      2) ESCAPED BY/ENCLOSED BY field parameters are documented as
         accepting CHAR argument, however SELECT .. INTO OUTFILE
         silently ignored rests of multisymbol arguments.
         For the symmetrical behavior with LOAD DATA INFILE the
         server has been modified to fail with the same error:
      
           ERROR 42000: Field separator argument is not what is
                        expected; check the manual
      
      3) Current LOAD DATA INFILE recognizes field/line separators
         "as is" without converting from client charset to data
         file charset. So, it is supposed, that input file of
         LOAD DATA INFILE consists of data in one charset and
         separators in other charset. For the compatibility with
         that [buggy] behaviour SELECT INTO OUTFILE implementation
         has been saved "as is" too, but the new warning message
         has been added:
      
           Non-ASCII separator arguments are not fully supported
      
         This message warns on field/line separators that contain
         non-ASCII symbols.
      
      
      client/mysqldump.c:
        mysqldump has been updated to call SELECT ... INTO OUTFILE
        statement with a charset from the --default-charset command
        line parameter.
      mysql-test/r/mysqldump.result:
        Added test case for bug #30946.
      mysql-test/r/outfile_loaddata.result:
        Added test case for bug #30946.
      mysql-test/t/mysqldump.test:
        Added test case for bug #30946.
      mysql-test/t/outfile_loaddata.test:
        Added test case for bug #30946.
      sql/field.cc:
        String conversion code has been moved from check_string_copy_error()
        to convert_to_printable() for reuse.
      sql/share/errmsg.txt:
        New WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED message has been added.
      sql/sql_class.cc:
        The select_export::prepare() method has been modified to:
        
          1) raise the ER_WRONG_FIELD_TERMINATORS error on multisymbol
             ENCLOSED BY/ESCAPED BY field arguments like LOAD DATA INFILE;
        
          2) warn with a new WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
             message on non-ASCII field or line separators.
        
        The select_export::send_data() merhod has been modified to
        convert item data to output charset (see new SELECT INTO OUTFILE
        syntax). By default the BINARY charset is used for backward
        compatibility.
      sql/sql_class.h:
        The select_export::write_cs field added to keep output
        charset.
      sql/sql_load.cc:
        mysql_load has been modified to warn on non-ASCII field or
        line separators with a new WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
        message.
      sql/sql_string.cc:
        New global function has been added: convert_to_printable()
        (common code has been moved from check_string_copy_error()).
      sql/sql_string.h:
        New String::is_ascii() method and new global convert_to_printable()
        function have been added.
      sql/sql_yacc.yy:
        New syntax: added CHARACTER SET clause to the
        SELECT ... INTO OUTFILE (to complement the same clause in
        LOAD DATA INFILE). By default the BINARY charset is used for
        backward compatibility.
      4e95179a
    • Davi Arnaut's avatar
      Bug#46265: Can not disable warning about unsafe statements for binary logging · 7d8b967a
      Davi Arnaut authored
      If using statement based replication (SBR), repeatedly calling
      statements which are unsafe for SBR will cause a warning message
      to be written to the error for each statement. This might lead
      to filling up the error log and there is no way to disable this
      behavior.
      
      The solution is to only log these message (about statements unsafe
      for statement based replication) if the log_warnings option is set.
      
      For example:
      
      SET GLOBAL LOG_WARNINGS = 0;
      INSERT INTO t1 VALUES(UUID());
      SET GLOBAL LOG_WARNINGS = 1;
      INSERT INTO t1 VALUES(UUID());
      
      In this case the message will be printed only once:
      
      [Warning] Statement may not be safe to log in statement format.
                Statement: INSERT INTO t1 VALUES(UUID())
      
      mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result:
        Add test case result for Bug#46265
      mysql-test/suite/binlog/t/binlog_stm_unsafe_warning-master.opt:
        Make log_error value available.
      mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test:
        Add test case for Bug#46265
      sql/sql_class.cc:
        Print warning only if the log_warnings is enabled.
      7d8b967a
    • Tatiana A. Nurnberg's avatar
      Bug#40281, partitioning the general log table crashes the server · 717d6054
      Tatiana A. Nurnberg authored
      We disallow the partitioning of a log table. You could however
      partition a table first, and then point logging to it. This is
      not only against the docs, it also crashes the server.
      
      We catch this case now.
      
      mysql-test/r/partition.result:
        results for 40281
      mysql-test/t/partition.test:
        test for 40281: show that trying to log to partitioned table fails rather
        to crash the server
      sql/ha_partition.cc:
        Signal that we no longer support logging to partitioned tables,
        as per the docs.
      sql/sql_partition.cc:
        Some commands like "USE ..." have no select, yet we may try
        to parse partition info after their execution if user set a
        partitioned table as log target. This shouldn't lead to a
        NULL-deref/crash.
      717d6054
  13. 30 Jul, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#43435: LOCK_open does not use MY_MUTEX_INIT_FAST · 88780b03
      Davi Arnaut authored
      Initialize LOCK_open as a adapative mutex on platforms where the
      PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP macro is available. The flag
      indicates that a thread should spin (busy wait) for some time on a
      locked adaptive mutex before blocking (sleeping). It's intended to
      to alleviate performance problems due to LOCK_open being a highly
      contended mutex.
      
      sql/mysqld.cc:
        Initialize LOCK_open as a adapative mutex.
      88780b03
  14. 31 Jul, 2009 1 commit
  15. 30 Jul, 2009 5 commits