diff options
author | robot-piglet <[email protected]> | 2025-08-13 19:14:34 +0300 |
---|---|---|
committer | robot-piglet <[email protected]> | 2025-08-13 19:26:32 +0300 |
commit | aae2cfe567a3498ec7c2d50a736c816fe57c4a9f (patch) | |
tree | 8247490e22be450864d4b5bef5a167f58e53f75a /yql/essentials/tests/sql/suites/datetime/date_implicit_casts.yql | |
parent | 3b79116cac370b648c75323b866927d32aab08f4 (diff) |
Intermediate changes
commit_hash:e6cca97ec9c9627f1ba82a11abf454518fc90972
Diffstat (limited to 'yql/essentials/tests/sql/suites/datetime/date_implicit_casts.yql')
-rw-r--r-- | yql/essentials/tests/sql/suites/datetime/date_implicit_casts.yql | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/yql/essentials/tests/sql/suites/datetime/date_implicit_casts.yql b/yql/essentials/tests/sql/suites/datetime/date_implicit_casts.yql new file mode 100644 index 00000000000..0030b0811dd --- /dev/null +++ b/yql/essentials/tests/sql/suites/datetime/date_implicit_casts.yql @@ -0,0 +1,46 @@ +PRAGMA warning('disable', '4528'); + +$fromTypes = { + "Date": "2025-03-19", + "Datetime": "2025-03-19T01:02:03Z", + "Timestamp": "2025-03-19T01:02:03.456789Z", +}; + +$toTypes = [ + "Date", "Datetime", "Timestamp", + "TzDate", "TzDatetime", "TzTimestamp", + "Date32", "Datetime64", "Timestamp64", + "TzDate32", "TzDatetime64", "TzTimestamp64", +]; + +$allowed = { + "Date": { + /* - */ "Datetime", "Timestamp", + "TzDate", "TzDatetime", "TzTimestamp", + "Date32", "DateTime64", "Timestamp64", + "TzDate32", "TzDatetime64", "TzTimestamp64", + }, + "Datetime": { + /* - */ /* - */ "Timestamp", + /* - */ "TzDatetime", "TzTimestamp", + /* - */ "DateTime64", "Timestamp64", + /* - */ "TzDatetime64", "TzTimestamp64", + }, + "Timestamp": { + /* - */ /* - */ /* - */ + /* - */ /* - */ "TzTimestamp", + /* - */ /* - */ "Timestamp64", + /* - */ /* - */ "TzTimestamp64", + }, +}; + +EVALUATE FOR $from IN DictItems($fromTypes) DO BEGIN + EVALUATE FOR $to IN $toTypes DO BEGIN + EVALUATE IF DictContains($allowed[$from.0], $to) DO BEGIN + $callable = Callable(CallableType(0, String, DataType($to)), ($x)->(cast($x as String))); + $srcType = DataType($from.0); + SELECT $from.0 || " => " || $to, + $callable(Unwrap(CAST($from.1 as $srcType))) + END DO; + END DO; +END DO; |