mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge magare.gmz:/home/kgeorge/mysql/work/B31928-5.0-opt
into magare.gmz:/home/kgeorge/mysql/work/B31928-5.1-opt mysql-test/t/type_date.test: Auto merged sql/sql_select.h: Auto merged mysql-test/r/type_date.result: merge of bug 31928 to 5.1-opt
This commit is contained in:
@ -223,4 +223,42 @@ INSERT INTO t1 VALUES ('0000-00-00');
|
|||||||
ERROR 22007: Incorrect date value: '0000-00-00' for column 'a' at row 1
|
ERROR 22007: Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||||
SET SQL_MODE=DEFAULT;
|
SET SQL_MODE=DEFAULT;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
CREATE TABLE t1 (a DATE);
|
||||||
|
CREATE TABLE t2 (a DATE);
|
||||||
|
CREATE INDEX i ON t1 (a);
|
||||||
|
INSERT INTO t1 VALUES ('1000-00-00'),('1000-00-00');
|
||||||
|
INSERT INTO t2 VALUES ('1000-00-00'),('1000-00-00');
|
||||||
|
SELECT * FROM t1 WHERE a = '1000-00-00';
|
||||||
|
a
|
||||||
|
1000-00-00
|
||||||
|
1000-00-00
|
||||||
|
SELECT * FROM t2 WHERE a = '1000-00-00';
|
||||||
|
a
|
||||||
|
1000-00-00
|
||||||
|
1000-00-00
|
||||||
|
SET SQL_MODE=TRADITIONAL;
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a = '1000-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: '1000-00-00' for column 'a' at row 1
|
||||||
|
Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1
|
||||||
|
SELECT * FROM t1 WHERE a = '1000-00-00';
|
||||||
|
a
|
||||||
|
1000-00-00
|
||||||
|
1000-00-00
|
||||||
|
Warnings:
|
||||||
|
Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1
|
||||||
|
Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1
|
||||||
|
SELECT * FROM t2 WHERE a = '1000-00-00';
|
||||||
|
a
|
||||||
|
1000-00-00
|
||||||
|
1000-00-00
|
||||||
|
Warnings:
|
||||||
|
Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1
|
||||||
|
Warning 1292 Incorrect date value: '1000-00-00' for column 'a' at row 1
|
||||||
|
INSERT INTO t1 VALUES ('1000-00-00');
|
||||||
|
ERROR 22007: Incorrect date value: '1000-00-00' for column 'a' at row 1
|
||||||
|
SET SQL_MODE=DEFAULT;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -193,4 +193,24 @@ INSERT INTO t1 VALUES ('0000-00-00');
|
|||||||
SET SQL_MODE=DEFAULT;
|
SET SQL_MODE=DEFAULT;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #31928: Search fails on '1000-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 ('1000-00-00'),('1000-00-00');
|
||||||
|
INSERT INTO t2 VALUES ('1000-00-00'),('1000-00-00');
|
||||||
|
SELECT * FROM t1 WHERE a = '1000-00-00';
|
||||||
|
SELECT * FROM t2 WHERE a = '1000-00-00';
|
||||||
|
SET SQL_MODE=TRADITIONAL;
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a = '1000-00-00';
|
||||||
|
SELECT * FROM t1 WHERE a = '1000-00-00';
|
||||||
|
SELECT * FROM t2 WHERE a = '1000-00-00';
|
||||||
|
--error ER_TRUNCATED_WRONG_VALUE
|
||||||
|
INSERT INTO t1 VALUES ('1000-00-00');
|
||||||
|
SET SQL_MODE=DEFAULT;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -594,14 +594,17 @@ public:
|
|||||||
enum store_key_result copy()
|
enum store_key_result copy()
|
||||||
{
|
{
|
||||||
enum store_key_result result;
|
enum store_key_result result;
|
||||||
enum_check_fields saved_count_cuted_fields=
|
THD *thd= to_field->table->in_use;
|
||||||
to_field->table->in_use->count_cuted_fields;
|
enum_check_fields saved_count_cuted_fields= thd->count_cuted_fields;
|
||||||
|
ulong sql_mode= thd->variables.sql_mode;
|
||||||
|
thd->variables.sql_mode&= ~(MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE);
|
||||||
|
|
||||||
to_field->table->in_use->count_cuted_fields= CHECK_FIELD_IGNORE;
|
thd->count_cuted_fields= CHECK_FIELD_IGNORE;
|
||||||
|
|
||||||
result= copy_inner();
|
result= copy_inner();
|
||||||
|
|
||||||
to_field->table->in_use->count_cuted_fields= saved_count_cuted_fields;
|
thd->count_cuted_fields= saved_count_cuted_fields;
|
||||||
|
thd->variables.sql_mode= sql_mode;
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user