
#
# BUG#52868: Wrong handling of NULL value during update, replication out of sync
#
-- echo ## case #1 - last_null_bit_pos==0 in record_compare without X bit

-- source include/rpl_reset.inc
-- connection master

-- eval CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 varchar(1) DEFAULT '', c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0, c8 bigint(20) DEFAULT 0) ENGINE=$engine DEFAULT CHARSET=latin1

INSERT INTO t1 ( c5, c6 ) VALUES ( 1   , 35 );
INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 );
-- disable_warnings
UPDATE IGNORE t1 SET c5 = 'a';
-- enable_warnings
-- source include/sync_slave_sql_with_master.inc

-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc

--connection master
DROP TABLE t1;
-- source include/sync_slave_sql_with_master.inc

-- echo ## case #1.1 - last_null_bit_pos==0 in record_compare with X bit
-- echo ##             (1 column less and no varchar)
-- source include/rpl_reset.inc
-- connection master

-- eval CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 bigint(20) DEFAULT 0, c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0) ENGINE=$engine DEFAULT CHARSET=latin1

INSERT INTO t1 ( c5, c6 ) VALUES ( 1   , 35 );
INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 );
-- disable_warnings
UPDATE IGNORE t1 SET c5 = 'a';
-- enable_warnings
-- source include/sync_slave_sql_with_master.inc

-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc

--connection master
DROP TABLE t1;
-- source include/sync_slave_sql_with_master.inc

-- echo ## case #2 - X bit is wrongly set.

-- source include/rpl_reset.inc
-- connection master

-- eval CREATE TABLE t1 (c1 int, c2 varchar(1) default '') ENGINE=$engine DEFAULT CHARSET= latin1
INSERT INTO t1(c1) VALUES (10);
INSERT INTO t1(c1) VALUES (NULL);
UPDATE t1 SET c1= 0;
-- source include/sync_slave_sql_with_master.inc

-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc

-- connection master
DROP TABLE t1; 
-- source include/sync_slave_sql_with_master.inc

