1. 15 Dec, 2009 7 commits
    • Georgi Kodinov's avatar
      merge · 9f0ea5dc
      Georgi Kodinov authored
      9f0ea5dc
    • Mattias Jonsson's avatar
      merge · e9db7b8e
      Mattias Jonsson authored
      e9db7b8e
    • Georgi Kodinov's avatar
      Bug #48709: Assertion failed in sql_select.cc:11782: · 82e6ae0f
      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.
      82e6ae0f
    • Alexander Barkov's avatar
      Bug#49134 5.1 server segfaults with 2byte collation file · 9c47ea83
      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.
      9c47ea83
    • Jon Olav Hauglid's avatar
      Bug #48995 abort missing DBUG_RETURN or .. in function "check_key_in_view" · ca049fbe
      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.
      ca049fbe
    • He Zhenxing's avatar
      bug#49536 - deadlock on rotate_and_purge when using expire_logs_days · e76d96c4
      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
      e76d96c4
    • 's avatar
      Bug #34628 LOAD DATA CONCURRENT INFILE drops CONCURRENT in binary log · aa388252
      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. 
      aa388252
  2. 14 Dec, 2009 9 commits
  3. 13 Dec, 2009 3 commits
    • lars-erik.bjork@sun.com's avatar
      This is a patch for Bug#48500 · 44e2c65a
      lars-erik.bjork@sun.com 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.
      44e2c65a
    • Alexey Kopytov's avatar
      Automerge · 4a12f66c
      Alexey Kopytov authored
      4a12f66c
    • Alexey Kopytov's avatar
      Bug #42849: innodb crash with varying time_zone on partitioned · a8cfe3d4
      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.
      a8cfe3d4
  4. 12 Dec, 2009 1 commit
    • Staale Smedseng's avatar
      Bug #45058 init_available_charsets uses double checked locking · 983770aa
      Staale Smedseng authored
            
      As documented in the bug report, the double checked locking
      pattern has inherent issues, and cannot guarantee correct
      initialization.
      
      This patch replaces the logic in init_available_charsets()
      with the use of pthread_once(3). A wrapper function,
      my_pthread_once(), is introduced and is used in lieu of direct
      calls to init_available_charsets(). Related defines
      MY_PTHREAD_ONCE_* are also introduced.
      
      For the Windows platform, the implementation in lp:sysbench is
      ported. For single-thread use, a simple define calls the
      function and sets the pthread_once control variable.
      
      Charset initialization is modified to use my_pthread_once().
      983770aa
  5. 11 Dec, 2009 13 commits
  6. 10 Dec, 2009 7 commits
    • Georgi Kodinov's avatar
      merge · 772aa695
      Georgi Kodinov authored
      772aa695
    • Georgi Kodinov's avatar
      Bug #49250 : spatial btree index corruption and crash · ee06414b
      Georgi Kodinov authored
      SPATIAL and FULLTEXT indexes don't support algorithm
      selection. 
      Disabled by creating a special grammar rule for these
      in the parser.
      Added some encasulation of duplicate parser code.
      ee06414b
    • Ramil Kalimullin's avatar
      Auto-merge. · 16d15270
      Ramil Kalimullin authored
      16d15270
    • Ramil Kalimullin's avatar
      Manual merge. · 7171282f
      Ramil Kalimullin authored
      7171282f
    • Gleb Shchepa's avatar
      Bug #49480: WHERE using YEAR columns returns unexpected results · 3461cdc1
      Gleb Shchepa authored
      A few problems were found in the fix for bug 43668:
      1) Comparison of the YEAR column with NULL always returned TRUE;
      2) Comparison of the YEAR column with constants always returned
         unpredictable result;
      3) Unnecessary conversion warnings when comparing a non-integer
         constant with a NULL value in the YEAR column;
      
      The problems described above have been resolved with an
      exception: zero (i.e. invalid) YEAR column value comparison
      with 00 or 2000 still fail (it is not a regression and it was
      not a regression), so MIN/MAX on YEAR column containing zero
      value still fail.
      3461cdc1
    • Ramil Kalimullin's avatar
      Auto-merge. · 89ea9250
      Ramil Kalimullin authored
      89ea9250
    • He Zhenxing's avatar
      Auto merge · 644015d2
      He Zhenxing authored
      644015d2