summaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-02-03 19:15:43 +0300
committerrobot-piglet <[email protected]>2025-02-03 19:29:25 +0300
commit77ee0394b2632327b0789f4adc0434ee90856ef2 (patch)
tree66ec010a4bc6dcba79e12d1766d19c3bb97282c2 /yql/essentials/tests
parentca1b99bb0935aa604330db8d93bb366bc4bb10c9 (diff)
Intermediate changes
commit_hash:1cef0cf05075cdc1ff60c3675d89b7135b260071
Diffstat (limited to 'yql/essentials/tests')
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json14
-rw-r--r--yql/essentials/tests/s-expressions/suites/Blocks/BlockMapJoinCore.yqls28
2 files changed, 42 insertions, 0 deletions
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 db2afce4747..90ba14b9ea9 100644
--- a/yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json
@@ -1,4 +1,18 @@
{
+ "test.test[Blocks-BlockMapJoinCore-default.txt-Debug]": [
+ {
+ "checksum": "71db64c54c014278aadebde24e80edca",
+ "size": 1864,
+ "uri": "https://{canondata_backend}/1936997/67628cc299565ace722746c32bfd5aa5ec155b43/resource.tar.gz#test.test_Blocks-BlockMapJoinCore-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Blocks-BlockMapJoinCore-default.txt-Results]": [
+ {
+ "checksum": "0b92c1a4b6b8f47e4a62aa420c36ee97",
+ "size": 9574,
+ "uri": "https://{canondata_backend}/1936997/67628cc299565ace722746c32bfd5aa5ec155b43/resource.tar.gz#test.test_Blocks-BlockMapJoinCore-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Builtins-ConstraintsOf-default.txt-Debug]": [
{
"checksum": "b4766463022fb5885bc259408b01b951",
diff --git a/yql/essentials/tests/s-expressions/suites/Blocks/BlockMapJoinCore.yqls b/yql/essentials/tests/s-expressions/suites/Blocks/BlockMapJoinCore.yqls
new file mode 100644
index 00000000000..e47ea29f6a1
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Blocks/BlockMapJoinCore.yqls
@@ -0,0 +1,28 @@
+(
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+
+(let row1 (AsStruct '('"key" (Int32 '1)) '('"subkey" (Int32 '"1001")) '('"value" (String '"AAA"))))
+(let row2 (AsStruct '('"key" (Int32 '2)) '('"subkey" (Int32 '"1002")) '('"value" (String '"AAB"))))
+(let row3 (AsStruct '('"key" (Int32 '3)) '('"subkey" (Int32 '"1003")) '('"value" (String '"AAC"))))
+(let row4 (AsStruct '('"key" (Int32 '4)) '('"subkey" (Int32 '"1004")) '('"value" (String '"AAD"))))
+(let row5 (AsStruct '('"key" (Int32 '5)) '('"subkey" (Int32 '"1005")) '('"value" (String '"AAE"))))
+(let table (AsList row1 row2 row3 row4 row5))
+
+(let expandLambda (lambda '(item) (Member item '"key") (Member item '"subkey") (Member item '"value")))
+(let narrowLambdaInner (lambda '(item1 item2 item3 item4 item5 item6) (AsStruct '('"akey" item1) '('"asubkey" item2) '('"avalue" item3) '('"bkey" item4) '('"bsubkey" item5) '('"bvalue" item6))))
+(let narrowLambdaLeft (lambda '(item1 item2 item3 item4) (AsStruct '('"asubkey" item1) '('"avalue" item2) '('"bsubkey" item3) '('"bvalue" item4))))
+(let narrowLambdaLeftSemi (lambda '(item1 item2) (AsStruct '('"asubkey" item1) '('"avalue" item2))))
+
+(let doJoin (lambda '(left right narrowMapLambda joinKind leftKeyColumns leftKeyDrops rightKeyColumns rightKeyDrops) (block '(
+ (return (Collect (NarrowMap (ToFlow (WideFromBlocks (BlockMapJoinCore (FromFlow (WideToBlocks (ExpandMap left expandLambda))) (FromFlow (WideToBlocks (ExpandMap right expandLambda))) joinKind leftKeyColumns leftKeyDrops rightKeyColumns rightKeyDrops '()))) narrowMapLambda)))
+))))
+
+(let innerJoin (Apply doJoin (ToFlow table (DependsOn (String '0))) (ToFlow table (DependsOn (String '1))) narrowLambdaInner 'Inner '('0) '() '('0) '()))
+(let leftJoin (Apply doJoin (ToFlow table (DependsOn (String '2))) (ToFlow table (DependsOn (String '3))) narrowLambdaLeft 'Left '('0) '('0) '('0) '('0)))
+(let leftSemiJoin (Apply doJoin (ToFlow table (DependsOn (String '4))) (ToFlow table (DependsOn (String '5))) narrowLambdaLeftSemi 'LeftSemi '('0) '('0) '('0) '()))
+
+(let world (Write! world res_sink (Key) (AsStruct '('"inner" innerJoin) '('"left" leftJoin) '('"leftSemi" leftSemiJoin)) '('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)