1. 29 May, 2009 5 commits
    • Tatiana A. Nurnberg's avatar
      auto-merge · 88a1c9c9
      Tatiana A. Nurnberg authored
      88a1c9c9
    • Tatiana A. Nurnberg's avatar
      Bug#39200: optimize table does not recognize ROW_FORMAT=COMPRESSED · 2ba60c19
      Tatiana A. Nurnberg authored
      When doing ALTER TABLE, we forgot to point out that we actually have
      ROW_FORMAT information (from the original table), so we dropped to
      "sensible defaults". This affects both ALTER TABLE and OPTIMIZE TABLE
      which may fall back on ALTER TABLE for InnoDB.
      
      We now flag that we do indeed know the row-type, thereby preserving
      compression-type etc.
      
      No .test in 5.1 since we'd need a reasonable new plugin from InnoDB to
      show this properly; in higher versions, maria can demonstrate this.
      
      sql/sql_table.cc:
        In mysql_alter_table() flag that we have row-type info
        from old table. In compare_tables(), we must explicitly
        check whether row-type has changed (rather than rely on
        the flag which will always be set at this point now).
      2ba60c19
    • Alexey Kopytov's avatar
      Automerge · ca7a17dc
      Alexey Kopytov authored
      ca7a17dc
    • Narayanan V's avatar
      merging with mysql-5.1-bugteam tree · b674d2c9
      Narayanan V authored
      b674d2c9
    • Narayanan V's avatar
      Bug#44811 Tests with utf8 charset fail with ibmdb2i on 64bit MySQL · 858e118a
      Narayanan V authored
      wmemset was being used to fill the row buffers.
      wmemset was intended  to  fill the buffer with
      16-bit UCS2 pad values.  However,  the  64-bit
      version of wmemset uses 32-bit wide characters
      and thus filled the buffer incorrectly. In some
      cases, the null  byte  map would be overwritten,
      causing ctype_utf8.test and ibmdb2i_rir.test to
      fail, giving the error message CPF5035.
      
      This patch eliminates the use of wmemset to fill
      the row buffer. wmemset has  been  replaced with
      memset16, which always  fills  memory with 16-bit
      values.
      
      storage/ibmdb2i/db2i_conversion.cc:
        Bug#44811 Tests with utf8 charset fail with ibmdb2i on 64bit MySQL
        
        Eliminate the use of wmemset to fill
        the row buffer. Replace wmemset with
        memset16, which always  fills  memory
        with 16-bit values.
      storage/ibmdb2i/db2i_misc.h:
        Bug#44811 Tests with utf8 charset fail with ibmdb2i on 64bit MySQL
        
        Eliminate the use of wmemset to fill
        the row buffer. Replace wmemset with
        memset16, which always  fills  memory
        with 16-bit values.
      858e118a
  2. 28 May, 2009 5 commits
  3. 27 May, 2009 9 commits
    • Georgi Kodinov's avatar
      merged 5.1-bugteam to working tree · 6282b4d3
      Georgi Kodinov authored
      6282b4d3
    • Georgi Kodinov's avatar
      merged 5.0-bugteam to 5.1-bugteam · c675beab
      Georgi Kodinov authored
      c675beab
    • Georgi Kodinov's avatar
      merged 5.0-bugteam · cbbc3505
      Georgi Kodinov authored
      cbbc3505
    • Georgi Kodinov's avatar
      automerge · f1463061
      Georgi Kodinov authored
      f1463061
    • Georgi Kodinov's avatar
      Bug #38159: Function parsing problem generates misleading error message · 80730df7
      Georgi Kodinov authored
            
      Added a more detailed error message on calling an ambiguous missing function.
      
      mysql-test/r/ps.result:
        Bug #38159: fixed existing tests
      mysql-test/r/sp-error.result:
        Bug #38159: test case
      mysql-test/t/ps.test:
        Bug #38159: fixed existing tests
      mysql-test/t/sp-error.test:
        Bug #38159: test case
      sql/item_func.cc:
        Bug #38159: generate more detailed error message
      sql/share/errmsg.txt:
        Bug #38159: add a more detailed error message
      sql/sql_derived.cc:
        Bug #38159: treat the detailed error message the same way as the
        generic one
      sql/sql_lex.cc:
        Bug #38159: 
          - detect if the token is ambiguous and print the appropriate error.
          - backport is_lex_native_function() from 5.1
      sql/sql_lex.h:
        Bug #38159: detect if the token is ambiguous and print the appropriate error.
      sql/sql_yacc.yy:
        Bug #38159: generate more detailed error message
      sql/table.cc:
        Bug #38159: treat the detailed error message the same way as the
        generic one
      80730df7
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · c8a7b791
      Sergey Glukhov authored
      c8a7b791
    • Sergey Glukhov's avatar
      Bug#41212 crash after race condition between merge table and table_cache evictions · f54beb2d
      Sergey Glukhov authored
      On 64-bit Windows: querying MERGE table with keys may cause
      server crash.The problem is generic and may affect any statement
      accessing MERGE table cardinality values.
      When MERGE engine was copying cardinality statistics, it was
      using incorrect size of element in cardinality statistics array
      (sizeof(ptr)==8 instead of sizeof(ulong)==4), causing access
      of memory beyond of the allocated bounds.
      
      
      sql/ha_myisam.cc:
        When copying rec_per_key array (an array of ulong) use proper
        size of element, that is sizeof(ulong).
      sql/ha_myisammrg.cc:
        When copying rec_per_key array (an array of ulong) use proper
        size of element, that is sizeof(ulong).
      sql/table.cc:
        When allocating rec_per_key array (an array of ulong) use proper
        size of element, that is sizeof(ulong).
      f54beb2d
    • Alexey Kopytov's avatar
      Bug #44638: mysql_upgrade, mysqlcheck output instance unclear · 808bed55
      Alexey Kopytov authored
      Dump all connection-related arguments when running mysqlcheck
      from mysql_upgrade.
      
      No test case, since the output depends on the test suite
      configuration and platform.
      
      client/mysql_upgrade.c:
        Dump all connection-related arguments when running mysqlcheck
        from mysql_upgrade.
      808bed55
    • Sergey Glukhov's avatar
      Bug#43940 64-bit windows myisamchk doesn't support key_buffer_size > 4G · d31b6e47
      Sergey Glukhov authored
      The fix is to allow myisamchk to use >4G key_buffer_size on win64
      
      
      include/myisam.h:
        use ulonglong instead of ulong for use_buffers
      storage/myisam/myisamchk.c:
        use ulonglong instead of ulong for use_buffers
      d31b6e47
  4. 26 May, 2009 1 commit
  5. 25 May, 2009 4 commits
    • Bjorn Munch's avatar
      merge from 5.1-mtr · d7d3c56a
      Bjorn Munch authored
      d7d3c56a
    • Staale Smedseng's avatar
      Bug #44736 mysqld_safe's my_which() is broken and · a1212080
      Staale Smedseng authored
      doesn't find 'logger'
      
      Due to a variable quoting mistake, the $PATH environment
      variable isn't parsed correctly when searching for the
      existence of the desired executable(s) (logger in this 
      case).
      
      This patch removes the quotes.
      a1212080
    • Davi Arnaut's avatar
      Bug#42158: leak: SSL_get_peer_certificate() doesn't have matching X509_free() · 7c4eb8c0
      Davi Arnaut authored
      The problem is that the server failed to follow the rule that
      every X509 object retrieved using SSL_get_peer_certificate()
      must be explicitly freed by X509_free(). This caused a memory
      leak for builds linked against OpenSSL where the X509 object
      is reference counted -- improper counting will prevent the
      object from being destroyed once the session containing the
      peer certificate is freed.
      
      The solution is to explicitly free every X509 object used.
      
      mysql-test/r/openssl_1.result:
        Add test case result for Bug#42158
      mysql-test/t/openssl_1.test:
        Add test case for Bug#42158
      sql/sql_acl.cc:
        Deallocate X509 objects.
      7c4eb8c0
    • Georgi Kodinov's avatar
      Bug #44399 : crash with statement using TEXT columns, aggregates, GROUP BY, and · 73481404
      Georgi Kodinov authored
      HAVING
                  
      When calculating GROUP BY the server caches some expressions. It does
      that by allocating a string slot (Item_copy_string) and assigning the 
      value of the expression to it. This effectively means that the result
      type of the expression can be changed from whatever it was to a string.
      As this substitution takes place after the compile-time result type 
      calculation for IN but before the run-time type calculations, 
      it causes the type calculations in the IN function done at run time 
      to get unexpected results different from what was prepared at compile time.
                        
      In the CASE ... WHEN ... THEN ... statement there was a similar problem
      and it was solved by artificially adding a STRING argument to the set of 
      types of the IN/CASE arguments at compile time, so if any of the 
      arguments of the CASE function changes its type to a string it will 
      still be covered by the information prepared at compile time.
      
      mysql-test/include/mix1.inc:
        Bug #44399: extended the test to cover the different types
      mysql-test/r/func_in.result:
        Bug #44399: test case
      mysql-test/r/innodb_mysql.result:
        Bug #44399: extended the test to cover the different types
      mysql-test/t/func_in.test:
        Bug #44399: test case
      sql/item.cc:
        Bug #44399: Implement typed caching for GROUP BY
      sql/item.h:
        Bug #44399: Implement typed caching for GROUP BY
      sql/item_cmpfunc.cc:
        Bug #44399: remove the special case
      sql/sql_select.cc:
        Bug #44399: Implement typed caching for GROUP BY
      73481404
  6. 23 May, 2009 1 commit
  7. 22 May, 2009 6 commits
    • Luis Soares's avatar
      BUG#41725: upmerge: 5.0-bt --> 5.1-bt · c8c688da
      Luis Soares authored
      c8c688da
    • Luis Soares's avatar
      BUG#41725: slave crashes when inserting into temporary table after · 8e589d1d
      Luis Soares authored
      stop/start slave
            
      When stopping and restarting the slave while it is replicating
      temporary tables, the server would crash or raise an assertion
      failure. This was due to the fact that although temporary tables are
      saved between slave threads restart, the reference to the thread in
      use (table->in_use) was not being properly updated when the restart
      happened (it would still reference the old/invalid thread instead of
      the new one).
            
      This patch addresses this issue by resetting the reference to the new
      slave thread on slave thread restart.
      
      mysql-test/r/rpl_temporary.result:
        Result file.
      mysql-test/t/rpl_temporary.test:
        Test case that checks that both failures go away.
      sql/slave.cc:
        Changed slave.cc to reset sql_thd reference in temporary tables.
      8e589d1d
    • Patrick Crews's avatar
      merge · a41d2daf
      Patrick Crews authored
      a41d2daf
    • Patrick Crews's avatar
      merge 5.0-> 5.1 · 2c5e79bb
      Patrick Crews authored
      2c5e79bb
    • Patrick Crews's avatar
      Bug#40465 - mysqldump.test does no checking of dump or restore · e42f2819
      Patrick Crews authored
      Created new .test file - mysqldump_restore that does test restore from mysqldump
      output for a limited number of basic cases.
      Create new .inc file - mysqldump.inc - renames original table and uses mysqldump
      output to recreate the table, then uses diff_tables.inc to compare the two tables.
      Backported include/diff_tables.inc to facilitate this testing.
      New patch incorporating review feedback prior to push.
      
      mysqldump.test - removed redundant call to include/have_log_bin.inc (was used twice in the test!)
      e42f2819
    • Gleb Shchepa's avatar
      Bug #42778: delete order by null global variable causes · 8354ce07
      Gleb Shchepa authored
                  assertion .\filesort.cc, line 797
      
      Minor fix to test case (embedded server failure).
      8354ce07
  8. 21 May, 2009 9 commits
    • Gleb Shchepa's avatar
      Bug #42778: delete order by null global variable causes · 06142cd5
      Gleb Shchepa authored
                  assertion .\filesort.cc, line 797
      
      A query with the "ORDER BY @@some_system_variable" clause,
      where @@some_system_variable is NULL, causes assertion
      failure in the filesort procedures.
      
      The reason of the failure is in the value of
      Item_func_get_system_var::maybe_null: it was unconditionally
      set to false even if the value of a variable was NULL.
      
      
      mysql-test/r/variables.result:
        Added test case for bug #42778.
      mysql-test/suite/sys_vars/r/innodb_data_home_dir_basic.result:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/r/innodb_flush_method_basic.result:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/r/rpl_init_slave_func.result:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/r/ssl_capath_basic.result:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/r/ssl_cipher_basic.result:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/t/innodb_data_home_dir_basic.test:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/t/innodb_flush_method_basic.test:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/t/ssl_capath_basic.test:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/suite/sys_vars/t/ssl_cipher_basic.test:
        Updated test case for bug #42778:
        system variables were NOT NULL, now they are nullable.
      mysql-test/t/variables.test:
        Added test case for bug #42778.
      sql/item.cc:
        Bug #42778: delete order by null global variable causes
                    assertion .\filesort.cc, line 797
        
        The longlong_from_string_with_check function has been modified
        to skip unwanted warnings: now it uses the THD::no_errors
        flag to suppress warnings.
        The Item_func_get_system_var::update_null_value method
        sets the no_error flag.
      sql/item_func.cc:
        Bug #42778: delete order by null global variable causes
                    assertion .\filesort.cc, line 797
        
        1. The Item_func_get_system_var::fix_length_and_dec method
           has been modified to make system variables truly nullable.
        
        2. The Item_func_get_system_var::update_null_value method
           method has been overloaded with a simple wrapper (like
           Item_field::update_null_value) to suppress unwanted warnings
           from Item_func_get_system_var::val_int() calls on non-numeric
           variable values: the Item_func_get_system_var::update_null_value
           method sets and restores THD::no_errors flag for a nested
           call of the longlong_from_string_with_check function.
      sql/item_func.h:
        Bug #42778: delete order by null global variable causes
                    assertion .\filesort.cc, line 797
        
        The Item_func_get_system_var::update_null_value method
        method has been overloaded.
      06142cd5
    • Patrick Crews's avatar
      Bug#40465: mysqldump.test does no checking of dump or restore. · 2a47699c
      Patrick Crews authored
      Created new .test file - mysqldump_restore that does this for a limited number
      of basic cases.
      Created new .inc file - mysqldump.inc - renames original table and uses mysqldump
      output to recreate the table, then uses diff_tables.inc to compare the two tables.
      Backported include/diff_tables.inc to facilitate this testing.
      2a47699c
    • Alexey Kopytov's avatar
      Automerge. · 42b3d8c7
      Alexey Kopytov authored
      42b3d8c7
    • Alexey Kopytov's avatar
      Automerge. · 645817dd
      Alexey Kopytov authored
      645817dd
    • Alexey Kopytov's avatar
      Attempt #2 to fix PB failures introduced by the patch for bug #44796. · 82c878f9
      Alexey Kopytov authored
      Since max_allowed_packet is a read-only variable in 5.1 and up,
      disable warnings to avoid unnecessary test case complication.
      82c878f9
    • Alexey Kopytov's avatar
      Automerge. · 2e644e2b
      Alexey Kopytov authored
      2e644e2b
    • Alexey Kopytov's avatar
      Automerge. · 9cf94dad
      Alexey Kopytov authored
      9cf94dad
    • Alexey Kopytov's avatar
      Fixed a PB failure introduced by the patch for bug #44796. · 2cd3eaf2
      Alexey Kopytov authored
      Set max_allowed_packet to get a consistent error message.
      2cd3eaf2
    • Alexey Kopytov's avatar
      Automerge. · d638377f
      Alexey Kopytov authored
      d638377f