Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
9c06883a
Commit
9c06883a
authored
Nov 15, 2007
by
gkodinov/kgeorge@magare.gmz
Browse files
Options
Browse Files
Download
Plain Diff
Merge magare.gmz:/home/kgeorge/mysql/work/B31928-5.0-opt
into magare.gmz:/home/kgeorge/mysql/work/B31928-5.1-opt
parents
3b38836e
767dca62
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
65 additions
and
4 deletions
+65
-4
mysql-test/r/type_date.result
mysql-test/r/type_date.result
+38
-0
mysql-test/t/type_date.test
mysql-test/t/type_date.test
+20
-0
sql/sql_select.h
sql/sql_select.h
+7
-4
No files found.
mysql-test/r/type_date.result
View file @
9c06883a
...
...
@@ -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
SET SQL_MODE=DEFAULT;
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
mysql-test/t/type_date.test
View file @
9c06883a
...
...
@@ -193,4 +193,24 @@ INSERT INTO t1 VALUES ('0000-00-00');
SET
SQL_MODE
=
DEFAULT
;
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
sql/sql_select.h
View file @
9c06883a
...
...
@@ -594,14 +594,17 @@ public:
enum
store_key_result
copy
()
{
enum
store_key_result
result
;
enum_check_fields
saved_count_cuted_fields
=
to_field
->
table
->
in_use
->
count_cuted_fields
;
THD
*
thd
=
to_field
->
table
->
in_use
;
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
);
t
o_field
->
table
->
in_use
->
count_cuted_fields
=
CHECK_FIELD_IGNORE
;
t
hd
->
count_cuted_fields
=
CHECK_FIELD_IGNORE
;
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
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment