Loading mysql-test/r/odbc.result +11 −0 Original line number Diff line number Diff line Loading @@ -14,3 +14,14 @@ explain select * from t1 where b is null; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables drop table t1; CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY); INSERT INTO t1 VALUES (NULL); SELECT sql_no_cache a, last_insert_id() FROM t1 WHERE a IS NULL; a last_insert_id() 1 1 SELECT sql_no_cache a, last_insert_id() FROM t1 WHERE a IS NULL; a last_insert_id() SELECT sql_no_cache a, last_insert_id() FROM t1; a last_insert_id() 1 1 DROP TABLE t1; mysql-test/r/rpl_insert_id.result +14 −0 Original line number Diff line number Diff line Loading @@ -73,3 +73,17 @@ CREATE TABLE t1 ( a INT UNIQUE ); SET FOREIGN_KEY_CHECKS=0; INSERT INTO t1 VALUES (1),(1); ERROR 23000: Duplicate entry '1' for key 1 drop table t1; create table t1(a int auto_increment, key(a)); create table t2(a int); insert into t1 (a) values (null); insert into t2 (a) select a from t1 where a is null; insert into t2 (a) select a from t1 where a is null; select * from t2; a 1 select * from t2; a 1 drop table t1; drop table t2; mysql-test/t/odbc.test +10 −0 Original line number Diff line number Diff line Loading @@ -21,4 +21,14 @@ select * from t1 where a is null; explain select * from t1 where b is null; drop table t1; # # Bug #14553: NULL in WHERE resets LAST_INSERT_ID # CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY); INSERT INTO t1 VALUES (NULL); SELECT sql_no_cache a, last_insert_id() FROM t1 WHERE a IS NULL; SELECT sql_no_cache a, last_insert_id() FROM t1 WHERE a IS NULL; SELECT sql_no_cache a, last_insert_id() FROM t1; DROP TABLE t1; # End of 4.1 tests mysql-test/t/rpl_insert_id.test +19 −1 Original line number Diff line number Diff line Loading @@ -74,4 +74,22 @@ SET FOREIGN_KEY_CHECKS=0; INSERT INTO t1 VALUES (1),(1); sync_slave_with_master; # # Bug#14553: NULL in WHERE resets LAST_INSERT_ID # connection master; drop table t1; create table t1(a int auto_increment, key(a)); create table t2(a int); insert into t1 (a) values (null); insert into t2 (a) select a from t1 where a is null; insert into t2 (a) select a from t1 where a is null; select * from t2; sync_slave_with_master; connection slave; select * from t2; connection master; drop table t1; drop table t2; sync_slave_with_master; # End of 4.1 tests sql/sql_class.cc +1 −0 Original line number Diff line number Diff line Loading @@ -265,6 +265,7 @@ THD::THD() ulong tmp=sql_rnd_with_mutex(); randominit(&rand, tmp + (ulong) &rand, tmp + (ulong) ::query_id); } substitute_null_with_insert_id = FALSE; } Loading Loading
mysql-test/r/odbc.result +11 −0 Original line number Diff line number Diff line Loading @@ -14,3 +14,14 @@ explain select * from t1 where b is null; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables drop table t1; CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY); INSERT INTO t1 VALUES (NULL); SELECT sql_no_cache a, last_insert_id() FROM t1 WHERE a IS NULL; a last_insert_id() 1 1 SELECT sql_no_cache a, last_insert_id() FROM t1 WHERE a IS NULL; a last_insert_id() SELECT sql_no_cache a, last_insert_id() FROM t1; a last_insert_id() 1 1 DROP TABLE t1;
mysql-test/r/rpl_insert_id.result +14 −0 Original line number Diff line number Diff line Loading @@ -73,3 +73,17 @@ CREATE TABLE t1 ( a INT UNIQUE ); SET FOREIGN_KEY_CHECKS=0; INSERT INTO t1 VALUES (1),(1); ERROR 23000: Duplicate entry '1' for key 1 drop table t1; create table t1(a int auto_increment, key(a)); create table t2(a int); insert into t1 (a) values (null); insert into t2 (a) select a from t1 where a is null; insert into t2 (a) select a from t1 where a is null; select * from t2; a 1 select * from t2; a 1 drop table t1; drop table t2;
mysql-test/t/odbc.test +10 −0 Original line number Diff line number Diff line Loading @@ -21,4 +21,14 @@ select * from t1 where a is null; explain select * from t1 where b is null; drop table t1; # # Bug #14553: NULL in WHERE resets LAST_INSERT_ID # CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY); INSERT INTO t1 VALUES (NULL); SELECT sql_no_cache a, last_insert_id() FROM t1 WHERE a IS NULL; SELECT sql_no_cache a, last_insert_id() FROM t1 WHERE a IS NULL; SELECT sql_no_cache a, last_insert_id() FROM t1; DROP TABLE t1; # End of 4.1 tests
mysql-test/t/rpl_insert_id.test +19 −1 Original line number Diff line number Diff line Loading @@ -74,4 +74,22 @@ SET FOREIGN_KEY_CHECKS=0; INSERT INTO t1 VALUES (1),(1); sync_slave_with_master; # # Bug#14553: NULL in WHERE resets LAST_INSERT_ID # connection master; drop table t1; create table t1(a int auto_increment, key(a)); create table t2(a int); insert into t1 (a) values (null); insert into t2 (a) select a from t1 where a is null; insert into t2 (a) select a from t1 where a is null; select * from t2; sync_slave_with_master; connection slave; select * from t2; connection master; drop table t1; drop table t2; sync_slave_with_master; # End of 4.1 tests
sql/sql_class.cc +1 −0 Original line number Diff line number Diff line Loading @@ -265,6 +265,7 @@ THD::THD() ulong tmp=sql_rnd_with_mutex(); randominit(&rand, tmp + (ulong) &rand, tmp + (ulong) ::query_id); } substitute_null_with_insert_id = FALSE; } Loading