File: str_to_datetime_457.test

package info (click to toggle)
mariadb-10.0 10.0.32-0%2Bdeb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 476,064 kB
  • sloc: cpp: 1,400,131; ansic: 832,140; perl: 54,391; sh: 41,304; pascal: 32,365; yacc: 14,921; xml: 5,257; sql: 4,667; cs: 4,647; makefile: 4,555; ruby: 4,465; python: 2,292; lex: 1,427; java: 941; asm: 295; awk: 54; php: 22; sed: 16
file content (26 lines) | stat: -rw-r--r-- 1,242 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#
# MDEV-457 Inconsistent data truncation on datetime values with fractional seconds represented as strings with no delimiters 
# (and other problems with str_to_datetime)
#

# first was ok, second was not
select cast('01:02:03   ' as time), cast('01:02:03    ' as time);
# first two were ok, third was not
select cast('2002-011-012' as date), cast('2002.11.12' as date), cast('2002.011.012' as date);
# only two microsecond digits were ok, third was truncated with a warning
select cast('2012103123595912' as datetime(6)), cast('20121031235959123' as datetime(6));
# zero string date was considered 'out of range'. Must be either ok or invalid format
select cast(0 as date), cast('0000-00-00' as date), cast('0' as date);
# first was ok, second was not
select extract(hour from '100000:02:03'), extract(hour from '100000:02:03 ');

--echo #
--echo # backward compatibility craziness
--echo #
select cast('12:00:00.12.34.56' as time); # was 12:00:00
select cast('12:00:00 12.34.56' as time); # was 12:34:56
select cast('12:00:00-12.34.56' as time); # was 12:00:00
select cast('12:00:00.12.34.56' as datetime);
select cast('12:00:00-12.34.56' as datetime);
select cast('12:00:00 12.34.56' as datetime);
select cast('12:00:00.123456' as time);