1. 16 Dec, 2009 12 commits
  2. 15 Dec, 2009 14 commits
    • Georgi Kodinov's avatar
      Bug #48709: Assertion failed in sql_select.cc:11782: · b72f2789
      Georgi Kodinov authored
       int join_read_key(JOIN_TAB*)
      
      The eq_ref access method TABLE_REF (accessed through 
      JOIN_TAB) to save state and to track if this is the 
      first row it finds or not.
      This state was not reset on subquery re-execution
      causing an assert.
      
      Fixed by resetting the state before the subquery 
      re-execution.
      b72f2789
    • Ramil Kalimullin's avatar
      Fix for bug#49517: Inconsistent behavior while using · c5e6a11e
      Ramil Kalimullin authored
      NULLable BIGINT and INT columns in comparison
      
      Problem: a consequence of the fix for 43668.
      Some Arg_comparator inner initialization missed,
      that may lead to unpredictable (wrong) comparison
      results.
      
      Fix: always properly initialize Arg_comparator
      before its usage.
      
      
      mysql-test/r/select.result:
        Fix for bug#49517: Inconsistent behavior while using 
        NULLable BIGINT and INT columns in comparison
          -test result.
      mysql-test/t/select.test:
        Fix for bug#49517: Inconsistent behavior while using 
        NULLable BIGINT and INT columns in comparison
          -test case.
      sql/item_cmpfunc.cc:
        Fix for bug#49517: Inconsistent behavior while using 
        NULLable BIGINT and INT columns in comparison
          - now all Arg_comparator::set_cmp_func() set
        Arg_comparator::set_null to ensure its proper initialization
        in all cases (by default it's set to TRUE in constructors).
      sql/item_cmpfunc.h:
        Fix for bug#49517: Inconsistent behavior while using 
        NULLable BIGINT and INT columns in comparison
          - now all Arg_comparator::set_cmp_func() set
        Arg_comparator::set_null to ensure its proper initialization
        in all cases (by default it's set to TRUE in constructors).
      c5e6a11e
    • Georgi Kodinov's avatar
      merge · 2cf2b5d8
      Georgi Kodinov authored
      2cf2b5d8
    • Mattias Jonsson's avatar
      merge · dd5550d3
      Mattias Jonsson authored
      dd5550d3
    • Georgi Kodinov's avatar
      Bug #48709: Assertion failed in sql_select.cc:11782: · 188c6f8c
      Georgi Kodinov authored
       int join_read_key(JOIN_TAB*)
      
      The eq_ref access method TABLE_REF (accessed through 
      JOIN_TAB) to save state and to track if this is the 
      first row it finds or not.
      This state was not reset on subquery re-execution
      causing an assert.
      
      Fixed by resetting the state before the subquery 
      re-execution.
      188c6f8c
    • Alexander Barkov's avatar
      Bug#49134 5.1 server segfaults with 2byte collation file · cff23162
      Alexander Barkov authored
      Problem: add_collation did not check that cs->number is smaller
      than the number of elements in the array all_charsets[],
      so server could crash when loading an Index.xml file with
      a collation ID greater the number of elements 
      (for example when downgrading from 5.5).
      
      Fix: adding a condition to check that cs->number is not out of valid range.
      cff23162
    • Jon Olav Hauglid's avatar
      Bug #48995 abort missing DBUG_RETURN or .. in function "check_key_in_view" · 4578a5c6
      Jon Olav Hauglid authored
      check_key_in_view() had one code branch which returned with "return TRUE"
      rather than "DBUG_RETURN(TRUE)". Only affected debug builds.
      
      No test case added.
      4578a5c6
    • Georgi Kodinov's avatar
      Bug #48985: show create table crashes if previous access to the table · d2e723bf
      Georgi Kodinov authored
        was killed
      
      Merge the fix from 5.1-bugteam to 5.1-main
      d2e723bf
    • Georgi Kodinov's avatar
      Bug#49489: Uninitialized cache led to a wrong result. · 838adcf2
      Georgi Kodinov authored
      Merge the fix from 5.1-bugteam to 5.1-main
      838adcf2
    • Georgi Kodinov's avatar
      Bug #49480: WHERE using YEAR columns returns unexpected results · 915cc3e9
      Georgi Kodinov authored
      Merge the fix from 5.1-bugteam to 5.1-main
      915cc3e9
    • Alexander Nozdrin's avatar
      Post-merge fix. · 3040ef5c
      Alexander Nozdrin authored
      3040ef5c
    • Alexander Nozdrin's avatar
      Post-merge fix (binlog_unsafe). · 2915b523
      Alexander Nozdrin authored
      2915b523
    • He Zhenxing's avatar
      bug#49536 - deadlock on rotate_and_purge when using expire_logs_days · fb7214ae
      He Zhenxing authored
      Problem is that purge_logs implementation in ndb (ndbcluster_binlog_index_purge_file)
      calls mysql_parse (with (thd->options & OPTION_BIN_LOG) === 0)) 
      but MYSQL_BIN_LOG first takes LOCK_log and then checks thd->options
      
      Solution in this patch, changes so that rotate_and_purge does not hold
      LOCK_log when calling purge_logs_before_date. I think this is safe
      as other "purge"-function(s) is called wo/ holding LOCK_log, e.g purge_master_logs
      fb7214ae
    • unknown's avatar
      Bug #34628 LOAD DATA CONCURRENT INFILE drops CONCURRENT in binary log · e813587b
      unknown authored
      'LOAD DATA CONCURRENT [LOCAL] INFILE ...' statment only is binlogged as
      'LOAD DATA [LOCAL] INFILE ...' in SBR and MBR.  As a result, if replication is on, 
      queries on slaves will be blocked by the replication SQL thread.
      
      This patch write code to write 'CONCURRENT' into the log event if 'CONCURRENT' option
      is in the original statement in SBR and MBR. 
      e813587b
  3. 14 Dec, 2009 10 commits
  4. 13 Dec, 2009 3 commits
    • unknown's avatar
      This is a patch for Bug#48500 · 71c54b8c
      unknown authored
      5.0 buffer overflow for ER_UPDATE_INFO, or truncated info message in 5.1
            
      5.0.86 has a buffer overflow/crash, and 5.1.40 has a truncated message.
            
      errmsg.txt contains this:
            
      ER_UPDATE_INFO
      rum "Linii identificate (matched): %ld  Schimbate: %ld  Atentionari 
      (warnings): %ld"
      When that is sprintf'd into a buffer of STRING_BUFFER_USUAL_SIZE size,
      a buffer overflow can happen.
            
      The solution to this is to use MYSQL_ERRMSG_SIZE for the buffer size, 
      instead of STRING_BUFFER_USUAL_SIZE. This will allow longer strings. 
      To avoid potential crashes, we will also use my_snprintf instead of
      sprintf.
      
      sql/sql_update.cc:
        sing MYSQL_ERRMSG_SIZE instead of STRING_BUFFER_USUAL_SIZE.
        Using my_snprintf instead of sprintf.
      71c54b8c
    • Alexey Kopytov's avatar
      Automerge · d65fdb31
      Alexey Kopytov authored
      d65fdb31
    • Alexey Kopytov's avatar
      Bug #42849: innodb crash with varying time_zone on partitioned · c08e6c88
      Alexey Kopytov authored
                  timestamp primary key 
       
      Since TIMESTAMP values are adjusted by the current time zone  
      settings in both numeric and string contexts, using any 
      expressions involving TIMESTAMP values as a  
      (sub)partitioning function leads to undeterministic behavior of  
      partitioned tables. The effect may vary depending on a storage  
      engine, it can be either incorrect data being retrieved or  
      stored, or an assertion failure. The root cause of this is the  
      fact that the calculated partition ID may differ from a  
      previously calculated ID for the same data due to timezone  
      adjustments of the partitioning expression value. 
       
      Fixed by disabling any expressions involving TIMESTAMP values  
      to be used in partitioning functions with the follwing two 
      exceptions: 
       
      1. Creating or altering into a partitioned table that violates 
      the above rule is not allowed, but opening existing such tables 
      results in a warning rather than an error so that such tables 
      could be fixed. 
       
      2. UNIX_TIMESTAMP() is the only way to get a 
      timezone-independent value from a TIMESTAMP column, because it 
      returns the internal representation (a time_t value) of a 
      TIMESTAMP argument verbatim. So UNIX_TIMESTAMP(timestamp_column)
      is allowed and should be used to fix existing tables if one 
      wants to use TIMESTAMP columns with partitioning.
      
      mysql-test/r/partition_bug18198.result:
        Corrected the error.
      mysql-test/r/partition_error.result:
        Corrected error texts.
        Added test cases for bug #42849.
      mysql-test/t/partition_bug18198.test:
        Corrected error code.
      mysql-test/t/partition_error.test:
        Corrected error codes.
        Added test cases for bug #42849.
      sql/item.h:
        Added is_timezone_dependent_processor() to Item.
      sql/item_func.h:
        Added has_timestamp_args() and the implementation of
        is_timezone_dependent_processor() for Item_func.
      sql/item_timefunc.h:
        Added is_timezone_dependent_processor() to 
        Item_func_unix_timestamp.
      sql/share/errmsg.txt:
        Renamed ER_CONST_EXPR_IN_PARTITION_FUNC_ERROR to
        ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR to better reflect the
        meaning. Adjusted the error message.
      sql/sql_partition.cc:
        Modified fix_fields_part_func() to walk through partitioning
        expression tree with is_timezone_dependent_processor() and issue
        a warning/error if it depends on the timezone settings.
        
        Changed fix_fields_part_func() to a static function since it is
        not used anywhere except sql_partition.cc
      sql/sql_partition.h:
        Removed the unneeded declaration of fix_fields_part_func()
        since it is now a static function.
      sql/sql_yacc.yy:
        ER_CONST_EXPR_IN_PARTITION_FUNC_ERROR ->
        ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR.
      c08e6c88
  5. 12 Dec, 2009 1 commit
    • Alexander Nozdrin's avatar
      Manual merge from mysql-trunk-merge. · aceea234
      Alexander Nozdrin authored
      Conflicts:
        - extra/comp_err.c
        - mysql-test/collections/default.experimental
        - mysql-test/r/archive.result
        - mysql-test/r/select.result
        - mysql-test/suite/binlog/r/binlog_unsafe.result
        - mysql-test/suite/binlog/t/binlog_unsafe.test
        - mysql-test/suite/rpl/t/disabled.def
        - mysql-test/t/archive.test
        - mysql-test/t/select.test
        - sql/item.cc
        - sql/item.h
        - sql/item_timefunc.cc
        - sql/sql_base.cc
        - sql/sql_delete.cc
        - sql/sql_load.cc
        - sql/sql_partition.cc
        - sql/sql_table.cc
        - storage/innobase/handler/ha_innodb.cc
        - vio/vio.c
      aceea234