mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge branch '10.5' into 10.6
This commit is contained in:
@ -3565,51 +3565,48 @@ DROP VIEW v1;
|
||||
# On DATETIME-like literals with trailing garbage, BETWEEN fudged in a
|
||||
# DATETIME comparator, while greater/less-than used bin-string comparisons.
|
||||
# Should correctly be compared as DATE or DATETIME, but throw a warning:
|
||||
#enable after fix MDEV-27871
|
||||
--disable_view_protocol
|
||||
select str_to_date('2007-10-09','%Y-%m-%d') between '2007/10/01 00:00:00 GMT'
|
||||
and '2007/10/20 00:00:00 GMT';
|
||||
select str_to_date('2007-10-09','%Y-%m-%d') > '2007/10/01 00:00:00 GMT-6';
|
||||
select str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/20 00:00:00 GMT-6';
|
||||
select str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/2000:00:00 GMT-6';
|
||||
and '2007/10/20 00:00:00 GMT' as exp;
|
||||
select str_to_date('2007-10-09','%Y-%m-%d') > '2007/10/01 00:00:00 GMT-6' as exp;
|
||||
select str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/20 00:00:00 GMT-6' as exp;
|
||||
select str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/2000:00:00 GMT-6' as exp;
|
||||
|
||||
# We have all we need -- and trailing garbage:
|
||||
# (leaving out a leading zero in first example to prove it's a
|
||||
# value-comparison, not a string-comparison!)
|
||||
select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-1 00:00:00 GMT-6';
|
||||
select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 x00:00:00 GMT-6';
|
||||
select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 00:00:00 GMT-6';
|
||||
select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 00:x00:00 GMT-6';
|
||||
select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-1 00:00:00 GMT-6' as exp;
|
||||
select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 x00:00:00 GMT-6' as exp;
|
||||
select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 00:00:00 GMT-6' as exp;
|
||||
select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 00:x00:00 GMT-6' as exp;
|
||||
# no time at all:
|
||||
select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 x12:34:56 GMT-6';
|
||||
select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 x12:34:56 GMT-6' as exp;
|
||||
# partial time:
|
||||
select str_to_date('2007-10-01 12:34:00','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6';
|
||||
select str_to_date('2007-10-01 12:34:00','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6' as exp;
|
||||
# fail, different second part:
|
||||
select str_to_date('2007-10-01 12:34:56','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6';
|
||||
select str_to_date('2007-10-01 12:34:56','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6' as exp;
|
||||
# correct syntax, no trailing nonsense -- this one must throw no warning:
|
||||
select str_to_date('2007-10-01 12:34:56','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34:56';
|
||||
select str_to_date('2007-10-01 12:34:56','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34:56' as exp;
|
||||
# no warning, but failure (different hour parts):
|
||||
select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 12:00:00';
|
||||
select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 12:00:00' as exp;
|
||||
# succeed:
|
||||
select str_to_date('2007-10-01 12','%Y-%m-%d %H') = '2007-10-01 12:00:00';
|
||||
select str_to_date('2007-10-01 12','%Y-%m-%d %H') = '2007-10-01 12:00:00' as exp;
|
||||
# succeed, but warn for "trailing garbage" (":34"):
|
||||
select str_to_date('2007-10-01 12:34','%Y-%m-%d %H') = '2007-10-01 12:00:00';
|
||||
select str_to_date('2007-10-01 12:34','%Y-%m-%d %H') = '2007-10-01 12:00:00' as exp;
|
||||
# invalid date (Feb 30) succeeds
|
||||
select str_to_date('2007-02-30 12:34','%Y-%m-%d %H:%i') = '2007-02-30 12:34';
|
||||
select str_to_date('2007-02-30 12:34','%Y-%m-%d %H:%i') = '2007-02-30 12:34' as exp;
|
||||
# 0-day for both, just works in default SQL mode.
|
||||
select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34';
|
||||
select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34' as exp;
|
||||
# 0-day, succeed
|
||||
select str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01 00:00:00'
|
||||
and '2007/10/20 00:00:00';
|
||||
and '2007/10/20 00:00:00' as exp;
|
||||
set SQL_MODE=TRADITIONAL;
|
||||
# 0-day throws warning in traditional mode, and fails
|
||||
select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34';
|
||||
select str_to_date('2007-10-01 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34';
|
||||
select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34' as exp;
|
||||
select str_to_date('2007-10-01 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34' as exp;
|
||||
# different code-path: get_datetime_value() with 0-day
|
||||
select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-01 12:34';
|
||||
select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-01 12:34' as exp;
|
||||
select str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01'
|
||||
and '2007/10/20';
|
||||
--enable_view_protocol
|
||||
and '2007/10/20' as exp;
|
||||
set SQL_MODE=DEFAULT;
|
||||
select str_to_date('2007-10-00','%Y-%m-%d') between '' and '2007/10/20';
|
||||
select str_to_date('','%Y-%m-%d') between '2007/10/01' and '2007/10/20';
|
||||
@ -3621,15 +3618,12 @@ select str_to_date('1','%Y-%m-%d') = '1';
|
||||
select str_to_date('1','%Y-%m-%d') = '1';
|
||||
select str_to_date('','%Y-%m-%d') = '';
|
||||
|
||||
#enable after fix MDEV-27871
|
||||
--disable_view_protocol
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and '2001-01-01';
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and NULL;
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between NULL and '2001-01-01';
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between '2001-01-01' and NULL;
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between NULL and '1000-01-01';
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between NULL and NULL;
|
||||
--enable_view_protocol
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and '2001-01-01' as exp;
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and NULL as exp;
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between NULL and '2001-01-01' as exp;
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between '2001-01-01' and NULL as exp;
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between NULL and '1000-01-01' as exp;
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between NULL and NULL as exp;
|
||||
|
||||
#
|
||||
# Bug #30666: Incorrect order when using range conditions on 2 tables or more
|
||||
|
Reference in New Issue
Block a user