summaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/sql/suites/datetime/date_implicit_casts.yql
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-08-13 19:14:34 +0300
committerrobot-piglet <[email protected]>2025-08-13 19:26:32 +0300
commitaae2cfe567a3498ec7c2d50a736c816fe57c4a9f (patch)
tree8247490e22be450864d4b5bef5a167f58e53f75a /yql/essentials/tests/sql/suites/datetime/date_implicit_casts.yql
parent3b79116cac370b648c75323b866927d32aab08f4 (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.yql46
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;