1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-4511 Assertion `scale <= precision' fails on GROUP BY TIMEDIFF with incorrect types

This commit is contained in:
Alexander Barkov
2014-04-24 16:59:01 +04:00
parent aefddfe3ff
commit d3d3a4b834
11 changed files with 183 additions and 69 deletions

View File

@ -60,70 +60,70 @@ insert into t1 values
('15-2001-1', '%d-%Y-%c');
select date,format,str_to_date(date, format) as str_to_date from t1;
date format str_to_date
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12
03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 08:11:02
03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12.000000
03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02.000000
0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 08:11:02.000000
03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02.000000
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12.000000
2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.123450
2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.123450
2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12.123450
2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 23:11:12
10:20:10 %H:%i:%s 0000-00-00 10:20:10
10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10
10:20:10 %T 0000-00-00 10:20:10
10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10
10:20:10AM %r 0000-00-00 10:20:10
2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 23:11:12.000000
10:20:10 %H:%i:%s 0000-00-00 10:20:10.000000
10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10.000000
10:20:10 %T 0000-00-00 10:20:10.000000
10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10.000000
10:20:10AM %r 0000-00-00 10:20:10.000000
10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10.440000
15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 12:59:58
15 September 2001 %d %M %Y 2001-09-15 00:00:00
15 SEPTEMB 2001 %d %M %Y 2001-09-15 00:00:00
15 MAY 2001 %d %b %Y 2001-05-15 00:00:00
15th May 2001 %D %b %Y 2001-05-15 00:00:00
Sunday 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00
Sund 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00
Tuesday 00 2002 %W %U %Y 2002-01-01 00:00:00
Thursday 53 1998 %W %u %Y 1998-12-31 00:00:00
Sunday 01 2001 %W %v %x 2001-01-07 00:00:00
Tuesday 52 2001 %W %V %X 2002-01-01 00:00:00
060 2004 %j %Y 2004-02-29 00:00:00
4 53 1998 %w %u %Y 1998-12-31 00:00:00
15-01-2001 %d-%m-%Y %H:%i:%S 2001-01-15 00:00:00
15-01-20 %d-%m-%y 2020-01-15 00:00:00
15-2001-1 %d-%Y-%c 2001-01-15 00:00:00
15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 12:59:58.000000
15 September 2001 %d %M %Y 2001-09-15 00:00:00.000000
15 SEPTEMB 2001 %d %M %Y 2001-09-15 00:00:00.000000
15 MAY 2001 %d %b %Y 2001-05-15 00:00:00.000000
15th May 2001 %D %b %Y 2001-05-15 00:00:00.000000
Sunday 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00.000000
Sund 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00.000000
Tuesday 00 2002 %W %U %Y 2002-01-01 00:00:00.000000
Thursday 53 1998 %W %u %Y 1998-12-31 00:00:00.000000
Sunday 01 2001 %W %v %x 2001-01-07 00:00:00.000000
Tuesday 52 2001 %W %V %X 2002-01-01 00:00:00.000000
060 2004 %j %Y 2004-02-29 00:00:00.000000
4 53 1998 %w %u %Y 1998-12-31 00:00:00.000000
15-01-2001 %d-%m-%Y %H:%i:%S 2001-01-15 00:00:00.000000
15-01-20 %d-%m-%y 2020-01-15 00:00:00.000000
15-2001-1 %d-%Y-%c 2001-01-15 00:00:00.000000
select date,format,concat('',str_to_date(date, format)) as con from t1;
date format con
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12
03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 08:11:02
03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12.000000
03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02.000000
0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 08:11:02.000000
03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02.000000
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12.000000
2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.123450
2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.123450
2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12.123450
2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 23:11:12
10:20:10 %H:%i:%s 0000-00-00 10:20:10
10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10
10:20:10 %T 0000-00-00 10:20:10
10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10
10:20:10AM %r 0000-00-00 10:20:10
2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 23:11:12.000000
10:20:10 %H:%i:%s 0000-00-00 10:20:10.000000
10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10.000000
10:20:10 %T 0000-00-00 10:20:10.000000
10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10.000000
10:20:10AM %r 0000-00-00 10:20:10.000000
10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10.440000
15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 12:59:58
15 September 2001 %d %M %Y 2001-09-15 00:00:00
15 SEPTEMB 2001 %d %M %Y 2001-09-15 00:00:00
15 MAY 2001 %d %b %Y 2001-05-15 00:00:00
15th May 2001 %D %b %Y 2001-05-15 00:00:00
Sunday 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00
Sund 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00
Tuesday 00 2002 %W %U %Y 2002-01-01 00:00:00
Thursday 53 1998 %W %u %Y 1998-12-31 00:00:00
Sunday 01 2001 %W %v %x 2001-01-07 00:00:00
Tuesday 52 2001 %W %V %X 2002-01-01 00:00:00
060 2004 %j %Y 2004-02-29 00:00:00
4 53 1998 %w %u %Y 1998-12-31 00:00:00
15-01-2001 %d-%m-%Y %H:%i:%S 2001-01-15 00:00:00
15-01-20 %d-%m-%y 2020-01-15 00:00:00
15-2001-1 %d-%Y-%c 2001-01-15 00:00:00
15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 12:59:58.000000
15 September 2001 %d %M %Y 2001-09-15 00:00:00.000000
15 SEPTEMB 2001 %d %M %Y 2001-09-15 00:00:00.000000
15 MAY 2001 %d %b %Y 2001-05-15 00:00:00.000000
15th May 2001 %D %b %Y 2001-05-15 00:00:00.000000
Sunday 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00.000000
Sund 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00.000000
Tuesday 00 2002 %W %U %Y 2002-01-01 00:00:00.000000
Thursday 53 1998 %W %u %Y 1998-12-31 00:00:00.000000
Sunday 01 2001 %W %v %x 2001-01-07 00:00:00.000000
Tuesday 52 2001 %W %V %X 2002-01-01 00:00:00.000000
060 2004 %j %Y 2004-02-29 00:00:00.000000
4 53 1998 %w %u %Y 1998-12-31 00:00:00.000000
15-01-2001 %d-%m-%Y %H:%i:%S 2001-01-15 00:00:00.000000
15-01-20 %d-%m-%y 2020-01-15 00:00:00.000000
15-2001-1 %d-%Y-%c 2001-01-15 00:00:00.000000
select date,format,cast(str_to_date(date, format) as datetime) as datetime from t1;
date format datetime
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12
@ -352,16 +352,16 @@ insert into t1 values
('03-01-02 10:11:12 PM', '%Y-%m-%d %h:%i:%S %p');
select date,format,str_to_date(date, format) as str_to_date from t1;
date format str_to_date
10:20:10AM %h:%i:%s 0000-00-00 10:20:10
2003-01-02 10:11:12 %Y-%m-%d %h:%i:%S 2003-01-02 10:11:12
03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
10:20:10AM %h:%i:%s 0000-00-00 10:20:10.000000
2003-01-02 10:11:12 %Y-%m-%d %h:%i:%S 2003-01-02 10:11:12.000000
03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12.000000
Warnings:
Warning 1292 Truncated incorrect datetime value: '10:20:10AM'
select date,format,concat(str_to_date(date, format),'') as con from t1;
date format con
10:20:10AM %h:%i:%s 0000-00-00 10:20:10
2003-01-02 10:11:12 %Y-%m-%d %h:%i:%S 2003-01-02 10:11:12
03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
10:20:10AM %h:%i:%s 0000-00-00 10:20:10.000000
2003-01-02 10:11:12 %Y-%m-%d %h:%i:%S 2003-01-02 10:11:12.000000
03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12.000000
Warnings:
Warning 1292 Truncated incorrect datetime value: '10:20:10AM'
drop table t1;
@ -418,7 +418,7 @@ drop table t1;
create table t1 select "02 10" as a, "%d %H" as b;
select str_to_date(a,b) from t1;
str_to_date(a,b)
0000-00-02 10:00:00
0000-00-02 10:00:00.000000
create table t2 select str_to_date(a,b) from t1;
describe t2;
Field Type Null Key Default Extra