From: Date: November 19 2007 5:58pm Subject: bk commit into 5.1 tree (frazer:1.2684) BUG#30674 List-Archive: http://lists.mysql.com/commits/38081 X-Bug: 30674 Message-Id: <200711191658.lAJGwaum004735@forth.ndb.mysql.com> Below is the list of changes that have just been committed into a local 5.1 repository of frazer. When frazer does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2007-11-19 16:58:19+00:00, frazer@stripped +5 -0 Bug#30674 : NDB: Update mst table using extra column for where clause slave to fail Problem was caused by attempting to set the value of a blob which was not in the set of updated columns which were replicated. Testcase reactivated and expected results updated mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test@stripped, 2007-11-19 16:58:00+00:00, frazer@stripped +1 -8 Re-activating test mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result@stripped, 2007-11-19 16:58:02+00:00, frazer@stripped +36 -33 Fixing results mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result@stripped, 2007-11-19 16:58:03+00:00, frazer@stripped +36 -33 Fixing results mysql-test/suite/rpl_ndb/r/rpl_ndb_extraColMaster.result@stripped, 2007-11-19 16:58:05+00:00, frazer@stripped +6 -4 Fixing results sql/ha_ndbcluster.cc@stripped, 2007-11-19 16:58:07+00:00, frazer@stripped +1 -1 Only Blobs in the write set should be set. diff -Nrup a/mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test b/mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test --- a/mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test 2007-10-11 15:11:58 +01:00 +++ b/mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test 2007-11-19 16:58:00 +00:00 @@ -973,14 +973,7 @@ SELECT c1,hex(c4),c5 FROM t18 ORDER BY c --echo --echo ** update from master ** connection master; -####################################### -# This test should be uncommented -# once bug30674 is patched -####################################### - -#*************************** -#UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3; -#*************************** +UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3; --replace_column 5 CURRENT_TIMESTAMP SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1; diff -Nrup a/mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result b/mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result --- a/mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result 2007-10-11 15:14:26 +01:00 +++ b/mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result 2007-11-19 16:58:02 +00:00 @@ -1089,18 +1089,19 @@ c1 hex(c4) c5 3 62316231623162316231623162316231 QA ** update from master ** +UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3; SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1; c1 hex(c4) c5 c6 c7 1 62316231623162316231623162316231 Kyle 1 CURRENT_TIMESTAMP 2 62316231623162316231623162316231 JOE 2 CURRENT_TIMESTAMP -3 62316231623162316231623162316231 QA 3 CURRENT_TIMESTAMP +3 62316231623162316231623162316231 TEST 3 CURRENT_TIMESTAMP ** Check slave ** SELECT c1,hex(c4),c5 FROM t18 ORDER BY c1; c1 hex(c4) c5 1 62316231623162316231623162316231 Kyle 2 62316231623162316231623162316231 JOE -3 62316231623162316231623162316231 QA +3 62316231623162316231623162316231 TEST DROP TABLE t18; @@ -2229,18 +2230,19 @@ c1 hex(c4) c5 3 62316231623162316231623162316231 QA ** update from master ** +UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3; SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1; c1 hex(c4) c5 c6 c7 1 62316231623162316231623162316231 Kyle 1 CURRENT_TIMESTAMP 2 62316231623162316231623162316231 JOE 2 CURRENT_TIMESTAMP -3 62316231623162316231623162316231 QA 3 CURRENT_TIMESTAMP +3 62316231623162316231623162316231 TEST 3 CURRENT_TIMESTAMP ** Check slave ** SELECT c1,hex(c4),c5 FROM t18 ORDER BY c1; c1 hex(c4) c5 1 62316231623162316231623162316231 Kyle 2 62316231623162316231623162316231 JOE -3 62316231623162316231623162316231 QA +3 62316231623162316231623162316231 TEST DROP TABLE t18; @@ -3369,18 +3371,19 @@ c1 hex(c4) c5 3 62316231623162316231623162316231 QA ** update from master ** +UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3; SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1; c1 hex(c4) c5 c6 c7 1 62316231623162316231623162316231 Kyle 1 CURRENT_TIMESTAMP 2 62316231623162316231623162316231 JOE 2 CURRENT_TIMESTAMP -3 62316231623162316231623162316231 QA 3 CURRENT_TIMESTAMP +3 62316231623162316231623162316231 TEST 3 CURRENT_TIMESTAMP ** Check slave ** SELECT c1,hex(c4),c5 FROM t18 ORDER BY c1; c1 hex(c4) c5 1 62316231623162316231623162316231 Kyle 2 62316231623162316231623162316231 JOE -3 62316231623162316231623162316231 QA +3 62316231623162316231623162316231 TEST DROP TABLE t18; diff -Nrup a/mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result b/mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result --- a/mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result 2007-10-11 15:14:26 +01:00 +++ b/mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result 2007-11-19 16:58:03 +00:00 @@ -1089,18 +1089,19 @@ c1 hex(c4) c5 3 62316231623162316231623162316231 QA ** update from master ** +UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3; SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1; c1 hex(c4) c5 c6 c7 1 62316231623162316231623162316231 Kyle 1 CURRENT_TIMESTAMP 2 62316231623162316231623162316231 JOE 2 CURRENT_TIMESTAMP -3 62316231623162316231623162316231 QA 3 CURRENT_TIMESTAMP +3 62316231623162316231623162316231 TEST 3 CURRENT_TIMESTAMP ** Check slave ** SELECT c1,hex(c4),c5 FROM t18 ORDER BY c1; c1 hex(c4) c5 1 62316231623162316231623162316231 Kyle 2 62316231623162316231623162316231 JOE -3 62316231623162316231623162316231 QA +3 62316231623162316231623162316231 TEST DROP TABLE t18; @@ -2229,18 +2230,19 @@ c1 hex(c4) c5 3 62316231623162316231623162316231 QA ** update from master ** +UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3; SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1; c1 hex(c4) c5 c6 c7 1 62316231623162316231623162316231 Kyle 1 CURRENT_TIMESTAMP 2 62316231623162316231623162316231 JOE 2 CURRENT_TIMESTAMP -3 62316231623162316231623162316231 QA 3 CURRENT_TIMESTAMP +3 62316231623162316231623162316231 TEST 3 CURRENT_TIMESTAMP ** Check slave ** SELECT c1,hex(c4),c5 FROM t18 ORDER BY c1; c1 hex(c4) c5 1 62316231623162316231623162316231 Kyle 2 62316231623162316231623162316231 JOE -3 62316231623162316231623162316231 QA +3 62316231623162316231623162316231 TEST DROP TABLE t18; @@ -3369,18 +3371,19 @@ c1 hex(c4) c5 3 62316231623162316231623162316231 QA ** update from master ** +UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3; SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1; c1 hex(c4) c5 c6 c7 1 62316231623162316231623162316231 Kyle 1 CURRENT_TIMESTAMP 2 62316231623162316231623162316231 JOE 2 CURRENT_TIMESTAMP -3 62316231623162316231623162316231 QA 3 CURRENT_TIMESTAMP +3 62316231623162316231623162316231 TEST 3 CURRENT_TIMESTAMP ** Check slave ** SELECT c1,hex(c4),c5 FROM t18 ORDER BY c1; c1 hex(c4) c5 1 62316231623162316231623162316231 Kyle 2 62316231623162316231623162316231 JOE -3 62316231623162316231623162316231 QA +3 62316231623162316231623162316231 TEST DROP TABLE t18; diff -Nrup a/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraColMaster.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraColMaster.result --- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraColMaster.result 2007-10-10 16:22:06 +01:00 +++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraColMaster.result 2007-11-19 16:58:05 +00:00 @@ -1089,18 +1089,19 @@ c1 hex(c4) c5 3 62316231623162316231623162316231 QA ** update from master ** +UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3; SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1; c1 hex(c4) c5 c6 c7 1 62316231623162316231623162316231 Kyle 1 CURRENT_TIMESTAMP 2 62316231623162316231623162316231 JOE 2 CURRENT_TIMESTAMP -3 62316231623162316231623162316231 QA 3 CURRENT_TIMESTAMP +3 62316231623162316231623162316231 TEST 3 CURRENT_TIMESTAMP ** Check slave ** SELECT c1,hex(c4),c5 FROM t18 ORDER BY c1; c1 hex(c4) c5 1 62316231623162316231623162316231 Kyle 2 62316231623162316231623162316231 JOE -3 62316231623162316231623162316231 QA +3 62316231623162316231623162316231 TEST DROP TABLE t18; @@ -2229,18 +2230,19 @@ c1 hex(c4) c5 3 62316231623162316231623162316231 QA ** update from master ** +UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3; SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1; c1 hex(c4) c5 c6 c7 1 62316231623162316231623162316231 Kyle 1 CURRENT_TIMESTAMP 2 62316231623162316231623162316231 JOE 2 CURRENT_TIMESTAMP -3 62316231623162316231623162316231 QA 3 CURRENT_TIMESTAMP +3 62316231623162316231623162316231 TEST 3 CURRENT_TIMESTAMP ** Check slave ** SELECT c1,hex(c4),c5 FROM t18 ORDER BY c1; c1 hex(c4) c5 1 62316231623162316231623162316231 Kyle 2 62316231623162316231623162316231 JOE -3 62316231623162316231623162316231 QA +3 62316231623162316231623162316231 TEST DROP TABLE t18; diff -Nrup a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc --- a/sql/ha_ndbcluster.cc 2007-11-16 08:52:07 +00:00 +++ b/sql/ha_ndbcluster.cc 2007-11-19 16:58:07 +00:00 @@ -3388,7 +3388,7 @@ int ha_ndbcluster::ndb_write_row(uchar * if (table_share->blob_fields > 0) { my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set); - int res= set_blob_values(op, row - table->record[0], NULL, &blob_count); + int res= set_blob_values(op, row - table->record[0], table->write_set, &blob_count); dbug_tmp_restore_column_map(table->read_set, old_map); if (res != 0) ERR_RETURN(op->getNdbError());