List:Commits« Previous MessageNext Message »
From:marko.makela Date:June 14 2012 9:20am
Subject:bzr push into mysql-trunk-wl6255 branch (marko.makela:3978 to 3979) WL#6255
View as plain text  
 3979 Marko Mäkelä	2012-06-14
      WL#6255 cleanup: Remove dict_table_is_online_rebuild().

    modified:
      storage/innobase/include/dict0dict.h
      storage/innobase/include/dict0dict.ic
      storage/innobase/row/row0merge.cc
 3978 Marko Mäkelä	2012-06-14
      WL#6255 rb:1105 Problem 25 (memory corruption) fix.
      
      row_ins_sec_index_entry_low(): Pass offsets_heap to the B-tree functions.
      Otherwise, the dtuple_t* entry could be freed and overwritten in
      btr_page_split_and_insert(), which invokes mem_heap_empty().

    modified:
      storage/innobase/row/row0ins.cc
=== modified file 'storage/innobase/include/dict0dict.h'
--- a/storage/innobase/include/dict0dict.h	revid:marko.makela@stripped4064928-v9f6aiwsldecpmtt
+++ b/storage/innobase/include/dict0dict.h	revid:marko.makela@stripped37cmni4v23mp05y
@@ -1386,17 +1386,6 @@ dict_index_is_online_ddl(
 /*=====================*/
 	const dict_index_t*	index)	/*!< in: index */
 	__attribute__((nonnull, warn_unused_result));
-/********************************************************************//**
-Determines if a table is being rebuilt online,
-allowing concurrent modifications to the table.
-@retval true if the table is being rebuilt online
-@retval false otherwise */
-UNIV_INLINE
-bool
-dict_table_is_online_rebuild(
-/*=========================*/
-	const dict_table_t*	table)	/*!< in: table */
-	__attribute__((nonnull, warn_unused_result));
 /*********************************************************************//**
 Logs an operation to a secondary index that is being created. */
 UNIV_INTERN

=== modified file 'storage/innobase/include/dict0dict.ic'
--- a/storage/innobase/include/dict0dict.ic	revid:marko.makela@stripped4928-v9f6aiwsldecpmtt
+++ b/storage/innobase/include/dict0dict.ic	revid:marko.makela@strippedcmni4v23mp05y
@@ -1235,20 +1235,6 @@ dict_index_is_online_ddl(
 			     != ONLINE_INDEX_COMPLETE));
 }
 
-/********************************************************************//**
-Determines if a table is being rebuilt online,
-allowing concurrent modifications to the table.
-@retval true if the table is being rebuilt online
-@retval false otherwise */
-UNIV_INLINE
-bool
-dict_table_is_online_rebuild(
-/*=========================*/
-	const dict_table_t*	table)	/*!< in: table */
-{
-	return(dict_index_is_online_ddl(dict_table_get_first_index(table)));
-}
-
 /*********************************************************************//**
 Attempts to log an operation on a secondary index that is being created.
 @return TRUE if the operation was logged or the index creation failed;

=== modified file 'storage/innobase/row/row0merge.cc'
--- a/storage/innobase/row/row0merge.cc	revid:marko.makela@stripped120614064928-v9f6aiwsldecpmtt
+++ b/storage/innobase/row/row0merge.cc	revid:marko.makela@stripped-o37cmni4v23mp05y
@@ -2284,19 +2284,22 @@ row_merge_insert_index_tuples(
 				break;
 			}
 
-			if (dict_index_is_clust(index)
-			    && dict_table_is_online_rebuild(old_table)) {
+			if (dict_index_is_clust(index)) {
 				const dict_index_t*	old_index
 					= dict_table_get_first_index(
 						old_table);
-				error = row_log_table_get_error(old_index);
-				if (error != DB_SUCCESS) {
-					break;
-				}
+				if (dict_index_is_online_ddl(old_index)) {
+					error = row_log_table_get_error(
+						old_index);
+					if (error != DB_SUCCESS) {
+						break;
+					}
 
-				if (row_merge_skip_rec(mrec, index, old_index,
-						       offsets)) {
-					continue;
+					if (row_merge_skip_rec(
+						    mrec, index, old_index,
+						    offsets)) {
+						continue;
+					}
 				}
 			}
 

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk-wl6255 branch (marko.makela:3978 to 3979) WL#6255marko.makela14 Jun