aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvvvv <vvvv@yandex-team.com>2025-01-23 22:12:01 +0300
committervvvv <vvvv@yandex-team.com>2025-01-23 22:30:24 +0300
commit707a3047759771809e881e169d40f37de19b8a7c (patch)
tree3365ba7dc9a7a1a28d81657aee5c480b33011db0
parent6c66b5c5c84c1d7c104f8b826d28cbae7ef30767 (diff)
downloadydb-707a3047759771809e881e169d40f37de19b8a7c.tar.gz
more tests YQL-19494
commit_hash:75f1224d46901f70f73eafb8b76d92e5b0163857
-rw-r--r--yql/essentials/providers/common/mkql/yql_provider_mkql.cpp3
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part1/canondata/result.json17
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part1/canondata/test.test_Stream-Squeeze1-default.txt-Results_/extracted14
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part2/canondata/result.json14
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part4/canondata/result.json14
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part5/canondata/result.json28
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part6/canondata/result.json14
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json14
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json31
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part8/canondata/test.test_Stream-Squeeze-default.txt-Results_/extracted14
-rw-r--r--yql/essentials/tests/s-expressions/suites/Builtins/KeepTop.yqls12
-rw-r--r--yql/essentials/tests/s-expressions/suites/Builtins/SqlColumnOrderFromYson.yqls10
-rw-r--r--yql/essentials/tests/s-expressions/suites/Builtins/SqlTypeFromYson.yqls10
-rw-r--r--yql/essentials/tests/s-expressions/suites/Pg/ColumnRefs.yqls13
-rw-r--r--yql/essentials/tests/s-expressions/suites/Pg/default.cfg2
-rw-r--r--yql/essentials/tests/s-expressions/suites/Stream/CombineCore.yqls14
-rw-r--r--yql/essentials/tests/s-expressions/suites/Stream/MultiHoppingCore.yqls23
-rw-r--r--yql/essentials/tests/s-expressions/suites/Stream/Squeeze.yqls10
-rw-r--r--yql/essentials/tests/s-expressions/suites/Stream/Squeeze1.yqls10
-rw-r--r--yql/essentials/tests/s-expressions/suites/Stream/SqueezeToList.yqls10
-rw-r--r--yql/essentials/tests/s-expressions/suites/Stream/default.cfg1
21 files changed, 277 insertions, 1 deletions
diff --git a/yql/essentials/providers/common/mkql/yql_provider_mkql.cpp b/yql/essentials/providers/common/mkql/yql_provider_mkql.cpp
index aedb35aa19..fa72b16126 100644
--- a/yql/essentials/providers/common/mkql/yql_provider_mkql.cpp
+++ b/yql/essentials/providers/common/mkql/yql_provider_mkql.cpp
@@ -1833,7 +1833,8 @@ TMkqlCommonCallableCompiler::TShared::TShared() {
NNodes::TCoCombineCore core(&node);
const auto stream = MkqlBuildExpr(core.Input().Ref(), ctx);
- const auto memLimit = FromString<ui64>(core.MemLimit().Cast().Value());
+ const auto memLimit = NNodes::TCoCombineCore::idx_MemLimit < node.ChildrenSize() ?
+ FromString<ui64>(core.MemLimit().Cast().Value()) : 0;
const auto keyExtractor = [&](TRuntimeNode item) {
return MkqlBuildLambda(core.KeyExtractor().Ref(), ctx, {item});
diff --git a/yql/essentials/tests/s-expressions/minirun/part1/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part1/canondata/result.json
index 035cfe5ecb..42412b5df1 100644
--- a/yql/essentials/tests/s-expressions/minirun/part1/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part1/canondata/result.json
@@ -636,5 +636,22 @@
"size": 587,
"uri": "https://{canondata_backend}/1942415/054c1d7fd20b3e982e839abb8377408e17c953e1/resource.tar.gz#test.test_Result-Resource-default.txt-Results_/results.txt"
}
+ ],
+ "test.test[Stream-Squeeze1-default.txt-Debug]": [
+ {
+ "checksum": "b3dd6f07aebb2a11aee21a0c2c920ab3",
+ "size": 246,
+ "uri": "https://{canondata_backend}/1937492/b0aad9e1a4dfe51745d834402a36af079c7698cd/resource.tar.gz#test.test_Stream-Squeeze1-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Stream-Squeeze1-default.txt-Results]": [
+ {
+ "checksum": "20a63d050eca6011f2d055aa1222d184",
+ "size": 332,
+ "uri": "https://{canondata_backend}/1937492/b0aad9e1a4dfe51745d834402a36af079c7698cd/resource.tar.gz#test.test_Stream-Squeeze1-default.txt-Results_/results.txt"
+ },
+ {
+ "uri": "file://test.test_Stream-Squeeze1-default.txt-Results_/extracted"
+ }
]
}
diff --git a/yql/essentials/tests/s-expressions/minirun/part1/canondata/test.test_Stream-Squeeze1-default.txt-Results_/extracted b/yql/essentials/tests/s-expressions/minirun/part1/canondata/test.test_Stream-Squeeze1-default.txt-Results_/extracted
new file mode 100644
index 0000000000..0aeebb8132
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/minirun/part1/canondata/test.test_Stream-Squeeze1-default.txt-Results_/extracted
@@ -0,0 +1,14 @@
+<tmp_path>/program.yql:<main>: Warning: Type annotation
+
+ <tmp_path>/program.yql:<main>:7:13: Warning: At function: RemovePrefixMembers
+ (let world (Write! world res_sink (Key) data '('('type))))
+ ^
+ <tmp_path>/program.yql:<main>:6:12: Warning: At function: Collect
+ (let data (Collect (Squeeze1 stream (lambda '(item) item) (lambda '(item state) (+ item state)) (Void) (Void))))
+ ^
+ <tmp_path>/program.yql:<main>:6:21: Warning: At function: Squeeze1
+ (let data (Collect (Squeeze1 stream (lambda '(item) item) (lambda '(item state) (+ item state)) (Void) (Void))))
+ ^
+ <tmp_path>/program.yql:<main>:5:14: Warning: Deprecated Squeeze1, use Condense1 instead.
+ (let stream (Iterator (AsList (Int32 '1) (Int32 '2) (Int32 '3))))
+ ^ \ No newline at end of file
diff --git a/yql/essentials/tests/s-expressions/minirun/part2/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part2/canondata/result.json
index d12c6b84e9..32fe3083d8 100644
--- a/yql/essentials/tests/s-expressions/minirun/part2/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part2/canondata/result.json
@@ -474,5 +474,19 @@
"size": 309,
"uri": "https://{canondata_backend}/1871002/edcb7a475cd238b4256032e362f6f6e3c46dfa70/resource.tar.gz#test.test_Result-TypeOf-default.txt-Results_/results.txt"
}
+ ],
+ "test.test[Stream-MultiHoppingCore-default.txt-Debug]": [
+ {
+ "checksum": "472913684ace19ffdd8e4d68d06f4954",
+ "size": 262,
+ "uri": "https://{canondata_backend}/1925821/99090308bf273de49fd8c0b31f41ae66a10a3c8b/resource.tar.gz#test.test_Stream-MultiHoppingCore-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Stream-MultiHoppingCore-default.txt-Results]": [
+ {
+ "checksum": "df26ed54c0af123ca0a0cacf26238617",
+ "size": 276,
+ "uri": "https://{canondata_backend}/1925821/99090308bf273de49fd8c0b31f41ae66a10a3c8b/resource.tar.gz#test.test_Stream-MultiHoppingCore-default.txt-Results_/results.txt"
+ }
]
}
diff --git a/yql/essentials/tests/s-expressions/minirun/part4/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part4/canondata/result.json
index b78715257f..22d9c04840 100644
--- a/yql/essentials/tests/s-expressions/minirun/part4/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part4/canondata/result.json
@@ -27,6 +27,20 @@
"uri": "https://{canondata_backend}/1937367/a03ac4d837ccef52ea501239f02225e7a5d14364/resource.tar.gz#test.test_Builtins-EnsureStrict-default.txt-Results_/results.txt"
}
],
+ "test.test[Builtins-SqlTypeFromYson-default.txt-Debug]": [
+ {
+ "checksum": "e47643a4fdc5456d64e979db6334ffb0",
+ "size": 195,
+ "uri": "https://{canondata_backend}/1920236/bf1a053f4e5bdccfbbfdea4eecb65a0941f4eab9/resource.tar.gz#test.test_Builtins-SqlTypeFromYson-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Builtins-SqlTypeFromYson-default.txt-Results]": [
+ {
+ "checksum": "e5938da16b830bf4c4eba7ef741078bc",
+ "size": 240,
+ "uri": "https://{canondata_backend}/1920236/bf1a053f4e5bdccfbbfdea4eecb65a0941f4eab9/resource.tar.gz#test.test_Builtins-SqlTypeFromYson-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Casts-AlterToEnormousList-default.txt-Debug]": [
{
"checksum": "844dc8f17557566103ac3586255fed72",
diff --git a/yql/essentials/tests/s-expressions/minirun/part5/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part5/canondata/result.json
index c7421e8397..41b9db9e47 100644
--- a/yql/essentials/tests/s-expressions/minirun/part5/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part5/canondata/result.json
@@ -27,6 +27,20 @@
"uri": "https://{canondata_backend}/1937367/565c4e59107d705814c669305114473a7776df84/resource.tar.gz#test.test_Builtins-EvaluateExprIfPure-default.txt-Results_/results.txt"
}
],
+ "test.test[Builtins-KeepTop-default.txt-Debug]": [
+ {
+ "checksum": "524a2f7d3fc9f3cf79a6a29272686f5b",
+ "size": 268,
+ "uri": "https://{canondata_backend}/1937367/01a9ecd207d6a4955cb36faae5d0f524e496de19/resource.tar.gz#test.test_Builtins-KeepTop-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Builtins-KeepTop-default.txt-Results]": [
+ {
+ "checksum": "df7fc092b2c8a5b0174029bf51e11003",
+ "size": 382,
+ "uri": "https://{canondata_backend}/1937367/01a9ecd207d6a4955cb36faae5d0f524e496de19/resource.tar.gz#test.test_Builtins-KeepTop-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Casts-AlterToOverDataTypes-default.txt-Debug]": [
{
"checksum": "251f00afec54bdd073072f07a89535fa",
@@ -604,6 +618,20 @@
"uri": "https://{canondata_backend}/1775319/b7f2999078d6075a080c3773f60862807cb7b630/resource.tar.gz#test.test_Optimizers-VisitOverVisit-default.txt-Results_/results.txt"
}
],
+ "test.test[Pg-ColumnRefs-default.txt-Debug]": [
+ {
+ "checksum": "c96e8504810a2c23c16aeac2642bcb1a",
+ "size": 181,
+ "uri": "https://{canondata_backend}/1775059/c4138262636ed57514866e8d594061687c6f4c24/resource.tar.gz#test.test_Pg-ColumnRefs-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Pg-ColumnRefs-default.txt-Results]": [
+ {
+ "checksum": "fb21905be57e5893273e7ff708501add",
+ "size": 234,
+ "uri": "https://{canondata_backend}/1775059/c4138262636ed57514866e8d594061687c6f4c24/resource.tar.gz#test.test_Pg-ColumnRefs-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Result-ListTakeOption-default.txt-Debug]": [
{
"checksum": "9b8c5aba706b1aedf73daddea623a14b",
diff --git a/yql/essentials/tests/s-expressions/minirun/part6/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part6/canondata/result.json
index 52f6236f0f..8b0a76c9b1 100644
--- a/yql/essentials/tests/s-expressions/minirun/part6/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part6/canondata/result.json
@@ -629,6 +629,20 @@
"uri": "https://{canondata_backend}/1942415/39cca2bf59dca4eac0d4f06394aa93077fe175ea/resource.tar.gz#test.test_Result-Apply-default.txt-Results_/results.txt"
}
],
+ "test.test[Stream-CombineCore-default.txt-Debug]": [
+ {
+ "checksum": "7560dd3f110762f4922fdf60686e9183",
+ "size": 339,
+ "uri": "https://{canondata_backend}/1925821/02155e0480f39f80c580e94fe4d468b9fe7108b2/resource.tar.gz#test.test_Stream-CombineCore-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Stream-CombineCore-default.txt-Results]": [
+ {
+ "checksum": "df7fc092b2c8a5b0174029bf51e11003",
+ "size": 382,
+ "uri": "https://{canondata_backend}/1925821/02155e0480f39f80c580e94fe4d468b9fe7108b2/resource.tar.gz#test.test_Stream-CombineCore-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Udf-CallOtherCallable--Debug]": [
{
"checksum": "a2fe64b855aa331a01558036c3bd93d2",
diff --git a/yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json
index 16865d98dc..db2afce474 100644
--- a/yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json
@@ -27,6 +27,20 @@
"uri": "https://{canondata_backend}/1031349/354aaf38eb0ee3061edf99404ec5c19d8889315f/resource.tar.gz#test.test_Builtins-Nvl-default.txt-Results_/results.txt"
}
],
+ "test.test[Builtins-SqlColumnOrderFromYson-default.txt-Debug]": [
+ {
+ "checksum": "b0333bdd28d68c266fec9d14f0a8069d",
+ "size": 136,
+ "uri": "https://{canondata_backend}/1920236/c7452f067ae0d1b502652ad92f7f9e54a00609fe/resource.tar.gz#test.test_Builtins-SqlColumnOrderFromYson-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Builtins-SqlColumnOrderFromYson-default.txt-Results]": [
+ {
+ "checksum": "f1e7d247c6ca7cb58ce878f5de7b9c17",
+ "size": 212,
+ "uri": "https://{canondata_backend}/1920236/c7452f067ae0d1b502652ad92f7f9e54a00609fe/resource.tar.gz#test.test_Builtins-SqlColumnOrderFromYson-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Casts-AlterToOverDataFloatTypes-default.txt-Debug]": [
{
"checksum": "9b4d469cf19d56e5c7fba1fcb759a8b0",
diff --git a/yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json
index 333edd40a0..404d2bd48a 100644
--- a/yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json
@@ -531,6 +531,37 @@
"uri": "https://{canondata_backend}/1777230/52bc68d899becf7bbae2237144774d811cdd833d/resource.tar.gz#test.test_Pure-PureStructListWithFields-default.txt-Results_/results.txt"
}
],
+ "test.test[Stream-Squeeze-default.txt-Debug]": [
+ {
+ "checksum": "1f2328e4026578c65e646eb7a8fe8d9b",
+ "size": 238,
+ "uri": "https://{canondata_backend}/1937424/2ee55d09b503476e2d7deadb086ab8557a4d6e61/resource.tar.gz#test.test_Stream-Squeeze-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Stream-Squeeze-default.txt-Results]": [
+ {
+ "checksum": "20a63d050eca6011f2d055aa1222d184",
+ "size": 332,
+ "uri": "https://{canondata_backend}/1937424/2ee55d09b503476e2d7deadb086ab8557a4d6e61/resource.tar.gz#test.test_Stream-Squeeze-default.txt-Results_/results.txt"
+ },
+ {
+ "uri": "file://test.test_Stream-Squeeze-default.txt-Results_/extracted"
+ }
+ ],
+ "test.test[Stream-SqueezeToList-default.txt-Debug]": [
+ {
+ "checksum": "31a85988bcdb3dcab636743471695688",
+ "size": 201,
+ "uri": "https://{canondata_backend}/1937424/2ee55d09b503476e2d7deadb086ab8557a4d6e61/resource.tar.gz#test.test_Stream-SqueezeToList-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Stream-SqueezeToList-default.txt-Results]": [
+ {
+ "checksum": "fd932d6473c0c901efeafd52a8d06354",
+ "size": 534,
+ "uri": "https://{canondata_backend}/1937424/2ee55d09b503476e2d7deadb086ab8557a4d6e61/resource.tar.gz#test.test_Stream-SqueezeToList-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Udf-CallableType-default.txt-Debug]": [
{
"checksum": "20510d6815ba5970c7f982d6dfe7b52f",
diff --git a/yql/essentials/tests/s-expressions/minirun/part8/canondata/test.test_Stream-Squeeze-default.txt-Results_/extracted b/yql/essentials/tests/s-expressions/minirun/part8/canondata/test.test_Stream-Squeeze-default.txt-Results_/extracted
new file mode 100644
index 0000000000..33ccc74f74
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/minirun/part8/canondata/test.test_Stream-Squeeze-default.txt-Results_/extracted
@@ -0,0 +1,14 @@
+<tmp_path>/program.yql:<main>: Warning: Type annotation
+
+ <tmp_path>/program.yql:<main>:7:13: Warning: At function: RemovePrefixMembers
+ (let world (Write! world res_sink (Key) data '('('type))))
+ ^
+ <tmp_path>/program.yql:<main>:6:12: Warning: At function: Collect
+ (let data (Collect (Squeeze stream (Int32 '0) (lambda '(item state) (+ item state)) (Void) (Void))))
+ ^
+ <tmp_path>/program.yql:<main>:6:21: Warning: At function: Squeeze
+ (let data (Collect (Squeeze stream (Int32 '0) (lambda '(item state) (+ item state)) (Void) (Void))))
+ ^
+ <tmp_path>/program.yql:<main>:5:14: Warning: Deprecated Squeeze, use Condense instead.
+ (let stream (Iterator (AsList (Int32 '1) (Int32 '2) (Int32 '3))))
+ ^ \ No newline at end of file
diff --git a/yql/essentials/tests/s-expressions/suites/Builtins/KeepTop.yqls b/yql/essentials/tests/s-expressions/suites/Builtins/KeepTop.yqls
new file mode 100644
index 0000000000..ae0042edfa
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Builtins/KeepTop.yqls
@@ -0,0 +1,12 @@
+(
+#comment
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+(let list (AsList (Int32 '1) (Int32 '3)))
+(let keyExtractor (lambda '(x) x))
+(let item (Int32 '2))
+(let data (Sort (KeepTop (Uint64 '2) list item (Bool 'true) keyExtractor) (Bool 'true) keyExtractor))
+(let world (Write! world res_sink (Key) data '('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)
diff --git a/yql/essentials/tests/s-expressions/suites/Builtins/SqlColumnOrderFromYson.yqls b/yql/essentials/tests/s-expressions/suites/Builtins/SqlColumnOrderFromYson.yqls
new file mode 100644
index 0000000000..a48d1f2ac7
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Builtins/SqlColumnOrderFromYson.yqls
@@ -0,0 +1,10 @@
+(
+#comment
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+(let data (SqlColumnOrderFromYson '"[StructType;[[foo;[DataType;Int32]];[bar;[DataType;String]]]]"))
+(let world (Write! world res_sink (Key) (FormatType (TypeOf data))'('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)
+
diff --git a/yql/essentials/tests/s-expressions/suites/Builtins/SqlTypeFromYson.yqls b/yql/essentials/tests/s-expressions/suites/Builtins/SqlTypeFromYson.yqls
new file mode 100644
index 0000000000..4488f81691
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Builtins/SqlTypeFromYson.yqls
@@ -0,0 +1,10 @@
+(
+#comment
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+(let data (SqlTypeFromYson '"[StructType;[[foo;[DataType;Int32]];[bar;[DataType;String]]]]"))
+(let world (Write! world res_sink (Key) (FormatType data)'('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)
+
diff --git a/yql/essentials/tests/s-expressions/suites/Pg/ColumnRefs.yqls b/yql/essentials/tests/s-expressions/suites/Pg/ColumnRefs.yqls
new file mode 100644
index 0000000000..0e06b68271
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Pg/ColumnRefs.yqls
@@ -0,0 +1,13 @@
+(
+#comment
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+(let data (FormatType (TupleType
+ (TypeOf (PgStar))
+ (TypeOf (PgQualifiedStar 'a))
+ (TypeOf (PgColumnRef 'a))
+ (TypeOf (PgColumnRef 'a 'b)))))
+(let world (Write! world res_sink (Key) data '('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)
diff --git a/yql/essentials/tests/s-expressions/suites/Pg/default.cfg b/yql/essentials/tests/s-expressions/suites/Pg/default.cfg
new file mode 100644
index 0000000000..01ea5c1898
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Pg/default.cfg
@@ -0,0 +1,2 @@
+res result.txt
+
diff --git a/yql/essentials/tests/s-expressions/suites/Stream/CombineCore.yqls b/yql/essentials/tests/s-expressions/suites/Stream/CombineCore.yqls
new file mode 100644
index 0000000000..d422f746ed
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Stream/CombineCore.yqls
@@ -0,0 +1,14 @@
+(
+#comment
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+(let stream (Iterator (AsList (Int32 '1) (Int32 '2) (Int32 '3))))
+(let keyExtractor (lambda '(item) item))
+(let init (lambda '(key item) item))
+(let update (lambda '(key item state) (+ item state)))
+(let finish (lambda '(key state) (Just state)))
+(let data (Sort (Collect (CombineCore stream keyExtractor init update finish)) (Bool 'true) keyExtractor))
+(let world (Write! world res_sink (Key) data '('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)
diff --git a/yql/essentials/tests/s-expressions/suites/Stream/MultiHoppingCore.yqls b/yql/essentials/tests/s-expressions/suites/Stream/MultiHoppingCore.yqls
new file mode 100644
index 0000000000..f05078fd26
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Stream/MultiHoppingCore.yqls
@@ -0,0 +1,23 @@
+(
+(let list (AsList
+ (AsStruct '('"time" (String '"2024-01-01T00:00:01Z")) '('"user" (Int32 '"1")) '('"data" (Null)))
+ (AsStruct '('"time" (String '"2024-01-01T00:00:02Z")) '('"user" (Int32 '"1")) '('"data" (Null)))
+ (AsStruct '('"time" (String '"2024-01-01T00:00:03Z")) '('"user" (Int32 '"1")) '('"data" (Null)))
+))
+(let input (FlatMap list (lambda '(row) (Just (AsStruct '('"data" (Member row '"data")) '('group0 (AsList (Member row '"user"))) '('"time" (Member row '"time")) '('"user" (Member row '"user")))))))
+(let keySelector (lambda '(row) '((StablePickle (Member row '"data")) (StablePickle (Member row 'group0)))))
+(let sortKeySelector (lambda '(row) (SafeCast (Member row '"time") (OptionalType (DataType 'Timestamp)))))
+(let interval (Interval '1000000))
+(let map (lambda '(item) (AsStruct)))
+(let reduce (lambda '(lhs rhs) (AsStruct)))
+(let hopping (MultiHoppingCore (Iterator input) keySelector sortKeySelector interval interval interval
+ 'true map reduce map map reduce
+ (lambda '(key state time) (AsStruct
+ '('_yql_time time)
+ '('"data" (Nth key '"0"))
+ '('group0 (Nth key '"1")))) '0))
+(let data (FormatType (TypeOf hopping))) # no typical comp node
+(let res (DataSink 'result))
+(let world (Write! world res (Key) data '('('type))))
+(return (Commit! world res))
+)
diff --git a/yql/essentials/tests/s-expressions/suites/Stream/Squeeze.yqls b/yql/essentials/tests/s-expressions/suites/Stream/Squeeze.yqls
new file mode 100644
index 0000000000..5551a9a5d8
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Stream/Squeeze.yqls
@@ -0,0 +1,10 @@
+(
+#comment
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+(let stream (Iterator (AsList (Int32 '1) (Int32 '2) (Int32 '3))))
+(let data (Collect (Squeeze stream (Int32 '0) (lambda '(item state) (+ item state)) (Void) (Void))))
+(let world (Write! world res_sink (Key) data '('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)
diff --git a/yql/essentials/tests/s-expressions/suites/Stream/Squeeze1.yqls b/yql/essentials/tests/s-expressions/suites/Stream/Squeeze1.yqls
new file mode 100644
index 0000000000..eead2401e0
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Stream/Squeeze1.yqls
@@ -0,0 +1,10 @@
+(
+#comment
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+(let stream (Iterator (AsList (Int32 '1) (Int32 '2) (Int32 '3))))
+(let data (Collect (Squeeze1 stream (lambda '(item) item) (lambda '(item state) (+ item state)) (Void) (Void))))
+(let world (Write! world res_sink (Key) data '('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)
diff --git a/yql/essentials/tests/s-expressions/suites/Stream/SqueezeToList.yqls b/yql/essentials/tests/s-expressions/suites/Stream/SqueezeToList.yqls
new file mode 100644
index 0000000000..396d938ffa
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Stream/SqueezeToList.yqls
@@ -0,0 +1,10 @@
+(
+#comment
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+(let stream (ToFlow (AsList (Int32 '1) (Int32 '2) (Int32 '3))))
+(let data (Collect (SqueezeToList stream)))
+(let world (Write! world res_sink (Key) data '('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)
diff --git a/yql/essentials/tests/s-expressions/suites/Stream/default.cfg b/yql/essentials/tests/s-expressions/suites/Stream/default.cfg
new file mode 100644
index 0000000000..00dec6c3f8
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Stream/default.cfg
@@ -0,0 +1 @@
+res result.txt