List:Commits« Previous MessageNext Message »
From:marko.makela Date:April 22 2010 9:34am
Subject:bzr push into mysql-5.1-innodb branch (marko.makela:3413 to 3414)
View as plain text  
 3414 Marko Mäkelä	2010-04-22
      Correct the definition of DICT_SYS_INDEXES_NAME_FIELD.
      When row_merge_drop_temp_indexes() was reworked to drop the indexes
      via the data dictionary cache, the code was broken because it would
      read the index name from the wrong field.

    modified:
      storage/innodb_plugin/ChangeLog
      storage/innodb_plugin/dict/dict0boot.c
      storage/innodb_plugin/include/dict0boot.h
 3413 Marko Mäkelä	2010-04-21
      btr_page_split_and_insert(): Avoid an infinite loop. (Bug #52964)
      
      btr_page_tuple_smaller(): New function, refactored from
      btr_page_split_and_insert().
      
      btr_page_get_split_rec(): Renamed from btr_page_get_sure_split_rec().
      Note that a NULL return may mean that the tuple is to be inserted into
      either the lower or upper page, to be determined by btr_page_tuple_smaller().
      
      btr_page_split_and_insert(): When btr_page_get_split_rec() returns NULL,
      invoke btr_page_tuple_smaller() to determine which half-page the tuple
      belongs to.
      
      Reviewed by Sunny Bains

    modified:
      storage/innodb_plugin/ChangeLog
      storage/innodb_plugin/btr/btr0btr.c
=== modified file 'storage/innodb_plugin/ChangeLog'
--- a/storage/innodb_plugin/ChangeLog	2010-04-21 18:53:59 +0000
+++ b/storage/innodb_plugin/ChangeLog	2010-04-22 09:33:42 +0000
@@ -1,3 +1,9 @@
+2010-04-22	The InnoDB Team
+
+	* include/dict0boot.h, dict/dict0boot.c:
+	Fix a bug that prevented the crash recovery of fast CREATE INDEX
+	from dropping partially created indexes.
+
 2010-04-21	The InnoDB Team
 
 	* btr/btr0btr.c:

=== modified file 'storage/innodb_plugin/dict/dict0boot.c'
--- a/storage/innodb_plugin/dict/dict0boot.c	2010-02-20 16:45:41 +0000
+++ b/storage/innodb_plugin/dict/dict0boot.c	2010-04-22 09:33:42 +0000
@@ -368,8 +368,8 @@ dict_boot(void)
 #if DICT_SYS_INDEXES_TYPE_FIELD != 4 + 2
 #error "DICT_SYS_INDEXES_TYPE_FIELD != 4 + 2"
 #endif
-#if DICT_SYS_INDEXES_NAME_FIELD != 1 + 2
-#error "DICT_SYS_INDEXES_NAME_FIELD != 1 + 2"
+#if DICT_SYS_INDEXES_NAME_FIELD != 2 + 2
+#error "DICT_SYS_INDEXES_NAME_FIELD != 2 + 2"
 #endif
 
 	table->id = DICT_INDEXES_ID;

=== modified file 'storage/innodb_plugin/include/dict0boot.h'
--- a/storage/innodb_plugin/include/dict0boot.h	2010-02-20 16:45:41 +0000
+++ b/storage/innodb_plugin/include/dict0boot.h	2010-04-22 09:33:42 +0000
@@ -137,7 +137,7 @@ clustered index */
 #define DICT_SYS_INDEXES_PAGE_NO_FIELD	 8
 #define DICT_SYS_INDEXES_SPACE_NO_FIELD	 7
 #define DICT_SYS_INDEXES_TYPE_FIELD	 6
-#define DICT_SYS_INDEXES_NAME_FIELD	 3
+#define DICT_SYS_INDEXES_NAME_FIELD	 4
 
 /* When a row id which is zero modulo this number (which must be a power of
 two) is assigned, the field DICT_HDR_ROW_ID on the dictionary header page is

Attachment: [text/bzr-bundle] bzr/marko.makela@oracle.com-20100422093342-jf9ojlzdqsdebohn.bundle
Thread
bzr push into mysql-5.1-innodb branch (marko.makela:3413 to 3414) marko.makela22 Apr