1. 20 Nov, 2012 3 commits
  2. 19 Nov, 2012 2 commits
    • Vamsikrishna Bhagi's avatar
      Bug#14463669 FAILURE TO CORRECTLY PARSE ROUTINES IN · 3deeb437
      Vamsikrishna Bhagi authored
                   MYSQLDUMP OUTPUT
      
      Problem: mysqldump when used with option --routines, dumps
               all the routines of the specified database into
               output. The statements in this output are written
               in such a way that they are version safe using C
               style version commenting (of the format
               /*!<version num> <sql statement>*/). If a semicolon
               is present right before closing of the comment in
               dump output, it results in a syntax error while
               importing.
      
      
      Solution: Version comments for dumped routines are
                specifically to protect the ones older than 5.0.
                When the import is done on 5.0 or later versions,
                entire create statement gets executed as all the
                check conditions at the beginning of the comments
                are cleared. Since the trade off is between the
                performance of newer versions which are more in
                use and protection of very old versions which are
                no longer supported, it is proposed that these
                comments be removed altogether to maintain
                stability of the versions supported.
      
      client/mysqldump.c:
        Bug#14463669 FAILURE TO CORRECTLY PARSE ROUTINES IN
                     MYSQLDUMP OUTPUT
        
        Output of mysqldump is derived by getting the queries from
        show create and appending version comments to them.
        query_str is the variable used to store the final string.
        Since it is no longer required, its declaration and
        manipulations made on it are deleted. At the step where
        output is printed, query_str is replaced with the original
        query string derived from 'show create'.
      3deeb437
    • Satya Bodapati's avatar
      Bug#14147491 - INFINITE LOOP WHEN OPENING A CORRUPTED TABLE · f7043d76
      Satya Bodapati authored
      This bug is fixed by Bug#14251529. Only testcase from the 
      contribution is used.
      f7043d76
  3. 16 Nov, 2012 9 commits
  4. 15 Nov, 2012 6 commits
    • Marko Mäkelä's avatar
      Merge mysql-5.1 to mysql-5.5. · 7d04b04a
      Marko Mäkelä authored
      7d04b04a
    • Marko Mäkelä's avatar
      Bug#15872736 FAILING ASSERTION · fb189671
      Marko Mäkelä authored
      Remove a bogus debug assertion.
      fb189671
    • Marko Mäkelä's avatar
      Merge mysql-5.1 to mysql-5.5. · b5fcf510
      Marko Mäkelä authored
      b5fcf510
    • Marko Mäkelä's avatar
      Bug#15874001 CREATE INDEX ON A UTF8 CHAR COLUMN FAILS WITH ROW_FORMAT=REDUNDANT · ffb044a9
      Marko Mäkelä authored
      CHAR(n) in ROW_FORMAT=REDUNDANT tables is always fixed-length
      (n*mbmaxlen bytes), but in the temporary file it is variable-length
      (n*mbminlen to n*mbmaxlen bytes) for variable-length character sets,
      such as UTF-8.
      
      The temporary file format used during index creation and online ALTER
      TABLE is based on ROW_FORMAT=COMPACT. Thus, it should use the
      variable-length encoding even if the base table is in
      ROW_FORMAT=REDUNDNAT.
      
      dtype_get_fixed_size_low(): Replace an assertion-like check with a
      debug assertion.
      
      rec_init_offsets_comp_ordinary(), rec_convert_dtuple_to_rec_comp():
      Make this an inline function.  Replace 'ulint extra' with 'bool temp'.
      
      rec_get_converted_size_comp_prefix_low(): Renamed from
      rec_get_converted_size_comp_prefix(), and made inline. Add the
      parameter 'bool temp'. If temp=true, do not add REC_N_NEW_EXTRA_BYTES.
      
      rec_get_converted_size_comp_prefix(): Remove the comment about
      dict_table_is_comp(). This function is only to be called for other
      than ROW_FORMAT=REDUNDANT records.
      
      rec_get_converted_size_temp(): New function for computing temporary
      file record size. Omit REC_N_NEW_EXTRA_BYTES from the sizes.
      
      rec_init_offsets_temp(), rec_convert_dtuple_to_temp(): New functions,
      for operating on temporary file records.
      
      rb:1559 approved by Jimmy Yang
      ffb044a9
    • unknown's avatar
      remove usage of --skip-ndb from collections · 50a986fe
      unknown authored
       - no need to use --skip-ndb in collections files anymore, since long but
        more clear logic after recent mtr.pl fixes. ndb tests are never run in MySQL Server
        unless explicitly requested
       - remove sys_vars.ndb_log_update_as_write_basic.test and sys_vars.ndb_log_updated_only_basic.result since MySQL Server does not have those
        options.
       - Only sys_vars.have_ndbcluster_basic left since MySQL Server has that variable hardcoded.
      50a986fe
    • unknown's avatar
      No commit message · 8b46aa9f
      unknown authored
      No commit message
      8b46aa9f
  5. 14 Nov, 2012 8 commits
    • Nuno Carvalho's avatar
      BUG#12669186: AUTOINC VALUE PERSISTENCY BREAKS CERTAIN REPLICATION SCENARIOS · 6800689c
      Nuno Carvalho authored
      When master and slave have different schemas, in particular different
      AUTO_INCREMENT columns, INSERT_ID events logged for a given table on
      master may be applied to a different table on slave on SBR, e.g.:
        master has one table (t1) with one auto-inc column and another table
        (t2) without auto-inc column, on slave t1 does not have auto-inc
        column (despite having the same columns) and t2 has a auto-inc
        column. The INSERT_ID that is intended for t1, since t1 on slave
        doesn't have auto-inc column is used on t2, causing consistency
        problems.
      
      To fix this incorrect behaviour, auto-inc interval allocation via
      INSERT_ID is made effectively terminated at the end of top-level
      statements on slave and binlog replay.
      6800689c
    • Venkata Sidagam's avatar
      BUG#13556107: CHECK AND REPAIR TABLE SHOULD BE MORE ROBUST [3] · 329afcb6
      Venkata Sidagam authored
      Problem description: Incorrect key file. Key file is corrupted,
      while reading the keys from the file. The problem here is that 
      keyseg->start (which should point to the beginning of a field) 
      is pointing beyond total record length.
      
      Fix: If keyseg->start is greater than total record length then 
      return error.
      329afcb6
    • unknown's avatar
      No commit message · ed7ccdb0
      unknown authored
      No commit message
      ed7ccdb0
    • unknown's avatar
      No commit message · 0aa53d9e
      unknown authored
      No commit message
      0aa53d9e
    • unknown's avatar
      No commit message · 682d23a3
      unknown authored
      No commit message
      682d23a3
    • Jimmy Yang's avatar
      Fix Bug #14753402 - FAILING ASSERTION: LEN == IFIELD->FIXED_LEN · a1c66ae2
      Jimmy Yang authored
      rb://1411 approved by Marko
      a1c66ae2
    • unknown's avatar
      No commit message · f6af85d9
      unknown authored
      No commit message
      f6af85d9
    • unknown's avatar
      No commit message · e8df5a7c
      unknown authored
      No commit message
      e8df5a7c
  6. 13 Nov, 2012 4 commits
    • unknown's avatar
      Merge · efea6983
      unknown authored
      efea6983
    • Mattias Jonsson's avatar
      a1c7d052
    • Mattias Jonsson's avatar
      Bug#14845133: · 39690893
      Mattias Jonsson authored
      The problem is related to the changes made in bug#13025132.
      get_partition_set can do dynamic pruning which limits the partitions
      to scan even further. This is not accounted for when setting
      the correct start of the preallocated record buffer used in
      the priority queue, thus leading to wrong buffer is used
      (including wrong preset partitioning id, connected to that buffer).
      
      Solution is to fast forward the buffer pointer to point to the correct
      partition record buffer.
      39690893
    • Mattias Jonsson's avatar
      Bug#14845133: · ab161b7d
      Mattias Jonsson authored
      The problem is related to the changes made in bug#13025132.
      get_partition_set can do dynamic pruning which limits the partitions
      to scan even further. This is not accounted for when setting
      the correct start of the preallocated record buffer used in
      the priority queue, thus leading to wrong buffer is used
      (including wrong preset partitioning id, connected to that buffer).
      
      Solution is to fast forward the buffer pointer to point to the correct
      partition record buffer.
      ab161b7d
  7. 12 Nov, 2012 3 commits
  8. 09 Nov, 2012 5 commits
    • unknown's avatar
      No commit message · 309ee86a
      unknown authored
      No commit message
      309ee86a
    • Venkata Sidagam's avatar
      Bug#13556000: CHECK AND REPAIR TABLE SHOULD BE MORE ROBUST[2] · 3578e26e
      Venkata Sidagam authored
      Problem description: Corrupt key file for the table. Size of the 
      key is greater than the maximum specified size. This results in 
      the overflow of the key buffer while reading the key from key 
      file.
      
      Fix: If size of key is greater than the maximum size it returns 
      an error before writing it into the key buffer. Gives error as 
      corrupt file but no stack overflow.
      3578e26e
    • Annamalai Gurusami's avatar
      2859f02a
    • Annamalai Gurusami's avatar
      Bug #14669848 CRASH DURING ALTER MAKES ORIGINAL TABLE INACCESSIBLE · dd634761
      Annamalai Gurusami authored
      When a new primary key is added to an InnoDB table, then the following
      steps are taken by InnoDB plugin:
      
      .  let t1 be the original table.
      .  a temporary table t1@00231 will be created by cloning t1.
      .  all data will be copied from t1 to t1@00231.
      .  rename t1 to t1@00232.
      .  rename t1@00231 to t1.
      .  drop t1@00232.
      
      The rename and drop operations involve file operations.  But file operations
      cannot be rolled back.  So in row_merge_rename_tables(), just after doing data
      dictionary update and before doing any file operations, generate redo logs
      for file operations and commit the transaction.  This will ensure that any
      crash after this commit, the table is still recoverable by moving .ibd and
      .frm files.  Manual recovery is required.
      
      During recovery, the rename file operation redo logs are processed.
      Previously this was being ignored.
      
      rb://1460 approved by Marko Makela.
      dd634761
    • Annamalai Gurusami's avatar
      a6ac4b23