diff options
author | avevad <avevad@yandex-team.com> | 2025-01-11 18:42:39 +0300 |
---|---|---|
committer | avevad <avevad@yandex-team.com> | 2025-01-11 19:02:17 +0300 |
commit | 65e07a4680ac991775ac49efe729e9ce859269ef (patch) | |
tree | 954f2f0978b850f74d95a94acd1a6301520f5857 | |
parent | 2ce6f2ac701e5e2127c468e9b0b05b9c7ad83b11 (diff) | |
download | ydb-65e07a4680ac991775ac49efe729e9ce859269ef.tar.gz |
YQL-19196 Remove optional over NullType in SpreadMembers
commit_hash:d59d08bbca99c0be75c6f2f41a4f20ad8847647e
5 files changed, 44 insertions, 1 deletions
diff --git a/yql/essentials/mount/lib/yql/core.yqls b/yql/essentials/mount/lib/yql/core.yqls index be99a7f87e..ab00b96067 100755 --- a/yql/essentials/mount/lib/yql/core.yqls +++ b/yql/essentials/mount/lib/yql/core.yqls @@ -407,7 +407,8 @@ def signature(script, name): (let list (If force list (ListMap list check))) (let type (Apply RemoveOptionalType (TypeOf list))) (let itemType (TupleElementType (ListItemType type) '1)) - (let optType (OptionalType (Apply RemoveOptionalType itemType))) + (let noOptType (Apply RemoveOptionalType itemType)) + (let optType (MatchType noOptType 'Pg (lambda '() noOptType) (lambda '() (MatchType noOptType 'Null (lambda '() noOptType) (lambda '() (OptionalType noOptType)))))) (let empty (MatchType type 'EmptyList (lambda '() (Null)) (lambda '() (MatchType type 'Null (lambda '() (Null)) (lambda '() (Nothing optType))))) ) diff --git a/yql/essentials/tests/sql/minirun/part9/canondata/result.json b/yql/essentials/tests/sql/minirun/part9/canondata/result.json index 5fc20d1c19..75d624df78 100644 --- a/yql/essentials/tests/sql/minirun/part9/canondata/result.json +++ b/yql/essentials/tests/sql/minirun/part9/canondata/result.json @@ -506,6 +506,20 @@ "uri": "https://{canondata_backend}/1942525/67e48e62cc0c5eb3bc9702e8bca0cc2d86a18994/resource.tar.gz#test.test_expr-sets-default.txt-Results_/results.txt" } ], + "test.test[expr-spreadmembers_null-default.txt-Debug]": [ + { + "checksum": "9de93db678935944273563ee92af688b", + "size": 1271, + "uri": "https://{canondata_backend}/1881367/bc64602ea77a51e399df4df3990bf30a718368d9/resource.tar.gz#test.test_expr-spreadmembers_null-default.txt-Debug_/opt.yql" + } + ], + "test.test[expr-spreadmembers_null-default.txt-Results]": [ + { + "checksum": "fbe31dee021315299c73915759258ba9", + "size": 2582, + "uri": "https://{canondata_backend}/1881367/bc64602ea77a51e399df4df3990bf30a718368d9/resource.tar.gz#test.test_expr-spreadmembers_null-default.txt-Results_/results.txt" + } + ], "test.test[expr-struct_merge-default.txt-Debug]": [ { "checksum": "188fde75c310592c82f4c4a70f1214c6", diff --git a/yql/essentials/tests/sql/sql2yql/canondata/result.json b/yql/essentials/tests/sql/sql2yql/canondata/result.json index 3fdd5230e3..3c9da73918 100644 --- a/yql/essentials/tests/sql/sql2yql/canondata/result.json +++ b/yql/essentials/tests/sql/sql2yql/canondata/result.json @@ -2722,6 +2722,13 @@ "uri": "https://{canondata_backend}/1942173/99e88108149e222741552e7e6cddef041d6a2846/resource.tar.gz#test_sql2yql.test_expr-sets_/sql.yql" } ], + "test_sql2yql.test[expr-spreadmembers_null]": [ + { + "checksum": "01e52abc3971138e91babf13e4708564", + "size": 1554, + "uri": "https://{canondata_backend}/1936842/a62a2131fa88b79db0ab82b2187b9c1f58bc5d34/resource.tar.gz#test_sql2yql.test_expr-spreadmembers_null_/sql.yql" + } + ], "test_sql2yql.test[expr-static_fold]": [ { "checksum": "0f654d4b1c32f1e857ee7263087dee7a", @@ -8699,6 +8706,11 @@ "uri": "file://test_sql_format.test_expr-sets_/formatted.sql" } ], + "test_sql_format.test[expr-spreadmembers_null]": [ + { + "uri": "file://test_sql_format.test_expr-spreadmembers_null_/formatted.sql" + } + ], "test_sql_format.test[expr-static_fold]": [ { "uri": "file://test_sql_format.test_expr-static_fold_/formatted.sql" diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_expr-spreadmembers_null_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_expr-spreadmembers_null_/formatted.sql new file mode 100644 index 0000000000..f974540777 --- /dev/null +++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_expr-spreadmembers_null_/formatted.sql @@ -0,0 +1,8 @@ +$names = ['a', 'b']; +$null_fields = [('a', NULL), ('b', NULL)]; +$pg_fields = [('a', 1p), ('b', 2p)]; + +SELECT + SpreadMembers($null_fields, $names), + SpreadMembers($pg_fields, $names) +; diff --git a/yql/essentials/tests/sql/suites/expr/spreadmembers_null.sql b/yql/essentials/tests/sql/suites/expr/spreadmembers_null.sql new file mode 100644 index 0000000000..4adca4da28 --- /dev/null +++ b/yql/essentials/tests/sql/suites/expr/spreadmembers_null.sql @@ -0,0 +1,8 @@ +$names = ["a", "b"]; +$null_fields = [("a", NULL), ("b", NULL)]; +$pg_fields = [("a", 1p), ("b", 2p)]; + +SELECT + SpreadMembers($null_fields, $names), + SpreadMembers($pg_fields, $names) +;
\ No newline at end of file |