1. 10 Sep, 2009 8 commits
    • unknown's avatar
      BUG#45999 Row based replication fails when auto_increment field = 0 · e436b886
      unknown authored
      In RBR, There is an inconsistency between slaves and master.
      When INSERT statement which includes an auto_increment field is executed,
      Store engine of master will check the value of the auto_increment field. 
      It will generate a sequence number and then replace the value, if its value is NULL or empty.
      if the field's value is 0, the store engine will do like encountering the NULL values 
      unless NO_AUTO_VALUE_ON_ZERO is set into SQL_MODE.
      In contrast, if the field's value is 0, Store engine of slave always generates a new sequence number 
      whether or not NO_AUTO_VALUE_ON_ZERO is set into SQL_MODE.
      
      SQL MODE of slave sql thread is always consistency with master's.
      Another variable is related to this bug.
      If generateing a sequence number is decided by the values of
      table->auto_increment_field_not_null and SQL_MODE(if includes MODE_NO_AUTO_VALUE_ON_ZERO)
      The table->auto_increment_is_not_null is FALSE, which causes this bug to appear. ..
      e436b886
    • Sergey Glukhov's avatar
      Bug#42364 SHOW ERRORS returns empty resultset after dropping non existent table · 104d9ce7
      Sergey Glukhov authored
      partial backport of bug43138 fix
      
      
      mysql-test/r/warnings.result:
        test result
      mysql-test/t/warnings.test:
        test case
      sql/sql_class.cc:
        partial backport of bug43138 fix
      sql/sql_class.h:
        partial backport of bug43138 fix
      sql/sql_table.cc:
        partial backport of bug43138 fix
      104d9ce7
    • Sergey Vojtovich's avatar
      Merge 5.1-bugteam -> 5.1-bugteam-local. · 6d3e743d
      Sergey Vojtovich authored
      6d3e743d
    • Alexander Nozdrin's avatar
      A patch for Bug#45118 (mysqld.exe crashed in debug mode · 70972926
      Alexander Nozdrin authored
      on Windows in dbug.c) -- part 2: a patch for the DBUG subsystem
      to detect misuse of DBUG_ENTER / DBUG_RETURN macros.
      5.1 version.
      70972926
    • Sergey Vojtovich's avatar
      Local merge. · 48ecd65c
      Sergey Vojtovich authored
      48ecd65c
    • Sergey Vojtovich's avatar
      Local merge. · eb7a3fc9
      Sergey Vojtovich authored
      eb7a3fc9
    • Sergey Vojtovich's avatar
      Local merge. · 32055c1c
      Sergey Vojtovich authored
      32055c1c
    • Sergey Vojtovich's avatar
      Local merge. · 4bb22b34
      Sergey Vojtovich authored
      4bb22b34
  2. 09 Sep, 2009 4 commits
    • Georgi Kodinov's avatar
      null merge of the 5.0 test cleanup · 0d7ee91c
      Georgi Kodinov authored
      0d7ee91c
    • Sergey Vojtovich's avatar
      BUG#29203 - archive tables have weird values in show table status · 04ed3c9d
      Sergey Vojtovich authored
      Archive engine returns wrong values for average record length
      and max data length.
      
      With this fix they're calculated as following:
      - max data length is 2 ^ 63 where large files are supported
        and INT_MAX32 where this is not supported;
      - average record length is data length / records in data file.
      
      mysql-test/r/archive.result:
        A test case for BUG#29203.
      mysql-test/t/archive.test:
        A test case for BUG#29203.
      storage/archive/ha_archive.cc:
        Better estimation for average row length and maximal data
        file length.
      04ed3c9d
    • Sergey Vojtovich's avatar
      BUG#45638 - Create temporary table with engine innodb fails · 3228a2be
      Sergey Vojtovich authored
      Create temporary InnoDB table fails on case insensitive
      filesystems, when lower_case_table_names is 2 (e.g. OS X)
      and temporary directory path contains upper case letters.
      
      The problem was that tmpdir prefix was converted to lower
      case when table was created, but was passed as is when
      table was opened.
      
      Fixed by leaving tmpdir prefix part intact.
      
      mysql-test/r/lowercase_mixed_tmpdir_innodb.result:
        A test case for BUG#45638.
      mysql-test/t/lowercase_mixed_tmpdir_innodb-master.opt:
        A test case for BUG#45638.
      mysql-test/t/lowercase_mixed_tmpdir_innodb-master.sh:
        A test case for BUG#45638.
      mysql-test/t/lowercase_mixed_tmpdir_innodb.test:
        A test case for BUG#45638.
      sql/handler.cc:
        Fixed get_canonical_filename() to not lowercase filesystem
        path prefix for temporary tables.
      3228a2be
    • Georgi Kodinov's avatar
      Bug #45159 Part 1 : rejuvenate the jp test suite using normal run. · 24f103e3
      Georgi Kodinov authored
      Updates the results of all the out-dated test suites and adds 
      the special mysqltest command to enable innodb for the tests that need it.
      24f103e3
  3. 08 Sep, 2009 2 commits
  4. 07 Sep, 2009 6 commits
    • Martin Hansson's avatar
      Bug#46259: Merge · fe3b6356
      Martin Hansson authored
      fe3b6356
    • Mikael Ronstrom's avatar
      Automerge · bdd43744
      Mikael Ronstrom authored
      bdd43744
    • Martin Hansson's avatar
      Bug#46259: 5.0.83 -> 5.1.36, query doesn't work · 2cb3a131
      Martin Hansson authored
            
      The parser rule for expressions in a udf parameter list contains 
      two hacks: 
      First, the parser input stream is read verbatim, bypassing 
      the lexer.
      Second, the Item::name field is overwritten. If the argument to a
      udf was a field, the field's name as seen by name resolution was
      overwritten this way.
      If the field name was quoted or escaped, it would appear as e.g. "`field`".
      Fixed by not overwriting field names.
      
      mysql-test/r/udf.result:
        Bug#46259: Test result.
      mysql-test/t/udf.test:
        Bug#46259: Test case.
      sql/sql_yacc.yy:
        Bug#46259: Fix.
      2cb3a131
    • Mikael Ronstrom's avatar
    • unknown's avatar
      Bug#46010 main.ctype_gbk_binlog fails sporadically : Table 't2' already exists · 12a38fc6
      unknown authored
      This test case uses mysqlbinlog to dump the content of master-bin.000001,
      but the content of master-bin.000001 is not that this test needs.
      
      MTR runs a lot of test cases on one server, so when this test starts, the current binlog file
      might not be master-bin.000001, or there are other events are written by tests before.
      'RESET MASTER' command must be called at the begin, it ensures that binlog of this test
      is wrote to master-bin.000001 correctly.  
      
      Three other tests have the same problem, They were fixed together.
      mysqlbinlog-cp932
      binlog_incident
      binlog_tmp_table
      12a38fc6
    • unknown's avatar
      Bug#45581 Test rpl_row_sp006_InnoDB fails randomly: Unknown database 'mysqltest1' · 5210d5a9
      unknown authored
      Postfix.
      extra/rpl_tests/rpl_row_sp006.test had changed to fix this bug.
      extra/rpl_tests/rpl_row_sp006.test is also referenced by rpl_ndb_sp006,
      So rpl_row_sp006.result must be changed too.
      5210d5a9
  5. 05 Sep, 2009 1 commit
    • Alexey Kopytov's avatar
      Bug #46159: simple query that never returns · 50534602
      Alexey Kopytov authored
       
      The external 'for' loop in remove_dup_with_compare() handled 
      HA_ERR_RECORD_DELETED by just starting over without advancing 
      to the next record which caused an infinite loop. 
       
      This condition could be triggered on certain data by a SELECT 
      query containing DISTINCT, GROUP BY and HAVING clauses. 
      
      Fixed remove_dup_with_compare() so that we always advance to 
      the next record when receiving HA_ERR_RECORD_DELETED from 
      rnd_next(). 
      
      mysql-test/r/distinct.result:
        Added a test case for bug #46159.
      mysql-test/t/distinct.test:
        Added a test case for bug #46159.
      sql/sql_select.cc:
        Fixed remove_dup_with_compare() so that we always advance to 
        the next record when receiving HA_ERR_RECORD_DELETED from 
        rnd_next().
      50534602
  6. 04 Sep, 2009 12 commits
    • Davi Arnaut's avatar
      Bug#45605: ps_not_windows.test fails: · e49a210c
      Davi Arnaut authored
                 The plugin feature is disabled, you need HAVE_DLOPEN
      
      Selectively skip tests that require dynamic loading (ie: static builds).
      
      mysql-test/include/have_dynamic_loading.inc:
        Add require file.
      mysql-test/t/ps_not_windows.test:
        Test requires dynamic loading support.
      e49a210c
    • Ramil Kalimullin's avatar
      Automerge · 8a3d59ea
      Ramil Kalimullin authored
      8a3d59ea
    • Ramil Kalimullin's avatar
      Fix for bug#46629: Item_in_subselect::val_int(): Assertion `0' · 2a6ac469
      Ramil Kalimullin authored
      on subquery inside a SP 
      
      Problem: repeated call of a SP containing an incorrect query with a 
      subselect may lead to failed ASSERT().
      
      Fix: set proper sublelect's state in case of error occured during 
      subquery transformation.
      
      
      mysql-test/r/sp.result:
        Fix for bug#46629: Item_in_subselect::val_int(): Assertion `0' 
        on subquery inside a SP 
          - test result.
      mysql-test/t/sp.test:
        Fix for bug#46629: Item_in_subselect::val_int(): Assertion `0' 
        on subquery inside a SP 
          - test case.
      sql/item_subselect.cc:
        Fix for bug#46629: Item_in_subselect::val_int(): Assertion `0' 
        on subquery inside a SP 
          - don't set Item_subselect::changed in the Item_subselect::fix_fields()
        if an error occured during subquery transformation.
        That prevents us of further processing incorrect subqueries after 
        Item_in_subselect::select_in_like_transformer().
      2a6ac469
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · 79b5063d
      Sergey Glukhov authored
      79b5063d
    • Sergey Vojtovich's avatar
      BUG#46961 - archive engine loses rows during self joining select! · a7de2057
      Sergey Vojtovich authored
      SELECT with join (not only self-join) from archive table may
      return incomplete result set, when result set size exceeds
      join buffer size.
      
      The problem was that archive row counter was initialzed too
      early, when ha_archive::info() method was called. Later,
      when optimizer exceeds join buffer, it attempts to reuse
      handler without calling ha_archive::info() again (which is
      correct).
      
      Fixed by moving row counter initialization from
      ha_archive::info() to ha_archive::rnd_init().
      
      mysql-test/r/archive.result:
        A test case for BUG#46961.
      mysql-test/t/archive.test:
        A test case for BUG#46961.
      storage/archive/ha_archive.cc:
        Since a cursor may get reused without a call to ::info(),
        move assignment of scan_rows to a proper place, that is
        ::rnd_init().
      a7de2057
    • Sergey Glukhov's avatar
      Bug#45989 memory leak after explain encounters an error in the query · 643fbe42
      Sergey Glukhov authored
      Memory allocated in TMP_TABLE_PARAM::copy_field is not cleaned up.
      The fix is to clean up TMP_TABLE_PARAM::copy_field array in JOIN::destroy.
      
      
      mysql-test/r/explain.result:
        test result
      mysql-test/t/explain.test:
        test case
      sql/sql_select.cc:
        Memory allocated in TMP_TABLE_PARAM::copy_field is not cleaned up.
        The fix is to clean up TMP_TABLE_PARAM::copy_field array in JOIN::destroy.
      643fbe42
    • Satya B's avatar
      merge mysql-5.0-bugteam to mysql-5.1-bugteam · 7bfdc5bb
      Satya B authored
      7bfdc5bb
    • Satya B's avatar
      Fix for BUG#46384 - mysqld segfault when trying to create table with same · 6e27ef43
      Satya B authored
                          name as existing view
      
      When trying to create a table with the same name as existing view with
      join, mysql server crashes.
      
      The problem is when create table is issued with the same name as view, while
      verifying with the existing tables, we assume that base table object is 
      created always.
      
      In this case, since it is a view over multiple tables, we don't have the 
      mysql derived table object.
      
      Fixed the logic which checks if there is an existing table to not to assume
      that table object is created when the base table is view over multiple 
      tables.
      
      mysql-test/r/create.result:
        BUG#46384 - mysqld segfault when trying to create table with same 
                    name as existing view
        
        Testcase for the bug
      mysql-test/t/create.test:
        BUG#46384 - mysqld segfault when trying to create table with same 
                    name as existing view
        
        Testcase for the bug
      sql/sql_insert.cc:
        BUG#46384 - mysqld segfault when trying to create table with same 
                        name as existing view
            
        Fixed create_table_from_items() method to properly check, if the base table 
        is a view over multiple tables.
      6e27ef43
    • Satya B's avatar
    • Satya B's avatar
      Addition to Fix for BUG#46591 - .frm file isn't sync'd with sync_frm enabled · 482fdb5f
      Satya B authored
                                      for CREATE TABLE...LIKE...
      
      Add my_sync.c to mysqltest sources list in CMakeLists.txt
      
      client/CMakeLists.txt:
        BUG#46591 - .frm file isn't sync'd with sync_frm enabled
                    for CREATE TABLE...LIKE...
        
        Add my_sync.c to mysqltest sources list
      482fdb5f
    • V Narayanan's avatar
      Bug#45823 Assertion failure in file row/row0mysql.c line 1386 · 9776b6f9
      V Narayanan authored
      Inserting a negative value in the autoincrement column of a
      partitioned innodb table was causing the value of the auto
      increment counter to wrap around into a very large positive
      value. The consequences are the same as if a very large positive
      value was inserted into a column, e.g. reduced autoincrement
      range, failure to read autoincrement counter.
      
      The current patch ensures that before calculating the next
      auto increment value, the current value is within the positive
      maximum allowed limit.
      
      mysql-test/suite/parts/inc/partition_auto_increment.inc:
        Bug#45823 Assertion failure in file row/row0mysql.c line 1386
        
        Adds tests for performing insert,update and delete on a partition
        table with negative auto_increment values.
      mysql-test/suite/parts/r/partition_auto_increment_innodb.result:
        Bug#45823 Assertion failure in file row/row0mysql.c line 1386
        
        Result file for the innodb engine.
      mysql-test/suite/parts/r/partition_auto_increment_memory.result:
        Bug#45823 Assertion failure in file row/row0mysql.c line 1386
        
        Result file for the memory engine.
      mysql-test/suite/parts/r/partition_auto_increment_myisam.result:
        Bug#45823 Assertion failure in file row/row0mysql.c line 1386
        
        Result file for the myisam engine.
      mysql-test/suite/parts/r/partition_auto_increment_ndb.result:
        Bug#45823 Assertion failure in file row/row0mysql.c line 1386
        
        Result file for the ndb engine.
      mysql-test/suite/parts/t/partition_auto_increment_archive.test:
        Bug#45823 Assertion failure in file row/row0mysql.c line 1386
        
        Adds a variable that allows the Archive engine to skip tests
        that involve insertion of negative auto increment values.
      mysql-test/suite/parts/t/partition_auto_increment_blackhole.test:
        Bug#45823 Assertion failure in file row/row0mysql.c line 1386
        
        Adds a variable that allows the Blackhole engine to skip tests
        that involve insertion of negative auto increment values.
      sql/ha_partition.cc:
        Bug#45823 Assertion failure in file row/row0mysql.c line 1386
        
        Ensures that the current value is lesser than the upper limit
        for the type of the field before setting the next auto increment
        value to be calculated.
      sql/ha_partition.h:
        Bug#45823 Assertion failure in file row/row0mysql.c line 1386
        
        Modifies the set_auto_increment_if_higher function, to take
        into account negative auto increment values when doing a
        comparison.
      9776b6f9
    • unknown's avatar
      BUG#45581 Test rpl_row_sp006_InnoDB fails randomly: Unknown database 'mysqltest1' · 1eb40ce3
      unknown authored
            
      Essentially, Bug#45574 results in this bug. The 'CREATE DATABASE IF NOT EXISTS' statement was not 
      binlogged, when the database has existed.
      Sometimes, the master and slaves become inconsistent. The "CREATE DATABASE
      IF NOT EXISTS mysqltest1" statement is not binlogged
      if the db 'mysqltest1' existed before the test case is executed. 
      So the db 'mysqltest1' can't be created on slave.
           
      Patch of Bug#45574 has resolved this problem. 
      But I think it is better to replace 'mysqltest1' by default db 'test'.
      1eb40ce3
  7. 03 Sep, 2009 5 commits
    • Satya B's avatar
      merge mysql-5.0-bugteam to mysql-5.1-bugteam · 421531df
      Satya B authored
      421531df
    • Satya B's avatar
      Fix for Bug#33785 - myisamchk show warning message · fe79cb53
      Satya B authored
      myisamchk tool generates warnings when run on an myisam files (.MYI or .MYD)
      This is because of the conversion of max_value for certain options in myisamchk 
      from singed long to unsigned long
      
      The max value for the options key_buffer_size, read_buffer_size, write_buffer
      _size and sort_buffer_size is given as (long) ~0L which becomes -1  when casted
      from signed long to longlong and then casted to ulonglong. When (ulonglong) -1 
      is compared with maximal value for GET_ULONG data type, we adjust it to 
      (ulonglong) ULONG_MAX and throw the warning.
      
      Fixed by using the right max size.
      
      Max values for the variables (from mysqld.cc)
      ----------------------------
      1. key_buffer_size
         5.0: ULONG_MAX
         5.1: SIZE_T_MAX
         6.0: SIZE_T_MAX
      
      2. read_buffer_size and write_buffer_size
         5.0: INT_MAX32
         5.1: INT_MAX32
         6.0: INT_MAX32
      
      3. sort_buffer_size (aka myisam_sort_buffer_size)
         5.0: UINT_MAX32
         5.1: ULONG_MAX
         6.0: ULONG_MAX
      
      Note: testcase not attached
      
      myisam/myisamchk.c:
        Bug#33785 - myisamchk show warning message
            
        Fixed the Max value for key_buffer_size, read_buffer_size, write_buffer_size and
        sort_buffer_size options
      fe79cb53
    • Georgi Kodinov's avatar
      Bug #46791: Assertion failed:(table->key_read==0),function unknown · 629557ff
      Georgi Kodinov authored
        function,file sql_base.cc
      
      When uncacheable queries are written to a temp table the optimizer must 
      preserve the original JOIN structure, because it is re-using the JOIN 
      structure to read from the resulting temporary table.
      This was done only for uncacheable sub-queries. 
      But top level queries can also benefit from this mechanism, specially if 
      they're using index access and need a reset.
      Fixed by not limiting the saving of JOIN structure to subqueries
      exclusively.
      Added a new test file to extend the existing (large) subquery.test.
      629557ff
    • Satya B's avatar
      merge mysql-5.0-bugteam to mysql-5.1-bugteam · 33f9066e
      Satya B authored
      33f9066e
    • Satya B's avatar
      Fix for BUG#46591 - .frm file isn't sync'd with sync_frm enabled for · 2fc9c5d1
      Satya B authored
                          CREATE TABLE...LIKE...
            
      The mysql server option 'sync_frm' is ignored when table is created with 
      syntax CREATE TABLE .. LIKE.. 
            
      Fixed by adding the MY_SYNC flag and calling my_sync() from my_copy() when
      the flag is set.
      
      In mysql_create_table(), when the 'sync_frm' is set, MY_SYNC flag is passed 
      to my_copy(). 
            
      Note: TestCase is not attached and can be tested manually using debugger.
      
      client/Makefile.am:
        BUG#46591 - .frm file isn't sync'd with sync_frm enabled for 
                    CREATE TABLE...LIKE...
            
        add my_sync to sources as it is used in my_copy() method
      include/my_sys.h:
        BUG#46591 - .frm file isn't sync'd with sync_frm enabled for 
                    CREATE TABLE...LIKE...
            
        MY_SYNC flag is added to call my_sync() method
      mysys/my_copy.c:
        BUG#46591 - .frm file isn't sync'd with sync_frm enabled for 
                    CREATE TABLE...LIKE...
            
        my_sync() is method is called when MY_SYNC is set in my_copy()
      sql/sql_table.cc:
        BUG#46591 - .frm file isn't sync'd with sync_frm enabled for 
                    CREATE TABLE...LIKE...
            
        Fixed mysql_create_like_table() to call my_sync() when opt_sync_frm variable
        is set
      2fc9c5d1
  8. 02 Sep, 2009 2 commits