mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into magare.gmz:/home/kgeorge/mysql/autopush/B30825-5.1-opt
This commit is contained in:
@ -35,7 +35,6 @@ functions */
|
||||
#include <io.h>
|
||||
#include <malloc.h>
|
||||
|
||||
#define BIG_TABLES 1
|
||||
#define HAVE_SMEM 1
|
||||
|
||||
#if defined(_WIN64) || defined(WIN64)
|
||||
|
@ -184,4 +184,43 @@ EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a DATE);
|
||||
CREATE TABLE t2 (a DATE);
|
||||
CREATE INDEX i ON t1 (a);
|
||||
INSERT INTO t1 VALUES ('0000-00-00'),('0000-00-00');
|
||||
INSERT INTO t2 VALUES ('0000-00-00'),('0000-00-00');
|
||||
SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
SELECT * FROM t2 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
SET SQL_MODE=TRADITIONAL;
|
||||
EXPLAIN SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref i i 4 const 1 Using where; Using index
|
||||
Warnings:
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
Warnings:
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
SELECT * FROM t2 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
Warnings:
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
INSERT INTO t1 VALUES ('0000-00-00');
|
||||
ERROR 22007: Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
SET SQL_MODE=DEFAULT;
|
||||
DROP TABLE t1,t2;
|
||||
End of 5.0 tests
|
||||
|
@ -173,4 +173,24 @@ EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #28687: Search fails on '0000-00-00' date after sql_mode change
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a DATE);
|
||||
CREATE TABLE t2 (a DATE);
|
||||
CREATE INDEX i ON t1 (a);
|
||||
INSERT INTO t1 VALUES ('0000-00-00'),('0000-00-00');
|
||||
INSERT INTO t2 VALUES ('0000-00-00'),('0000-00-00');
|
||||
SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
SELECT * FROM t2 WHERE a = '0000-00-00';
|
||||
SET SQL_MODE=TRADITIONAL;
|
||||
EXPLAIN SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
SELECT * FROM t2 WHERE a = '0000-00-00';
|
||||
--error ER_TRUNCATED_WRONG_VALUE
|
||||
INSERT INTO t1 VALUES ('0000-00-00');
|
||||
SET SQL_MODE=DEFAULT;
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
@ -966,10 +966,13 @@ int Item::save_in_field_no_warnings(Field *field, bool no_conversions)
|
||||
THD *thd= table->in_use;
|
||||
enum_check_fields tmp= thd->count_cuted_fields;
|
||||
my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->write_set);
|
||||
ulong sql_mode= thd->variables.sql_mode;
|
||||
thd->variables.sql_mode&= ~(MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE);
|
||||
thd->count_cuted_fields= CHECK_FIELD_IGNORE;
|
||||
res= save_in_field(field, no_conversions);
|
||||
thd->count_cuted_fields= tmp;
|
||||
dbug_tmp_restore_column_map(table->write_set, old_map);
|
||||
thd->variables.sql_mode= sql_mode;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user