Justin, hello.
> Below is the list of changes that have just been committed into a local
> 5.1 repository of justin.he. When justin.he 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-07-11 15:47:12+08:00, Justin.He@stripped +11 -0
> Bug#19259 rpl_ndb_dd_partitions failed on Solaris
>
> Actually, this testcase will fail generally on all testing platforms.
> The bugs come from the inconsistent bitmap between rpl master and slave.
>
> In log_event.cc, m_cols and m_cols_ai are intialized with
> octal-round m_width,
Let us be precise to say "octal-ceiling" instead of "octal-round" here
and in the latter comments.
> in fact, their n_bits should be equal to m_width.
> Wrong n_bits will cause bitmap_bits_set() get incorrect value in unpack_row()
> in rpl_record.cc,
> then an assertion in unpack_row() will fail and crash sql thread.
> DBUG_ASSERT(null_ptr == row_data + master_null_byte_count);
Okay.
>
> Meanwhile, because of binlog_prepare_pending_rows_event() changed with correct
> m_cols, some testcases' result need to be updated:
Could not help from correcting into plular here
some testcases' results need
[don't take me wrong, I am myself non-english speaker but if a
grammar mistake, which either of us has the perferct excuse :), is
obvious I usually tell the person.]
> binlog_multi_engine.test
> ndb_binlog_multi.test
> rpl_ndb_dd_partitions.test
> rpl_ndb_log.test
> rpl_truncate_7ndb.test
> rpl_truncate_7ndb_2.test
>
> include/my_bitmap.h@stripped, 2007-07-11 15:47:06+08:00, Justin.He@stripped
> +1 -0
> add declaration for create_last_word_mask(), since we need to use it in
> log_event.cc
>
Great that you parsed all the mismatches!
> mysql-test/r/binlog_multi_engine.result@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +0 -2
> update result
>
> the following is commented by Andrei,
> The differences can be explained.
> Look at
> lines of THD::binlog_prepare_pending_rows_event
>
> if (!pending)
> ...
> !bitmap_cmp(pending->get_cols(), cols))
>
> The row event disappears because after correcting master side
> Write_rows_log_event's m_col bitmap initialization,
> this event has the same m_cols as the preceding one and thereafter they got glued
> into one bigger size event.
> This is the correct behaviour now.
>
>
>
Perhaps that dropped from your attention, I was asking to double-check
the explanation for disappeared extra Write_rows event. To quote my
last mail:
"to extend one of the tests where
extra Write_rows_log_event:s disappear with reading from binlog file
and selecting or selecting from the slave side to prove that we
binlogged correctly"
Practically you could FLUSH LOGS before TRUNCATE tn1, do TRUNCATE and
read from a binlog file that got closed after FLUSH and
SELECT * from tn1
.
Selecting results must be the same what was inserted.
This is the only thing I'd like for you to do for improving your good
work.
The rest is okay to me.
regards,
Andrei
> mysql-test/r/ndb_binlog_multi.result@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +0 -4
> update result
> same reason with binlog_multi_engine for Write_rows_log_event
>
> mysql-test/r/rpl_ndb_dd_partitions.result@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +22 -22
> update result,
> reasones:
> 1. tablespace description format changed
> 2. hex(b1) from 1 to 0 because there is a update sentence in
> include/rpl_multi_engine3.inc
> UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
>
> mysql-test/r/rpl_ndb_log.result@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +2 -5
> update result
> same reason with binlog_multi_engine fow Write_rows_log_event
>
> mysql-test/r/rpl_truncate_7ndb.result@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +22 -26
> update result
> same reason with binlog_multi_engine for Write_rows_log_event
>
> mysql-test/r/rpl_truncate_7ndb_2.result@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +34 -34
> update result
> same reason with binlog_multi_engine for Write_rows_log_event
>
> And for the change
> -master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog
> ver: 4
> +master-bin.000001 4 Format_desc 1 106 Server ver: SERVER_VERSION, Binlog
> ver
>
> It's okay as FormatDescription event matured for 4 bytes since the last time the
> results had been recorded.
>
> mysql-test/t/disabled.def@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +0 -1
> resume this test case
>
> mysql-test/t/rpl_ndb_dd_partitions-master.opt@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +1 -0
> add --new=true passed to mysqld
>
> mysql-test/t/rpl_ndb_dd_partitions-master.opt@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +0 -0
>
> mysql-test/t/rpl_ndb_dd_partitions-slave.opt@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +1 -0
> add --new=true passed to mysqld
>
> mysql-test/t/rpl_ndb_dd_partitions-slave.opt@stripped, 2007-07-11 15:47:07+08:00,
> Justin.He@stripped +0 -0
>
> sql/log_event.cc@stripped, 2007-07-11 15:47:07+08:00, Justin.He@stripped
> +12 -4
> initialize m_cols' n_bits with m_width instead of octal-round(m_width);
> initialize m_cols_ai' n_bits with m_width instead of octal-round(m_width);
> after memcpy(), call create_last_word_mask() to clear extra bits in bitmap to
> ensure safety
>
> diff -Nrup a/include/my_bitmap.h b/include/my_bitmap.h
> --- a/include/my_bitmap.h 2006-12-24 03:19:44 +08:00
> +++ b/include/my_bitmap.h 2007-07-11 15:47:06 +08:00
> @@ -41,6 +41,7 @@ typedef struct st_bitmap
> #ifdef __cplusplus
> extern "C" {
> #endif
> +extern void create_last_word_mask(MY_BITMAP *map);
> extern my_bool bitmap_init(MY_BITMAP *map, my_bitmap_map *buf, uint n_bits,
> my_bool thread_safe);
> extern my_bool bitmap_is_clear_all(const MY_BITMAP *map);
> diff -Nrup a/mysql-test/r/binlog_multi_engine.result
> b/mysql-test/r/binlog_multi_engine.result
> --- a/mysql-test/r/binlog_multi_engine.result 2007-06-28 06:49:43 +08:00
> +++ b/mysql-test/r/binlog_multi_engine.result 2007-07-11 15:47:07 +08:00
> @@ -57,7 +57,6 @@ master-bin.000001 # Query # # BEGIN
> master-bin.000001 # Table_map # # table_id: # (test.t1n)
> master-bin.000001 # Table_map # # table_id: # (mysql.ndb_apply_status)
> master-bin.000001 # Write_rows # # table_id: #
> -master-bin.000001 # Write_rows # # table_id: #
> master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
> master-bin.000001 # Query # # COMMIT
> master-bin.000001 # Query # # use `test`; TRUNCATE t1n
> @@ -80,7 +79,6 @@ master-bin.000001 # Write_rows # # table
> master-bin.000001 # Query # # BEGIN
> master-bin.000001 # Table_map # # table_id: # (test.t1n)
> master-bin.000001 # Table_map # # table_id: # (mysql.ndb_apply_status)
> -master-bin.000001 # Write_rows # # table_id: #
> master-bin.000001 # Write_rows # # table_id: #
> master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
> master-bin.000001 # Query # # COMMIT
> diff -Nrup a/mysql-test/r/ndb_binlog_multi.result
> b/mysql-test/r/ndb_binlog_multi.result
> --- a/mysql-test/r/ndb_binlog_multi.result 2007-04-18 22:02:18 +08:00
> +++ b/mysql-test/r/ndb_binlog_multi.result 2007-07-11 15:47:07 +08:00
> @@ -13,7 +13,6 @@ master-bin1.000001 # Query 102 # BEGIN
> master-bin1.000001 # Table_map 102 # table_id: # (test.t2)
> master-bin1.000001 # Table_map 102 # table_id: # (mysql.ndb_apply_status)
> master-bin1.000001 # Write_rows 102 # table_id: #
> -master-bin1.000001 # Write_rows 102 # table_id: #
> master-bin1.000001 # Write_rows 102 # table_id: # flags: STMT_END_F
> master-bin1.000001 # Query 102 # COMMIT
> select * from t2 order by a;
> @@ -36,7 +35,6 @@ master-bin.000001 # Query 1 # BEGIN
> master-bin.000001 # Table_map 1 # table_id: # (test.t2)
> master-bin.000001 # Table_map 1 # table_id: # (mysql.ndb_apply_status)
> master-bin.000001 # Write_rows 1 # table_id: #
> -master-bin.000001 # Write_rows 1 # table_id: #
> master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
> master-bin.000001 # Query 1 # COMMIT
> master-bin.000001 # Query 1 # use `test`; DROP TABLE t2
> @@ -55,7 +53,6 @@ master-bin1.000001 # Query 102 # BEGIN
> master-bin1.000001 # Table_map 102 # table_id: # (test.t1)
> master-bin1.000001 # Table_map 102 # table_id: # (mysql.ndb_apply_status)
> master-bin1.000001 # Write_rows 102 # table_id: #
> -master-bin1.000001 # Write_rows 102 # table_id: #
> master-bin1.000001 # Write_rows 102 # table_id: # flags: STMT_END_F
> master-bin1.000001 # Query 102 # COMMIT
> SELECT @the_epoch2:=epoch,inserts,updates,deletes,schemaops FROM
> @@ -73,7 +70,6 @@ master-bin1.000001 # Query 102 # use `te
> master-bin1.000001 # Query 102 # BEGIN
> master-bin1.000001 # Table_map 102 # table_id: # (test.t1)
> master-bin1.000001 # Table_map 102 # table_id: # (mysql.ndb_apply_status)
> -master-bin1.000001 # Write_rows 102 # table_id: #
> master-bin1.000001 # Write_rows 102 # table_id: #
> master-bin1.000001 # Write_rows 102 # table_id: # flags: STMT_END_F
> master-bin1.000001 # Query 102 # COMMIT
> diff -Nrup a/mysql-test/r/rpl_ndb_dd_partitions.result
> b/mysql-test/r/rpl_ndb_dd_partitions.result
> --- a/mysql-test/r/rpl_ndb_dd_partitions.result 2006-06-28 00:43:57 +08:00
> +++ b/mysql-test/r/rpl_ndb_dd_partitions.result 2007-07-11 15:47:07 +08:00
> @@ -52,7 +52,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY
> RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1
> VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE =
> ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES
> LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE =
> ndbcluster)
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE =
> ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES
> LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE =
> ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES
> LESS THAN MAXVALUE ENGINE = ndbcluster) */
> --- Show table on slave --
> SHOW CREATE TABLE t1;
> Table Create Table
> @@ -66,7 +66,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY
> RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1
> VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE =
> ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES
> LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE =
> ndbcluster)
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE =
> ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES
> LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE =
> ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES
> LESS THAN MAXVALUE ENGINE = ndbcluster) */
> --- Perform basic operation on master ---
> --- and ensure replicated correctly ---
> "--- Insert into t1 --" as "";
> @@ -122,7 +122,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION
> p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946)
> ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION
> p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005)
> ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster)
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE =
> ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES
> LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE =
> ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES
> LESS THAN MAXVALUE ENGINE = ndbcluster) */
> --- Make sure that our tables on slave are still same engine ---
> --- and that the alter statements replicated correctly ---
> SHOW CREATE TABLE t1;
> @@ -137,7 +137,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION
> p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946)
> ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION
> p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005)
> ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster)
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE =
> ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES
> LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE =
> ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES
> LESS THAN MAXVALUE ENGINE = ndbcluster) */
> --- Perform basic operation on master ---
> --- and ensure replicated correctly ---
> "--- Insert into t1 --" as "";
> @@ -207,7 +207,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0
> VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster,
> PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster,
> PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE =
> ndbcluster) */
> --- Show table on slave ---
> SHOW CREATE TABLE t1;
> Table Create Table
> @@ -221,7 +221,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0
> VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster,
> PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster,
> PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE =
> ndbcluster) */
> --- Perform basic operation on master ---
> --- and ensure replicated correctly ---
> "--- Insert into t1 --" as "";
> @@ -277,7 +277,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0
> VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster,
> PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster,
> PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE =
> ndbcluster) */
> --- Make sure that our tables on slave are still same engine ---
> --- and that the alter statements replicated correctly ---
> SHOW CREATE TABLE t1;
> @@ -292,7 +292,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0
> VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster,
> PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster,
> PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE =
> ndbcluster) */
> --- Perform basic operation on master ---
> --- and ensure replicated correctly ---
> "--- Insert into t1 --" as "";
> @@ -359,7 +359,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY
> HASH ( YEAR(t)) PARTITIONS 4
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
> SHOW CREATE TABLE t1;
> Table Create Table
> t1 CREATE TABLE `t1` (
> @@ -372,7 +372,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY
> HASH ( YEAR(t)) PARTITIONS 4
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
> --- Perform basic operation on master ---
> --- and ensure replicated correctly ---
> "--- Insert into t1 --" as "";
> @@ -397,11 +397,11 @@ UPDATE t1 SET b1 = 0, t="2006-02-22" WHE
> --- Check the update on master ---
> SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
> id hex(b1) vc bc d f total y t
> -412 1 Testing MySQL databases is a cool Must make it bug free for the
> customer 654321.4321 15.21 0 1965 2006-02-22
> +412 0 Testing MySQL databases is a cool Must make it bug free for the
> customer 654321.4321 15.21 0 1965 2006-02-22
> --- Check Update on slave ---
> SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
> id hex(b1) vc bc d f total y t
> -412 1 Testing MySQL databases is a cool Must make it bug free for the
> customer 654321.4321 15.21 0 1965 2006-02-22
> +412 0 Testing MySQL databases is a cool Must make it bug free for the
> customer 654321.4321 15.21 0 1965 2006-02-22
> --- Remove a record from t1 on master ---
> DELETE FROM t1 WHERE id = 42;
> --- Show current count on master for t1 ---
> @@ -428,7 +428,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
>
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
> --- Make sure that our tables on slave are still same engine ---
> --- and that the alter statements replicated correctly ---
> SHOW CREATE TABLE t1;
> @@ -443,7 +443,7 @@ t1 CREATE TABLE `t1` (
> `total` bigint(20) unsigned DEFAULT NULL,
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
>
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
> --- Perform basic operation on master ---
> --- and ensure replicated correctly ---
> "--- Insert into t1 --" as "";
> @@ -468,11 +468,11 @@ UPDATE t1 SET b1 = 0, t="2006-02-22" WHE
> --- Check the update on master ---
> SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
> id hex(b1) vc bc d f total y t
> -412 1 Testing MySQL databases is a cool Must make it bug free for the
> customer 654321.4321 15.21 0 1965 2006-02-22
> +412 0 Testing MySQL databases is a cool Must make it bug free for the
> customer 654321.4321 15.21 0 1965 2006-02-22
> --- Check Update on slave ---
> SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
> id hex(b1) vc bc d f total y t
> -412 1 Testing MySQL databases is a cool Must make it bug free for the
> customer 654321.4321 15.21 0 1965 2006-02-22
> +412 0 Testing MySQL databases is a cool Must make it bug free for the
> customer 654321.4321 15.21 0 1965 2006-02-22
> --- Remove a record from t1 on master ---
> DELETE FROM t1 WHERE id = 42;
> --- Show current count on master for t1 ---
> @@ -511,7 +511,7 @@ t1 CREATE TABLE `t1` (
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL,
> PRIMARY KEY (`id`)
> -) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY
> KEY () PARTITIONS 4
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY KEY () PARTITIONS 4 */
> --- Show that tables on slave ---
> SHOW CREATE TABLE t1;
> Table Create Table
> @@ -526,7 +526,7 @@ t1 CREATE TABLE `t1` (
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL,
> PRIMARY KEY (`id`)
> -) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY
> KEY () PARTITIONS 4
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY KEY () PARTITIONS 4 */
> --- Perform basic operation on master ---
> --- and ensure replicated correctly ---
> "--- Insert into t1 --" as "";
> @@ -583,7 +583,7 @@ t1 CREATE TABLE `t1` (
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL,
> PRIMARY KEY (`id`,`total`)
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY KEY () PARTITIONS 4 */
> --- Make sure that our tables on slave are still right type ---
> --- and that the alter statements replicated correctly ---
> SHOW CREATE TABLE t1;
> @@ -599,7 +599,7 @@ t1 CREATE TABLE `t1` (
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL,
> PRIMARY KEY (`id`,`total`)
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY KEY () PARTITIONS 4 */
> --- Perform basic operation on master ---
> --- and ensure replicated correctly ---
> "--- Insert into t1 --" as "";
> @@ -656,7 +656,7 @@ t1 CREATE TABLE `t1` (
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL,
> PRIMARY KEY (`id`,`total`)
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY KEY () PARTITIONS 4 */
> --- Make sure that our tables on slave are still same engine ---
> --- and that the alter statements replicated correctly ---
> SHOW CREATE TABLE t1;
> @@ -672,7 +672,7 @@ t1 CREATE TABLE `t1` (
> `y` year(4) DEFAULT NULL,
> `t` date DEFAULT NULL,
> PRIMARY KEY (`id`,`total`)
> -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
> +) /*!50100 TABLESPACE ts1 STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
> /*!50100 PARTITION BY KEY () PARTITIONS 4 */
> --- Perform basic operation on master ---
> --- and ensure replicated correctly ---
> "--- Insert into t1 --" as "";
> diff -Nrup a/mysql-test/r/rpl_ndb_log.result b/mysql-test/r/rpl_ndb_log.result
> --- a/mysql-test/r/rpl_ndb_log.result 2007-06-12 04:15:20 +08:00
> +++ b/mysql-test/r/rpl_ndb_log.result 2007-07-11 15:47:07 +08:00
> @@ -32,7 +32,6 @@ master-bin.000001 # Query 1 # BEGIN
> master-bin.000001 # Table_map 1 # table_id: # (test.t1)
> master-bin.000001 # Table_map 1 # table_id: # (mysql.ndb_apply_status)
> master-bin.000001 # Write_rows 1 # table_id: #
> -master-bin.000001 # Write_rows 1 # table_id: #
> master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
> master-bin.000001 # Query 1 # COMMIT
> show binlog events from 106 limit 1;
> @@ -71,7 +70,6 @@ master-bin.000001 # Query # # BEGIN
> master-bin.000001 # Table_map # # table_id: # (test.t1)
> master-bin.000001 # Table_map # # table_id: # (mysql.ndb_apply_status)
> master-bin.000001 # Write_rows # # table_id: #
> -master-bin.000001 # Write_rows # # table_id: #
> master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
> master-bin.000001 # Query # # COMMIT
> master-bin.000001 # Rotate # # master-bin.000002;pos=4
> @@ -88,12 +86,12 @@ master-bin.000002 # Write_rows 1 # table
> master-bin.000002 # Query 1 # COMMIT
> show binary logs;
> Log_name File_size
> -master-bin.000001 1775
> +master-bin.000001 1746
> master-bin.000002 617
> start slave;
> show binary logs;
> Log_name File_size
> -slave-bin.000001 1870
> +slave-bin.000001 1841
> slave-bin.000002 202
> show binlog events in 'slave-bin.000001' from 4;
> Log_name Pos Event_type Server_id End_log_pos Info
> @@ -111,7 +109,6 @@ slave-bin.000001 # Query 2 # BEGIN
> slave-bin.000001 # Table_map 2 # table_id: # (test.t1)
> slave-bin.000001 # Table_map 2 # table_id: # (mysql.ndb_apply_status)
> slave-bin.000001 # Write_rows 2 # table_id: #
> -slave-bin.000001 # Write_rows 1 # table_id: #
> slave-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
> slave-bin.000001 # Query 2 # COMMIT
> slave-bin.000001 # Query 1 # use `test`; create table t3 (a int)ENGINE=NDB
> diff -Nrup a/mysql-test/r/rpl_truncate_7ndb.result
> b/mysql-test/r/rpl_truncate_7ndb.result
> --- a/mysql-test/r/rpl_truncate_7ndb.result 2007-03-30 10:44:45 +08:00
> +++ b/mysql-test/r/rpl_truncate_7ndb.result 2007-07-11 15:47:07 +08:00
> @@ -35,11 +35,10 @@ master-bin.000001 223 Query 1 287 BEGIN
> master-bin.000001 287 Table_map 1 40 table_id: # (test.t1)
> master-bin.000001 327 Table_map 1 98 table_id: # (mysql.ndb_apply_status)
> master-bin.000001 385 Write_rows 1 157 table_id: #
> -master-bin.000001 444 Write_rows 1 195 table_id: #
> -master-bin.000001 482 Write_rows 1 233 table_id: # flags: STMT_END_F
> -master-bin.000001 520 Query 1 585 COMMIT
> -master-bin.000001 585 Query 1 665 use `test`; TRUNCATE TABLE t1
> -master-bin.000001 665 Query 1 741 use `test`; DROP TABLE t1
> +master-bin.000001 444 Write_rows 1 204 table_id: # flags: STMT_END_F
> +master-bin.000001 491 Query 1 556 COMMIT
> +master-bin.000001 556 Query 1 636 use `test`; TRUNCATE TABLE t1
> +master-bin.000001 636 Query 1 712 use `test`; DROP TABLE t1
> **** On Master ****
> CREATE TABLE t1 (a INT PRIMARY KEY, b LONG) ENGINE=NDB;
> INSERT INTO t1 VALUES (1,1), (2,2);
> @@ -72,24 +71,21 @@ master-bin.000001 223 Query 1 287 BEGIN
> master-bin.000001 287 Table_map 1 40 table_id: # (test.t1)
> master-bin.000001 327 Table_map 1 98 table_id: # (mysql.ndb_apply_status)
> master-bin.000001 385 Write_rows 1 157 table_id: #
> -master-bin.000001 444 Write_rows 1 195 table_id: #
> -master-bin.000001 482 Write_rows 1 233 table_id: # flags: STMT_END_F
> -master-bin.000001 520 Query 1 585 COMMIT
> -master-bin.000001 585 Query 1 665 use `test`; TRUNCATE TABLE t1
> -master-bin.000001 665 Query 1 741 use `test`; DROP TABLE t1
> -master-bin.000001 741 Query 1 858 use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b
> LONG) ENGINE=NDB
> -master-bin.000001 858 Query 1 922 BEGIN
> -master-bin.000001 922 Table_map 1 40 table_id: # (test.t1)
> -master-bin.000001 962 Table_map 1 98 table_id: # (mysql.ndb_apply_status)
> -master-bin.000001 1020 Write_rows 1 157 table_id: #
> -master-bin.000001 1079 Write_rows 1 195 table_id: #
> -master-bin.000001 1117 Write_rows 1 233 table_id: # flags: STMT_END_F
> -master-bin.000001 1155 Query 1 1220 COMMIT
> -master-bin.000001 1220 Query 1 1284 BEGIN
> -master-bin.000001 1284 Table_map 1 40 table_id: # (test.t1)
> -master-bin.000001 1324 Table_map 1 98 table_id: # (mysql.ndb_apply_status)
> -master-bin.000001 1382 Write_rows 1 157 table_id: #
> -master-bin.000001 1441 Delete_rows 1 191 table_id: #
> -master-bin.000001 1475 Delete_rows 1 225 table_id: # flags: STMT_END_F
> -master-bin.000001 1509 Query 1 1574 COMMIT
> -master-bin.000001 1574 Query 1 1650 use `test`; DROP TABLE t1
> +master-bin.000001 444 Write_rows 1 204 table_id: # flags: STMT_END_F
> +master-bin.000001 491 Query 1 556 COMMIT
> +master-bin.000001 556 Query 1 636 use `test`; TRUNCATE TABLE t1
> +master-bin.000001 636 Query 1 712 use `test`; DROP TABLE t1
> +master-bin.000001 712 Query 1 829 use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b
> LONG) ENGINE=NDB
> +master-bin.000001 829 Query 1 893 BEGIN
> +master-bin.000001 893 Table_map 1 40 table_id: # (test.t1)
> +master-bin.000001 933 Table_map 1 98 table_id: # (mysql.ndb_apply_status)
> +master-bin.000001 991 Write_rows 1 157 table_id: #
> +master-bin.000001 1050 Write_rows 1 204 table_id: # flags: STMT_END_F
> +master-bin.000001 1097 Query 1 1162 COMMIT
> +master-bin.000001 1162 Query 1 1226 BEGIN
> +master-bin.000001 1226 Table_map 1 40 table_id: # (test.t1)
> +master-bin.000001 1266 Table_map 1 98 table_id: # (mysql.ndb_apply_status)
> +master-bin.000001 1324 Write_rows 1 157 table_id: #
> +master-bin.000001 1383 Delete_rows 1 196 table_id: # flags: STMT_END_F
> +master-bin.000001 1422 Query 1 1487 COMMIT
> +master-bin.000001 1487 Query 1 1563 use `test`; DROP TABLE t1
> diff -Nrup a/mysql-test/r/rpl_truncate_7ndb_2.result
> b/mysql-test/r/rpl_truncate_7ndb_2.result
> --- a/mysql-test/r/rpl_truncate_7ndb_2.result 2006-11-22 04:32:50 +08:00
> +++ b/mysql-test/r/rpl_truncate_7ndb_2.result 2007-07-11 15:47:07 +08:00
> @@ -29,16 +29,16 @@ a b
> DROP TABLE t1;
> SHOW BINLOG EVENTS;
> Log_name Pos Event_type Server_id End_log_pos Info
> -master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
> -master-bin.000001 102 Query 1 219 use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b
> LONG) ENGINE=NDB
> -master-bin.000001 219 Query 1 283 BEGIN
> -master-bin.000001 283 Table_map 1 40 table_id: # (test.t1)
> -master-bin.000001 323 Table_map 1 93 table_id: # (mysql.apply_status)
> -master-bin.000001 376 Write_rows 1 135 table_id: #
> -master-bin.000001 418 Write_rows 1 182 table_id: # flags: STMT_END_F
> -master-bin.000001 465 Query 1 530 COMMIT
> -master-bin.000001 530 Query 1 610 use `test`; TRUNCATE TABLE t1
> -master-bin.000001 610 Query 1 686 use `test`; DROP TABLE t1
> +master-bin.000001 4 Format_desc 1 106 Server ver: SERVER_VERSION, Binlog ver: 4
> +master-bin.000001 106 Query 1 223 use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b
> LONG) ENGINE=NDB
> +master-bin.000001 223 Query 1 287 BEGIN
> +master-bin.000001 287 Table_map 1 40 table_id: # (test.t1)
> +master-bin.000001 327 Table_map 1 98 table_id: # (mysql.ndb_apply_status)
> +master-bin.000001 385 Write_rows 1 157 table_id: #
> +master-bin.000001 444 Write_rows 1 204 table_id: # flags: STMT_END_F
> +master-bin.000001 491 Query 1 556 COMMIT
> +master-bin.000001 556 Query 1 636 use `test`; TRUNCATE TABLE t1
> +master-bin.000001 636 Query 1 712 use `test`; DROP TABLE t1
> **** On Master ****
> CREATE TABLE t1 (a INT PRIMARY KEY, b LONG) ENGINE=NDB;
> INSERT INTO t1 VALUES (1,1), (2,2);
> @@ -65,27 +65,27 @@ a b
> DROP TABLE t1;
> SHOW BINLOG EVENTS;
> Log_name Pos Event_type Server_id End_log_pos Info
> -master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
> -master-bin.000001 102 Query 1 219 use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b
> LONG) ENGINE=NDB
> -master-bin.000001 219 Query 1 283 BEGIN
> -master-bin.000001 283 Table_map 1 40 table_id: # (test.t1)
> -master-bin.000001 323 Table_map 1 93 table_id: # (mysql.apply_status)
> -master-bin.000001 376 Write_rows 1 135 table_id: #
> -master-bin.000001 418 Write_rows 1 182 table_id: # flags: STMT_END_F
> -master-bin.000001 465 Query 1 530 COMMIT
> -master-bin.000001 530 Query 1 610 use `test`; TRUNCATE TABLE t1
> -master-bin.000001 610 Query 1 686 use `test`; DROP TABLE t1
> -master-bin.000001 686 Query 1 803 use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b
> LONG) ENGINE=NDB
> -master-bin.000001 803 Query 1 867 BEGIN
> -master-bin.000001 867 Table_map 1 40 table_id: # (test.t1)
> -master-bin.000001 907 Table_map 1 93 table_id: # (mysql.apply_status)
> -master-bin.000001 960 Write_rows 1 135 table_id: #
> -master-bin.000001 1002 Write_rows 1 182 table_id: # flags: STMT_END_F
> -master-bin.000001 1049 Query 1 1114 COMMIT
> -master-bin.000001 1114 Query 1 1178 BEGIN
> -master-bin.000001 1178 Table_map 1 40 table_id: # (test.t1)
> -master-bin.000001 1218 Table_map 1 93 table_id: # (mysql.apply_status)
> -master-bin.000001 1271 Write_rows 1 135 table_id: #
> -master-bin.000001 1313 Delete_rows 1 174 table_id: # flags: STMT_END_F
> -master-bin.000001 1352 Query 1 1417 COMMIT
> -master-bin.000001 1417 Query 1 1493 use `test`; DROP TABLE t1
> +master-bin.000001 4 Format_desc 1 106 Server ver: SERVER_VERSION, Binlog ver: 4
> +master-bin.000001 106 Query 1 223 use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b
> LONG) ENGINE=NDB
> +master-bin.000001 223 Query 1 287 BEGIN
> +master-bin.000001 287 Table_map 1 40 table_id: # (test.t1)
> +master-bin.000001 327 Table_map 1 98 table_id: # (mysql.ndb_apply_status)
> +master-bin.000001 385 Write_rows 1 157 table_id: #
> +master-bin.000001 444 Write_rows 1 204 table_id: # flags: STMT_END_F
> +master-bin.000001 491 Query 1 556 COMMIT
> +master-bin.000001 556 Query 1 636 use `test`; TRUNCATE TABLE t1
> +master-bin.000001 636 Query 1 712 use `test`; DROP TABLE t1
> +master-bin.000001 712 Query 1 829 use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b
> LONG) ENGINE=NDB
> +master-bin.000001 829 Query 1 893 BEGIN
> +master-bin.000001 893 Table_map 1 40 table_id: # (test.t1)
> +master-bin.000001 933 Table_map 1 98 table_id: # (mysql.ndb_apply_status)
> +master-bin.000001 991 Write_rows 1 157 table_id: #
> +master-bin.000001 1050 Write_rows 1 204 table_id: # flags: STMT_END_F
> +master-bin.000001 1097 Query 1 1162 COMMIT
> +master-bin.000001 1162 Query 1 1226 BEGIN
> +master-bin.000001 1226 Table_map 1 40 table_id: # (test.t1)
> +master-bin.000001 1266 Table_map 1 98 table_id: # (mysql.ndb_apply_status)
> +master-bin.000001 1324 Write_rows 1 157 table_id: #
> +master-bin.000001 1383 Delete_rows 1 196 table_id: # flags: STMT_END_F
> +master-bin.000001 1422 Query 1 1487 COMMIT
> +master-bin.000001 1487 Query 1 1563 use `test`; DROP TABLE t1
> diff -Nrup a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def
> --- a/mysql-test/t/disabled.def 2007-07-04 20:06:21 +08:00
> +++ b/mysql-test/t/disabled.def 2007-07-11 15:47:07 +08:00
> @@ -28,7 +28,6 @@ partition_03ndb : BUG#16385 200
> rpl_ndb_circular_simplex : BUG#27972 2007-04-20 mats Slave cannot start where it
> stopped
> rpl_ndb_2innodb : BUG#19227 2006-04-20 pekka pk delete apparently not
> replicated
> rpl_ndb_2myisam : BUG#19227 Seems to pass currently
> -rpl_ndb_dd_partitions : BUG#19259 2006-04-21 rpl_ndb_dd_partitions fails on
> s/AMD
> rpl_ddl : BUG#26418 2007-03-01 mleich Slave out of sync after
> CREATE/DROP TEMPORARY TABLE + ROLLBACK on master
> rpl_ndb_innodb2ndb : Bug #19710 Cluster replication to partition table fails
> on DELETE FROM statement
> rpl_ndb_myisam2ndb : Bug #19710 Cluster replication to partition table fails
> on DELETE FROM statement
> diff -Nrup a/mysql-test/t/rpl_ndb_dd_partitions-master.opt
> b/mysql-test/t/rpl_ndb_dd_partitions-master.opt
> --- /dev/null Wed Dec 31 16:00:00 196900
> +++ b/mysql-test/t/rpl_ndb_dd_partitions-master.opt 2007-07-11 15:47:07 +08:00
> @@ -0,0 +1 @@
> +--new=true
> diff -Nrup a/mysql-test/t/rpl_ndb_dd_partitions-slave.opt
> b/mysql-test/t/rpl_ndb_dd_partitions-slave.opt
> --- /dev/null Wed Dec 31 16:00:00 196900
> +++ b/mysql-test/t/rpl_ndb_dd_partitions-slave.opt 2007-07-11 15:47:07 +08:00
> @@ -0,0 +1 @@
> +--new=true
> diff -Nrup a/sql/log_event.cc b/sql/log_event.cc
> --- a/sql/log_event.cc 2007-06-28 21:07:53 +08:00
> +++ b/sql/log_event.cc 2007-07-11 15:47:07 +08:00
> @@ -5653,12 +5653,15 @@ Rows_log_event::Rows_log_event(THD *thd_
> /* if bitmap_init fails, catched in is_valid() */
> if (likely(!bitmap_init(&m_cols,
> m_width <= sizeof(m_bitbuf)*8 ? m_bitbuf : NULL,
> - (m_width + 7) & ~7UL,
> + m_width,
> false)))
> {
> /* Cols can be zero if this is a dummy binrows event */
> if (likely(cols != NULL))
> + {
> memcpy(m_cols.bitmap, cols->bitmap, no_bytes_in_map(cols));
> + create_last_word_mask(&m_cols);
> + }
> }
> else
> {
> @@ -5711,11 +5714,12 @@ Rows_log_event::Rows_log_event(const cha
> /* if bitmap_init fails, catched in is_valid() */
> if (likely(!bitmap_init(&m_cols,
> m_width <= sizeof(m_bitbuf)*8 ? m_bitbuf : NULL,
> - (m_width + 7) & ~7UL,
> + m_width,
> false)))
> {
> DBUG_PRINT("debug", ("Reading from %p", ptr_after_width));
> memcpy(m_cols.bitmap, ptr_after_width, (m_width + 7) / 8);
> + create_last_word_mask(&m_cols);
> ptr_after_width+= (m_width + 7) / 8;
> DBUG_DUMP("m_cols", (uchar*) m_cols.bitmap, no_bytes_in_map(&m_cols));
> }
> @@ -5735,11 +5739,12 @@ Rows_log_event::Rows_log_event(const cha
> /* if bitmap_init fails, catched in is_valid() */
> if (likely(!bitmap_init(&m_cols_ai,
> m_width <= sizeof(m_bitbuf_ai)*8 ? m_bitbuf_ai :
> NULL,
> - (m_width + 7) & ~7UL,
> + m_width,
> false)))
> {
> DBUG_PRINT("debug", ("Reading from %p", ptr_after_width));
> memcpy(m_cols_ai.bitmap, ptr_after_width, (m_width + 7) / 8);
> + create_last_word_mask(&m_cols_ai);
> ptr_after_width+= (m_width + 7) / 8;
> DBUG_DUMP("m_cols_ai", (uchar*) m_cols_ai.bitmap,
> no_bytes_in_map(&m_cols_ai));
> @@ -7685,12 +7690,15 @@ void Update_rows_log_event::init(MY_BITM
> /* if bitmap_init fails, catched in is_valid() */
> if (likely(!bitmap_init(&m_cols_ai,
> m_width <= sizeof(m_bitbuf_ai)*8 ? m_bitbuf_ai : NULL,
> - (m_width + 7) & ~7UL,
> + m_width,
> false)))
> {
> /* Cols can be zero if this is a dummy binrows event */
> if (likely(cols != NULL))
> + {
> memcpy(m_cols_ai.bitmap, cols->bitmap, no_bytes_in_map(cols));
> + create_last_word_mask(&m_cols_ai);
> + }
> }
> }
> #endif /* !defined(MYSQL_CLIENT) */