mirror of
https://github.com/MariaDB/server.git
synced 2025-12-07 17:42:39 +03:00
Fix for bug#37526: asymertic operator <=> in trigger
Problem: <=> operator may return wrong results
comparing NULL and a DATE/DATETIME/TIME value.
Fix: properly check NULLs.
mysql-test/r/type_datetime.result:
Fix for bug#37526: asymertic operator <=> in trigger
- test result.
mysql-test/t/type_datetime.test:
Fix for bug#37526: asymertic operator <=> in trigger
- test case.
sql/item_cmpfunc.cc:
Fix for bug#37526: asymertic operator <=> in trigger
- if is_nulls_eq is TRUE Arg_comparator::compare_datetime()
should return 1 only if both arguments are NULL.
This commit is contained in:
@@ -560,4 +560,27 @@ select * from t2
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
id cur_date
|
||||
drop table t1,t2;
|
||||
SELECT
|
||||
CAST('NULL' AS DATE) <=> CAST('2008-01-01' AS DATE) n1,
|
||||
CAST('2008-01-01' AS DATE) <=> CAST('NULL' AS DATE) n2,
|
||||
CAST('NULL' AS DATE) <=> CAST('NULL' AS DATE) n3,
|
||||
CAST('NULL' AS DATE) <> CAST('2008-01-01' AS DATE) n4,
|
||||
CAST('2008-01-01' AS DATE) <> CAST('NULL' AS DATE) n5,
|
||||
CAST('NULL' AS DATE) <> CAST('NULL' AS DATE) n6,
|
||||
CAST('NULL' AS DATE) < CAST('2008-01-01' AS DATE) n7,
|
||||
CAST('2008-01-01' AS DATE) < CAST('NULL' AS DATE) n8,
|
||||
CAST('NULL' AS DATE) < CAST('NULL' AS DATE) n9;
|
||||
n1 n2 n3 n4 n5 n6 n7 n8 n9
|
||||
0 0 1 NULL NULL NULL NULL NULL NULL
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect datetime value: 'NULL'
|
||||
Warning 1292 Truncated incorrect datetime value: 'NULL'
|
||||
Warning 1292 Truncated incorrect datetime value: 'NULL'
|
||||
Warning 1292 Truncated incorrect datetime value: 'NULL'
|
||||
Warning 1292 Truncated incorrect datetime value: 'NULL'
|
||||
Warning 1292 Truncated incorrect datetime value: 'NULL'
|
||||
Warning 1292 Truncated incorrect datetime value: 'NULL'
|
||||
Warning 1292 Truncated incorrect datetime value: 'NULL'
|
||||
Warning 1292 Truncated incorrect datetime value: 'NULL'
|
||||
Warning 1292 Truncated incorrect datetime value: 'NULL'
|
||||
End of 5.0 tests
|
||||
|
||||
@@ -388,4 +388,20 @@ where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
|
||||
drop table t1,t2;
|
||||
|
||||
|
||||
#
|
||||
# Bug #37526: asymertic operator <=> in trigger
|
||||
#
|
||||
SELECT
|
||||
CAST('NULL' AS DATE) <=> CAST('2008-01-01' AS DATE) n1,
|
||||
CAST('2008-01-01' AS DATE) <=> CAST('NULL' AS DATE) n2,
|
||||
CAST('NULL' AS DATE) <=> CAST('NULL' AS DATE) n3,
|
||||
CAST('NULL' AS DATE) <> CAST('2008-01-01' AS DATE) n4,
|
||||
CAST('2008-01-01' AS DATE) <> CAST('NULL' AS DATE) n5,
|
||||
CAST('NULL' AS DATE) <> CAST('NULL' AS DATE) n6,
|
||||
CAST('NULL' AS DATE) < CAST('2008-01-01' AS DATE) n7,
|
||||
CAST('2008-01-01' AS DATE) < CAST('NULL' AS DATE) n8,
|
||||
CAST('NULL' AS DATE) < CAST('NULL' AS DATE) n9;
|
||||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
Reference in New Issue
Block a user