File: str_to_datetime_457.test

package info (click to toggle)
mariadb 1%3A11.8.2-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 765,428 kB
  • sloc: ansic: 2,382,827; cpp: 1,803,532; asm: 378,315; perl: 63,176; sh: 46,496; pascal: 40,776; java: 39,363; yacc: 20,428; python: 19,506; sql: 17,864; xml: 12,463; ruby: 8,544; makefile: 6,059; cs: 5,855; ada: 1,700; lex: 1,193; javascript: 1,039; objc: 80; tcl: 73; awk: 46; php: 22
file content (26 lines) | stat: -rw-r--r-- 1,242 bytes parent folder | download | duplicates (13)
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);