1. 17 Mar, 2010 1 commit
    • Mats Kindahl's avatar
      BUG#49618: Field length stored incorrectly in binary log · 27737589
      Mats Kindahl authored
                 for InnoDB
                  
      The class Field_bit_as_char stores the metadata for the
      field incorrecly because bytes_in_rec and bit_len are set
      to (field_length + 7 ) / 8 and 0 respectively, while
      Field_bit has the correct values field_length / 8 and
      field_length % 8.
                  
      Solved the problem by re-computing the values for the
      metadata based on the field_length instead of using the
      bytes_in_rec and bit_len variables.
                  
      To handle compatibility with old server, a table map
      flag was added to indicate that the bit computation is
      exact. If the flag is clear, the slave computes the
      number of bytes required to store the bit field and
      compares that instead, effectively allowing replication
      *without conversion* from any field length that require
      the same number of bytes to store.
      27737589
  2. 05 Nov, 2009 1 commit
  3. 04 Nov, 2009 4 commits
  4. 03 Nov, 2009 34 commits
    • Davi Arnaut's avatar
      Automerge. · ca00c92d
      Davi Arnaut authored
      ca00c92d
    • Davi Arnaut's avatar
      fc55339e
    • Konstantin Osipov's avatar
      A fix and a test case for · 409160e4
      Konstantin Osipov authored
      Bug#41756 "Strange error messages about locks from InnoDB".
            
      In JT_EQ_REF (join_read_key()) access method, 
      don't try to unlock rows in the handler, unless certain that 
      a) they were locked
      b) they are not used.
      
      Unlocking of rows is done by the logic of the nested join loop,
      and is unaware of the possible caching that the access method may
      have. This could lead to double unlocking, when a row
      was unlocked first after reading into the cache, and then 
      when taken from cache, as well as to unlocking of rows which
      were actually used (but taken from cache).
            
      Delegate part of the unlocking logic to the access method,
      and in JT_EQ_REF count how many times a record was actually 
      used in the join. Unlock it only if it's usage count is 0.
      
      Implemented review comments.
      409160e4
    • Magnus Blåudd's avatar
      Merge bug#47867 to 5.1-bugteam · 273f9b63
      Magnus Blåudd authored
      273f9b63
    • Konstantin Osipov's avatar
      A fix and a test case for · d2babeaf
      Konstantin Osipov authored
      Bug#41756 "Strange error messages about locks from InnoDB".
      
      In JT_EQ_REF (join_read_key()) access method,
      don't try to unlock rows in the handler, unless certain that
      a) they were locked
      b) they are not used.
      
      Unlocking of rows is done by the logic of the nested join loop,
      and is unaware of the possible caching that the access method may
      have. This could lead to double unlocking, when a row
      was unlocked first after reading into the cache, and then
      when taken from cache, as well as to unlocking of rows which
      were actually used (but taken from cache).
      
      Delegate part of the unlocking logic to the access method,
      and in JT_EQ_REF count how many times a record was actually
      used in the join. Unlock it only if it's usage count is 0.
      
      Implemented review comments.
      d2babeaf
    • Kristofer Pettersson's avatar
      automerge · 6eec4b98
      Kristofer Pettersson authored
      6eec4b98
    • Kristofer Pettersson's avatar
    • Sergey Vojtovich's avatar
      Merge of innodb-zip-ss6129 snapshot. · 2ebdc909
      Sergey Vojtovich authored
      2ebdc909
    • Sergey Vojtovich's avatar
      Clean-up after applying innodb-zip-ss6129 snapshot: · af3c70af
      Sergey Vojtovich authored
      - re-enabled main.innodb_bug44369;
      - re-enabled main.innodb_bug47777;
      - re-enabled innodb.innodb_information_schema.
      af3c70af
    • Jorgen Loland's avatar
      Bug#48177 - SELECTs with NOT IN subqueries containing NULL · 7f9a5047
      Jorgen Loland authored
                  values return too many records
      
      WHERE clauses with "outer_value_list NOT IN subselect" were
      handled incorrectly if the outer value list contained multiple 
      items where at least one of these could be NULL. The first 
      outer record with NULL value was handled correctly, but if a 
      second record with NULL value existed, the optimizer would 
      choose to reuse the result it got on the last execution of the 
      subselect. This is incorrect if the outer value list has 
      multiple items.
           
      The fix is to make Item_in_optimizer::val_int (in 
      item_cmpfunc.cc) reuse the result of the latest execution
      for NULL values only if all values in the outer_value_list 
      are NULL.
      7f9a5047
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · b9f3a76a
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6126 | vasil | 2009-10-30 10:36:07 +0200 (Fri, 30 Oct 2009) | 45 lines
      branches/zip: Merge r6112:6125 from branches/5.1:
      
      (skipping r6122 and r6123, Jimmy says these are already present and need
      not be merged):
      
        ------------------------------------------------------------------------
        r6122 | jyang | 2009-10-30 05:18:38 +0200 (Fri, 30 Oct 2009) | 7 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/mysql-test/innodb_bug44369.result
           M /branches/5.1/mysql-test/innodb_bug44369.test
           M /branches/5.1/mysql-test/innodb_bug46000.result
           M /branches/5.1/mysql-test/innodb_bug46000.test
        
        branches/5.1: Chnage WARN_LEVEL_ERROR to WARN_LEVEL_WARN
        for push_warning_printf() call in innodb.
        Fix Bug#47233: Innodb calls push_warning(MYSQL_ERROR::WARN_LEVEL_ERROR)
        
        rb://170 approved by Marko.
        
        
        ------------------------------------------------------------------------
        r6123 | jyang | 2009-10-30 05:43:06 +0200 (Fri, 30 Oct 2009) | 8 lines
        Changed paths:
           M /branches/5.1/os/os0proc.c
        
        branches/5.1: In os_mem_alloc_large(), if we fail to attach
        the shared memory, reset memory pointer ptr to NULL, and
        allocate memory from conventional pool. This is a port
        from branches/zip.
        Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
        rb://198  Approved by: Marko
        
        
        ------------------------------------------------------------------------
        r6125 | vasil | 2009-10-30 10:31:23 +0200 (Fri, 30 Oct 2009) | 4 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1:
        
        White-space fixup.
        
        ------------------------------------------------------------------------
      b9f3a76a
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · f578a61d
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6121 | sunny | 2009-10-30 01:42:11 +0200 (Fri, 30 Oct 2009) | 7 lines
      branches/zip: This test has been problematic for sometime now. The underlying
      bug is that the data dictionaries get out of sync. In the AUTOINC code we
      try and apply salve to the symptoms. In the past MySQL made some unrelated
      change and the dictionaries stopped getting out of sync and this test started
      to fail. Now, it seems they have reverted that changed and the test is
      passing again. I suspect this is not he last time that this test will change.
      
      r6124 | jyang | 2009-10-30 10:02:31 +0200 (Fri, 30 Oct 2009) | 5 lines
      branches/zip: Correct the bug number for -r6109 change
      from # 48273 to #48237
      f578a61d
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 895db582
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6114 | vasil | 2009-10-29 18:43:51 +0200 (Thu, 29 Oct 2009) | 6 lines
      branches/zip:
      
      * Add ChangeLog entries for latest changes
      * Obey alphabetical order in the list of the files
      * White-space fixup
      895db582
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 02ba9d61
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6113 | vasil | 2009-10-29 18:15:50 +0200 (Thu, 29 Oct 2009) | 93 lines
      branches/zip: Merge r5912:6112 from branches/5.1:
      
      (after this merge the innodb-autoinc test starts to fail, but
      I commit anyway because it would be easier to investigate the
      failure this way)
      
        ------------------------------------------------------------------------
        r5952 | calvin | 2009-09-22 19:45:07 +0300 (Tue, 22 Sep 2009) | 7 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1: fix bug#42383: Can't create table 'test.bug39438'
        
        For embedded server, MySQL may pass in full path, which is
        currently disallowed. It is needed to relax the condition by
        accepting full paths in the embedded case.
        
        Approved by: Heikki (on IM)
        ------------------------------------------------------------------------
        r6032 | vasil | 2009-10-01 15:55:49 +0300 (Thu, 01 Oct 2009) | 8 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1:
        
        Fix Bug#38996 Race condition in ANALYZE TABLE
        
        by serializing ANALYZE TABLE inside InnoDB.
        
        Approved by:	Heikki (rb://175)
        
        ------------------------------------------------------------------------
        r6045 | jyang | 2009-10-08 02:27:08 +0300 (Thu, 08 Oct 2009) | 7 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           A /branches/5.1/mysql-test/innodb_bug47777.result
           A /branches/5.1/mysql-test/innodb_bug47777.test
        
        branches/5.1: Fix bug #47777. Treat the Geometry data same as
        Binary BLOB in ha_innobase::store_key_val_for_row(), since the
        Geometry data is stored as Binary BLOB in Innodb.
        
        Review: rb://180 approved by Marko Makela.
        
        
        ------------------------------------------------------------------------
        r6051 | sunny | 2009-10-12 07:05:00 +0300 (Mon, 12 Oct 2009) | 6 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/mysql-test/innodb-autoinc.result
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1: Ignore negative values supplied by the user when calculating the
        next value to store in dict_table_t. Setting autoincrement columns top negative
        values is undefined behavior and this change should bring the behavior of
        InnoDB closer to what users expect. Added several tests to check.
        rb://162
        
        ------------------------------------------------------------------------
        r6052 | sunny | 2009-10-12 07:09:56 +0300 (Mon, 12 Oct 2009) | 4 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/mysql-test/innodb-autoinc.result
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1: Reset the statement level autoinc counter on ROLLBACK. Fix
        the test results too.
        rb://164
        
        ------------------------------------------------------------------------
        r6053 | sunny | 2009-10-12 07:37:49 +0300 (Mon, 12 Oct 2009) | 6 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/mysql-test/innodb-autoinc.result
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1: Copy the maximum AUTOINC value from the old table to the new
        table when MySQL does a CREATE INDEX ON T. This is required because MySQL
        does a table copy, rename and drops the old table.
        Fix Bug#47125: auto_increment start value is ignored if an index is created and engine=innodb
        rb://168
        
        ------------------------------------------------------------------------
        r6076 | vasil | 2009-10-14 19:30:12 +0300 (Wed, 14 Oct 2009) | 4 lines
        Changed paths:
           M /branches/5.1/row/row0mysql.c
        
        branches/5.1:
        
        Fix typo.
        
        ------------------------------------------------------------------------
      02ba9d61
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 7559c6ae
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6112 | calvin | 2009-10-29 16:21:15 +0200 (Thu, 29 Oct 2009) | 4 lines
      branches/zip: consideration for icc compilers
      
      Proposed by MySQL, and approved by Marko.
      7559c6ae
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · aa14038f
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6110 | marko | 2009-10-29 12:44:57 +0200 (Thu, 29 Oct 2009) | 2 lines
      branches/zip: Makefile.am (INCLUDES): Merge a change from MySQL:
      Use $(srcdir)/include instead of $(top_srcdir)/storage/innobase/include.
      r6111 | marko | 2009-10-29 13:04:11 +0200 (Thu, 29 Oct 2009) | 33 lines
      branches/zip: Fix corruption of buf_pool->LRU_old and improve debug assertions.
      This was reported as Issue #381.
      
      buf_page_set_old(): Assert that blocks may only be set old if
      buf_pool->LRU_old is initialized and buf_pool->LRU_old_len is nonzero.
      Assert that buf_pool->LRU_old points to the block at the old/new boundary.
      
      buf_LRU_old_adjust_len(): Invoke buf_page_set_old() after adjusting
      buf_pool->LRU_old and buf_pool->LRU_old_len, in order not to violate
      the added assertions.
      
      buf_LRU_old_init(): Replace buf_page_set_old() with a direct
      assignment to bpage->old, because these loops that initialize all the
      blocks would temporarily violate the assertions about
      buf_pool->LRU_old.
      
      buf_LRU_remove_block(): When setting buf_pool->LRU_old = NULL, also
      clear all bpage->old flags and set buf_pool->LRU_old_len = 0.
      
      buf_LRU_add_block_to_end_low(), buf_LRU_add_block_low(): Move the
      buf_page_set_old() call later in order not to violate the debug
      assertions.  If buf_pool->LRU_old is NULL, set old=FALSE.
      
      buf_LRU_free_block(): Replace the UNIV_LRU_DEBUG assertion with a
      dummy buf_page_set_old() call that performs more thorough checks.
      
      buf_LRU_validate(): Do not tolerate garbage in buf_pool->LRU_old_len
      even if buf_pool->LRU_old is NULL.  Check that bpage->old is monotonic.
      
      buf_relocate(): Make the UNIV_LRU_DEBUG checks stricter.
      
      buf0buf.h: Revise the documentation of buf_page_t::old and
      buf_pool_t::LRU_old_len.
      aa14038f
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 4b2f6773
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6109 | jyang | 2009-10-29 10:37:32 +0200 (Thu, 29 Oct 2009) | 7 lines
      branches/zip: In os_mem_alloc_large(), if we fail to attach
      the shared memory, reset memory pointer ptr to NULL, and
       allocate memory from conventional pool.
      Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
      rb://198  Approved by: Marko
      4b2f6773
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 6171c4b9
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6108 | calvin | 2009-10-29 07:58:04 +0200 (Thu, 29 Oct 2009) | 5 lines
      branches/zip: close file handle when building with UNIV_HOTBACKUP
      
      The change does not affect regular InnoDB engine. Confirmed by
      Marko.
      6171c4b9
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 43291b24
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6107 | marko | 2009-10-28 16:10:34 +0200 (Wed, 28 Oct 2009) | 5 lines
      branches/zip: buf_page_set_old(): Improve UNIV_LRU_DEBUG diagnostics
      in order to catch the buf_pool->LRU_old corruption reported in Issue #381.
      
      buf_LRU_old_init(): Set the property from the tail towards the front
      of the buf_pool->LRU list, in order not to trip the debug check.
      43291b24
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 30215cb2
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6105 | calvin | 2009-10-28 00:05:52 +0200 (Wed, 28 Oct 2009) | 6 lines
      branches/zip: backport r3848 from 6.0 branch
      
      ----
          branches/6.0: innobase_start_or_create_for_mysql(): Make the 10 MB
          minimum tablespace limit independent of UNIV_PAGE_SIZE. (Bug #41490)
      30215cb2
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 46ae4617
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6103 | marko | 2009-10-26 15:46:18 +0200 (Mon, 26 Oct 2009) | 4 lines
      branches/zip: row_ins_alloc_sys_fields(): Zero out the system columns
      DB_TRX_ID, DB_ROLL_PTR and DB_ROW_ID, in order to avoid harmless
      Valgrind warnings about uninitialized data.  (The warnings were
      harmless, because the fields would be initialized at a later stage.)
      46ae4617
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 40f5717a
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6102 | marko | 2009-10-26 09:32:23 +0200 (Mon, 26 Oct 2009) | 1 line
      branches/zip: row_prebuilt_struct::prebuilts: Unused field, remove.
      40f5717a
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 7f5c5e4d
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6101 | jyang | 2009-10-23 11:45:50 +0300 (Fri, 23 Oct 2009) | 7 lines
      branches/zip: Update test result with the WARN_LEVEL_ERROR
      to WARN_LEVEL_WARN change. This is the same result as 
      submitted in rb://172 review, which approved by Sunny Bains
      and Marko.
      7f5c5e4d
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · b56899a1
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6100 | jyang | 2009-10-22 06:51:07 +0300 (Thu, 22 Oct 2009) | 6 lines
      branches/zip: As a request from mysql, WARN_LEVEL_ERROR cannot
      be used for push_warning_* call any more. Switch to 
      WARN_LEVEL_WARN. Bug #47233.
      rb://172 approved by Sunny Bains and Marko.
      b56899a1
    • 's avatar
      Manual Merge · c3345f3e
      authored
      c3345f3e
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 026e2d7a
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6099 | jyang | 2009-10-22 05:58:39 +0300 (Thu, 22 Oct 2009) | 7 lines
      branches/zip: Port bug #46000 related changes from 5.1 to zip
      branch. Due to different code path for creating index in zip
      branch comparing to 5.1), the index reserved name check function
      is extended to be used in ha_innobase::add_index(). 
      rb://190  Approved by: Marko
      026e2d7a
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · f835e9cd
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6096 | vasil | 2009-10-19 16:06:09 +0300 (Mon, 19 Oct 2009) | 4 lines
      branches/zip:
      
      Add ChangeLog entry for r6095.
      f835e9cd
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 594de658
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6095 | vasil | 2009-10-19 16:04:59 +0300 (Mon, 19 Oct 2009) | 7 lines
      branches/zip:
      
      Fix Bug#47808 innodb_information_schema.test fails when run under valgrind 
      
      by using the wait_until_rows_count macro that loops until the number of
      rows becomes 14 instead of sleep 0.1, which is obviously very fragile.
      594de658
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 05694127
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6084 | vasil | 2009-10-15 08:21:17 +0300 (Thu, 15 Oct 2009) | 4 lines
      branches/zip:
      
      Add ChangeLog entry for r6080.
      05694127
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · c9b22f26
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6080 | sunny | 2009-10-15 01:29:01 +0300 (Thu, 15 Oct 2009) | 3 lines
      branches/zip: Change page_mem_alloc_free() to inline.
      Fix Bug #47058 - Failure to compile innodb_plugin on solaris 10u7 + spro cc/CC 5.10
      c9b22f26
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 280b7ee2
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6064 | calvin | 2009-10-13 18:23:35 +0300 (Tue, 13 Oct 2009) | 4 lines
      branches/zip: non-functional changes
      
      Changes from MySQL to fix build issue.
      
      r6065 | inaam | 2009-10-13 20:43:13 +0300 (Tue, 13 Oct 2009) | 7 lines
      branches/zip rb://182
      
      Call fsync() on datafiles after a batch of pages is written to disk
      even when skip_innodb_doublewrite is set.
      
      Approved by: Heikki
      280b7ee2
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snapshot · ed612249
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6049 | vasil | 2009-10-09 19:05:26 +0300 (Fri, 09 Oct 2009) | 7 lines
      branches/zip:
      
      Fix compilation warning in Hot Backup:
      
      innodb/fil/fil0fil.c: In function 'fil_load_single_table_tablespace':
      innodb/fil/fil0fil.c:3253: warning: format '%lld' expects type 'long long int', but argument 6 has type 'ib_int64_t'
      ed612249
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · 5bd0efc8
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6048 | vasil | 2009-10-09 08:42:55 +0300 (Fri, 09 Oct 2009) | 16 lines
      branches/zip:
      
      When scanning a directory readdir() is called and stat() after it,
      if a file is deleted between the two calls stat will fail and the
      whole precedure will fail. Change this behavior to continue with the
      next entry if stat() fails because of nonexistent file. This is
      transparent change as it will make it look as if the file was deleted
      before the readdir() call.
      
      This change is needed in order to fix
      https://svn.innodb.com/mantis/view.php?id=174
      in which we need to abort if os_file_readdir_next_file()
      encounters "real" errors.
      
      Approved by:	Marko, Pekka (rb://177)
      5bd0efc8
    • Sergey Vojtovich's avatar
      Applying InnoDB plugin snashot · a9c7c79a
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6046 | pekka | 2009-10-08 12:24:56 +0300 (Thu, 08 Oct 2009) | 3 lines
      branches/zip: Revert r6044 which added os_file_is_same() function
      (issue#186). This functionality is moved to Hot Backup source tree.
      a9c7c79a