List:Commits« Previous MessageNext Message »
From:marko.makela Date:May 2 2012 1:10pm
Subject:bzr push into mysql-trunk branch (marko.makela:3763 to 3764)
View as plain text  
 3764 Marko Mäkelä	2012-05-02
      Non-functional changes.
      
      dict_mem_table_create(): Remove bogus comment about clustered tables,
      which were never implemented in InnoDB.
      
      create_table_def(): Remove unnecessary type casts.

    modified:
      storage/innobase/dict/dict0mem.cc
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/include/dict0mem.h
 3763 Rohit Kalhans	2012-05-02 [merge]
      WL#5597: Using batch operations when there is no index in RBR
      
      CONTEXT
      -------
      
      With RBR, if a table has no indexes, the slave does a full table scan for each
      row changed (i.e. updated or deleted). This can be extremely time consuming
      when there is a high number of rows to be updated.
      
      SOLUTION
      ---------
      
      When there is a table without a PK or an INDEX, create a temporary in-memory
      index (e.g. in-memory hash table) and store the rows to be update in it. Then for
      each row in the table, check if the row exists in the hash table. If there is a
      match, do the operation, i.e. update or delete.

    removed:
      mysql-test/suite/rpl/r/rpl_row_find_row_debug.result
      mysql-test/suite/rpl/t/rpl_row_find_row_debug.test
    added:
      mysql-test/extra/rpl_tests/rpl_row_idempotency.test
      mysql-test/include/rpl_hash_scan_assertion.inc
      mysql-test/suite/rpl/r/rpl_row_hash_scan.result
      mysql-test/suite/rpl/r/rpl_row_hash_scan_sanity.result
      mysql-test/suite/rpl/t/rpl_row_hash_scan.test
      mysql-test/suite/rpl/t/rpl_row_hash_scan_sanity.test
      mysql-test/suite/sys_vars/r/slave_rows_search_algorithms_basic.result
      mysql-test/suite/sys_vars/t/slave_rows_search_algorithms_basic.test
    modified:
      mysql-test/collections/default.daily
      mysql-test/extra/rpl_tests/rpl_record_compare.test
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/r/mysqld--help-win.result
      mysql-test/suite/rpl/r/rpl_bug26395.result
      mysql-test/suite/rpl/r/rpl_parallel_start_stop.result
      mysql-test/suite/rpl/r/rpl_relayrotate.result
      mysql-test/suite/rpl/r/rpl_row_idempotency.result
      mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result
      mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result
      mysql-test/suite/rpl/t/rpl_bug26395.test
      mysql-test/suite/rpl/t/rpl_parallel_start_stop.test
      mysql-test/suite/rpl/t/rpl_relayrotate.test
      mysql-test/suite/rpl/t/rpl_row_idempotency.test
      sql/handler.h
      sql/log_event.cc
      sql/log_event.h
      sql/mysqld.cc
      sql/mysqld.h
      sql/rpl_utility.cc
      sql/rpl_utility.h
      sql/sql_class.h
      sql/sys_vars.cc
      storage/blackhole/ha_blackhole.h
=== modified file 'storage/innobase/dict/dict0mem.cc'
--- a/storage/innobase/dict/dict0mem.cc	revid:rohit.kalhans@stripped
+++ b/storage/innobase/dict/dict0mem.cc	revid:marko.makela@stripped-20120502130958-34c6majx9v4ic2w2
@@ -61,9 +61,7 @@ dict_mem_table_create(
 /*==================*/
 	const char*	name,	/*!< in: table name */
 	ulint		space,	/*!< in: space where the clustered index of
-				the table is placed; this parameter is
-				ignored if the table is made a member of
-				a cluster */
+				the table is placed */
 	ulint		n_cols,	/*!< in: number of columns */
 	ulint		flags,	/*!< in: table flags */
 	ulint		flags2)	/*!< in: table flags2 */
@@ -117,8 +115,6 @@ dict_mem_table_create(
 		table->fts = fts_create(table);
 		table->fts->cache = fts_cache_create(table);
 		fts_optimize_add_table(table);
-	} else {
-		table->fts = NULL;
 	}
 #endif /* !UNIV_HOTBACKUP */
 

=== modified file 'storage/innobase/handler/ha_innodb.cc'
--- a/storage/innobase/handler/ha_innodb.cc	revid:rohit.kalhans@strippedz3fs8
+++ b/storage/innobase/handler/ha_innodb.cc	revid:marko.makela@stripped
@@ -8177,7 +8177,7 @@ create_table_def(
 				"column type and try to re-create "
 				"the table with an appropriate "
 				"column type.",
-				table->name, (char*) field->field_name);
+				table->name, field->field_name);
 			goto err_col;
 		}
 
@@ -8241,7 +8241,7 @@ err_col:
 		}
 
 		dict_mem_table_add_col(table, heap,
-			(char*) field->field_name,
+			field->field_name,
 			col_type,
 			dtype_form_prtype(
 				(ulint) field->type()

=== modified file 'storage/innobase/include/dict0mem.h'
--- a/storage/innobase/include/dict0mem.h	revid:rohit.kalhans@strippedm-20120502120442-peoh8beloy7z3fs8
+++ b/storage/innobase/include/dict0mem.h	revid:marko.makela@stripped130958-34c6majx9v4ic2w2
@@ -226,9 +226,7 @@ dict_mem_table_create(
 /*==================*/
 	const char*	name,		/*!< in: table name */
 	ulint		space,		/*!< in: space where the clustered index
-					of the table is placed; this parameter
-					is ignored if the table is made
-					a member of a cluster */
+					of the table is placed */
 	ulint		n_cols,		/*!< in: number of columns */
 	ulint		flags,		/*!< in: table flags */
 	ulint		flags2);	/*!< in: table flags2 */

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (marko.makela:3763 to 3764) marko.makela2 May