aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravevad <avevad@yandex-team.com>2025-01-11 18:42:39 +0300
committeravevad <avevad@yandex-team.com>2025-01-11 19:02:17 +0300
commit65e07a4680ac991775ac49efe729e9ce859269ef (patch)
tree954f2f0978b850f74d95a94acd1a6301520f5857
parent2ce6f2ac701e5e2127c468e9b0b05b9c7ad83b11 (diff)
downloadydb-65e07a4680ac991775ac49efe729e9ce859269ef.tar.gz
YQL-19196 Remove optional over NullType in SpreadMembers
commit_hash:d59d08bbca99c0be75c6f2f41a4f20ad8847647e
-rwxr-xr-xyql/essentials/mount/lib/yql/core.yqls3
-rw-r--r--yql/essentials/tests/sql/minirun/part9/canondata/result.json14
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/result.json12
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_expr-spreadmembers_null_/formatted.sql8
-rw-r--r--yql/essentials/tests/sql/suites/expr/spreadmembers_null.sql8
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