summaryrefslogtreecommitdiff
path: root/mysql-test/r/func_time.result
diff options
context:
space:
mode:
authorunknown <tnurnberg@mysql.com/sin.intern.azundris.com>2007-03-02 15:23:13 +0100
committerunknown <tnurnberg@mysql.com/sin.intern.azundris.com>2007-03-02 15:23:13 +0100
commitfed9bb9820fe89a47f355a9027166ccaf58bf336 (patch)
tree1e2e32c8652155ce5d6b0177ee02a2b7296225b8 /mysql-test/r/func_time.result
parentb9c36948f44b39cb2a9d4c80ea3bbb321ec1e045 (diff)
downloadmariadb-git-fed9bb9820fe89a47f355a9027166ccaf58bf336.tar.gz
Bug #21103: DATE column not compared as DATE
If we compare two items A and B, with B being (a constant) of a larger type, then A gets promoted to B's type for comparison if it's a constant, function, or CAST() column, but B gets demoted to A's type if A is a (not explicitly CAST()) column. This is counter-intuitive and not mandated by the standard. Disabling optimisation where it would be lossy so field value will properly get promoted and compared as binary string (rather than as integers). mysql-test/include/ps_conv.inc: Bug #21103: DATE column not compared as DATE When comparing a DATE field with a DATETIME constant, we now compare as DATETIMEs, not as DATEs. Fix certain queries to still work. mysql-test/r/func_time.result: Bug #21103: DATE column not compared as DATE When comparing a DATE field with a DATETIME constant, we now compare as DATETIMEs, not as DATEs. Show that everything works as expected. mysql-test/r/ps_2myisam.result: Bug #21103: DATE column not compared as DATE When comparing a DATE field with a DATETIME constant, we now compare as DATETIMEs, not as DATEs. Fix certain queries to still work. mysql-test/r/ps_3innodb.result: Bug #21103: DATE column not compared as DATE When comparing a DATE field with a DATETIME constant, we now compare as DATETIMEs, not as DATEs. Fix certain queries to still work. mysql-test/r/ps_4heap.result: Bug #21103: DATE column not compared as DATE When comparing a DATE field with a DATETIME constant, we now compare as DATETIMEs, not as DATEs. Fix certain queries to still work. mysql-test/r/ps_5merge.result: Bug #21103: DATE column not compared as DATE When comparing a DATE field with a DATETIME constant, we now compare as DATETIMEs, not as DATEs. Fix certain queries to still work. mysql-test/r/ps_7ndb.result: Bug #21103: DATE column not compared as DATE When comparing a DATE field with a DATETIME constant, we now compare as DATETIMEs, not as DATEs. Fix certain queries to still work. mysql-test/t/func_time.test: Bug #21103: DATE column not compared as DATE When comparing a DATE field with a DATETIME constant, we now compare as DATETIMEs, not as DATEs. Show that everything works as expected. sql/field.cc: Bug #21103: DATE column not compared as DATE #0 stores the date only as a 3-byte integer; save_in_field() in #1 saves 'this' in field's format (DATE), #2 "converts a constant item to an int and replaces the original item" -- consequently, this replaces the Item_string "2006-11-06 04:08:36.0" with the Item_int_with_ref 20061106. #0 Field_newdate::store (this=0x8d26880, from=0x8d5e658 "2006-11-06 04:08:36.0", len=21, cs=0x88022c0) at field.cc:5344 #1 0x0817e3b0 in Item_string::save_in_field (this=0x8d5e670, field=0x8d26880, no_conversions=true) at item.cc:4340 #2 0x081b22ae in convert_constant_item (thd=0x8d25240, field=0x8d26880, item=0x8d5e74c) at item_cmpfunc.cc:245 #3 0x081b8a36 in Item_bool_func2::fix_length_and_dec (this=0x8d5e6f8) at item_cmpfunc.cc:309 #4 0x081a3427 in Item_func::fix_fields (this=0x8d5e6f8, thd=0x8d25240, ref=0x8d5f5fc) at item_func.cc:190 #5 0x0825bc2d in setup_conds (thd=0x8d25240, tables=0x8d5e410, leaves=0x8d5e410, conds=0x8d5f5fc) at sql_base.cc:4941 ... Disabling optimisation where it would be lossy so field value will properly get promoted and compared as binary string (rather than as integers).
Diffstat (limited to 'mysql-test/r/func_time.result')
-rw-r--r--mysql-test/r/func_time.result17
1 files changed, 17 insertions, 0 deletions
diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result
index 32f930ca6ba..a5af2217684 100644
--- a/mysql-test/r/func_time.result
+++ b/mysql-test/r/func_time.result
@@ -1207,6 +1207,23 @@ SET NAMES DEFAULT;
select str_to_date('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE;
str_to_date('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE
NULL
+create table t1 (field DATE);
+insert into t1 values ('2006-11-06');
+select * from t1 where field < '2006-11-06 04:08:36.0';
+field
+2006-11-06
+select * from t1 where field = '2006-11-06 04:08:36.0';
+field
+select * from t1 where field = '2006-11-06';
+field
+2006-11-06
+select * from t1 where CAST(field as DATETIME) < '2006-11-06 04:08:36.0';
+field
+2006-11-06
+select * from t1 where CAST(field as DATE) < '2006-11-06 04:08:36.0';
+field
+2006-11-06
+drop table t1;
CREATE TABLE t1 (a int, t1 time, t2 time, d date, PRIMARY KEY (a));
INSERT INTO t1 VALUES (1, '10:00:00', NULL, NULL),
(2, '11:00:00', '11:15:00', '1972-02-06');