summaryrefslogtreecommitdiff
path: root/mysql-test/t/update.test
diff options
context:
space:
mode:
authorevgen@moonbone.local <>2005-10-28 01:24:11 +0400
committerevgen@moonbone.local <>2005-10-28 01:24:11 +0400
commit77723c2438f0fba7cd19e6b746391ede7e3135da (patch)
tree1c104e30ad0a076a4b630b5718784f64bd29484b /mysql-test/t/update.test
parent0e6b53f172cb3b3e9d5694ca650b5d25c1b474d7 (diff)
downloadmariadb-git-77723c2438f0fba7cd19e6b746391ede7e3135da.tar.gz
Fix bug#14186 select datefield is null not updated
Date field was declared as not null, thus expression 'datefield is null' was always false. For SELECT special handling of such cases is used. There 'datefield is null' converted to 'datefield eq "0000-00-00"'. In mysql_update() before creation of select added remove_eq_conds() call. It makes some optimization of conds and in particular performs conversion from 'is null' to 'eq'. Also remove_eq_conds() makes some evaluation of conds and if it founds that conds is always false then update statement is not processed further. All this allows to perform some update statements process faster due to optimized conds, and not wasting resources if conds known to be false.
Diffstat (limited to 'mysql-test/t/update.test')
-rw-r--r--mysql-test/t/update.test9
1 files changed, 9 insertions, 0 deletions
diff --git a/mysql-test/t/update.test b/mysql-test/t/update.test
index e81415628d0..a21d10b6571 100644
--- a/mysql-test/t/update.test
+++ b/mysql-test/t/update.test
@@ -261,4 +261,13 @@ update t1 set a=a+12,b=3 order by a limit 3;
select * from t1 order by a;
drop table t1;
+
+#
+# Bug#14186 select datefield is null not updated
+#
+create table t1 (f1 date not null);
+insert into t1 values('2000-01-01'),('0000-00-00');
+update t1 set f1='2002-02-02' where f1 is null;
+select * from t1;
+drop table t1;
# End of 4.1 tests