summaryrefslogtreecommitdiff
path: root/mysql-test/r
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2011-06-06 20:28:15 +0200
committerSergei Golubchik <sergii@pisem.net>2011-06-06 20:28:15 +0200
commit4d128777dde904c5f0adab9b093e854c9c580d41 (patch)
tree36875e84e65be596def46c5d7ce621e60abcbdae /mysql-test/r
parentc1a92f9caeb368021d5ffbe0df237ded29692c1a (diff)
downloadmariadb-git-4d128777dde904c5f0adab9b093e854c9c580d41.tar.gz
revert a suggested "optimization" that introduced a bug
compilation error in mysys/my_getsystime.c fixed some redundant code removed sec_to_time, time_to_sec, from_unixtime, unix_timestamp, @@timestamp now use decimal, not double for numbers with a fractional part. purge_master_logs_before_date() fixed many bugs in corner cases fixed mysys/my_getsystime.c: compilation failure fixed sql/sql_parse.cc: don't cut corners. it backfires.
Diffstat (limited to 'mysql-test/r')
-rw-r--r--mysql-test/r/date_formats.result2
-rw-r--r--mysql-test/r/func_group.result56
-rw-r--r--mysql-test/r/func_in.result2
-rw-r--r--mysql-test/r/func_sapdb.result4
-rw-r--r--mysql-test/r/func_time.result100
-rw-r--r--mysql-test/r/func_time_hires.result36
-rw-r--r--mysql-test/r/func_timestamp.result4
-rw-r--r--mysql-test/r/metadata.result4
-rw-r--r--mysql-test/r/parser_precedence.result1
-rw-r--r--mysql-test/r/ps_2myisam.result14
-rw-r--r--mysql-test/r/ps_3innodb.result14
-rw-r--r--mysql-test/r/ps_4heap.result14
-rw-r--r--mysql-test/r/ps_5merge.result28
-rw-r--r--mysql-test/r/query_cache.result9
-rw-r--r--mysql-test/r/range.result11
-rw-r--r--mysql-test/r/select.result36
-rw-r--r--mysql-test/r/timezone.result4
-rw-r--r--mysql-test/r/timezone4.result2
-rw-r--r--mysql-test/r/type_date.result12
-rw-r--r--mysql-test/r/type_datetime.result38
-rw-r--r--mysql-test/r/type_datetime_hires.result224
-rw-r--r--mysql-test/r/type_time_hires.result150
-rw-r--r--mysql-test/r/type_timestamp_hires.result106
23 files changed, 581 insertions, 290 deletions
diff --git a/mysql-test/r/date_formats.result b/mysql-test/r/date_formats.result
index dd346cb94dc..b91fce2f7f4 100644
--- a/mysql-test/r/date_formats.result
+++ b/mysql-test/r/date_formats.result
@@ -507,7 +507,7 @@ f1 f2 f3
Warnings:
Warning 1292 Truncated incorrect datetime value: '2003-01-02 10:11:12.0012ABCD'
Warning 1292 Truncated incorrect time value: '-01:01:01.01 GGG'
-Warning 1292 Truncated incorrect time value: '1997-12-31 23:59:59.01XXXX'
+Warning 1292 Truncated incorrect datetime value: '1997-12-31 23:59:59.01XXXX'
select str_to_date("2003-04-05 g", "%Y-%m-%d") as f1,
str_to_date("2003-04-05 10:11:12.101010234567", "%Y-%m-%d %H:%i:%S.%f") as f2;
f1 f2
diff --git a/mysql-test/r/func_group.result b/mysql-test/r/func_group.result
index 606f879b47f..27fb8e60d6e 100644
--- a/mysql-test/r/func_group.result
+++ b/mysql-test/r/func_group.result
@@ -1530,7 +1530,8 @@ insert into t1 values
(02,2002,20020101,"2002-01-01 23:59:59"),
(60,2060,20600101,"2060-01-01 11:11:11"),
(70,1970,19700101,"1970-11-11 22:22:22"),
-(NULL,NULL,NULL,NULL);
+(NULL,NULL,NULL,NULL),
+(71,1971,19710101,"1971-11-11 22:22:22");
select min(f1),max(f1) from t1;
min(f1) max(f1)
70 60
@@ -1553,36 +1554,49 @@ a b gt lt eq
60 98 1 0 0
70 98 0 1 0
NULL 98 NULL NULL 0
+71 98 0 1 0
98 00 0 1 0
00 00 0 0 1
02 00 1 0 0
60 00 1 0 0
70 00 0 1 0
NULL 00 NULL NULL 0
+71 00 0 1 0
98 02 0 1 0
00 02 0 1 0
02 02 0 0 1
60 02 1 0 0
70 02 0 1 0
NULL 02 NULL NULL 0
+71 02 0 1 0
98 60 0 1 0
00 60 0 1 0
02 60 0 1 0
60 60 0 0 1
70 60 0 1 0
NULL 60 NULL NULL 0
+71 60 0 1 0
98 70 1 0 0
00 70 1 0 0
02 70 1 0 0
60 70 1 0 0
70 70 0 0 1
NULL 70 NULL NULL 0
+71 70 1 0 0
98 NULL NULL NULL 0
00 NULL NULL NULL 0
02 NULL NULL NULL 0
60 NULL NULL NULL 0
70 NULL NULL NULL 0
NULL NULL NULL NULL 1
+71 NULL NULL NULL 0
+98 71 1 0 0
+00 71 1 0 0
+02 71 1 0 0
+60 71 1 0 0
+70 71 0 1 0
+NULL 71 NULL NULL 0
+71 71 0 0 1
select a.f1 as a, b.f2 as b, a.f1 > b.f2 as gt,
a.f1 < b.f2 as lt, a.f1<=>b.f2 as eq
from t1 a, t1 b;
@@ -1593,36 +1607,49 @@ a b gt lt eq
60 1998 1 0 0
70 1998 0 1 0
NULL 1998 NULL NULL 0
+71 1998 0 1 0
98 2000 0 1 0
00 2000 0 0 1
02 2000 1 0 0
60 2000 1 0 0
70 2000 0 1 0
NULL 2000 NULL NULL 0
+71 2000 0 1 0
98 2002 0 1 0
00 2002 0 1 0
02 2002 0 0 1
60 2002 1 0 0
70 2002 0 1 0
NULL 2002 NULL NULL 0
+71 2002 0 1 0
98 2060 0 1 0
00 2060 0 1 0
02 2060 0 1 0
60 2060 0 0 1
70 2060 0 1 0
NULL 2060 NULL NULL 0
+71 2060 0 1 0
98 1970 1 0 0
00 1970 1 0 0
02 1970 1 0 0
60 1970 1 0 0
70 1970 0 0 1
NULL 1970 NULL NULL 0
+71 1970 1 0 0
98 NULL NULL NULL 0
00 NULL NULL NULL 0
02 NULL NULL NULL 0
60 NULL NULL NULL 0
70 NULL NULL NULL 0
NULL NULL NULL NULL 1
+71 NULL NULL NULL 0
+98 1971 1 0 0
+00 1971 1 0 0
+02 1971 1 0 0
+60 1971 1 0 0
+70 1971 0 1 0
+NULL 1971 NULL NULL 0
+71 1971 0 0 1
select a.f1 as a, b.f3 as b, a.f1 > b.f3 as gt,
a.f1 < b.f3 as lt, a.f1<=>b.f3 as eq
from t1 a, t1 b;
@@ -1633,36 +1660,49 @@ a b gt lt eq
60 1998-01-01 1 0 0
70 1998-01-01 0 1 0
NULL 1998-01-01 NULL NULL 0
+71 1998-01-01 0 1 0
98 2000-01-01 0 1 0
00 2000-01-01 0 1 0
02 2000-01-01 1 0 0
60 2000-01-01 1 0 0
70 2000-01-01 0 1 0
NULL 2000-01-01 NULL NULL 0
+71 2000-01-01 0 1 0
98 2002-01-01 0 1 0
00 2002-01-01 0 1 0
02 2002-01-01 0 1 0
60 2002-01-01 1 0 0
70 2002-01-01 0 1 0
NULL 2002-01-01 NULL NULL 0
+71 2002-01-01 0 1 0
98 2060-01-01 0 1 0
00 2060-01-01 0 1 0
02 2060-01-01 0 1 0
60 2060-01-01 0 1 0
70 2060-01-01 0 1 0
NULL 2060-01-01 NULL NULL 0
+71 2060-01-01 0 1 0
98 1970-01-01 1 0 0
00 1970-01-01 1 0 0
02 1970-01-01 1 0 0
60 1970-01-01 1 0 0
70 1970-01-01 0 1 0
NULL 1970-01-01 NULL NULL 0
+71 1970-01-01 1 0 0
98 NULL NULL NULL 0
00 NULL NULL NULL 0
02 NULL NULL NULL 0
60 NULL NULL NULL 0
70 NULL NULL NULL 0
NULL NULL NULL NULL 1
+71 NULL NULL NULL 0
+98 1971-01-01 1 0 0
+00 1971-01-01 1 0 0
+02 1971-01-01 1 0 0
+60 1971-01-01 1 0 0
+70 1971-01-01 0 1 0
+NULL 1971-01-01 NULL NULL 0
+71 1971-01-01 0 1 0
select a.f1 as a, b.f4 as b, a.f1 > b.f4 as gt,
a.f1 < b.f4 as lt, a.f1<=>b.f4 as eq
from t1 a, t1 b;
@@ -1673,36 +1713,49 @@ a b gt lt eq
60 1998-01-01 00:00:00 1 0 0
70 1998-01-01 00:00:00 0 1 0
NULL 1998-01-01 00:00:00 NULL NULL 0
+71 1998-01-01 00:00:00 0 1 0
98 2000-01-01 00:00:01 0 1 0
00 2000-01-01 00:00:01 0 1 0
02 2000-01-01 00:00:01 1 0 0
60 2000-01-01 00:00:01 1 0 0
70 2000-01-01 00:00:01 0 1 0
NULL 2000-01-01 00:00:01 NULL NULL 0
+71 2000-01-01 00:00:01 0 1 0
98 2002-01-01 23:59:59 0 1 0
00 2002-01-01 23:59:59 0 1 0
02 2002-01-01 23:59:59 0 1 0
60 2002-01-01 23:59:59 1 0 0
70 2002-01-01 23:59:59 0 1 0
NULL 2002-01-01 23:59:59 NULL NULL 0
+71 2002-01-01 23:59:59 0 1 0
98 2060-01-01 11:11:11 0 1 0
00 2060-01-01 11:11:11 0 1 0
02 2060-01-01 11:11:11 0 1 0
60 2060-01-01 11:11:11 0 1 0
70 2060-01-01 11:11:11 0 1 0
NULL 2060-01-01 11:11:11 NULL NULL 0
+71 2060-01-01 11:11:11 0 1 0
98 1970-11-11 22:22:22 1 0 0
00 1970-11-11 22:22:22 1 0 0
02 1970-11-11 22:22:22 1 0 0
60 1970-11-11 22:22:22 1 0 0
70 1970-11-11 22:22:22 0 1 0
NULL 1970-11-11 22:22:22 NULL NULL 0
+71 1970-11-11 22:22:22 1 0 0
98 NULL NULL NULL 0
00 NULL NULL NULL 0
02 NULL NULL NULL 0
60 NULL NULL NULL 0
70 NULL NULL NULL 0
NULL NULL NULL NULL 1
+71 NULL NULL NULL 0
+98 1971-11-11 22:22:22 1 0 0
+00 1971-11-11 22:22:22 1 0 0
+02 1971-11-11 22:22:22 1 0 0
+60 1971-11-11 22:22:22 1 0 0
+70 1971-11-11 22:22:22 0 1 0
+NULL 1971-11-11 22:22:22 NULL NULL 0
+71 1971-11-11 22:22:22 0 1 0
select *, f1 = f2 from t1;
f1 f2 f3 f4 f1 = f2
98 1998 1998-01-01 1998-01-01 00:00:00 1
@@ -1711,6 +1764,7 @@ f1 f2 f3 f4 f1 = f2
60 2060 2060-01-01 2060-01-01 11:11:11 1
70 1970 1970-01-01 1970-11-11 22:22:22 1
NULL NULL NULL NULL NULL
+71 1971 1971-01-01 1971-11-11 22:22:22 1
drop table t1;
#
# Bug #54465: assert: field_types == 0 || field_types[field_pos] ==
diff --git a/mysql-test/r/func_in.result b/mysql-test/r/func_in.result
index 1edf7fcf613..aeb7142b4d4 100644
--- a/mysql-test/r/func_in.result
+++ b/mysql-test/r/func_in.result
@@ -479,7 +479,7 @@ SELECT * FROM t4 WHERE a IN ('1972-02-06','19772-07-29');
a
1972-02-06
Warnings:
-Warning 1292 Incorrect date value: '19772-07-29' for column 'a' at row 1
+Warning 1292 Incorrect datetime value: '19772-07-29'
DROP TABLE t1,t2,t3,t4;
CREATE TABLE t1 (id int not null);
INSERT INTO t1 VALUES (1),(2);
diff --git a/mysql-test/r/func_sapdb.result b/mysql-test/r/func_sapdb.result
index ca79f53ff5b..feb92da3321 100644
--- a/mysql-test/r/func_sapdb.result
+++ b/mysql-test/r/func_sapdb.result
@@ -184,8 +184,8 @@ microsecond("1997-12-31 23:59:59.000001")
1
create table t1
select makedate(1997,1) as f1,
-addtime(cast("1997-12-31 23:59:59.000001" as datetime), "1 1:1:1.000002") as f2,
-addtime(cast("23:59:59.999999" as time) , "1 1:1:1.000002") as f3,
+addtime(cast("1997-12-31 23:59:59.000001" as datetime(6)), "1 1:1:1.000002") as f2,
+addtime(cast("23:59:59.999999" as time(6)) , "1 1:1:1.000002") as f3,
timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002") as f4,
timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002") as f5,
maketime(10,11,12) as f6,
diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result
index 3194e618bb8..dc84678ff8e 100644
--- a/mysql-test/r/func_time.result
+++ b/mysql-test/r/func_time.result
@@ -11,19 +11,33 @@ now()-now() weekday(curdate())-weekday(now()) unix_timestamp()-unix_timestamp(no
0 0 0
select from_unixtime(unix_timestamp("1994-03-02 10:11:12")),from_unixtime(unix_timestamp("1994-03-02 10:11:12"),"%Y-%m-%d %h:%i:%s"),from_unixtime(unix_timestamp("1994-03-02 10:11:12"))+0;
from_unixtime(unix_timestamp("1994-03-02 10:11:12")) from_unixtime(unix_timestamp("1994-03-02 10:11:12"),"%Y-%m-%d %h:%i:%s") from_unixtime(unix_timestamp("1994-03-02 10:11:12"))+0
-1994-03-02 10:11:12 1994-03-02 10:11:12 19940302101112
+1994-03-02 10:11:12.000000 1994-03-02 10:11:12 19940302101112.000000
select sec_to_time(9001),sec_to_time(9001)+0,time_to_sec("15:12:22"),
sec_to_time(time_to_sec("0:30:47")/6.21);
sec_to_time(9001) sec_to_time(9001)+0 time_to_sec("15:12:22") sec_to_time(time_to_sec("0:30:47")/6.21)
-02:30:01 23001 54742 00:04:57.423510
+02:30:01 23001 54742.000000 00:04:57.423510
select sec_to_time(9001.1), time_to_sec('15:12:22.123456'), time_to_sec(15.5566778899);
sec_to_time(9001.1) time_to_sec('15:12:22.123456') time_to_sec(15.5566778899)
02:30:01.1 54742.123456 15.556677
-Warnings:
-Warning 1292 Truncated incorrect time value: '15.5566778899'
select sec_to_time(time_to_sec('-838:59:59'));
sec_to_time(time_to_sec('-838:59:59'))
--838:59:59
+-838:59:59.000000
+select sec_to_time('9001.1'), sec_to_time('1234567890123.123');
+sec_to_time('9001.1') sec_to_time('1234567890123.123')
+02:30:01.100000 838:59:59.999999
+Warnings:
+Warning 1292 Truncated incorrect time value: '1234567890123.123'
+select sec_to_time(90011e-1), sec_to_time(1234567890123e30);
+sec_to_time(90011e-1) sec_to_time(1234567890123e30)
+02:30:01.100000 838:59:59.999999
+Warnings:
+Warning 1292 Truncated incorrect time value: '1.234567890123e+42'
+select sec_to_time(1234567890123), sec_to_time('99999999999999999999999999999');
+sec_to_time(1234567890123) sec_to_time('99999999999999999999999999999')
+838:59:59 838:59:59.999999
+Warnings:
+Warning 1292 Truncated incorrect time value: '1234567890123'
+Warning 1292 Truncated incorrect time value: '99999999999999999999999999999'
select now()-curdate()*1000000-curtime();
now()-curdate()*1000000-curtime()
0
@@ -142,18 +156,18 @@ Saturday 5
select monthname("1972-03-04"),monthname("1972-03-04")+0;
monthname("1972-03-04") monthname("1972-03-04")+0
March 3
-select time_format(19980131000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
-time_format(19980131000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
-00|12|0|12|00|AM|12:00:00 AM|00|00:00:00
-select time_format(19980131010203,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
-time_format(19980131010203,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
-01|01|1|1|02|AM|01:02:03 AM|03|01:02:03
-select time_format(19980131131415,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
-time_format(19980131131415,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
-13|01|13|1|14|PM|01:14:15 PM|15|13:14:15
-select time_format(19980131010015,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
-time_format(19980131010015,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
-01|01|1|1|00|AM|01:00:15 AM|15|01:00:15
+select time_format(000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T'),date_format(19980131000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
+time_format(000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T') date_format(19980131000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
+00|12|0|12|00|AM|12:00:00 AM|00|00:00:00 00|12|0|12|00|AM|12:00:00 AM|00|00:00:00
+select time_format(010203,'%H|%I|%k|%l|%i|%p|%r|%S|%T'),date_format(19980131010203,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
+time_format(010203,'%H|%I|%k|%l|%i|%p|%r|%S|%T') date_format(19980131010203,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
+01|01|1|1|02|AM|01:02:03 AM|03|01:02:03 01|01|1|1|02|AM|01:02:03 AM|03|01:02:03
+select time_format(131415,'%H|%I|%k|%l|%i|%p|%r|%S|%T'),date_format(19980131131415,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
+time_format(131415,'%H|%I|%k|%l|%i|%p|%r|%S|%T') date_format(19980131131415,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
+13|01|13|1|14|PM|01:14:15 PM|15|13:14:15 13|01|13|1|14|PM|01:14:15 PM|15|13:14:15
+select time_format(010015,'%H|%I|%k|%l|%i|%p|%r|%S|%T'),date_format(19980131010015,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
+time_format(010015,'%H|%I|%k|%l|%i|%p|%r|%S|%T') date_format(19980131010015,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
+01|01|1|1|00|AM|01:00:15 AM|15|01:00:15 01|01|1|1|00|AM|01:00:15 AM|15|01:00:15
select date_format(concat('19980131',131415),'%H|%I|%k|%l|%i|%p|%r|%S|%T| %M|%W|%D|%Y|%y|%a|%b|%j|%m|%d|%h|%s|%w');
date_format(concat('19980131',131415),'%H|%I|%k|%l|%i|%p|%r|%S|%T| %M|%W|%D|%Y|%y|%a|%b|%j|%m|%d|%h|%s|%w')
13|01|13|1|14|PM|01:14:15 PM|15|13:14:15| January|Saturday|31st|1998|98|Sat|Jan|031|01|31|01|15|6
@@ -548,10 +562,10 @@ select @a:=FROM_UNIXTIME(1);
1970-01-01 03:00:01
select unix_timestamp(@a);
unix_timestamp(@a)
-1
+1.000000
select unix_timestamp('1969-12-01 19:00:01');
unix_timestamp('1969-12-01 19:00:01')
-0
+0.000000
select from_unixtime(-1);
from_unixtime(-1)
NULL
@@ -572,31 +586,31 @@ unix_timestamp(from_unixtime(2147483648))
NULL
select unix_timestamp('2039-01-20 01:00:00');
unix_timestamp('2039-01-20 01:00:00')
-0
+0.000000
select unix_timestamp('1968-01-20 01:00:00');
unix_timestamp('1968-01-20 01:00:00')
-0
+0.000000
select unix_timestamp('2038-02-10 01:00:00');
unix_timestamp('2038-02-10 01:00:00')
-0
+0.000000
select unix_timestamp('1969-11-20 01:00:00');
unix_timestamp('1969-11-20 01:00:00')
-0
+0.000000
select unix_timestamp('2038-01-20 01:00:00');
unix_timestamp('2038-01-20 01:00:00')
-0
+0.000000
select unix_timestamp('1969-12-30 01:00:00');
unix_timestamp('1969-12-30 01:00:00')
-0
+0.000000
select unix_timestamp('2038-01-17 12:00:00');
unix_timestamp('2038-01-17 12:00:00')
-2147331600
+2147331600.000000
select unix_timestamp('1970-01-01 03:00:01');
unix_timestamp('1970-01-01 03:00:01')
-1
+1.000000
select unix_timestamp('2038-01-19 07:14:07');
unix_timestamp('2038-01-19 07:14:07')
-0
+0.000000
SELECT CHARSET(DAYNAME(19700101));
CHARSET(DAYNAME(19700101))
latin1
@@ -944,10 +958,10 @@ sec_to_time(1) + 0, from_unixtime(1) + 0;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `now() - now()` double(17,0) NOT NULL DEFAULT '0',
- `curtime() - curtime()` double(17,0) NOT NULL DEFAULT '0',
- `sec_to_time(1) + 0` double(17,0) DEFAULT NULL,
- `from_unixtime(1) + 0` double(17,0) DEFAULT NULL
+ `now() - now()` decimal(20,0) NOT NULL DEFAULT '0',
+ `curtime() - curtime()` decimal(11,0) NOT NULL DEFAULT '0',
+ `sec_to_time(1) + 0` decimal(11,0) DEFAULT NULL,
+ `from_unixtime(1) + 0` decimal(20,0) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
SELECT SEC_TO_TIME(3300000);
@@ -1036,7 +1050,7 @@ SELECT SEC_TO_TIME(CAST(-1 AS UNSIGNED));
SEC_TO_TIME(CAST(-1 AS UNSIGNED))
838:59:59
Warnings:
-Warning 1292 Truncated incorrect time value: '1.84467440737096e+19'
+Warning 1292 Truncated incorrect time value: '18446744073709551615'
SET NAMES latin1;
SET character_set_results = NULL;
SHOW VARIABLES LIKE 'character_set_results';
@@ -1084,7 +1098,9 @@ NULL
select isnull(week(now() + 0)), isnull(week(now() + 0.2)),
week(20061108), week(20061108.01), week(20061108085411.000002);
isnull(week(now() + 0)) isnull(week(now() + 0.2)) week(20061108) week(20061108.01) week(20061108085411.000002)
-0 0 45 45 45
+0 0 45 NULL 45
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '20061108.01'
End of 4.1 tests
explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,
timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2;
@@ -1419,6 +1435,16 @@ time('-1 02:03:04') + interval 2 day
select time('-1 02:03:04') - interval 2 day;
time('-1 02:03:04') - interval 2 day
-74:03:04
+select time('10 02:03:04') + interval 30 day;
+time('10 02:03:04') + interval 30 day
+NULL
+Warnings:
+Warning 1441 Datetime function: time field overflow
+select time('10 02:03:04') + interval 1 year;
+time('10 02:03:04') + interval 1 year
+NULL
+Warnings:
+Warning 1441 Datetime function: time field overflow
select cast('131415.123e0' as time);
cast('131415.123e0' as time)
NULL
@@ -1461,8 +1487,6 @@ select * from t1 where f1 > time('-23:00:06');
f1
2000-09-12 00:00:00
2007-04-25 05:08:49
-Warnings:
-Warning 1292 Incorrect datetime value: '-23:00:06' for column 'f1' at row 1
drop table t1;
select maketime(20,61,10)+0;
maketime(20,61,10)+0
@@ -1512,7 +1536,7 @@ select least(1, f1) from t1;
least(1, f1)
0000-00-00 00:00:00
Warnings:
-Warning 1292 Incorrect datetime value: '1' for column 'f1' at row 1
+Warning 1292 Truncated incorrect datetime value: '1'
drop table t1;
select now() > coalesce(time('21:43:24'), date('2010-05-03'));
now() > coalesce(time('21:43:24'), date('2010-05-03'))
@@ -1537,6 +1561,8 @@ insert ignore t1 values ('04:38:11','0000-00-00 00:00:00',0,'0000-00-00 00:00:00
select least(greatest(f3, f2, f4), f5) from t1;
least(greatest(f3, f2, f4), f5)
0000-00-00 00:00:00
+Warnings:
+Warning 1292 Incorrect datetime value: '0'
drop table t1;
select day(coalesce(null));
day(coalesce(null))
diff --git a/mysql-test/r/func_time_hires.result b/mysql-test/r/func_time_hires.result
index 1528bd81a6c..6aed828f5bd 100644
--- a/mysql-test/r/func_time_hires.result
+++ b/mysql-test/r/func_time_hires.result
@@ -14,10 +14,10 @@ current_time(3) 01:01:01.123
current_timestamp(4) 2011-01-01 01:01:01.1234
localtime(5) 2011-01-01 01:01:01.12345
localtimestamp(6) 2011-01-01 01:01:01.123456
-time_to_sec('12:34:56') 45296
-time_to_sec('12:34:56.789') 45296.789
+time_to_sec('12:34:56') 45296.000000
+time_to_sec('12:34:56.789') 45296.789000
select sec_to_time(time_to_sec('1:2:3')), sec_to_time(time_to_sec('2:3:4.567890'));
-sec_to_time(time_to_sec('1:2:3')) 01:02:03
+sec_to_time(time_to_sec('1:2:3')) 01:02:03.000000
sec_to_time(time_to_sec('2:3:4.567890')) 02:03:04.567890
select time_to_sec(sec_to_time(11111)), time_to_sec(sec_to_time(11111.22222));
time_to_sec(sec_to_time(11111)) 11111
@@ -47,7 +47,7 @@ t1 CREATE TABLE `t1` (
`localtime(5)` datetime(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000',
`localtimestamp(6)` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
`time_to_sec(123456)` bigint(17) DEFAULT NULL,
- `time_to_sec('12:34:56.789')` double DEFAULT NULL
+ `time_to_sec('12:34:56.789')` decimal(22,6) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t1;
sec_to_time(12345) 03:25:45
@@ -62,33 +62,27 @@ current_timestamp(4) 2011-01-01 01:01:01.1234
localtime(5) 2011-01-01 01:01:01.12345
localtimestamp(6) 2011-01-01 01:01:01.123456
time_to_sec(123456) 45296
-time_to_sec('12:34:56.789') 45296.789
+time_to_sec('12:34:56.789') 45296.789000
drop table t1;
select unix_timestamp('2011-01-01 01:01:01'), unix_timestamp('2011-01-01 01:01:01.123456'), unix_timestamp(cast('2011-01-01 01:01:01.123456' as datetime(0))), unix_timestamp(cast('2011-01-01 01:01:01.123456' as datetime(4)));;
-unix_timestamp('2011-01-01 01:01:01') 1293832861
-unix_timestamp('2011-01-01 01:01:01.123456') 1293832861.12346
+unix_timestamp('2011-01-01 01:01:01') 1293832861.000000
+unix_timestamp('2011-01-01 01:01:01.123456') 1293832861.123456
unix_timestamp(cast('2011-01-01 01:01:01.123456' as datetime(0))) 1293832861
-unix_timestamp(cast('2011-01-01 01:01:01.123456' as datetime(4))) 1293832861.1235
+unix_timestamp(cast('2011-01-01 01:01:01.123456' as datetime(4))) 1293832861.1234
select from_unixtime(unix_timestamp('2011/1/1 1:1:1')), from_unixtime(unix_timestamp('2011/1/1 1:1:1.123456')), from_unixtime(unix_timestamp(cast('2011/1/1 1:1:1.123456' as datetime(0)))), from_unixtime(unix_timestamp(cast('2011/1/1 1:1:1.123456' as datetime(4))));;
-from_unixtime(unix_timestamp('2011/1/1 1:1:1')) 2011-01-01 01:01:01
+from_unixtime(unix_timestamp('2011/1/1 1:1:1')) 2011-01-01 01:01:01.000000
from_unixtime(unix_timestamp('2011/1/1 1:1:1.123456')) 2011-01-01 01:01:01.123456
from_unixtime(unix_timestamp(cast('2011/1/1 1:1:1.123456' as datetime(0)))) 2011-01-01 01:01:01
from_unixtime(unix_timestamp(cast('2011/1/1 1:1:1.123456' as datetime(4)))) 2011-01-01 01:01:01.1234
select sec_to_time(3020399.99999), sec_to_time(3020399.999999), sec_to_time(3020399.9999999);
sec_to_time(3020399.99999) sec_to_time(3020399.999999) sec_to_time(3020399.9999999)
-838:59:59.99998 838:59:59.999999 838:59:59.999999
-Warnings:
-Warning 1292 Truncated incorrect time value: '3020399.9999999'
+838:59:59.99999 838:59:59.999999 838:59:59.999999
select sec_to_time(-3020399.99999), sec_to_time(-3020399.999999), sec_to_time(-3020399.9999999);
sec_to_time(-3020399.99999) sec_to_time(-3020399.999999) sec_to_time(-3020399.9999999)
--838:59:59.99998 -838:59:59.999999 -838:59:59.999999
-Warnings:
-Warning 1292 Truncated incorrect time value: '-3020399.9999999'
+-838:59:59.99999 -838:59:59.999999 -838:59:59.999999
select 20010101000203.000000004 + interval 1 day;
20010101000203.000000004 + interval 1 day
2001-01-02 00:02:03.000000
-Warnings:
-Warning 1292 Truncated incorrect datetime value: '20010101000203.000000004'
select 20010101000203.4 + interval 1 day;
20010101000203.4 + interval 1 day
2001-01-02 00:02:03.4
@@ -157,6 +151,14 @@ t4 12:13:14.1234
t5 12:13:14.12345
t6 12:13:14.123456
drop table t1;
+explain extended select cast(cast(@a as datetime(4)) as time(0));
+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 cast(cast((@a) as datetime(4)) as time) AS `cast(cast(@a as datetime(4)) as time(0))`
+select cast(cast(@a as time(2)) as time(6));
+cast(cast(@a as time(2)) as time(6))
+12:13:14.120000
select CAST(@a AS DATETIME(7));
ERROR 42000: Too big precision 7 specified for '(@a)'. Maximum is 6.
SELECT CONVERT_TZ('2011-01-02 12:00:00', '+00:00', '+03:00');
diff --git a/mysql-test/r/func_timestamp.result b/mysql-test/r/func_timestamp.result
index 495fedea9e6..18fcbd947e7 100644
--- a/mysql-test/r/func_timestamp.result
+++ b/mysql-test/r/func_timestamp.result
@@ -7,7 +7,7 @@ SELECT CONCAT(Jahr,'-',Monat,'-',Tag,' ',Zeit) AS Date,
UNIX_TIMESTAMP(CONCAT(Jahr,'-',Monat,'-',Tag,' ',Zeit)) AS Unix
FROM t1;
Date Unix
-1998-9-16 09:26:00 905927160
-1998-9-16 09:26:00 905927160
+1998-9-16 09:26:00 905927160.000000
+1998-9-16 09:26:00 905927160.000000
drop table t1;
set time_zone= @@global.time_zone;
diff --git a/mysql-test/r/metadata.result b/mysql-test/r/metadata.result
index e209193a2c0..09365152f85 100644
--- a/mysql-test/r/metadata.result
+++ b/mysql-test/r/metadata.result
@@ -212,7 +212,7 @@ DROP TABLE t1;
End of 5.0 tests
select cast('01:01:01' as time), cast('01:01:01' as time(2));
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def cast('01:01:01' as time) 11 9 8 Y 128 0 63
-def cast('01:01:01' as time(2)) 11 12 11 Y 128 2 63
+def cast('01:01:01' as time) 11 10 8 Y 128 0 63
+def cast('01:01:01' as time(2)) 11 13 11 Y 128 2 63
cast('01:01:01' as time) cast('01:01:01' as time(2))
01:01:01 01:01:01.00
diff --git a/mysql-test/r/parser_precedence.result b/mysql-test/r/parser_precedence.result
index cf301ec677b..979084d0346 100644
--- a/mysql-test/r/parser_precedence.result
+++ b/mysql-test/r/parser_precedence.result
@@ -1,4 +1,5 @@
drop table if exists t1_30237_bool;
+set sql_mode=NO_UNSIGNED_SUBTRACTION;
create table t1_30237_bool(A boolean, B boolean, C boolean);
insert into t1_30237_bool values
(FALSE, FALSE, FALSE),
diff --git a/mysql-test/r/ps_2myisam.result b/mysql-test/r/ps_2myisam.result
index 2fa07c5de6e..c7c31fffc9f 100644
--- a/mysql-test/r/ps_2myisam.result
+++ b/mysql-test/r/ps_2myisam.result
@@ -64,7 +64,7 @@ def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 9377 0 63
-def test t9 t9 c16 c16 11 9 8 Y 128 0 63
+def test t9 t9 c16 c16 11 10 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
@@ -1793,8 +1793,8 @@ t5 CREATE TABLE `t5` (
`param08` longtext,
`const09` datetime DEFAULT NULL,
`param09` longblob,
- `const10` double NOT NULL DEFAULT '0',
- `param10` double DEFAULT NULL,
+ `const10` decimal(22,6) NOT NULL DEFAULT '0.000000',
+ `param10` decimal(65,30) DEFAULT NULL,
`const11` int(4) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
@@ -1823,8 +1823,8 @@ def test t5 t5 const08 const08 253 19 19 N 1 0 8
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
-def test t5 t5 const10 const10 5 49 9 N 32769 31 63
-def test t5 t5 param10 param10 5 23 9 Y 32768 31 63
+def test t5 t5 const10 const10 246 24 16 N 1 6 63
+def test t5 t5 param10 param10 246 67 40 Y 0 30 63
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
@@ -1850,8 +1850,8 @@ const08 1991-08-05 01:01:01
param08 1991-08-05 01:01:01
const09 1991-08-05 01:01:01
param09 1991-08-05 01:01:01
-const10 662680861
-param10 662680861
+const10 662680861.000000
+param10 662680861.000000000000000000000000000000
const11 1991
param11 1991
const12 NULL
diff --git a/mysql-test/r/ps_3innodb.result b/mysql-test/r/ps_3innodb.result
index 06062193951..1709d63d16e 100644
--- a/mysql-test/r/ps_3innodb.result
+++ b/mysql-test/r/ps_3innodb.result
@@ -64,7 +64,7 @@ def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 9377 0 63
-def test t9 t9 c16 c16 11 9 8 Y 128 0 63
+def test t9 t9 c16 c16 11 10 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
@@ -1776,8 +1776,8 @@ t5 CREATE TABLE `t5` (
`param08` longtext,
`const09` datetime DEFAULT NULL,
`param09` longblob,
- `const10` double NOT NULL DEFAULT '0',
- `param10` double DEFAULT NULL,
+ `const10` decimal(22,6) NOT NULL DEFAULT '0.000000',
+ `param10` decimal(65,30) DEFAULT NULL,
`const11` int(4) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
@@ -1806,8 +1806,8 @@ def test t5 t5 const08 const08 253 19 19 N 1 0 8
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
-def test t5 t5 const10 const10 5 49 9 N 32769 31 63
-def test t5 t5 param10 param10 5 23 9 Y 32768 31 63
+def test t5 t5 const10 const10 246 24 16 N 1 6 63
+def test t5 t5 param10 param10 246 67 40 Y 0 30 63
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
@@ -1833,8 +1833,8 @@ const08 1991-08-05 01:01:01
param08 1991-08-05 01:01:01
const09 1991-08-05 01:01:01
param09 1991-08-05 01:01:01
-const10 662680861
-param10 662680861
+const10 662680861.000000
+param10 662680861.000000000000000000000000000000
const11 1991
param11 1991
const12 NULL
diff --git a/mysql-test/r/ps_4heap.result b/mysql-test/r/ps_4heap.result
index 1819a9e649b..1b099c214b1 100644
--- a/mysql-test/r/ps_4heap.result
+++ b/mysql-test/r/ps_4heap.result
@@ -65,7 +65,7 @@ def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 9377 0 63
-def test t9 t9 c16 c16 11 9 8 Y 128 0 63
+def test t9 t9 c16 c16 11 10 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
@@ -1777,8 +1777,8 @@ t5 CREATE TABLE `t5` (
`param08` longtext,
`const09` datetime DEFAULT NULL,
`param09` longblob,
- `const10` double NOT NULL DEFAULT '0',
- `param10` double DEFAULT NULL,
+ `const10` decimal(22,6) NOT NULL DEFAULT '0.000000',
+ `param10` decimal(65,30) DEFAULT NULL,
`const11` int(4) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
@@ -1807,8 +1807,8 @@ def test t5 t5 const08 const08 253 19 19 N 1 0 8
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
-def test t5 t5 const10 const10 5 49 9 N 32769 31 63
-def test t5 t5 param10 param10 5 23 9 Y 32768 31 63
+def test t5 t5 const10 const10 246 24 16 N 1 6 63
+def test t5 t5 param10 param10 246 67 40 Y 0 30 63
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
@@ -1834,8 +1834,8 @@ const08 1991-08-05 01:01:01
param08 1991-08-05 01:01:01
const09 1991-08-05 01:01:01
param09 1991-08-05 01:01:01
-const10 662680861
-param10 662680861
+const10 662680861.000000
+param10 662680861.000000000000000000000000000000
const11 1991
param11 1991
const12 NULL
diff --git a/mysql-test/r/ps_5merge.result b/mysql-test/r/ps_5merge.result
index 4a8e0adf46f..20023d0b589 100644
--- a/mysql-test/r/ps_5merge.result
+++ b/mysql-test/r/ps_5merge.result
@@ -107,7 +107,7 @@ def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 9377 0 63
-def test t9 t9 c16 c16 11 9 8 Y 128 0 63
+def test t9 t9 c16 c16 11 10 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
@@ -1713,8 +1713,8 @@ t5 CREATE TABLE `t5` (
`param08` longtext,
`const09` datetime DEFAULT NULL,
`param09` longblob,
- `const10` double NOT NULL DEFAULT '0',
- `param10` double DEFAULT NULL,
+ `const10` decimal(22,6) NOT NULL DEFAULT '0.000000',
+ `param10` decimal(65,30) DEFAULT NULL,
`const11` int(4) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
@@ -1743,8 +1743,8 @@ def test t5 t5 const08 const08 253 19 19 N 1 0 8
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
-def test t5 t5 const10 const10 5 49 9 N 32769 31 63
-def test t5 t5 param10 param10 5 23 9 Y 32768 31 63
+def test t5 t5 const10 const10 246 24 16 N 1 6 63
+def test t5 t5 param10 param10 246 67 40 Y 0 30 63
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
@@ -1770,8 +1770,8 @@ const08 1991-08-05 01:01:01
param08 1991-08-05 01:01:01
const09 1991-08-05 01:01:01
param09 1991-08-05 01:01:01
-const10 662680861
-param10 662680861
+const10 662680861.000000
+param10 662680861.000000000000000000000000000000
const11 1991
param11 1991
const12 NULL
@@ -3461,7 +3461,7 @@ def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 9377 0 63
-def test t9 t9 c16 c16 11 9 8 Y 128 0 63
+def test t9 t9 c16 c16 11 10 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
@@ -5067,8 +5067,8 @@ t5 CREATE TABLE `t5` (
`param08` longtext,
`const09` datetime DEFAULT NULL,
`param09` longblob,
- `const10` double NOT NULL DEFAULT '0',
- `param10` double DEFAULT NULL,
+ `const10` decimal(22,6) NOT NULL DEFAULT '0.000000',
+ `param10` decimal(65,30) DEFAULT NULL,
`const11` int(4) DEFAULT NULL,
`param11` bigint(20) DEFAULT NULL,
`const12` binary(0) DEFAULT NULL,
@@ -5097,8 +5097,8 @@ def test t5 t5 const08 const08 253 19 19 N 1 0 8
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
-def test t5 t5 const10 const10 5 49 9 N 32769 31 63
-def test t5 t5 param10 param10 5 23 9 Y 32768 31 63
+def test t5 t5 const10 const10 246 24 16 N 1 6 63
+def test t5 t5 param10 param10 246 67 40 Y 0 30 63
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
@@ -5124,8 +5124,8 @@ const08 1991-08-05 01:01:01
param08 1991-08-05 01:01:01
const09 1991-08-05 01:01:01
param09 1991-08-05 01:01:01
-const10 662680861
-param10 662680861
+const10 662680861.000000
+param10 662680861.000000000000000000000000000000
const11 1991
param11 1991
const12 NULL
diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result
index 2817bec2198..2aaaac3349a 100644
--- a/mysql-test/r/query_cache.result
+++ b/mysql-test/r/query_cache.result
@@ -991,20 +991,17 @@ SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 invalid';
COUNT(*)
0
Warnings:
-Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
-Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 0
+Warning 1292 Incorrect datetime value: '20050327 invalid'
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050328 invalid';
COUNT(*)
0
Warnings:
-Warning 1292 Incorrect datetime value: '20050328 invalid' for column 'date' at row 1
-Warning 1292 Incorrect datetime value: '20050328 invalid' for column 'date' at row 0
+Warning 1292 Incorrect datetime value: '20050328 invalid'
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 invalid';
COUNT(*)
0
Warnings:
-Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
-Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 0
+Warning 1292 Incorrect datetime value: '20050327 invalid'
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result
index a472772a7e9..5aad036491b 100644
--- a/mysql-test/r/range.result
+++ b/mysql-test/r/range.result
@@ -1104,13 +1104,10 @@ INSERT INTO t1 VALUES
EXPLAIN SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref PRIMARY PRIMARY 20 const 2 Using where
-Warnings:
-Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00' for column 'started' at row 1
SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
item started price
Warnings:
-Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00' for column 'started' at row 1
-Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00' for column 'started' at row 0
+Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00'
SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-02 00:00:00';
item started price
A1 2005-11-01 08:00:00 1000.000
@@ -1122,7 +1119,7 @@ id select_type table type possible_keys key key_len ref rows Extra
SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
item started price
Warnings:
-Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00' for column 'started' at row 0
+Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00'
SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-02 00:00:00';
item started price
A1 2005-11-01 08:00:00 1000.000
@@ -1572,7 +1569,7 @@ str_to_date('2007-10-00', '%Y-%m-%d') >= '' AND
str_to_date('2007-10-00', '%Y-%m-%d') <= '2007/10/20'
1
Warnings:
-Warning 1292 Truncated incorrect date value: ''
+Warning 1292 Incorrect datetime value: ''
SELECT str_to_date('2007-20-00', '%Y-%m-%d') >= '2007/10/20' AND
str_to_date('2007-20-00', '%Y-%m-%d') <= '';
str_to_date('2007-20-00', '%Y-%m-%d') >= '2007/10/20' AND
@@ -1585,7 +1582,7 @@ SELECT str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20';
str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20'
1
Warnings:
-Warning 1292 Truncated incorrect date value: ''
+Warning 1292 Incorrect datetime value: ''
SELECT str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND '';
str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND ''
NULL
diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result
index 69733162818..afa0d85fba8 100644
--- a/mysql-test/r/select.result
+++ b/mysql-test/r/select.result
@@ -2115,8 +2115,8 @@ INSERT INTO t2 VALUES (1,3,10,'2002-06-01 08:00:00',35),(1,3,1010,'2002-06-01 12
SELECT a.gvid, (SUM(CASE b.sampletid WHEN 140 THEN b.samplevalue ELSE 0 END)) as the_success,(SUM(CASE b.sampletid WHEN 141 THEN b.samplevalue ELSE 0 END)) as the_fail,(SUM(CASE b.sampletid WHEN 142 THEN b.samplevalue ELSE 0 END)) as the_size,(SUM(CASE b.sampletid WHEN 143 THEN b.samplevalue ELSE 0 END)) as the_time FROM t1 a, t2 b WHERE a.hmid = b.hmid AND a.volid = b.volid AND b.sampletime >= 'wrong-date-value' AND b.sampletime < 'wrong-date-value' AND b.sampletid IN (140, 141, 142, 143) GROUP BY a.gvid;
gvid the_success the_fail the_size the_time
Warnings:
-Warning 1292 Incorrect datetime value: 'wrong-date-value' for column 'sampletime' at row 0
-Warning 1292 Incorrect datetime value: 'wrong-date-value' for column 'sampletime' at row 0
+Warning 1292 Incorrect datetime value: 'wrong-date-value'
+Warning 1292 Incorrect datetime value: 'wrong-date-value'
SELECT a.gvid, (SUM(CASE b.sampletid WHEN 140 THEN b.samplevalue ELSE 0 END)) as the_success,(SUM(CASE b.sampletid WHEN 141 THEN b.samplevalue ELSE 0 END)) as the_fail,(SUM(CASE b.sampletid WHEN 142 THEN b.samplevalue ELSE 0 END)) as the_size,(SUM(CASE b.sampletid WHEN 143 THEN b.samplevalue ELSE 0 END)) as the_time FROM t1 a, t2 b WHERE a.hmid = b.hmid AND a.volid = b.volid AND b.sampletime >= NULL AND b.sampletime < NULL AND b.sampletid IN (140, 141, 142, 143) GROUP BY a.gvid;
gvid the_success the_fail the_size the_time
DROP TABLE t1,t2;
@@ -3265,7 +3265,7 @@ f1 f2
4 2005-10-01
5 2005-12-30
Warnings:
-Warning 1292 Incorrect date value: '2005-09-3a' for column 'f2' at row 1
+Warning 1292 Truncated incorrect date value: '2005-09-3a'
select * from t1 where f2 <= '2005-09-31' order by f2;
f1 f2
1 2005-01-01
@@ -3276,7 +3276,7 @@ f1 f2
1 2005-01-01
2 2005-09-01
Warnings:
-Warning 1292 Incorrect date value: '2005-09-3a' for column 'f2' at row 1
+Warning 1292 Truncated incorrect date value: '2005-09-3a'
drop table t1;
create table t1 (f1 int, f2 int);
insert into t1 values (1, 30), (2, 20), (3, 10);
@@ -3754,15 +3754,11 @@ AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
1 SIMPLE t1 range ts ts 4 NULL 1 Using where
-Warnings:
-Warning 1292 Incorrect datetime value: '2999-12-31 00:00:00' for column 'ts' at row 1
SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
AND t1.ts BETWEEN t2.dt1 AND t2.dt2
AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
a ts a dt1 dt2
30 2006-01-03 23:00:00 30 2006-01-01 00:00:00 2999-12-31 00:00:00
-Warnings:
-Warning 1292 Incorrect datetime value: '2999-12-31 00:00:00' for column 'ts' at row 1
DROP TABLE t1,t2;
create table t1 (a bigint unsigned);
insert into t1 values
@@ -4093,28 +4089,28 @@ 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'
1
Warnings:
-Warning 1292 Truncated incorrect date value: '2007/10/01 00:00:00 GMT'
-Warning 1292 Truncated incorrect date value: '2007/10/20 00:00:00 GMT'
+Warning 1292 Truncated incorrect datetime value: '2007/10/01 00:00:00 GMT'
+Warning 1292 Truncated incorrect datetime value: '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';
str_to_date('2007-10-09','%Y-%m-%d') > '2007/10/01 00:00:00 GMT-6'
1
Warnings:
-Warning 1292 Truncated incorrect date value: '2007/10/01 00:00:00 GMT-6'
+Warning 1292 Truncated incorrect datetime value: '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';
str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/20 00:00:00 GMT-6'
1
Warnings:
-Warning 1292 Truncated incorrect date value: '2007/10/20 00:00:00 GMT-6'
+Warning 1292 Truncated incorrect datetime value: '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';
str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/2000:00:00 GMT-6'
0
Warnings:
-Warning 1292 Truncated incorrect date value: '2007/10/2000:00:00 GMT-6'
+Warning 1292 Incorrect datetime value: '2007/10/2000:00:00 GMT-6'
select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-1 00:00:00 GMT-6';
str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-1 00:00:00 GMT-6'
1
Warnings:
-Warning 1292 Truncated incorrect date value: '2007-10-1 00:00:00 GMT-6'
+Warning 1292 Truncated incorrect datetime value: '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';
str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 x00:00:00 GMT-6'
1
@@ -4134,7 +4130,7 @@ select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 x12:34:56 GMT
str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 x12:34:56 GMT-6'
1
Warnings:
-Warning 1292 Truncated incorrect datetime value: '2007-10-01 x12:34:56 GMT-6'
+Warning 1292 Truncated incorrect date value: '2007-10-01 x12:34: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';
str_to_date('2007-10-01 12:34:00','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6'
1
@@ -4190,7 +4186,7 @@ select str_to_date('2007-10-00','%Y-%m-%d') between '' and '2007/10/20';
str_to_date('2007-10-00','%Y-%m-%d') between '' and '2007/10/20'
1
Warnings:
-Warning 1292 Truncated incorrect date value: ''
+Warning 1292 Incorrect datetime value: ''
select str_to_date('','%Y-%m-%d') between '2007/10/01' and '2007/10/20';
str_to_date('','%Y-%m-%d') between '2007/10/01' and '2007/10/20'
0
@@ -4204,22 +4200,22 @@ select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '';
str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = ''
0
Warnings:
-Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Incorrect datetime value: ''
select str_to_date('1','%Y-%m-%d') = '1';
str_to_date('1','%Y-%m-%d') = '1'
0
Warnings:
-Warning 1292 Truncated incorrect date value: '1'
+Warning 1292 Incorrect datetime value: '1'
select str_to_date('1','%Y-%m-%d') = '1';
str_to_date('1','%Y-%m-%d') = '1'
0
Warnings:
-Warning 1292 Truncated incorrect date value: '1'
+Warning 1292 Incorrect datetime value: '1'
select str_to_date('','%Y-%m-%d') = '';
str_to_date('','%Y-%m-%d') = ''
1
Warnings:
-Warning 1292 Truncated incorrect date value: ''
+Warning 1292 Incorrect datetime value: ''
select str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and '2001-01-01';
str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and '2001-01-01'
1
diff --git a/mysql-test/r/timezone.result b/mysql-test/r/timezone.result
index 1223fff36c6..0f6dac5efd5 100644
--- a/mysql-test/r/timezone.result
+++ b/mysql-test/r/timezone.result
@@ -7,7 +7,7 @@ select @a:=FROM_UNIXTIME(1);
1970-01-01 01:00:01
select unix_timestamp(@a);
unix_timestamp(@a)
-1
+1.000000
CREATE TABLE t1 (ts int);
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2002-10-27 01:00'));
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2002-10-27 02:00'));
@@ -44,4 +44,4 @@ unix_timestamp('1970-01-01 01:00:01'),
unix_timestamp('2038-01-19 04:14:07'),
unix_timestamp('2038-01-19 04:14:08');
unix_timestamp('1970-01-01 01:00:00') unix_timestamp('1970-01-01 01:00:01') unix_timestamp('2038-01-19 04:14:07') unix_timestamp('2038-01-19 04:14:08')
-0 1 2147483647 0
+0.000000 1.000000 2147483647.000000 0.000000
diff --git a/mysql-test/r/timezone4.result b/mysql-test/r/timezone4.result
index 28028bea657..ad0672890a2 100644
--- a/mysql-test/r/timezone4.result
+++ b/mysql-test/r/timezone4.result
@@ -3,4 +3,4 @@ from_unixtime(0)
1969-12-31 14:00:00
select unix_timestamp('1969-12-31 14:00:01');
unix_timestamp('1969-12-31 14:00:01')
-1
+1.000000
diff --git a/mysql-test/r/type_date.result b/mysql-test/r/type_date.result
index 1e6f2de86db..164587db010 100644
--- a/mysql-test/r/type_date.result
+++ b/mysql-test/r/type_date.result
@@ -132,10 +132,10 @@ select year(@d), month(@d), day(@d), cast(@d as date);
year(@d) month(@d) day(@d) cast(@d as date)
NULL NULL NULL NULL
Warnings:
-Warning 1292 Incorrect datetime value: '1311'
-Warning 1292 Incorrect datetime value: '1311'
-Warning 1292 Incorrect datetime value: '1311'
-Warning 1292 Incorrect datetime value: '1311'
+Warning 1292 Truncated incorrect datetime value: '1311'
+Warning 1292 Truncated incorrect datetime value: '1311'
+Warning 1292 Truncated incorrect datetime value: '1311'
+Warning 1292 Truncated incorrect datetime value: '1311'
create table t1 (d date , dt datetime , ts timestamp);
insert into t1 values (9912101,9912101,9912101);
Warnings:
@@ -208,10 +208,14 @@ SELECT * FROM t1 WHERE a = '0000-00-00';
a
0000-00-00
0000-00-00
+Warnings:
+Warning 1292 Incorrect datetime value: '0000-00-00'
SELECT * FROM t2 WHERE a = '0000-00-00';
a
0000-00-00
0000-00-00
+Warnings:
+Warning 1292 Incorrect datetime value: '0000-00-00'
INSERT INTO t1 VALUES ('0000-00-00');
ERROR 22007: Incorrect date value: '0000-00-00' for column 'a' at row 1
SET SQL_MODE=DEFAULT;
diff --git a/mysql-test/r/type_datetime.result b/mysql-test/r/type_datetime.result
index 8868a4b1af8..5c1925bd5e4 100644
--- a/mysql-test/r/type_datetime.result
+++ b/mysql-test/r/type_datetime.result
@@ -185,14 +185,14 @@ DROP TABLE t1;
SELECT CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6));
CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6))
20060810.000000
-SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME) AS DECIMAL(20,6));
-CAST(CAST('2006-08-10 10:11:12' AS DATETIME) AS DECIMAL(20,6))
+SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) AS DECIMAL(20,6));
+CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) AS DECIMAL(20,6))
20060810101112.000000
-SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6));
-CAST(CAST('2006-08-10 10:11:12' AS DATETIME) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6))
+SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6));
+CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6))
20060810101112.000014
-SELECT CAST(CAST('10:11:12.098700' AS TIME) AS DECIMAL(20,6));
-CAST(CAST('10:11:12.098700' AS TIME) AS DECIMAL(20,6))
+SELECT CAST(CAST('10:11:12.098700' AS TIME(6)) AS DECIMAL(20,6));
+CAST(CAST('10:11:12.098700' AS TIME(6)) AS DECIMAL(20,6))
101112.098700
set @org_mode=@@sql_mode;
create table t1 (da date default '1962-03-03 23:33:34', dt datetime default '1962-03-03');
@@ -361,7 +361,7 @@ greatest(cast('01-01-01' as date), '01-01-02') + 0
20010102
select least(cast('01-01-01' as datetime), '01-01-02') + 0;
least(cast('01-01-01' as datetime), '01-01-02') + 0
-20010101000000
+20010101000000.000000
select cast(least(cast('01-01-01' as datetime), '01-01-02') as signed);
cast(least(cast('01-01-01' as datetime), '01-01-02') as signed)
20010101000000
@@ -399,7 +399,7 @@ if(@bug28261 = f1, '', @bug28261:= f1)
2001-01-01
2002-02-02
Warnings:
-Warning 1292 Incorrect date value: '' for column 'f1' at row 1
+Warning 1292 Incorrect datetime value: ''
select if(@bug28261 = f1, '', @bug28261:= f1) from t1;
if(@bug28261 = f1, '', @bug28261:= f1)
2001-01-01
@@ -423,11 +423,11 @@ f1
2001-01-01 00:00:00
2002-02-02 00:00:00
Warnings:
-Warning 1292 Incorrect datetime value: '2002010' for column 'f1' at row 0
+Warning 1292 Truncated incorrect datetime value: '2002010'
select * from t1 where f1 between 20020101 and 2007010100000;
f1
Warnings:
-Warning 1292 Incorrect datetime value: '2007010100000' for column 'f1' at row 0
+Warning 1292 Truncated incorrect datetime value: '2007010100000'
drop table t1;
#
# Bug#27216: functions with parameters of different date types may
@@ -495,9 +495,9 @@ insert into t1 set f1 = '45:44:44';
insert into t1 set f1 = '15:44:44';
select * from t1 where (convert(f1,datetime)) != 1;
f1
+45:44:44
15:44:44
Warnings:
-Warning 1292 Truncated incorrect datetime value: '45:44:44'
Warning 1292 Truncated incorrect datetime value: '1'
drop table t1;
create table t1 (a tinyint);
@@ -620,21 +620,21 @@ ERROR 42000: Invalid default value for 'da'
create table t1 (t time default '916:00:00 a');
ERROR 42000: Invalid default value for 't'
set @@sql_mode= @org_mode;
-SELECT CAST(CAST('2006-08-10 10:11:12.0123450' AS DATETIME) AS DECIMAL(30,7));
-CAST(CAST('2006-08-10 10:11:12.0123450' AS DATETIME) AS DECIMAL(30,7))
+SELECT CAST(CAST('2006-08-10 10:11:12.0123450' AS DATETIME(6)) AS DECIMAL(30,7));
+CAST(CAST('2006-08-10 10:11:12.0123450' AS DATETIME(6)) AS DECIMAL(30,7))
20060810101112.0123450
Warnings:
Warning 1292 Truncated incorrect datetime value: '2006-08-10 10:11:12.0123450'
-SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.0123450' AS DATETIME) AS DECIMAL(30,7));
-CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.0123450' AS DATETIME) AS DECIMAL(30,7))
+SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.0123450' AS DATETIME(6)) AS DECIMAL(30,7));
+CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.0123450' AS DATETIME(6)) AS DECIMAL(30,7))
20060810101112.0123450
Warnings:
Warning 1292 Truncated incorrect datetime value: '00000002006-000008-0000010 000010:0000011:00000012.0123450'
-SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.012345' AS DATETIME) AS DECIMAL(30,7));
-CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.012345' AS DATETIME) AS DECIMAL(30,7))
+SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.012345' AS DATETIME(6)) AS DECIMAL(30,7));
+CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.012345' AS DATETIME(6)) AS DECIMAL(30,7))
20060810101112.0123450
-SELECT CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime) AS DECIMAL(30,7));
-CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime) AS DECIMAL(30,7))
+SELECT CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime(6)) AS DECIMAL(30,7));
+CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime(6)) AS DECIMAL(30,7))
20080729104251.1234560
Warnings:
Warning 1292 Truncated incorrect datetime value: '2008-07-29T10:42:51.1234567'
diff --git a/mysql-test/r/type_datetime_hires.result b/mysql-test/r/type_datetime_hires.result
index 78e634c9e99..1b734b0d3c3 100644
--- a/mysql-test/r/type_datetime_hires.result
+++ b/mysql-test/r/type_datetime_hires.result
@@ -105,7 +105,105 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` datetime(4) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t2, t3;
+insert t1 values ('2010-12-13 14:15:16.222222');
+select a, a+0, a-1, a*1, a/2 from t1;
+a a+0 a-1 a*1 a/2
+2012-12-11 01:02:13.3332 20121211010213.3332 20121211010212.3332 20121211010213.3332 10060605505106.66660000
+2010-12-13 14:15:16.2222 20101213141516.2222 20101213141515.2222 20101213141516.2222 10050606570758.11110000
+select max(a), min(a), sum(a), avg(a) from t1;
+max(a) min(a) sum(a) avg(a)
+2012-12-11 01:02:13.3332 2010-12-13 14:15:16.2222 40222424151729.5554 20111212075864.77770000
+create table t2 select a, a+0, a-1, a*1, a/2 from t1;
+create table t3 select max(a), min(a), sum(a), avg(a) from t1;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `a` datetime(4) DEFAULT NULL,
+ `a+0` decimal(25,4) DEFAULT NULL,
+ `a-1` decimal(25,4) DEFAULT NULL,
+ `a*1` decimal(25,4) DEFAULT NULL,
+ `a/2` decimal(28,8) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show create table t3;
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `max(a)` datetime(4) DEFAULT NULL,
+ `min(a)` datetime(4) DEFAULT NULL,
+ `sum(a)` decimal(46,4) DEFAULT NULL,
+ `avg(a)` decimal(28,8) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t2, t3;
+create table t1 (f0_datetime datetime(0), f1_datetime datetime(1), f2_datetime datetime(2), f3_datetime datetime(3), f4_datetime datetime(4), f5_datetime datetime(5), f6_datetime datetime(6));
+insert t1 values ( '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432');
+select * from t1;
+f0_datetime 2010-11-12 11:14:17
+f1_datetime 2010-11-12 11:14:17.7
+f2_datetime 2010-11-12 11:14:17.76
+f3_datetime 2010-11-12 11:14:17.765
+f4_datetime 2010-11-12 11:14:17.7654
+f5_datetime 2010-11-12 11:14:17.76543
+f6_datetime 2010-11-12 11:14:17.765432
+select cast(f0_datetime as time(4)) time4_f0_datetime, cast(f1_datetime as datetime(3)) datetime3_f1_datetime, cast(f2_datetime as date) date_f2_datetime, cast(f4_datetime as decimal(40,5)) decimal5_f4_datetime, cast(f5_datetime as signed) bigint_f5_datetime, cast(f6_datetime as char(255)) varchar_f6_datetime from t1;
+time4_f0_datetime 11:14:17.0000
+datetime3_f1_datetime 2010-11-12 11:14:17.700
+date_f2_datetime 2010-11-12
+decimal5_f4_datetime 20101112111417.76540
+bigint_f5_datetime 20101112111417
+varchar_f6_datetime 2010-11-12 11:14:17.765432
+create table t2 (time4_f0_datetime time(4), datetime3_f1_datetime datetime(3), date_f2_datetime date, double_f3_datetime double, decimal5_f4_datetime decimal(40,5), bigint_f5_datetime bigint, varchar_f6_datetime varchar(255));
+insert t2 select * from t1;
+Warnings:
+Level Note
+Code 1265
+Message Data truncated for column 'time4_f0_datetime' at row 1
+Level Note
+Code 1265
+Message Data truncated for column 'date_f2_datetime' at row 1
+select * from t2;
+time4_f0_datetime 11:14:17.0000
+datetime3_f1_datetime 2010-11-12 11:14:17.700
+date_f2_datetime 2010-11-12
+double_f3_datetime 20101112111417.8
+decimal5_f4_datetime 20101112111417.76540
+bigint_f5_datetime 20101112111417
+varchar_f6_datetime 2010-11-12 11:14:17.765432
+alter table t1 change f0_datetime time4_f0_datetime time(4), change f1_datetime datetime3_f1_datetime datetime(3), change f2_datetime date_f2_datetime date, change f3_datetime double_f3_datetime double, change f4_datetime decimal5_f4_datetime decimal(40,5), change f5_datetime bigint_f5_datetime bigint, change f6_datetime varchar_f6_datetime varchar(255);
+Warnings:
+Level Note
+Code 1265
+Message Data truncated for column 'time4_f0_datetime' at row 1
+Level Note
+Code 1265
+Message Data truncated for column 'date_f2_datetime' at row 1
+select * from t1;
+time4_f0_datetime 11:14:17.0000
+datetime3_f1_datetime 2010-11-12 11:14:17.700
+date_f2_datetime 2010-11-12
+double_f3_datetime 20101112111417.8
+decimal5_f4_datetime 20101112111417.76540
+bigint_f5_datetime 20101112111417
+varchar_f6_datetime 2010-11-12 11:14:17.765432
+alter table t1 modify time4_f0_datetime datetime(0), modify datetime3_f1_datetime datetime(1), modify date_f2_datetime datetime(2), modify double_f3_datetime datetime(3), modify decimal5_f4_datetime datetime(4), modify bigint_f5_datetime datetime(5), modify varchar_f6_datetime datetime(6);
+select * from t1;
+time4_f0_datetime 0000-00-00 11:14:17
+datetime3_f1_datetime 2010-11-12 11:14:17.7
+date_f2_datetime 2010-11-12 00:00:00.00
+double_f3_datetime 2010-11-12 11:14:17.765
+decimal5_f4_datetime 2010-11-12 11:14:17.7654
+bigint_f5_datetime 2010-11-12 11:14:17.00000
+varchar_f6_datetime 2010-11-12 11:14:17.765432
+delete from t1;
+insert t1 select * from t2;
+select * from t1;
+time4_f0_datetime 0000-00-00 11:14:17
+datetime3_f1_datetime 2010-11-12 11:14:17.7
+date_f2_datetime 2010-11-12 00:00:00.00
+double_f3_datetime 2010-11-12 11:14:17.765
+decimal5_f4_datetime 2010-11-12 11:14:17.7654
+bigint_f5_datetime 2010-11-12 11:14:17.00000
+varchar_f6_datetime 2010-11-12 11:14:17.765432
+drop table t1, t2;
create table t1 (a datetime(6), b datetime(6));
create procedure foo(x datetime, y datetime(4)) insert into t1 values (x, y);
call foo('2010-02-03 4:5:6.789123', '2010-02-03 4:5:6.789123');
@@ -218,132 +316,6 @@ t2 p01 RANGE extract(microsecond from taken) 123000 3
t2 p02 RANGE extract(microsecond from taken) 500000 4
t2 p03 RANGE extract(microsecond from taken) MAXVALUE 3
drop table t1, t2;
-create table t1 (
-q_date date,
-q_time time,
-q_time5 time(5),
-q_datetime datetime,
-q_datetime1 datetime(1),
-q_datetime3 datetime(3),
-q_datetime5 datetime(5),
-q_timestamp timestamp,
-q_timestamp2 timestamp(2),
-q_timestamp4 timestamp(4),
-q_timestamp6 timestamp(6),
-q_varchar50 varchar(50),
-q_varchar60 varchar(60),
-q_varchar70 varchar(70),
-q_varchar80 varchar(80));
-create table t2 (
-date_datetime datetime,
-time_datetime datetime,
-time5_varchar100 varchar(100),
-datetime_time time,
-datetime1_date date,
-datetime3_timestamp timestamp,
-datetime5_varchar100 varchar(100),
-timestamp_datetime datetime,
-timestamp2_date date,
-timestamp4_time time,
-timestamp6_varchar100 varchar(100),
-varchar50_date date,
-varchar60_datetime datetime,
-varchar70_time time,
-varchar80_timestamp timestamp);
-insert t1 values ('2010-11-12 11:14:17.765432',
-'2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432',
-'2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432',
-'2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432',
-'2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432',
-'2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432',
-'2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432',
-'2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432');
-Warnings:
-Note 1265 Data truncated for column 'q_date' at row 1
-Note 1265 Data truncated for column 'q_time' at row 1
-Note 1265 Data truncated for column 'q_time5' at row 1
-select * from t1;;
-q_date 2010-11-12
-q_time 11:14:17
-q_time5 11:14:17.76543
-q_datetime 2010-11-12 11:14:17
-q_datetime1 2010-11-12 11:14:17.7
-q_datetime3 2010-11-12 11:14:17.765
-q_datetime5 2010-11-12 11:14:17.76543
-q_timestamp 2010-11-12 11:14:17
-q_timestamp2 2010-11-12 11:14:17.76
-q_timestamp4 2010-11-12 11:14:17.7654
-q_timestamp6 2010-11-12 11:14:17.765432
-q_varchar50 2010-11-12 11:14:17.765432
-q_varchar60 2010-11-12 11:14:17.765432
-q_varchar70 2010-11-12 11:14:17.765432
-q_varchar80 2010-11-12 11:14:17.765432
-insert t2 select * from t1;
-Warnings:
-Warning 1265 Data truncated for column 'time_datetime' at row 1
-Note 1265 Data truncated for column 'datetime_time' at row 1
-Note 1265 Data truncated for column 'datetime1_date' at row 1
-Note 1265 Data truncated for column 'timestamp2_date' at row 1
-Note 1265 Data truncated for column 'timestamp4_time' at row 1
-Note 1265 Data truncated for column 'varchar50_date' at row 1
-Note 1265 Data truncated for column 'varchar70_time' at row 1
-select * from t2;;
-date_datetime 2010-11-12 00:00:00
-time_datetime 0000-00-00 00:00:00
-time5_varchar100 11:14:17.76543
-datetime_time 11:14:17
-datetime1_date 2010-11-12
-datetime3_timestamp 2010-11-12 11:14:17
-datetime5_varchar100 2010-11-12 11:14:17.76543
-timestamp_datetime 2010-11-12 11:14:17
-timestamp2_date 2010-11-12
-timestamp4_time 11:14:17
-timestamp6_varchar100 2010-11-12 11:14:17.765432
-varchar50_date 2010-11-12
-varchar60_datetime 2010-11-12 11:14:17
-varchar70_time 11:14:17
-varchar80_timestamp 2010-11-12 11:14:17
-alter table t1
-change q_date date_datetime datetime,
-change q_time time_datetime datetime,
-change q_time5 time5_varchar100 varchar(100),
-change q_datetime datetime_time time,
-change q_datetime1 datetime1_date date,
-change q_datetime3 datetime3_timestamp timestamp,
-change q_datetime5 datetime5_varchar100 varchar(100),
-change q_timestamp timestamp_datetime datetime,
-change q_timestamp2 timestamp2_date date,
-change q_timestamp4 timestamp4_time time,
-change q_timestamp6 timestamp6_varchar100 varchar(100),
-change q_varchar50 varchar50_date date,
-change q_varchar60 varchar60_datetime datetime,
-change q_varchar70 varchar70_time time,
-change q_varchar80 varchar80_timestamp timestamp;
-Warnings:
-Warning 1265 Data truncated for column 'time_datetime' at row 1
-Note 1265 Data truncated for column 'datetime_time' at row 1
-Note 1265 Data truncated for column 'datetime1_date' at row 1
-Note 1265 Data truncated for column 'timestamp2_date' at row 1
-Note 1265 Data truncated for column 'timestamp4_time' at row 1
-Note 1265 Data truncated for column 'varchar50_date' at row 1
-Note 1265 Data truncated for column 'varchar70_time' at row 1
-select * from t1;;
-date_datetime 2010-11-12 00:00:00
-time_datetime 0000-00-00 00:00:00
-time5_varchar100 11:14:17.76543
-datetime_time 11:14:17
-datetime1_date 2010-11-12
-datetime3_timestamp 2010-11-12 11:14:17
-datetime5_varchar100 2010-11-12 11:14:17.76543
-timestamp_datetime 2010-11-12 11:14:17
-timestamp2_date 2010-11-12
-timestamp4_time 11:14:17
-timestamp6_varchar100 2010-11-12 11:14:17.765432
-varchar50_date 2010-11-12
-varchar60_datetime 2010-11-12 11:14:17
-varchar70_time 11:14:17
-varchar80_timestamp 2010-11-12 11:14:17
-drop table t1, t2;
create table t1 (a datetime, b datetime(6));
insert t1 values ('2010-01-02 03:04:05.678912', '2010-01-02 03:04:05.678912');
update t1 set b=a;
diff --git a/mysql-test/r/type_time_hires.result b/mysql-test/r/type_time_hires.result
index eb21d1773ff..13975beeb2c 100644
--- a/mysql-test/r/type_time_hires.result
+++ b/mysql-test/r/type_time_hires.result
@@ -94,14 +94,15 @@ a
01:02:13.3332
insert t1 select a + interval 2 year from t1;
Warnings:
-Note 1265 Data truncated for column 'a' at row 1
+Warning 1441 Datetime function: time field overflow
select * from t1;
a
01:02:13.3332
-01:02:13.3332
+NULL
delete from t1 where a < 20110101;
select * from t1;
a
+NULL
create table t2 select * from t1;
create table t3 like t1;
show create table t2;
@@ -114,7 +115,123 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` time(4) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t2, t3;
+insert t1 values ('2010-12-13 14:15:16.222222');
+Warnings:
+Note 1265 Data truncated for column 'a' at row 1
+select a, a+0, a-1, a*1, a/2 from t1;
+a a+0 a-1 a*1 a/2
+NULL NULL NULL NULL NULL
+14:15:16.2222 141516.2222 141515.2222 141516.2222 70758.11110000
+select max(a), min(a), sum(a), avg(a) from t1;
+max(a) min(a) sum(a) avg(a)
+14:15:16.2222 14:15:16.2222 141516.2222 141516.22220000
+create table t2 select a, a+0, a-1, a*1, a/2 from t1;
+create table t3 select max(a), min(a), sum(a), avg(a) from t1;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `a` time(4) DEFAULT NULL,
+ `a+0` decimal(16,4) DEFAULT NULL,
+ `a-1` decimal(16,4) DEFAULT NULL,
+ `a*1` decimal(16,4) DEFAULT NULL,
+ `a/2` decimal(19,8) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show create table t3;
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `max(a)` time(4) DEFAULT NULL,
+ `min(a)` time(4) DEFAULT NULL,
+ `sum(a)` decimal(37,4) DEFAULT NULL,
+ `avg(a)` decimal(19,8) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t2, t3;
+create table t1 (f0_time time(0), f1_time time(1), f2_time time(2), f3_time time(3), f4_time time(4), f5_time time(5), f6_time time(6));
+insert t1 values ( '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432');
+Warnings:
+Level Note
+Code 1265
+Message Data truncated for column 'f0_time' at row 1
+Level Note
+Code 1265
+Message Data truncated for column 'f1_time' at row 1
+Level Note
+Code 1265
+Message Data truncated for column 'f2_time' at row 1
+Level Note
+Code 1265
+Message Data truncated for column 'f3_time' at row 1
+Level Note
+Code 1265
+Message Data truncated for column 'f4_time' at row 1
+Level Note
+Code 1265
+Message Data truncated for column 'f5_time' at row 1
+Level Note
+Code 1265
+Message Data truncated for column 'f6_time' at row 1
+select * from t1;
+f0_time 11:14:17
+f1_time 11:14:17.7
+f2_time 11:14:17.76
+f3_time 11:14:17.765
+f4_time 11:14:17.7654
+f5_time 11:14:17.76543
+f6_time 11:14:17.765432
+select cast(f0_time as time(4)) time4_f0_time, cast(f1_time as datetime(3)) datetime3_f1_time, cast(f2_time as date) date_f2_time, cast(f4_time as decimal(40,5)) decimal5_f4_time, cast(f5_time as signed) bigint_f5_time, cast(f6_time as char(255)) varchar_f6_time from t1;
+time4_f0_time 11:14:17.0000
+datetime3_f1_time 0000-00-00 11:14:17.700
+date_f2_time 0000-00-00
+decimal5_f4_time 111417.76540
+bigint_f5_time 111417
+varchar_f6_time 11:14:17.765432
+create table t2 (time4_f0_time time(4), datetime3_f1_time datetime(3), date_f2_time date, double_f3_time double, decimal5_f4_time decimal(40,5), bigint_f5_time bigint, varchar_f6_time varchar(255));
+insert t2 select * from t1;
+Warnings:
+Level Note
+Code 1265
+Message Data truncated for column 'date_f2_time' at row 1
+select * from t2;
+time4_f0_time 11:14:17.0000
+datetime3_f1_time 0000-00-00 11:14:17.700
+date_f2_time 0000-00-00
+double_f3_time 111417.765
+decimal5_f4_time 111417.76540
+bigint_f5_time 111417
+varchar_f6_time 11:14:17.765432
+alter table t1 change f0_time time4_f0_time time(4), change f1_time datetime3_f1_time datetime(3), change f2_time date_f2_time date, change f3_time double_f3_time double, change f4_time decimal5_f4_time decimal(40,5), change f5_time bigint_f5_time bigint, change f6_time varchar_f6_time varchar(255);
+Warnings:
+Level Note
+Code 1265
+Message Data truncated for column 'date_f2_time' at row 1
+select * from t1;
+time4_f0_time 11:14:17.0000
+datetime3_f1_time 0000-00-00 11:14:17.700
+date_f2_time 0000-00-00
+double_f3_time 111417.765
+decimal5_f4_time 111417.76540
+bigint_f5_time 111417
+varchar_f6_time 11:14:17.765432
+alter table t1 modify time4_f0_time time(0), modify datetime3_f1_time time(1), modify date_f2_time time(2), modify double_f3_time time(3), modify decimal5_f4_time time(4), modify bigint_f5_time time(5), modify varchar_f6_time time(6);
+select * from t1;
+time4_f0_time 11:14:17
+datetime3_f1_time 11:14:17.7
+date_f2_time 00:00:00.00
+double_f3_time 11:14:17.764
+decimal5_f4_time 11:14:17.7654
+bigint_f5_time 11:14:17.00000
+varchar_f6_time 11:14:17.765432
+delete from t1;
+insert t1 select * from t2;
+select * from t1;
+time4_f0_time 11:14:17
+datetime3_f1_time 11:14:17.7
+date_f2_time 00:00:00.00
+double_f3_time 11:14:17.764
+decimal5_f4_time 11:14:17.7654
+bigint_f5_time 11:14:17.00000
+varchar_f6_time 11:14:17.765432
+drop table t1, t2;
create table t1 (a time(6), b time(6));
create procedure foo(x time, y time(4)) insert into t1 values (x, y);
call foo('2010-02-03 4:5:6.789123', '2010-02-03 4:5:6.789123');
@@ -169,18 +286,37 @@ a b
04:05:06.000000 04:05:06.789100
drop view v1;
drop table t1, t2;
-create table t1 (a time(4) not null);
-insert into t1 values ('-00:00:00.6'),('-00:00:00.7'),('-00:00:00.8'),('-00:00:00.9'),('-00:00:01.0'),('-00:00:01.1'),('-00:00:01.000000'),('-00:00:01.100001'),('-00:00:01.000002'),('-00:00:01.090000');
-select * from t1;
+create table t1 (a time(4) not null, key(a));
+insert into t1 values ('1:2:3.001'),('1:2:3'), ('-00:00:00.6'),('-00:00:00.7'),('-00:00:00.8'),('-00:00:00.9'),('-00:00:01.0'),('-00:00:01.1'),('-00:00:01.000000'),('-00:00:01.100001'),('-00:00:01.000002'),('-00:00:01.090000');
+select * from t1 order by a;
+a
+-00:00:01.1000
+-00:00:01.1000
+-00:00:01.0900
+-00:00:01.0000
+-00:00:01.0000
+-00:00:01.0000
+-00:00:00.9000
+-00:00:00.8000
+-00:00:00.7000
+-00:00:00.6000
+01:02:03.0000
+01:02:03.0010
+select * from t1 order by a desc;
a
+01:02:03.0010
+01:02:03.0000
-00:00:00.6000
-00:00:00.7000
-00:00:00.8000
-00:00:00.9000
-00:00:01.0000
--00:00:01.1000
-00:00:01.0000
--00:00:01.1000
-00:00:01.0000
-00:00:01.0900
+-00:00:01.1000
+-00:00:01.1000
drop table t1;
+select cast(1e-6 as time(6));
+cast(1e-6 as time(6))
+00:00:00.000001
diff --git a/mysql-test/r/type_timestamp_hires.result b/mysql-test/r/type_timestamp_hires.result
index 75b6b60e4d5..d1702325633 100644
--- a/mysql-test/r/type_timestamp_hires.result
+++ b/mysql-test/r/type_timestamp_hires.result
@@ -105,7 +105,113 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` timestamp(4) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t2, t3;
+insert t1 values ('2010-12-13 14:15:16.222222');
+select a, a+0, a-1, a*1, a/2 from t1;
+a a+0 a-1 a*1 a/2
+2012-12-11 01:02:13.3332 20121211010213.3332 20121211010212.3332 20121211010213.3332 10060605505106.66660000
+2010-12-13 14:15:16.2222 20101213141516.2222 20101213141515.2222 20101213141516.2222 10050606570758.11110000
+select max(a), min(a), sum(a), avg(a) from t1;
+max(a) min(a) sum(a) avg(a)
+2012-12-11 01:02:13.3332 2010-12-13 14:15:16.2222 40222424151729.5554 20111212075864.77770000
+create table t2 select a, a+0, a-1, a*1, a/2 from t1;
+create table t3 select max(a), min(a), sum(a), avg(a) from t1;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `a` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000',
+ `a+0` decimal(25,4) NOT NULL DEFAULT '0.0000',
+ `a-1` decimal(25,4) NOT NULL DEFAULT '0.0000',
+ `a*1` decimal(25,4) NOT NULL DEFAULT '0.0000',
+ `a/2` decimal(28,8) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show create table t3;
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `max(a)` timestamp(4) NULL DEFAULT NULL,
+ `min(a)` timestamp(4) NULL DEFAULT NULL,
+ `sum(a)` decimal(46,4) DEFAULT NULL,
+ `avg(a)` decimal(28,8) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t2, t3;
+create table t1 (f0_timestamp timestamp(0), f1_timestamp timestamp(1), f2_timestamp timestamp(2), f3_timestamp timestamp(3), f4_timestamp timestamp(4), f5_timestamp timestamp(5), f6_timestamp timestamp(6));
+insert t1 values ( '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432');
+select * from t1;
+f0_timestamp 2010-11-12 11:14:17
+f1_timestamp 2010-11-12 11:14:17.7
+f2_timestamp 2010-11-12 11:14:17.76
+f3_timestamp 2010-11-12 11:14:17.765
+f4_timestamp 2010-11-12 11:14:17.7654
+f5_timestamp 2010-11-12 11:14:17.76543
+f6_timestamp 2010-11-12 11:14:17.765432
+select cast(f0_timestamp as time(4)) time4_f0_timestamp, cast(f1_timestamp as datetime(3)) datetime3_f1_timestamp, cast(f2_timestamp as date) date_f2_timestamp, cast(f4_timestamp as decimal(40,5)) decimal5_f4_timestamp, cast(f5_timestamp as signed) bigint_f5_timestamp, cast(f6_timestamp as char(255)) varchar_f6_timestamp from t1;
+time4_f0_timestamp 11:14:17.0000
+datetime3_f1_timestamp 2010-11-12 11:14:17.700
+date_f2_timestamp 2010-11-12
+decimal5_f4_timestamp 20101112111417.76540
+bigint_f5_timestamp 20101112111417
+varchar_f6_timestamp 2010-11-12 11:14:17.765432
+create table t2 (time4_f0_timestamp time(4), datetime3_f1_timestamp datetime(3), date_f2_timestamp date, double_f3_timestamp double, decimal5_f4_timestamp decimal(40,5), bigint_f5_timestamp bigint, varchar_f6_timestamp varchar(255));
+insert t2 select * from t1;
+Warnings:
+Level Note
+Code 1265
+Message Data truncated for column 'time4_f0_timestamp' at row 1
+Level Note
+Code 1265
+Message Data truncated for column 'date_f2_timestamp' at row 1
+select * from t2;
+time4_f0_timestamp 11:14:17.0000
+datetime3_f1_timestamp 2010-11-12 11:14:17.700
+date_f2_timestamp 2010-11-12
+double_f3_timestamp 20101112111417.8
+decimal5_f4_timestamp 20101112111417.76540
+bigint_f5_timestamp 20101112111417
+varchar_f6_timestamp 2010-11-12 11:14:17.765432
+alter table t1 change f0_timestamp time4_f0_timestamp time(4), change f1_timestamp datetime3_f1_timestamp datetime(3), change f2_timestamp date_f2_timestamp date, change f3_timestamp double_f3_timestamp double, change f4_timestamp decimal5_f4_timestamp decimal(40,5), change f5_timestamp bigint_f5_timestamp bigint, change f6_timestamp varchar_f6_timestamp varchar(255);
+Warnings:
+Level Note
+Code 1265
+Message Data truncated for column 'time4_f0_timestamp' at row 1
+Level Note
+Code 1265
+Message Data truncated for column 'date_f2_timestamp' at row 1
+select * from t1;
+time4_f0_timestamp 11:14:17.0000
+datetime3_f1_timestamp 2010-11-12 11:14:17.700
+date_f2_timestamp 2010-11-12
+double_f3_timestamp 20101112111417.8
+decimal5_f4_timestamp 20101112111417.76540
+bigint_f5_timestamp 20101112111417
+varchar_f6_timestamp 2010-11-12 11:14:17.765432
+alter table t1 modify time4_f0_timestamp timestamp(0), modify datetime3_f1_timestamp timestamp(1), modify date_f2_timestamp timestamp(2), modify double_f3_timestamp timestamp(3), modify decimal5_f4_timestamp timestamp(4), modify bigint_f5_timestamp timestamp(5), modify varchar_f6_timestamp timestamp(6);
+Warnings:
+Level Warning
+Code 1265
+Message Data truncated for column 'time4_f0_timestamp' at row 1
+select * from t1;
+time4_f0_timestamp 0000-00-00 00:00:00
+datetime3_f1_timestamp 2010-11-12 11:14:17.7
+date_f2_timestamp 2010-11-12 00:00:00.00
+double_f3_timestamp 2010-11-12 11:14:17.765
+decimal5_f4_timestamp 2010-11-12 11:14:17.7654
+bigint_f5_timestamp 2010-11-12 11:14:17.00000
+varchar_f6_timestamp 2010-11-12 11:14:17.765432
+delete from t1;
+insert t1 select * from t2;
+Warnings:
+Level Warning
+Code 1265
+Message Data truncated for column 'time4_f0_timestamp' at row 1
+select * from t1;
+time4_f0_timestamp 0000-00-00 00:00:00
+datetime3_f1_timestamp 2010-11-12 11:14:17.7
+date_f2_timestamp 2010-11-12 00:00:00.00
+double_f3_timestamp 2010-11-12 11:14:17.765
+decimal5_f4_timestamp 2010-11-12 11:14:17.7654
+bigint_f5_timestamp 2010-11-12 11:14:17.00000
+varchar_f6_timestamp 2010-11-12 11:14:17.765432
+drop table t1, t2;
create table t1 (a timestamp(6), b timestamp(6));
create procedure foo(x timestamp, y timestamp(4)) insert into t1 values (x, y);
call foo('2010-02-03 4:5:6.789123', '2010-02-03 4:5:6.789123');