diff options
author | Alexander Smirnov <alex@ydb.tech> | 2024-11-20 11:14:58 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2024-11-20 11:14:58 +0000 |
commit | 31773f157bf8164364649b5f470f52dece0a4317 (patch) | |
tree | 33d0f7eef45303ab68cf08ab381ce5e5e36c5240 /yql/essentials/tests/postgresql/original/cases/timetz.out | |
parent | 2c7938962d8689e175574fc1e817c05049f27905 (diff) | |
parent | eff600952d5dfe17942f38f510a8ac2b203bb3a5 (diff) | |
download | ydb-31773f157bf8164364649b5f470f52dece0a4317.tar.gz |
Merge branch 'rightlib' into mergelibs-241120-1113
Diffstat (limited to 'yql/essentials/tests/postgresql/original/cases/timetz.out')
-rw-r--r-- | yql/essentials/tests/postgresql/original/cases/timetz.out | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/yql/essentials/tests/postgresql/original/cases/timetz.out b/yql/essentials/tests/postgresql/original/cases/timetz.out new file mode 100644 index 0000000000..f4960c0166 --- /dev/null +++ b/yql/essentials/tests/postgresql/original/cases/timetz.out @@ -0,0 +1,233 @@ +-- +-- TIMETZ +-- +CREATE TABLE TIMETZ_TBL (f1 time(2) with time zone); +INSERT INTO TIMETZ_TBL VALUES ('00:01 PDT'); +INSERT INTO TIMETZ_TBL VALUES ('01:00 PDT'); +INSERT INTO TIMETZ_TBL VALUES ('02:03 PDT'); +INSERT INTO TIMETZ_TBL VALUES ('07:07 PST'); +INSERT INTO TIMETZ_TBL VALUES ('08:08 EDT'); +INSERT INTO TIMETZ_TBL VALUES ('11:59 PDT'); +INSERT INTO TIMETZ_TBL VALUES ('12:00 PDT'); +INSERT INTO TIMETZ_TBL VALUES ('12:01 PDT'); +INSERT INTO TIMETZ_TBL VALUES ('23:59 PDT'); +INSERT INTO TIMETZ_TBL VALUES ('11:59:59.99 PM PDT'); +INSERT INTO TIMETZ_TBL VALUES ('2003-03-07 15:36:39 America/New_York'); +INSERT INTO TIMETZ_TBL VALUES ('2003-07-07 15:36:39 America/New_York'); +-- this should fail (the timezone offset is not known) +INSERT INTO TIMETZ_TBL VALUES ('15:36:39 America/New_York'); +ERROR: invalid input syntax for type time with time zone: "15:36:39 America/New_York" +LINE 1: INSERT INTO TIMETZ_TBL VALUES ('15:36:39 America/New_York'); + ^ +-- this should fail (timezone not specified without a date) +INSERT INTO TIMETZ_TBL VALUES ('15:36:39 m2'); +ERROR: invalid input syntax for type time with time zone: "15:36:39 m2" +LINE 1: INSERT INTO TIMETZ_TBL VALUES ('15:36:39 m2'); + ^ +-- this should fail (dynamic timezone abbreviation without a date) +INSERT INTO TIMETZ_TBL VALUES ('15:36:39 MSK m2'); +ERROR: invalid input syntax for type time with time zone: "15:36:39 MSK m2" +LINE 1: INSERT INTO TIMETZ_TBL VALUES ('15:36:39 MSK m2'); + ^ +SELECT f1 AS "Time TZ" FROM TIMETZ_TBL; + Time TZ +---------------- + 00:01:00-07 + 01:00:00-07 + 02:03:00-07 + 07:07:00-08 + 08:08:00-04 + 11:59:00-07 + 12:00:00-07 + 12:01:00-07 + 23:59:00-07 + 23:59:59.99-07 + 15:36:39-05 + 15:36:39-04 +(12 rows) + +SELECT f1 AS "Three" FROM TIMETZ_TBL WHERE f1 < '05:06:07-07'; + Three +------------- + 00:01:00-07 + 01:00:00-07 + 02:03:00-07 +(3 rows) + +SELECT f1 AS "Seven" FROM TIMETZ_TBL WHERE f1 > '05:06:07-07'; + Seven +---------------- + 07:07:00-08 + 08:08:00-04 + 11:59:00-07 + 12:00:00-07 + 12:01:00-07 + 23:59:00-07 + 23:59:59.99-07 + 15:36:39-05 + 15:36:39-04 +(9 rows) + +SELECT f1 AS "None" FROM TIMETZ_TBL WHERE f1 < '00:00-07'; + None +------ +(0 rows) + +SELECT f1 AS "Ten" FROM TIMETZ_TBL WHERE f1 >= '00:00-07'; + Ten +---------------- + 00:01:00-07 + 01:00:00-07 + 02:03:00-07 + 07:07:00-08 + 08:08:00-04 + 11:59:00-07 + 12:00:00-07 + 12:01:00-07 + 23:59:00-07 + 23:59:59.99-07 + 15:36:39-05 + 15:36:39-04 +(12 rows) + +-- Check edge cases +SELECT '23:59:59.999999 PDT'::timetz; + timetz +-------------------- + 23:59:59.999999-07 +(1 row) + +SELECT '23:59:59.9999999 PDT'::timetz; -- rounds up + timetz +------------- + 24:00:00-07 +(1 row) + +SELECT '23:59:60 PDT'::timetz; -- rounds up + timetz +------------- + 24:00:00-07 +(1 row) + +SELECT '24:00:00 PDT'::timetz; -- allowed + timetz +------------- + 24:00:00-07 +(1 row) + +SELECT '24:00:00.01 PDT'::timetz; -- not allowed +ERROR: date/time field value out of range: "24:00:00.01 PDT" +LINE 1: SELECT '24:00:00.01 PDT'::timetz; + ^ +SELECT '23:59:60.01 PDT'::timetz; -- not allowed +ERROR: date/time field value out of range: "23:59:60.01 PDT" +LINE 1: SELECT '23:59:60.01 PDT'::timetz; + ^ +SELECT '24:01:00 PDT'::timetz; -- not allowed +ERROR: date/time field value out of range: "24:01:00 PDT" +LINE 1: SELECT '24:01:00 PDT'::timetz; + ^ +SELECT '25:00:00 PDT'::timetz; -- not allowed +ERROR: date/time field value out of range: "25:00:00 PDT" +LINE 1: SELECT '25:00:00 PDT'::timetz; + ^ +-- +-- TIME simple math +-- +-- We now make a distinction between time and intervals, +-- and adding two times together makes no sense at all. +-- Leave in one query to show that it is rejected, +-- and do the rest of the testing in horology.sql +-- where we do mixed-type arithmetic. - thomas 2000-12-02 +SELECT f1 + time with time zone '00:01' AS "Illegal" FROM TIMETZ_TBL; +ERROR: operator does not exist: time with time zone + time with time zone +LINE 1: SELECT f1 + time with time zone '00:01' AS "Illegal" FROM TI... + ^ +HINT: No operator matches the given name and argument types. You might need to add explicit type casts. +-- +-- test EXTRACT +-- +SELECT EXTRACT(MICROSECOND FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); + extract +---------- + 25575401 +(1 row) + +SELECT EXTRACT(MILLISECOND FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); + extract +----------- + 25575.401 +(1 row) + +SELECT EXTRACT(SECOND FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); + extract +----------- + 25.575401 +(1 row) + +SELECT EXTRACT(MINUTE FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); + extract +--------- + 30 +(1 row) + +SELECT EXTRACT(HOUR FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); + extract +--------- + 13 +(1 row) + +SELECT EXTRACT(DAY FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); -- error +ERROR: "time with time zone" units "day" not recognized +SELECT EXTRACT(FORTNIGHT FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); -- error +ERROR: "time with time zone" units "fortnight" not recognized +SELECT EXTRACT(TIMEZONE FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04:30'); + extract +--------- + -16200 +(1 row) + +SELECT EXTRACT(TIMEZONE_HOUR FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04:30'); + extract +--------- + -4 +(1 row) + +SELECT EXTRACT(TIMEZONE_MINUTE FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04:30'); + extract +--------- + -30 +(1 row) + +SELECT EXTRACT(EPOCH FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); + extract +-------------- + 63025.575401 +(1 row) + +-- date_part implementation is mostly the same as extract, so only +-- test a few cases for additional coverage. +SELECT date_part('microsecond', TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); + date_part +----------- + 25575401 +(1 row) + +SELECT date_part('millisecond', TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); + date_part +----------- + 25575.401 +(1 row) + +SELECT date_part('second', TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); + date_part +----------- + 25.575401 +(1 row) + +SELECT date_part('epoch', TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); + date_part +-------------- + 63025.575401 +(1 row) + |