1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-16152 Expressions with INTERVAL return bad results in some cases

This commit is contained in:
Alexander Barkov
2018-05-14 11:36:22 +04:00
parent 1cb4caa66d
commit 4a5e23e257
6 changed files with 141 additions and 14 deletions

View File

@ -0,0 +1,31 @@
SET sql_mode=ORACLE;
#
# Start of 10.3 tests
#
#
# MDEV-16152 Expressions with INTERVAL return bad results in some cases
#
SELECT TIMESTAMP'2001-01-01 10:20:30' - INTERVAL '10' YEAR AS c1,
-INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c2;
c1 c2
1991-01-01 10:20:30 1991-01-01 10:20:30
SELECT TIMESTAMP'2001-01-01 10:20:30' + INTERVAL '10' YEAR AS c1,
INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c2,
+INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c3;
c1 c2 c3
2011-01-01 10:20:30 2011-01-01 10:20:30 2011-01-01 10:20:30
EXPLAIN EXTENDED SELECT
TIMESTAMP'2001-01-01 10:20:30' - INTERVAL '10' YEAR AS c1,
-INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c2;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1003 select TIMESTAMP'2001-01-01 10:20:30' - interval '10' year AS "c1",TIMESTAMP'2001-01-01 10:20:30' - interval '10' year AS "c2"
EXPLAIN EXTENDED SELECT
TIMESTAMP'2001-01-01 10:20:30' + INTERVAL '10' YEAR AS c1,
INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c2,
+INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c3;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1003 select TIMESTAMP'2001-01-01 10:20:30' + interval '10' year AS "c1",TIMESTAMP'2001-01-01 10:20:30' + interval '10' year AS "c2",TIMESTAMP'2001-01-01 10:20:30' + interval '10' year AS "c3"

View File

@ -0,0 +1,25 @@
SET sql_mode=ORACLE;
--echo #
--echo # Start of 10.3 tests
--echo #
--echo #
--echo # MDEV-16152 Expressions with INTERVAL return bad results in some cases
--echo #
SELECT TIMESTAMP'2001-01-01 10:20:30' - INTERVAL '10' YEAR AS c1,
-INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c2;
SELECT TIMESTAMP'2001-01-01 10:20:30' + INTERVAL '10' YEAR AS c1,
INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c2,
+INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c3;
EXPLAIN EXTENDED SELECT
TIMESTAMP'2001-01-01 10:20:30' - INTERVAL '10' YEAR AS c1,
-INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c2;
EXPLAIN EXTENDED SELECT
TIMESTAMP'2001-01-01 10:20:30' + INTERVAL '10' YEAR AS c1,
INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c2,
+INTERVAL '10' YEAR + TIMESTAMP'2001-01-01 10:20:30' AS c3;