Description:
My script:
----------
--source include/master-slave.inc
CREATE TABLE t1 ( f1 DECIMAL(10,0), pk INT , PRIMARY KEY (pk)) ENGINE = MyISAM;
let $my_value= 17313807292449161216;
eval SET @aux = $my_value;
INSERT INTO t1 ( f1 , pk ) VALUES ( @aux , 1 );
eval INSERT INTO t1 ( f1 , pk ) VALUES ( $my_value , 2 );
SELECT * FROM t1 ORDER BY pk;
sync_slave_with_master;
connection slave;
SELECT * FROM t1 ORDER BY pk;
The result when running with binlog_format STATEMENT OR MIXED:
--------------------------------------------------------------
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
CREATE TABLE t1 ( f1 DECIMAL(10,0), pk INT , PRIMARY KEY (pk)) ENGINE = MyISAM;
SET @aux = 17313807292449161216;
INSERT INTO t1 ( f1 , pk ) VALUES ( @aux , 1 );
Warnings:
Warning 1264 Out of range value for column 'f1' at row 1
INSERT INTO t1 ( f1 , pk ) VALUES ( 17313807292449161216 , 2 );
Warnings:
Warning 1264 Out of range value for column 'f1' at row 1
SELECT * FROM t1 ORDER BY pk;
f1 pk
9999999999 1
9999999999 2
SELECT * FROM t1 ORDER BY pk;
f1 pk
-9999999999 1 <================
9999999999 2
Observations:
-------------
1. The result is correct when using binlog_format ROW
2. The following source trees show the bug
mysql-5.1-bugteam revno: 3200 2009-11-13
mysql-5.1-rep+3 revno: 3124 2009-12-02
mysql-6.0-codebase-bugfixing revno: 3755 2009-12-04
3. This bug is not storage engine specific
An InnoDB table shows the same effect.
How to repeat:
See above
Description: My script: ---------- --source include/master-slave.inc CREATE TABLE t1 ( f1 DECIMAL(10,0), pk INT , PRIMARY KEY (pk)) ENGINE = MyISAM; let $my_value= 17313807292449161216; eval SET @aux = $my_value; INSERT INTO t1 ( f1 , pk ) VALUES ( @aux , 1 ); eval INSERT INTO t1 ( f1 , pk ) VALUES ( $my_value , 2 ); SELECT * FROM t1 ORDER BY pk; sync_slave_with_master; connection slave; SELECT * FROM t1 ORDER BY pk; The result when running with binlog_format STATEMENT OR MIXED: -------------------------------------------------------------- stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; CREATE TABLE t1 ( f1 DECIMAL(10,0), pk INT , PRIMARY KEY (pk)) ENGINE = MyISAM; SET @aux = 17313807292449161216; INSERT INTO t1 ( f1 , pk ) VALUES ( @aux , 1 ); Warnings: Warning 1264 Out of range value for column 'f1' at row 1 INSERT INTO t1 ( f1 , pk ) VALUES ( 17313807292449161216 , 2 ); Warnings: Warning 1264 Out of range value for column 'f1' at row 1 SELECT * FROM t1 ORDER BY pk; f1 pk 9999999999 1 9999999999 2 SELECT * FROM t1 ORDER BY pk; f1 pk -9999999999 1 <================ 9999999999 2 Observations: ------------- 1. The result is correct when using binlog_format ROW 2. The following source trees show the bug mysql-5.1-bugteam revno: 3200 2009-11-13 mysql-5.1-rep+3 revno: 3124 2009-12-02 mysql-6.0-codebase-bugfixing revno: 3755 2009-12-04 3. This bug is not storage engine specific An InnoDB table shows the same effect. How to repeat: See above