Skip to content

Commit 533bb5c

Browse files
authored
Minor: clean up timestamp arithmetic tests (#5803)
1 parent ab2ad35 commit 533bb5c

File tree

1 file changed

+41
-62
lines changed

1 file changed

+41
-62
lines changed

datafusion/core/tests/sqllogictests/test_files/timestamps.slt

+41-62
Original file line numberDiff line numberDiff line change
@@ -466,13 +466,19 @@ SELECT INTERVAL '8' MONTH + '2000-01-01T00:00:00'::timestamp;
466466
----
467467
2000-09-01T00:00:00
468468

469-
# Interval columns are created with timestamp subtraction in subquery since they are not supported yet
470469
statement ok
471-
create table foo (val int, ts1 timestamp, ts2 timestamp) as values
472-
(1, '2023-03-15T15:00:20.000000123'::timestamp, '2023-01-20T23:00:00.000000099'::timestamp),
473-
(2, '2023-02-28T12:01:55.000123456'::timestamp, '2000-02-23T11:00:00.123000001'::timestamp),
474-
(3, '2033-11-02T23:22:13.000123456'::timestamp, '1990-03-01T00:00:00.333000001'::timestamp),
475-
(4, '2003-07-11T01:31:15.000123456'::timestamp, '2045-04-11T15:00:00.000000001'::timestamp);
470+
create table foo (val int, ts1 timestamp, ts2 timestamp, i interval) as values
471+
(1, '2023-03-15T15:00:20.000000123'::timestamp, '2023-01-20T23:00:00.000000099'::timestamp, '1 day'::interval),
472+
(2, '2023-02-28T12:01:55.000123456'::timestamp, '2000-02-23T11:00:00.123000001'::timestamp, '2 months'::interval),
473+
(3, '2033-11-02T23:22:13.000123456'::timestamp, '1990-03-01T00:00:00.333000001'::timestamp, '1 day 3 hours'::interval),
474+
(4, '2003-07-11T01:31:15.000123456'::timestamp, '2045-04-11T15:00:00.000000001'::timestamp, '1 day 7 nanoseconds'::interval);
475+
476+
statement ok
477+
create table bar (val int, i1 interval, i2 interval) as values
478+
(1, '1 day'::interval, '2 days'::interval),
479+
(2, '2 months'::interval, '13 days'::interval),
480+
(3, '1 day 3 hours'::interval, '4 minutes'::interval),
481+
(4, '1 day 7 nanoseconds'::interval, '4 seconds'::interval);
476482

477483
# Timestamp - Timestamp
478484
query I?
@@ -485,73 +491,48 @@ SELECT val, ts1 - ts2 FROM foo ORDER BY ts2 - ts1;
485491

486492
# Interval - Interval
487493
query ?
488-
SELECT subq.interval1 - subq.interval2
489-
FROM (
490-
SELECT ts1 - ts2 AS interval1,
491-
ts2 - ts1 AS interval2
492-
FROM foo
493-
) AS subq;
494+
SELECT i1 - i2 FROM bar;
494495
----
495-
0 years 0 mons 106 days 32 hours 0 mins 40.000000048 secs
496-
0 years 0 mons 16812 days 2 hours 3 mins 49.754246910 secs
497-
0 years 0 mons 31904 days 46 hours 44 mins 25.334246910 secs
498-
0 years 0 mons -30500 days -26 hours -57 mins -29.999753090 secs
496+
0 years 0 mons -1 days 0 hours 0 mins 0.000000000 secs
497+
0 years 2 mons -13 days 0 hours 0 mins 0.000000000 secs
498+
0 years 0 mons 1 days 2 hours 56 mins 0.000000000 secs
499+
0 years 0 mons 1 days 0 hours 0 mins -3.999999993 secs
499500

500501
# Interval + Interval
501502
query ?
502-
SELECT subq.interval1 + subq.interval2
503-
FROM (
504-
SELECT ts1 - ts2 AS interval1,
505-
ts2 - ts1 AS interval2
506-
FROM foo
507-
) AS subq;
503+
SELECT i1 + i2 FROM bar;
508504
----
509-
0 years 0 mons 0 days 0 hours 0 mins 0.000000000 secs
510-
0 years 0 mons 0 days 0 hours 0 mins 0.000000000 secs
511-
0 years 0 mons 0 days 0 hours 0 mins 0.000000000 secs
512-
0 years 0 mons 0 days 0 hours 0 mins 0.000000000 secs
505+
0 years 0 mons 3 days 0 hours 0 mins 0.000000000 secs
506+
0 years 2 mons 13 days 0 hours 0 mins 0.000000000 secs
507+
0 years 0 mons 1 days 3 hours 4 mins 0.000000000 secs
508+
0 years 0 mons 1 days 0 hours 0 mins 4.000000007 secs
513509

514510
# Timestamp - Interval
515511
query P
516-
SELECT subq.ts1 - subq.interval1
517-
FROM (
518-
SELECT ts1,
519-
ts1 - ts2 AS interval1
520-
FROM foo
521-
) AS subq;
512+
SELECT ts1 - i FROM foo;
522513
----
523-
2023-01-20T23:00:00.000000099
524-
2000-02-23T11:00:00.123000001
525-
1990-03-01T00:00:00.333000001
526-
2045-04-11T15:00:00.000000001
514+
2023-03-14T15:00:20.000000123
515+
2022-12-28T12:01:55.000123456
516+
2033-11-01T20:22:13.000123456
517+
2003-07-10T01:31:15.000123449
527518

528519
# Interval + Timestamp
529520
query P
530-
SELECT subq.interval1 + subq.ts1
531-
FROM (
532-
SELECT ts1,
533-
ts1 - ts2 AS interval1
534-
FROM foo
535-
) AS subq;
521+
SELECT i + ts1 FROM foo;
536522
----
537-
2023-05-08T07:00:40.000000147
538-
2046-03-05T13:03:49.877246911
539-
2077-07-07T22:44:25.667246911
540-
1961-10-08T12:02:30.000246911
523+
2023-03-16T15:00:20.000000123
524+
2023-04-28T12:01:55.000123456
525+
2033-11-04T02:22:13.000123456
526+
2003-07-12T01:31:15.000123463
541527

542528
# Timestamp + Interval
543529
query P
544-
SELECT subq.ts1 + subq.interval1
545-
FROM (
546-
SELECT ts1,
547-
ts1 - ts2 AS interval1
548-
FROM foo
549-
) AS subq;
530+
SELECT ts1 + i FROM foo;
550531
----
551-
2023-05-08T07:00:40.000000147
552-
2046-03-05T13:03:49.877246911
553-
2077-07-07T22:44:25.667246911
554-
1961-10-08T12:02:30.000246911
532+
2023-03-16T15:00:20.000000123
533+
2023-04-28T12:01:55.000123456
534+
2033-11-04T02:22:13.000123456
535+
2003-07-12T01:31:15.000123463
555536

556537
# Timestamp + Timestamp => error
557538
statement error DataFusion error: Error during planning: Timestamp\(Nanosecond, None\) Timestamp\(Nanosecond, None\) is an unsupported operation. addition/subtraction on dates/timestamps only supported with interval types
@@ -560,16 +541,14 @@ FROM foo;
560541

561542
# Interval - Timestamp => error
562543
statement error DataFusion error: Error during planning: Interval\(MonthDayNano\) - Timestamp\(Nanosecond, None\) can't be evaluated because there isn't a common type to coerce the types to
563-
SELECT subq.interval1 - subq.ts1
564-
FROM (
565-
SELECT ts1,
566-
ts1 - ts2 AS interval1
567-
FROM foo
568-
) AS subq;
544+
SELECT i - ts1 from FOO;
569545

570546
statement ok
571547
drop table foo;
572548

549+
statement ok
550+
drop table bar;
551+
573552
# timestamptz to utf8 conversion
574553
query BBBB
575554
SELECT

0 commit comments

Comments
 (0)