aboutsummaryrefslogtreecommitdiffstats
path: root/yt/yql/tests/sql/suites/join
diff options
context:
space:
mode:
authorvvvv <vvvv@yandex-team.com>2024-12-28 17:20:43 +0300
committervvvv <vvvv@yandex-team.com>2024-12-28 18:00:52 +0300
commitc3689e981be0dc1c9f79ac90f7d36d456124f782 (patch)
treed5af3c1cce2a16bb19537c5dc6c5b3f15118adfc /yt/yql/tests/sql/suites/join
parent1217ad4cbdfb5b1e52f8461a0681dd24bf1d6b70 (diff)
downloadydb-c3689e981be0dc1c9f79ac90f7d36d456124f782.tar.gz
Change "devtools/contrib/piglet/projects/ydblib/config.yaml"
commit_hash:3d2efe706faf091f9f2f2e93e511213405b80e78
Diffstat (limited to 'yt/yql/tests/sql/suites/join')
-rw-r--r--yt/yql/tests/sql/suites/join/branch.txt15
-rw-r--r--yt/yql/tests/sql/suites/join/cbo_4tables_a.txt14
-rw-r--r--yt/yql/tests/sql/suites/join/cbo_4tables_b.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/cbo_4tables_c.txt5
-rw-r--r--yt/yql/tests/sql/suites/join/cbo_4tables_d.txt11
-rw-r--r--yt/yql/tests/sql/suites/join/convert_key.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/empty_dynamic.txt0
-rw-r--r--yt/yql/tests/sql/suites/join/gj_countries1.txt25
-rw-r--r--yt/yql/tests/sql/suites/join/gj_customers1.txt100
-rw-r--r--yt/yql/tests/sql/suites/join/input.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/input1.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/input2.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/input3.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/input4.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/input5.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/input6.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/input7.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/input8.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/input9.txt10
-rw-r--r--yt/yql/tests/sql/suites/join/input_intersect.txt14
-rw-r--r--yt/yql/tests/sql/suites/join/input_left.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/input_right.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/input_tutorial_users.txt12
-rw-r--r--yt/yql/tests/sql/suites/join/kv1_sorted.txt32
-rw-r--r--yt/yql/tests/sql/suites/join/kv1_sorted1.txt2
-rw-r--r--yt/yql/tests/sql/suites/join/kv2_sorted.txt22
-rw-r--r--yt/yql/tests/sql/suites/join/kv2_sorted1.txt2
-rw-r--r--yt/yql/tests/sql/suites/join/kv3_sorted.txt8
-rw-r--r--yt/yql/tests/sql/suites/join/kv4_sorted.txt18
-rw-r--r--yt/yql/tests/sql/suites/join/kv5_sorted.txt13
-rw-r--r--yt/yql/tests/sql/suites/join/leaf.txt17
-rw-r--r--yt/yql/tests/sql/suites/join/left_join_input1.txt8
-rw-r--r--yt/yql/tests/sql/suites/join/left_join_input2.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/left_join_input3.txt1
-rw-r--r--yt/yql/tests/sql/suites/join/mergejoin_input1.txt20
-rw-r--r--yt/yql/tests/sql/suites/join/mergejoin_input2.txt5
-rw-r--r--yt/yql/tests/sql/suites/join/root.txt20
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_k1.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_k2.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_key1.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_key2.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_key3.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_key4.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_key_subkey.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_kv1.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_kv1_1.txt10
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_kv1_dup.txt8
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_kv1_opt.txt5
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_kv1_unique.txt4
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_kv2.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_kv2_dup.txt6
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_kv2_empty.txt0
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_kv2_opt.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_by_kv3.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_uniq.txt8
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_uniq1.txt14
-rw-r--r--yt/yql/tests/sql/suites/join/sorted_uniq2.txt14
-rw-r--r--yt/yql/tests/sql/suites/join/spider_info.txt8
-rw-r--r--yt/yql/tests/sql/suites/join/test_join_1.txt1000
-rw-r--r--yt/yql/tests/sql/suites/join/test_join_2.txt100
-rw-r--r--yt/yql/tests/sql/suites/join/uniqkeys.txt10
-rw-r--r--yt/yql/tests/sql/suites/join/view_input.txt3
-rw-r--r--yt/yql/tests/sql/suites/join/vk1_sorted.txt32
-rw-r--r--yt/yql/tests/sql/suites/join/vk2_sorted.txt22
-rw-r--r--yt/yql/tests/sql/suites/join/vk3_sorted.txt8
-rw-r--r--yt/yql/tests/sql/suites/join/yql-4275.txt6
66 files changed, 1719 insertions, 0 deletions
diff --git a/yt/yql/tests/sql/suites/join/branch.txt b/yt/yql/tests/sql/suites/join/branch.txt
new file mode 100644
index 0000000000..35d1356535
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/branch.txt
@@ -0,0 +1,15 @@
+{"key"=13u;"leaf"=#;"value"=";dx;lwk;ed"};
+{"key"=17u;"leaf"=5u;"value"="dkeo3o"};
+{"key"=15u;"leaf"=#;"value"=#};
+{"key"=14u;"leaf"=#;"value"="neduiejud"};
+{"key"=10u;"leaf"=1u;"value"="lwk;lde;lw"};
+{"key"=10u;"leaf"=2u;"value"="&&"};
+{"key"=10u;"leaf"=2u;"value"="&&"};
+{"key"=18u;"leaf"=8u;"value"="98743897894"};
+{"key"=18u;"leaf"=3u;"value"="13"};
+{"key"=18u;"leaf"=#;"value"=#};
+{"key"=11u;"leaf"=4u;"value"=#};
+{"key"=19u;"leaf"=#;"value"="huiyhuihji"};
+{"key"=20u;"leaf"=9u;"value"=".xdws;"};
+{"key"=16u;"leaf"=#;"value"="!!!!!!!!!!"};
+{"key"=12u;"leaf"=3u;"value"=#};
diff --git a/yt/yql/tests/sql/suites/join/cbo_4tables_a.txt b/yt/yql/tests/sql/suites/join/cbo_4tables_a.txt
new file mode 100644
index 0000000000..6c0c166030
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/cbo_4tables_a.txt
@@ -0,0 +1,14 @@
+{"Key1"=101;"Key2"="One";"Fk1"=#;"Value"="no_right_key_1"};
+{"Key1"=102;"Key2"="Two";"Fk1"=#;"Value"="no_right_key_2"};
+{"Key1"=103;"Key2"="Three";"Fk1"="Name1";"Value"="Value1"};
+{"Key1"=104;"Key2"="One";"Fk1"="Name2";"Value"="Value2"};
+{"Key1"=104;"Key2"="Two";"Fk1"="Name2";"Value"="Value3"};
+{"Key1"=105;"Key2"="One";"Fk1"="Name3";"Value"="no_right_key_3"};
+{"Key1"=106;"Key2"="One";"Fk1"="Name4";"Value"=#};
+{"Key1"=106;"Key2"="Two";"Fk1"="Name4";"Value"="Value4"};
+{"Key1"=107;"Key2"="Seventeen";"Fk1"="Name4";"Value"="Value4"};
+{"Key1"=108;"Key2"="Two";"Fk1"="Name4";"Value"="Value4"};
+{"Key1"=109;"Key2"="Two";"Fk1"="Name1";"Value"="Value4"};
+{"Key1"=110;"Key2"="Four";"Fk1"="Name5";"Value"="Value4"};
+{"Key1"=111;"Key2"="Three";"Fk1"="Name4";"Value"="Value4"};
+{"Key1"=111;"Key2"="Two";"Fk1"="Name4";"Value"="Value4"};
diff --git a/yt/yql/tests/sql/suites/join/cbo_4tables_b.txt b/yt/yql/tests/sql/suites/join/cbo_4tables_b.txt
new file mode 100644
index 0000000000..9ef08e2fb7
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/cbo_4tables_b.txt
@@ -0,0 +1,3 @@
+{"k"="Name2";"val"="Misha"};
+{"k"="Name2";"val"="Sasha"};
+{"k"="Name3";"val"="Ksyusha"};
diff --git a/yt/yql/tests/sql/suites/join/cbo_4tables_c.txt b/yt/yql/tests/sql/suites/join/cbo_4tables_c.txt
new file mode 100644
index 0000000000..803ff2ca0d
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/cbo_4tables_c.txt
@@ -0,0 +1,5 @@
+{"k"=104;v=4};
+{"k"=105;v=5};
+{"k"=106;v=6};
+{"k"=107;v=6};
+{"k"=111;v=10};
diff --git a/yt/yql/tests/sql/suites/join/cbo_4tables_d.txt b/yt/yql/tests/sql/suites/join/cbo_4tables_d.txt
new file mode 100644
index 0000000000..13684e9905
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/cbo_4tables_d.txt
@@ -0,0 +1,11 @@
+{id=3;"k"="One";"value"=17};
+{id=5;"k"="Two";"value"=17};
+{id=13;"k"="One";"value"=0};
+{id=23;"k"="Three";"value"=-44};
+{id=27;"k"="Ten";"value"=17};
+{id=33;"k"="Zero";"value"=1024};
+{id=38;"k"="Seventeen";"value"=17};
+{id=39;"k"="One";"value"=23};
+{id=40;"k"="Three";"value"=17};
+{id=42;"k"="Four";"value"=25};
+{id=50;"k"="One";"value"=17};
diff --git a/yt/yql/tests/sql/suites/join/convert_key.txt b/yt/yql/tests/sql/suites/join/convert_key.txt
new file mode 100644
index 0000000000..0f8369d4db
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/convert_key.txt
@@ -0,0 +1,4 @@
+{"k1"=417840;"k2"=417480;"value"="aaa"};
+{"k1"=417840;"k2"=417480;"value"="ddd"};
+{"k1"=417840;"k2"=417480;"value"="abc"};
+{"k1"=417840;"k2"=417480;"value"="aaa"};
diff --git a/yt/yql/tests/sql/suites/join/empty_dynamic.txt b/yt/yql/tests/sql/suites/join/empty_dynamic.txt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/empty_dynamic.txt
diff --git a/yt/yql/tests/sql/suites/join/gj_countries1.txt b/yt/yql/tests/sql/suites/join/gj_countries1.txt
new file mode 100644
index 0000000000..b1bea9c8e2
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/gj_countries1.txt
@@ -0,0 +1,25 @@
+{"country_id"="0"; "country_name"="0"};
+{"country_id"="1"; "country_name"="1"};
+{"country_id"="2"; "country_name"="2"};
+{"country_id"="3"; "country_name"="3"};
+{"country_id"="4"; "country_name"="4"};
+{"country_id"="5"; "country_name"="5"};
+{"country_id"="6"; "country_name"="6"};
+{"country_id"="7"; "country_name"="7"};
+{"country_id"="8"; "country_name"="8"};
+{"country_id"="9"; "country_name"="9"};
+{"country_id"="10"; "country_name"="10"};
+{"country_id"="11"; "country_name"="11"};
+{"country_id"="12"; "country_name"="12"};
+{"country_id"="13"; "country_name"="13"};
+{"country_id"="14"; "country_name"="14"};
+{"country_id"="15"; "country_name"="15"};
+{"country_id"="16"; "country_name"="16"};
+{"country_id"="17"; "country_name"="17"};
+{"country_id"="18"; "country_name"="18"};
+{"country_id"="19"; "country_name"="19"};
+{"country_id"="20"; "country_name"="20"};
+{"country_id"="21"; "country_name"="21"};
+{"country_id"="22"; "country_name"="22"};
+{"country_id"="23"; "country_name"="23"};
+{"country_id"="24"; "country_name"="24"};
diff --git a/yt/yql/tests/sql/suites/join/gj_customers1.txt b/yt/yql/tests/sql/suites/join/gj_customers1.txt
new file mode 100644
index 0000000000..95cade958b
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/gj_customers1.txt
@@ -0,0 +1,100 @@
+{"customer_id"="0"; "country_id"="0"};
+{"customer_id"="1"; "country_id"="0"};
+{"customer_id"="2"; "country_id"="21"};
+{"customer_id"="3"; "country_id"="24"};
+{"customer_id"="4"; "country_id"="8"};
+{"customer_id"="5"; "country_id"="12"};
+{"customer_id"="6"; "country_id"="0"};
+{"customer_id"="7"; "country_id"="15"};
+{"customer_id"="8"; "country_id"="14"};
+{"customer_id"="9"; "country_id"="5"};
+{"customer_id"="10"; "country_id"="3"};
+{"customer_id"="11"; "country_id"="19"};
+{"customer_id"="12"; "country_id"="12"};
+{"customer_id"="13"; "country_id"="24"};
+{"customer_id"="14"; "country_id"="4"};
+{"customer_id"="15"; "country_id"="11"};
+{"customer_id"="16"; "country_id"="3"};
+{"customer_id"="17"; "country_id"="4"};
+{"customer_id"="18"; "country_id"="5"};
+{"customer_id"="19"; "country_id"="2"};
+{"customer_id"="20"; "country_id"="16"};
+{"customer_id"="21"; "country_id"="2"};
+{"customer_id"="22"; "country_id"="19"};
+{"customer_id"="23"; "country_id"="11"};
+{"customer_id"="24"; "country_id"="8"};
+{"customer_id"="25"; "country_id"="19"};
+{"customer_id"="26"; "country_id"="23"};
+{"customer_id"="27"; "country_id"="10"};
+{"customer_id"="28"; "country_id"="15"};
+{"customer_id"="29"; "country_id"="7"};
+{"customer_id"="30"; "country_id"="18"};
+{"customer_id"="31"; "country_id"="16"};
+{"customer_id"="32"; "country_id"="8"};
+{"customer_id"="33"; "country_id"="14"};
+{"customer_id"="34"; "country_id"="16"};
+{"customer_id"="35"; "country_id"="17"};
+{"customer_id"="36"; "country_id"="2"};
+{"customer_id"="37"; "country_id"="16"};
+{"customer_id"="38"; "country_id"="7"};
+{"customer_id"="39"; "country_id"="16"};
+{"customer_id"="40"; "country_id"="22"};
+{"customer_id"="41"; "country_id"="11"};
+{"customer_id"="42"; "country_id"="11"};
+{"customer_id"="43"; "country_id"="9"};
+{"customer_id"="44"; "country_id"="10"};
+{"customer_id"="45"; "country_id"="16"};
+{"customer_id"="46"; "country_id"="21"};
+{"customer_id"="47"; "country_id"="13"};
+{"customer_id"="48"; "country_id"="20"};
+{"customer_id"="49"; "country_id"="2"};
+{"customer_id"="50"; "country_id"="16"};
+{"customer_id"="51"; "country_id"="12"};
+{"customer_id"="52"; "country_id"="4"};
+{"customer_id"="53"; "country_id"="10"};
+{"customer_id"="54"; "country_id"="23"};
+{"customer_id"="55"; "country_id"="12"};
+{"customer_id"="56"; "country_id"="5"};
+{"customer_id"="57"; "country_id"="22"};
+{"customer_id"="58"; "country_id"="23"};
+{"customer_id"="59"; "country_id"="21"};
+{"customer_id"="60"; "country_id"="4"};
+{"customer_id"="61"; "country_id"="17"};
+{"customer_id"="62"; "country_id"="12"};
+{"customer_id"="63"; "country_id"="13"};
+{"customer_id"="64"; "country_id"="6"};
+{"customer_id"="65"; "country_id"="3"};
+{"customer_id"="66"; "country_id"="5"};
+{"customer_id"="67"; "country_id"="8"};
+{"customer_id"="68"; "country_id"="20"};
+{"customer_id"="69"; "country_id"="12"};
+{"customer_id"="70"; "country_id"="0"};
+{"customer_id"="71"; "country_id"="17"};
+{"customer_id"="72"; "country_id"="23"};
+{"customer_id"="73"; "country_id"="12"};
+{"customer_id"="74"; "country_id"="2"};
+{"customer_id"="75"; "country_id"="9"};
+{"customer_id"="76"; "country_id"="3"};
+{"customer_id"="77"; "country_id"="24"};
+{"customer_id"="78"; "country_id"="23"};
+{"customer_id"="79"; "country_id"="23"};
+{"customer_id"="80"; "country_id"="1"};
+{"customer_id"="81"; "country_id"="14"};
+{"customer_id"="82"; "country_id"="11"};
+{"customer_id"="83"; "country_id"="5"};
+{"customer_id"="84"; "country_id"="0"};
+{"customer_id"="85"; "country_id"="9"};
+{"customer_id"="86"; "country_id"="18"};
+{"customer_id"="87"; "country_id"="5"};
+{"customer_id"="88"; "country_id"="6"};
+{"customer_id"="89"; "country_id"="17"};
+{"customer_id"="90"; "country_id"="1"};
+{"customer_id"="91"; "country_id"="10"};
+{"customer_id"="92"; "country_id"="9"};
+{"customer_id"="93"; "country_id"="14"};
+{"customer_id"="94"; "country_id"="23"};
+{"customer_id"="95"; "country_id"="16"};
+{"customer_id"="96"; "country_id"="18"};
+{"customer_id"="97"; "country_id"="3"};
+{"customer_id"="98"; "country_id"="0"};
+{"customer_id"="99"; "country_id"="13"};
diff --git a/yt/yql/tests/sql/suites/join/input.txt b/yt/yql/tests/sql/suites/join/input.txt
new file mode 100644
index 0000000000..96d1fdd0ab
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input.txt
@@ -0,0 +1,3 @@
+{"key"="foo";"subkey"="bar";"value"="wat"};
+{"key"="bar";"subkey"="wat";"value"="wtf"};
+{"key"="wtf";"subkey"="foo";"value"="bar"};
diff --git a/yt/yql/tests/sql/suites/join/input1.txt b/yt/yql/tests/sql/suites/join/input1.txt
new file mode 100644
index 0000000000..f53757c309
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input1.txt
@@ -0,0 +1,4 @@
+{"key"="075";"subkey"="1";"value"="abc"};
+{"key"="800";"subkey"="1";"value"="ddd"};
+{"key"="020";"subkey"="1";"value"="q"};
+{"key"="150";"subkey"="1";"value"="qzz"};
diff --git a/yt/yql/tests/sql/suites/join/input2.txt b/yt/yql/tests/sql/suites/join/input2.txt
new file mode 100644
index 0000000000..07af3b4647
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input2.txt
@@ -0,0 +1,4 @@
+{"key"="075";"subkey"="2";"value"="abc"};
+{"key"="800";"subkey"="2";"value"="ddd"};
+{"key"="020";"subkey"="2";"value"="q"};
+{"key"="150";"subkey"="2";"value"="qzz"};
diff --git a/yt/yql/tests/sql/suites/join/input3.txt b/yt/yql/tests/sql/suites/join/input3.txt
new file mode 100644
index 0000000000..1dc1bcc60b
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input3.txt
@@ -0,0 +1,4 @@
+{"key"="075";"subkey"="3";"value"="abd"};
+{"key"="800";"subkey"="3";"value"="ddd"};
+{"key"="021";"subkey"="3";"value"="q"};
+{"key"="151";"subkey"="3";"value"="qzz"};
diff --git a/yt/yql/tests/sql/suites/join/input4.txt b/yt/yql/tests/sql/suites/join/input4.txt
new file mode 100644
index 0000000000..a3185b8d9a
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input4.txt
@@ -0,0 +1,4 @@
+{"key"="075";"subkey"="3";"value"="abd"};
+{"key"="800";"subkey"="2";"value"="ddd"};
+{"key"="021";"subkey"="2";"value"="q"};
+{"key"="151";"subkey"="2";"value"="qzz"};
diff --git a/yt/yql/tests/sql/suites/join/input5.txt b/yt/yql/tests/sql/suites/join/input5.txt
new file mode 100644
index 0000000000..e5f4a7ae33
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input5.txt
@@ -0,0 +1,4 @@
+{"key"="1";"subkey"="a";"value"="value1_1"};
+{"key"="INVALID";"subkey"="b";"value"="value1_2"};
+{"key"="3";"subkey"="c";"value"="value1_3"};
+{"key"="4";"subkey"="d";"value"="value1_4"};
diff --git a/yt/yql/tests/sql/suites/join/input6.txt b/yt/yql/tests/sql/suites/join/input6.txt
new file mode 100644
index 0000000000..ae3f3dd0d2
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input6.txt
@@ -0,0 +1,4 @@
+{"key1"="1";"subkey1"="a";"key"="1";"subkey"="a";"value"="value1_1"};
+{"key1"="INVALID";"subkey1"="b";"key"="INVALID";"subkey"="b";"value"="value1_2"};
+{"key1"="3";"subkey1"="c";"key"="3";"subkey"="c";"value"="value1_3"};
+{"key1"="4";"subkey1"="d";"key"="4";"subkey"="d";"value"="value1_4"};
diff --git a/yt/yql/tests/sql/suites/join/input7.txt b/yt/yql/tests/sql/suites/join/input7.txt
new file mode 100644
index 0000000000..5a8860b91d
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input7.txt
@@ -0,0 +1,4 @@
+{"key"="075";"subkey"="2";"value"="abcaaa"};
+{"key"="800";"subkey"="2";"value"="dddaaa"};
+{"key"="020";"subkey"="2";"value"="qaaa"};
+{"key"="150";"subkey"="2";"value"="qzzaaa"};
diff --git a/yt/yql/tests/sql/suites/join/input8.txt b/yt/yql/tests/sql/suites/join/input8.txt
new file mode 100644
index 0000000000..2417d71bb3
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input8.txt
@@ -0,0 +1,4 @@
+{"key"="020";"subkey"="1";"value"="q"};
+{"key"="075";"subkey"="2";"value"="abc"};
+{"key"="150";"subkey"="3";"value"="qzz"};
+{"key"="800";"subkey"="4";"value"="ddd"};
diff --git a/yt/yql/tests/sql/suites/join/input9.txt b/yt/yql/tests/sql/suites/join/input9.txt
new file mode 100644
index 0000000000..b214aab0d9
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input9.txt
@@ -0,0 +1,10 @@
+{"key"="023";"subkey"="3";"value"="aaa"};
+{"key"="037";"subkey"="5";"value"="ddd"};
+{"key"="075";"subkey"="1";"value"="abc"};
+{"key"="150";"subkey"="1";"value"="aaa"};
+{"key"="150";"subkey"="3";"value"="iii"};
+{"key"="150";"subkey"="8";"value"="zzz"};
+{"key"="200";"subkey"="7";"value"="qqq"};
+{"key"="527";"subkey"="4";"value"="bbb"};
+{"key"="761";"subkey"="6";"value"="ccc"};
+{"key"="911";"subkey"="2";"value"="kkk"};
diff --git a/yt/yql/tests/sql/suites/join/input_intersect.txt b/yt/yql/tests/sql/suites/join/input_intersect.txt
new file mode 100644
index 0000000000..42bcf2179e
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input_intersect.txt
@@ -0,0 +1,14 @@
+{"key"="075";"subkey"="911";"value"="abc"};
+{"key"="911";"subkey"="1";"value"="kkk"};
+{"key"="023";"subkey"="527";"value"="aaa"};
+{"key"="527";"subkey"="023";"value"="bbb"};
+{"key"="037";"subkey"="075";"value"="ddd"};
+{"key"="761";"subkey"="911";"value"="ccc"};
+{"key"="200";"subkey"="075";"value"="qqq"};
+{"key"="150";"subkey"="075";"value"="zzz"};
+{"key"="023";"subkey"="911";"value"="vca"};
+{"key"="527";"subkey"="150";"value"="oef"};
+{"key"="037";"subkey"="761";"value"="vdf"};
+{"key"="761";"subkey"="037";"value"="aet"};
+{"key"="200";"subkey"="150";"value"="fdb"};
+{"key"="150";"subkey"="037";"value"="bfs"};
diff --git a/yt/yql/tests/sql/suites/join/input_left.txt b/yt/yql/tests/sql/suites/join/input_left.txt
new file mode 100644
index 0000000000..ac67f72937
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input_left.txt
@@ -0,0 +1,4 @@
+{k=1u;sk="100";v="abc"};
+{k=2u;sk="200";v="def"};
+{k=3u;sk="300";v="ghi"};
+{k=5u;sk="500";v="mno"};
diff --git a/yt/yql/tests/sql/suites/join/input_right.txt b/yt/yql/tests/sql/suites/join/input_right.txt
new file mode 100644
index 0000000000..7a094e2b95
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input_right.txt
@@ -0,0 +1,4 @@
+{k=1u;sk="100";v="ABC"};
+{k=3u;sk="300";v="GHI"};
+{k=4u;sk="400";v="JKL"};
+{k=5u;sk="500";v="MNO"};
diff --git a/yt/yql/tests/sql/suites/join/input_tutorial_users.txt b/yt/yql/tests/sql/suites/join/input_tutorial_users.txt
new file mode 100644
index 0000000000..4a18a0dd29
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/input_tutorial_users.txt
@@ -0,0 +1,12 @@
+{"key"="15";"subkey"="213";"value"="Anya"};
+{"key"="25";"subkey"="225";"value"="Petr"};
+{"key"="17";"subkey"="1";"value"="Masha"};
+{"key"="5";"subkey"="225";"value"="Alena"};
+{"key"="23";"subkey"="2";"value"="Irina"};
+{"key"="13";"subkey"="21";"value"="Inna"};
+{"key"="33";"subkey"="125";"value"="Ivan"};
+{"key"="45";"subkey"="225";"value"="Asya"};
+{"key"="27";"subkey"="125";"value"="German"};
+{"key"="41";"subkey"="225";"value"="Olya"};
+{"key"="35";"subkey"="2";"value"="Slava"};
+{"key"="56";"subkey"="2";"value"="Elena"};
diff --git a/yt/yql/tests/sql/suites/join/kv1_sorted.txt b/yt/yql/tests/sql/suites/join/kv1_sorted.txt
new file mode 100644
index 0000000000..32006a80c5
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/kv1_sorted.txt
@@ -0,0 +1,32 @@
+{"k1"="01";"v1"="1";"u1"="01"};
+{"k1"="01";"v1"="2";"u1"="02"};
+
+{"k1"="02";"v1"="1";"u1"="03"};
+{"k1"="02";"v1"="1";"u1"="04"};
+{"k1"="02";"v1"="2";"u1"="05"};
+{"k1"="02";"v1"="2";"u1"="06"};
+
+{"k1"="03";"v1"=#; "u1"="07"};
+{"k1"="03";"v1"="1";"u1"="08"};
+{"k1"="03";"v1"="2";"u1"="09"};
+
+{"k1"="04";"v1"="1";"u1"="10"};
+{"k1"="04";"v1"="2";"u1"="11"};
+
+{"k1"="05";"v1"="1";"u1"="12"};
+{"k1"="05";"v1"="2";"u1"="13"};
+
+{"k1"="06";"v1"="1";"u1"="14"};
+{"k1"="06";"v1"="2";"u1"="15"};
+
+{"k1"="07";"v1"="1";"u1"="16"};
+{"k1"="07";"v1"="2";"u1"="17"};
+
+{"k1"="08";"v1"="1";"u1"="18"};
+{"k1"="08";"v1"="2";"u1"="19"};
+
+{"k1"="09";"v1"="1";"u1"="20"};
+{"k1"="09";"v1"="2";"u1"="21"};
+
+{"k1"="10";"v1"="1";"u1"="22"};
+{"k1"="10";"v1"="2";"u1"="23"};
diff --git a/yt/yql/tests/sql/suites/join/kv1_sorted1.txt b/yt/yql/tests/sql/suites/join/kv1_sorted1.txt
new file mode 100644
index 0000000000..45fc02595f
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/kv1_sorted1.txt
@@ -0,0 +1,2 @@
+{"k1"="01";"v1"="1";"u1"="01"};
+{"k1"="01";"v1"="2";"u1"="02"};
diff --git a/yt/yql/tests/sql/suites/join/kv2_sorted.txt b/yt/yql/tests/sql/suites/join/kv2_sorted.txt
new file mode 100644
index 0000000000..2ce5f4119f
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/kv2_sorted.txt
@@ -0,0 +1,22 @@
+{"k2"="02";"v2"="1";"u2"="01"};
+{"k2"="02";"v2"="1";"u2"="02"};
+{"k2"="02";"v2"="2";"u2"="03"};
+{"k2"="02";"v2"="2";"u2"="04"};
+
+{"k2"="03";"v2"="1";"u2"="05"};
+{"k2"="03";"v2"="2";"u2"="06"};
+
+{"k2"="04";"v2"="1";"u2"="07"};
+{"k2"="04";"v2"="2";"u2"="08"};
+
+{"k2"="05";"v2"="1";"u2"="09"};
+{"k2"="05";"v2"="2";"u2"="10"};
+
+{"k2"="06";"v2"="1";"u2"="11"};
+{"k2"="06";"v2"="2";"u2"="12"};
+
+{"k2"="07";"v2"="1";"u2"="13"};
+{"k2"="07";"v2"="2";"u2"="14"};
+
+{"k2"="09";"v2"="1";"u2"="15"};
+{"k2"="09";"v2"="2";"u2"="16"};
diff --git a/yt/yql/tests/sql/suites/join/kv2_sorted1.txt b/yt/yql/tests/sql/suites/join/kv2_sorted1.txt
new file mode 100644
index 0000000000..3bd67e7caa
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/kv2_sorted1.txt
@@ -0,0 +1,2 @@
+{"k2"="01";"v2"="1";"u2"="01"};
+{"k2"="01";"v2"="2";"u2"="03"};
diff --git a/yt/yql/tests/sql/suites/join/kv3_sorted.txt b/yt/yql/tests/sql/suites/join/kv3_sorted.txt
new file mode 100644
index 0000000000..c9ef7d9a22
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/kv3_sorted.txt
@@ -0,0 +1,8 @@
+{"k3"=#; "v3"="1";"u3"="01"};
+{"k3"=#; "v3"="2";"u3"="02"};
+
+{"k3"="04";"v3"="1";"u3"="03"};
+{"k3"="04";"v3"="2";"u3"="04"};
+
+{"k3"="05";"v3"="1";"u3"="05"};
+{"k3"="05";"v3"="2";"u3"="06"};
diff --git a/yt/yql/tests/sql/suites/join/kv4_sorted.txt b/yt/yql/tests/sql/suites/join/kv4_sorted.txt
new file mode 100644
index 0000000000..a355cbb673
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/kv4_sorted.txt
@@ -0,0 +1,18 @@
+{"k4"="03";"v4"=#; "u4"="01"};
+{"k4"="03";"v4"="1";"u4"="02"};
+{"k4"="03";"v4"="2";"u4"="03"};
+
+{"k4"="04";"v4"="1";"u4"="04"};
+{"k4"="04";"v4"="2";"u4"="05"};
+
+{"k4"="05";"v4"="1";"u4"="06"};
+{"k4"="05";"v4"="2";"u4"="07"};
+
+{"k4"="06";"v4"="1";"u4"="08"};
+{"k4"="06";"v4"="2";"u4"="09"};
+
+{"k4"="07";"v4"="1";"u4"="10"};
+{"k4"="07";"v4"="2";"u4"="11"};
+
+{"k4"="08";"v4"="1";"u4"="12"};
+{"k4"="08";"v4"="2";"u4"="13"};
diff --git a/yt/yql/tests/sql/suites/join/kv5_sorted.txt b/yt/yql/tests/sql/suites/join/kv5_sorted.txt
new file mode 100644
index 0000000000..748994c8e8
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/kv5_sorted.txt
@@ -0,0 +1,13 @@
+{"k5"=# ;"v5"="1";"u5"="01"};
+{"k5"=# ;"v5"="2";"u5"="02"};
+
+{"k5"="02";"v5"="1";"u5"="03"};
+{"k5"="02";"v5"="1";"u5"="04"};
+{"k5"="02";"v5"="2";"u5"="05"};
+{"k5"="02";"v5"="2";"u5"="06"};
+
+{"k5"="03";"v5"="1";"u5"="07"};
+{"k5"="03";"v5"="2";"u5"="08"};
+
+{"k5"="09";"v5"="1";"u5"="09"};
+{"k5"="09";"v5"="2";"u5"="10"};
diff --git a/yt/yql/tests/sql/suites/join/leaf.txt b/yt/yql/tests/sql/suites/join/leaf.txt
new file mode 100644
index 0000000000..0de2350ffa
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/leaf.txt
@@ -0,0 +1,17 @@
+{"key"=0u;"value"="zero"};
+{"key"=0u;"value"=#};
+{"key"=0u;"value"="null"};
+{"key"=1u;"value"="one"};
+{"key"=2u;"value"="two"};
+{"key"=2u;"value"="two"};
+{"key"=2u;"value"="pair"};
+{"key"=3u;"value"="three"};
+{"key"=6u;"value"="six"};
+{"key"=6u;"value"="3+3"};
+{"key"=3u;"value"="1+1+1"};
+{"key"=7u;"value"="seven"};
+{"key"=9u;"value"="nine"};
+{"key"=8u;"value"="eight"};
+{"key"=5u;"value"="five"};
+{"key"=4u;"value"="2*2"};
+{"key"=4u;"value"="four"};
diff --git a/yt/yql/tests/sql/suites/join/left_join_input1.txt b/yt/yql/tests/sql/suites/join/left_join_input1.txt
new file mode 100644
index 0000000000..ff0c12e814
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/left_join_input1.txt
@@ -0,0 +1,8 @@
+{"Key1"=101;"Key2"="One";"Fk1"=#;"Value"="no_right_key_1"};
+{"Key1"=102;"Key2"="Two";"Fk1"=#;"Value"="no_right_key_2"};
+{"Key1"=103;"Key2"="Three";"Fk1"="Name1";"Value"="Value1"};
+{"Key1"=104;"Key2"="One";"Fk1"="Name2";"Value"="Value2"};
+{"Key1"=104;"Key2"="Two";"Fk1"="Name2";"Value"="Value3"};
+{"Key1"=105;"Key2"="One";"Fk1"="Name3";"Value"="no_right_key_3"};
+{"Key1"=106;"Key2"="One";"Fk1"="Name4";"Value"=#};
+{"Key1"=106;"Key2"="Two";"Fk1"="Name4";"Value"="Value4"};
diff --git a/yt/yql/tests/sql/suites/join/left_join_input2.txt b/yt/yql/tests/sql/suites/join/left_join_input2.txt
new file mode 100644
index 0000000000..94730fa38c
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/left_join_input2.txt
@@ -0,0 +1,3 @@
+{"Key"="Name1";"Value"=1001};
+{"Key"="Name2";"Value"=1002};
+{"Key"="Name4";"Value"=#};
diff --git a/yt/yql/tests/sql/suites/join/left_join_input3.txt b/yt/yql/tests/sql/suites/join/left_join_input3.txt
new file mode 100644
index 0000000000..596c900d7d
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/left_join_input3.txt
@@ -0,0 +1 @@
+{"Key"="Name2";"Value"=12345};
diff --git a/yt/yql/tests/sql/suites/join/mergejoin_input1.txt b/yt/yql/tests/sql/suites/join/mergejoin_input1.txt
new file mode 100644
index 0000000000..7ba5b163db
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/mergejoin_input1.txt
@@ -0,0 +1,20 @@
+{"PhraseID"=0u;"BaseNo"=53u;"Text"="julbo elara otg";};
+{"PhraseID"=0u;"BaseNo"=86u;"Text"="07644200";};
+{"PhraseID"=1u;"BaseNo"=1u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=2u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=3u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=4u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=5u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=6u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=7u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=8u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=9u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=10u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=11u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=12u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=13u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=14u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=15u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=16u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=17u;"Text"="julbo elara otg";};
+{"PhraseID"=1u;"BaseNo"=18u;"Text"="julbo elara otg";};
diff --git a/yt/yql/tests/sql/suites/join/mergejoin_input2.txt b/yt/yql/tests/sql/suites/join/mergejoin_input2.txt
new file mode 100644
index 0000000000..57ff5110b2
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/mergejoin_input2.txt
@@ -0,0 +1,5 @@
+{"BannerID"=11830670;"ResultCost"=70000;"ResultFlatCost"=70000;"PhraseID"=0u;"BaseNo"=86u;};
+{"BannerID"=12963892;"ResultCost"=3000;"ResultFlatCost"=0;"PhraseID"=0u;"BaseNo"=53u;};
+{"BannerID"=12977828;"ResultCost"=3000;"ResultFlatCost"=0;"PhraseID"=1u;"BaseNo"=1u;};
+{"BannerID"=13005350;"ResultCost"=3000;"ResultFlatCost"=0;"PhraseID"=1u;"BaseNo"=3u;};
+{"BannerID"=14145807;"ResultCost"=3000;"ResultFlatCost"=0;"PhraseID"=1u;"BaseNo"=10u;};
diff --git a/yt/yql/tests/sql/suites/join/root.txt b/yt/yql/tests/sql/suites/join/root.txt
new file mode 100644
index 0000000000..fc60ef431f
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/root.txt
@@ -0,0 +1,20 @@
+{"key"=023u;"leaf"=3u;"branch"=10u;"value"="xxx"};
+{"key"=037u;"leaf"=5u;"branch"=#;"value"="ddd"};
+{"key"=075u;"leaf"=1u;"branch"=#;"value"="abc"};
+{"key"=150u;"leaf"=1u;"branch"=19u;"value"="aaa"};
+{"key"=150u;"leaf"=#;"branch"=18u;"value"="iii"};
+{"key"=150u;"leaf"=8u;"branch"=12u;"value"="zzz"};
+{"key"=200u;"leaf"=7u;"branch"=11u;"value"=#};
+{"key"=200u;"leaf"=7u;"branch"=11u;"value"=#};
+{"key"=666u;"leaf"=#;"branch"=#;"value"="bad"};
+{"key"=777u;"leaf"=2u;"branch"=#;"value"="lol"};
+{"key"=888u;"leaf"=#;"branch"=14u;"value"="dad"};
+{"key"=527u;"leaf"=#;"branch"=11u;"value"="bbb"};
+{"key"=761u;"leaf"=6u;"branch"=13u;"value"="ccc"};
+{"key"=911u;"leaf"=#;"branch"=17u;"value"=#};
+{"key"=999u;"leaf"=90u;"branch"=10u;"value"="not"};
+{"key"=090u;"leaf"=4u;"branch"=15u;"value"="ups"};
+{"key"=090u;"leaf"=4u;"branch"=15u;"value"="ups"};
+{"key"=111u;"leaf"=100u;"branch"=19u;"value"="jjj"};
+{"key"=222u;"leaf"=9u;"branch"=100u;"value"="ttt"};
+{"key"=000u;"leaf"=100u;"branch"=100u;"value"="000"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_k1.txt b/yt/yql/tests/sql/suites/join/sorted_by_k1.txt
new file mode 100644
index 0000000000..5da1f87a4d
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_k1.txt
@@ -0,0 +1,3 @@
+{"k1"="bbb";"v1"="v11"};
+{"k1"="ccc";"v1"="v12"};
+{"k1"="ddd";"v1"="v13"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_k2.txt b/yt/yql/tests/sql/suites/join/sorted_by_k2.txt
new file mode 100644
index 0000000000..96a4c1b787
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_k2.txt
@@ -0,0 +1,3 @@
+{"k2"="ccc";"v2"="v21"};
+{"k2"="ddd";"v2"="v22"};
+{"k2"="eee";"v2"="v23"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_key1.txt b/yt/yql/tests/sql/suites/join/sorted_by_key1.txt
new file mode 100644
index 0000000000..6a547a4465
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_key1.txt
@@ -0,0 +1,3 @@
+{"key"="aaa";"value"="a11"};
+{"key"="bbb";"value"="a12"};
+{"key"="ccc";"value"="a13"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_key2.txt b/yt/yql/tests/sql/suites/join/sorted_by_key2.txt
new file mode 100644
index 0000000000..f902c54666
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_key2.txt
@@ -0,0 +1,3 @@
+{"key"="bbb";"value"="a21"};
+{"key"="ccc";"value"="a22"};
+{"key"="ddd";"value"="a23"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_key3.txt b/yt/yql/tests/sql/suites/join/sorted_by_key3.txt
new file mode 100644
index 0000000000..57cd6157f9
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_key3.txt
@@ -0,0 +1,3 @@
+{"key"="aaa";"value"="b11"};
+{"key"="ccc";"value"="b12"};
+{"key"="ddd";"value"="b13"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_key4.txt b/yt/yql/tests/sql/suites/join/sorted_by_key4.txt
new file mode 100644
index 0000000000..27a6a9b1bd
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_key4.txt
@@ -0,0 +1,3 @@
+{"key"="ccc";"value"="b21"};
+{"key"="ddd";"value"="b22"};
+{"key"="eee";"value"="b23"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_key_subkey.txt b/yt/yql/tests/sql/suites/join/sorted_by_key_subkey.txt
new file mode 100644
index 0000000000..0eca8aa4bd
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_key_subkey.txt
@@ -0,0 +1,3 @@
+{"key"="aaa";"subkey"="bbb";"value"="ks1"};
+{"key"="bbb";"subkey"="bbb";"value"="ks2"};
+{"key"="bbb";"subkey"="ccc";"value"="ks3"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_kv1.txt b/yt/yql/tests/sql/suites/join/sorted_by_kv1.txt
new file mode 100644
index 0000000000..d8ba8879fe
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_kv1.txt
@@ -0,0 +1,4 @@
+{"k1"="aaa";"v1"="v11";"u1"="u11"};
+{"k1"="bbb";"v1"="v12";"u1"="u12"};
+{"k1"="ccc";"v1"="v13";"u1"="u13"};
+{"k1"="ddd";"v1"="v14";"u1"="u14"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_kv1_1.txt b/yt/yql/tests/sql/suites/join/sorted_by_kv1_1.txt
new file mode 100644
index 0000000000..7d1d077ae0
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_kv1_1.txt
@@ -0,0 +1,10 @@
+{"k1"="aaa";"v1"="v11";"u1"="u11"};
+{"k1"="bbb";"v1"="v12";"u1"="u12"};
+{"k1"="ccc";"v1"="v13";"u1"="u13"};
+{"k1"="ddd";"v1"="v14";"u1"="u14"};
+{"k1"="eee";"v1"="v15";"u1"="u15"};
+{"k1"="fff";"v1"="v16";"u1"="u16"};
+{"k1"="ggg";"v1"="v17";"u1"="u17"};
+{"k1"="hhh";"v1"="v18";"u1"="u18"};
+{"k1"="iii";"v1"="v19";"u1"="u19"};
+{"k1"="jjj";"v1"="v20";"u1"="u20"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_kv1_dup.txt b/yt/yql/tests/sql/suites/join/sorted_by_kv1_dup.txt
new file mode 100644
index 0000000000..b51b68a8f5
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_kv1_dup.txt
@@ -0,0 +1,8 @@
+{"k1"="aaa";"v1"="v11";"u1"="u11"};
+{"k1"="aaa";"v1"="v15";"u1"="u15"};
+{"k1"="bbb";"v1"="v12";"u1"="u12"};
+{"k1"="bbb";"v1"="v16";"u1"="u16"};
+{"k1"="ccc";"v1"="v13";"u1"="u13"};
+{"k1"="ccc";"v1"="v17";"u1"="u17"};
+{"k1"="ddd";"v1"="v14";"u1"="u14"};
+{"k1"="ddd";"v1"="v18";"u1"="u18"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_kv1_opt.txt b/yt/yql/tests/sql/suites/join/sorted_by_kv1_opt.txt
new file mode 100644
index 0000000000..647c550221
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_kv1_opt.txt
@@ -0,0 +1,5 @@
+{"k1"=#; "v1"="v10";"u1"="u10"};
+{"k1"="aaa";"v1"="v11";"u1"="u11"};
+{"k1"="bbb";"v1"="v12";"u1"="u12"};
+{"k1"="ccc";"v1"="v13";"u1"="u13"};
+{"k1"="ddd";"v1"="v14";"u1"="u14"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_kv1_unique.txt b/yt/yql/tests/sql/suites/join/sorted_by_kv1_unique.txt
new file mode 100644
index 0000000000..d8ba8879fe
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_kv1_unique.txt
@@ -0,0 +1,4 @@
+{"k1"="aaa";"v1"="v11";"u1"="u11"};
+{"k1"="bbb";"v1"="v12";"u1"="u12"};
+{"k1"="ccc";"v1"="v13";"u1"="u13"};
+{"k1"="ddd";"v1"="v14";"u1"="u14"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_kv2.txt b/yt/yql/tests/sql/suites/join/sorted_by_kv2.txt
new file mode 100644
index 0000000000..33b04d59da
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_kv2.txt
@@ -0,0 +1,3 @@
+{"k2"="bbb";"v2"="v21";"u2"="u21"};
+{"k2"="ccc";"v2"="v22";"u2"="u22"};
+{"k2"="ddd";"v2"="v23";"u2"="u23"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_kv2_dup.txt b/yt/yql/tests/sql/suites/join/sorted_by_kv2_dup.txt
new file mode 100644
index 0000000000..80a400c3e6
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_kv2_dup.txt
@@ -0,0 +1,6 @@
+{"k2"="bbb";"v2"="v21";"u2"="u21"};
+{"k2"="bbb";"v2"="v24";"u2"="u24"};
+{"k2"="ccc";"v2"="v22";"u2"="u22"};
+{"k2"="ccc";"v2"="v25";"u2"="u25"};
+{"k2"="ddd";"v2"="v23";"u2"="u23"};
+{"k2"="ddd";"v2"="v26";"u2"="u26"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_kv2_empty.txt b/yt/yql/tests/sql/suites/join/sorted_by_kv2_empty.txt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_kv2_empty.txt
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_kv2_opt.txt b/yt/yql/tests/sql/suites/join/sorted_by_kv2_opt.txt
new file mode 100644
index 0000000000..817b066cf5
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_kv2_opt.txt
@@ -0,0 +1,3 @@
+{"k2"=#; "v2"=#; "u2"="u20"};
+{"k2"="bbb";"v2"="v21";"u2"="u21"};
+{"k2"="ccc";"v2"="v22";"u2"="u22"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_by_kv3.txt b/yt/yql/tests/sql/suites/join/sorted_by_kv3.txt
new file mode 100644
index 0000000000..13d78d00ec
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_by_kv3.txt
@@ -0,0 +1,3 @@
+{"k3"="ccc";"v3"="v31";"u3"="u31"};
+{"k3"="ddd";"v3"="v32";"u3"="u32"};
+{"k3"="eee";"v3"="v33";"u3"="u33"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_uniq.txt b/yt/yql/tests/sql/suites/join/sorted_uniq.txt
new file mode 100644
index 0000000000..3aa17b8d65
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_uniq.txt
@@ -0,0 +1,8 @@
+{"key"="023";"subkey"="3";"value"="aaa"};
+{"key"="037";"subkey"="5";"value"="ddd"};
+{"key"="075";"subkey"="1";"value"="abc"};
+{"key"="150";"subkey"="1";"value"="aaa"};
+{"key"="200";"subkey"="7";"value"="qqq"};
+{"key"="527";"subkey"="4";"value"="bbb"};
+{"key"="761";"subkey"="6";"value"="ccc"};
+{"key"="911";"subkey"="2";"value"="kkk"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_uniq1.txt b/yt/yql/tests/sql/suites/join/sorted_uniq1.txt
new file mode 100644
index 0000000000..e84b5f77d1
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_uniq1.txt
@@ -0,0 +1,14 @@
+{"key"="023";"subkey"="1";"value"="aaa"};
+{"key"="037";"subkey"="120";"value"="aab"};
+{"key"="075";"subkey"="150";"value"="abc"};
+{"key"="150";"subkey"="2";"value"="bbb"};
+{"key"="200";"subkey"="3";"value"="ccc"};
+{"key"="527";"subkey"="4";"value"="ddd"};
+{"key"="761";"subkey"="527";"value"="kkk"};
+{"key"="911";"subkey"="761";"value"="qqq"};
+{"key"="912";"subkey"="762";"value"="qqr"};
+{"key"="913";"subkey"="763";"value"="qqs"};
+{"key"="914";"subkey"="764";"value"="qqt"};
+{"key"="915";"subkey"="765";"value"="qqu"};
+{"key"="916";"subkey"="766";"value"="qqv"};
+{"key"="917";"subkey"="767";"value"="qqw"};
diff --git a/yt/yql/tests/sql/suites/join/sorted_uniq2.txt b/yt/yql/tests/sql/suites/join/sorted_uniq2.txt
new file mode 100644
index 0000000000..e84b5f77d1
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/sorted_uniq2.txt
@@ -0,0 +1,14 @@
+{"key"="023";"subkey"="1";"value"="aaa"};
+{"key"="037";"subkey"="120";"value"="aab"};
+{"key"="075";"subkey"="150";"value"="abc"};
+{"key"="150";"subkey"="2";"value"="bbb"};
+{"key"="200";"subkey"="3";"value"="ccc"};
+{"key"="527";"subkey"="4";"value"="ddd"};
+{"key"="761";"subkey"="527";"value"="kkk"};
+{"key"="911";"subkey"="761";"value"="qqq"};
+{"key"="912";"subkey"="762";"value"="qqr"};
+{"key"="913";"subkey"="763";"value"="qqs"};
+{"key"="914";"subkey"="764";"value"="qqt"};
+{"key"="915";"subkey"="765";"value"="qqu"};
+{"key"="916";"subkey"="766";"value"="qqv"};
+{"key"="917";"subkey"="767";"value"="qqw"};
diff --git a/yt/yql/tests/sql/suites/join/spider_info.txt b/yt/yql/tests/sql/suites/join/spider_info.txt
new file mode 100644
index 0000000000..f8c75fb66e
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/spider_info.txt
@@ -0,0 +1,8 @@
+{"key"="1.1.1.1";"subkey"="RESULT";"value"="http://www.foo.bar/wtf"};
+{"key"="1.1.1.1";"subkey"="RESULT";"value"="http://www.foo.bar/spam"};
+{"key"="1.1.1.1";"subkey"="BAN_DETECTED";"value"="http://www.foo.bar/spam"};
+{"key"="2.2.2.2";"subkey"="RESULT";"value"="http://www.spam.ru/foo"};
+{"key"="2.2.2.2";"subkey"="BAN_DETECTED";"value"="http://www.spam.ru/foo"};
+{"key"="2.2.2.2";"subkey"="RESULT";"value"="http://www.spam.ru/bar"};
+{"key"="2.2.2.2";"subkey"="BAN_DETECTED";"value"="http://www.spam.ru/bar"};
+{"key"="2.2.2.2";"subkey"="RESULT";"value"="http://www.yandex.ru/wat"};
diff --git a/yt/yql/tests/sql/suites/join/test_join_1.txt b/yt/yql/tests/sql/suites/join/test_join_1.txt
new file mode 100644
index 0000000000..e6eac2eaa2
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/test_join_1.txt
@@ -0,0 +1,1000 @@
+{"key"="1";"subkey"="1";"value"="999"};
+{"key"="2";"subkey"="4";"value"="998"};
+{"key"="3";"subkey"="9";"value"="997"};
+{"key"="4";"subkey"="16";"value"="996"};
+{"key"="5";"subkey"="25";"value"="995"};
+{"key"="6";"subkey"="36";"value"="994"};
+{"key"="7";"subkey"="49";"value"="993"};
+{"key"="8";"subkey"="64";"value"="992"};
+{"key"="9";"subkey"="81";"value"="991"};
+{"key"="10";"subkey"="100";"value"="990"};
+{"key"="11";"subkey"="121";"value"="989"};
+{"key"="12";"subkey"="144";"value"="988"};
+{"key"="13";"subkey"="169";"value"="987"};
+{"key"="14";"subkey"="196";"value"="986"};
+{"key"="15";"subkey"="225";"value"="985"};
+{"key"="16";"subkey"="256";"value"="984"};
+{"key"="17";"subkey"="289";"value"="983"};
+{"key"="18";"subkey"="324";"value"="982"};
+{"key"="19";"subkey"="361";"value"="981"};
+{"key"="20";"subkey"="400";"value"="980"};
+{"key"="21";"subkey"="441";"value"="979"};
+{"key"="22";"subkey"="484";"value"="978"};
+{"key"="23";"subkey"="529";"value"="977"};
+{"key"="24";"subkey"="576";"value"="976"};
+{"key"="25";"subkey"="625";"value"="975"};
+{"key"="26";"subkey"="676";"value"="974"};
+{"key"="27";"subkey"="729";"value"="973"};
+{"key"="28";"subkey"="784";"value"="972"};
+{"key"="29";"subkey"="841";"value"="971"};
+{"key"="30";"subkey"="900";"value"="970"};
+{"key"="31";"subkey"="961";"value"="969"};
+{"key"="32";"subkey"="1024";"value"="968"};
+{"key"="33";"subkey"="1089";"value"="967"};
+{"key"="34";"subkey"="1156";"value"="966"};
+{"key"="35";"subkey"="1225";"value"="965"};
+{"key"="36";"subkey"="1296";"value"="964"};
+{"key"="37";"subkey"="1369";"value"="963"};
+{"key"="38";"subkey"="1444";"value"="962"};
+{"key"="39";"subkey"="1521";"value"="961"};
+{"key"="40";"subkey"="1600";"value"="960"};
+{"key"="41";"subkey"="1681";"value"="959"};
+{"key"="42";"subkey"="1764";"value"="958"};
+{"key"="43";"subkey"="1849";"value"="957"};
+{"key"="44";"subkey"="1936";"value"="956"};
+{"key"="45";"subkey"="2025";"value"="955"};
+{"key"="46";"subkey"="2116";"value"="954"};
+{"key"="47";"subkey"="2209";"value"="953"};
+{"key"="48";"subkey"="2304";"value"="952"};
+{"key"="49";"subkey"="2401";"value"="951"};
+{"key"="50";"subkey"="2500";"value"="950"};
+{"key"="51";"subkey"="2601";"value"="949"};
+{"key"="52";"subkey"="2704";"value"="948"};
+{"key"="53";"subkey"="2809";"value"="947"};
+{"key"="54";"subkey"="2916";"value"="946"};
+{"key"="55";"subkey"="3025";"value"="945"};
+{"key"="56";"subkey"="3136";"value"="944"};
+{"key"="57";"subkey"="3249";"value"="943"};
+{"key"="58";"subkey"="3364";"value"="942"};
+{"key"="59";"subkey"="3481";"value"="941"};
+{"key"="60";"subkey"="3600";"value"="940"};
+{"key"="61";"subkey"="3721";"value"="939"};
+{"key"="62";"subkey"="3844";"value"="938"};
+{"key"="63";"subkey"="3969";"value"="937"};
+{"key"="64";"subkey"="4096";"value"="936"};
+{"key"="65";"subkey"="4225";"value"="935"};
+{"key"="66";"subkey"="4356";"value"="934"};
+{"key"="67";"subkey"="4489";"value"="933"};
+{"key"="68";"subkey"="4624";"value"="932"};
+{"key"="69";"subkey"="4761";"value"="931"};
+{"key"="70";"subkey"="4900";"value"="930"};
+{"key"="71";"subkey"="5041";"value"="929"};
+{"key"="72";"subkey"="5184";"value"="928"};
+{"key"="73";"subkey"="5329";"value"="927"};
+{"key"="74";"subkey"="5476";"value"="926"};
+{"key"="75";"subkey"="5625";"value"="925"};
+{"key"="76";"subkey"="5776";"value"="924"};
+{"key"="77";"subkey"="5929";"value"="923"};
+{"key"="78";"subkey"="6084";"value"="922"};
+{"key"="79";"subkey"="6241";"value"="921"};
+{"key"="80";"subkey"="6400";"value"="920"};
+{"key"="81";"subkey"="6561";"value"="919"};
+{"key"="82";"subkey"="6724";"value"="918"};
+{"key"="83";"subkey"="6889";"value"="917"};
+{"key"="84";"subkey"="7056";"value"="916"};
+{"key"="85";"subkey"="7225";"value"="915"};
+{"key"="86";"subkey"="7396";"value"="914"};
+{"key"="87";"subkey"="7569";"value"="913"};
+{"key"="88";"subkey"="7744";"value"="912"};
+{"key"="89";"subkey"="7921";"value"="911"};
+{"key"="90";"subkey"="8100";"value"="910"};
+{"key"="91";"subkey"="8281";"value"="909"};
+{"key"="92";"subkey"="8464";"value"="908"};
+{"key"="93";"subkey"="8649";"value"="907"};
+{"key"="94";"subkey"="8836";"value"="906"};
+{"key"="95";"subkey"="9025";"value"="905"};
+{"key"="96";"subkey"="9216";"value"="904"};
+{"key"="97";"subkey"="9409";"value"="903"};
+{"key"="98";"subkey"="9604";"value"="902"};
+{"key"="99";"subkey"="9801";"value"="901"};
+{"key"="100";"subkey"="10000";"value"="900"};
+{"key"="101";"subkey"="10201";"value"="899"};
+{"key"="102";"subkey"="10404";"value"="898"};
+{"key"="103";"subkey"="10609";"value"="897"};
+{"key"="104";"subkey"="10816";"value"="896"};
+{"key"="105";"subkey"="11025";"value"="895"};
+{"key"="106";"subkey"="11236";"value"="894"};
+{"key"="107";"subkey"="11449";"value"="893"};
+{"key"="108";"subkey"="11664";"value"="892"};
+{"key"="109";"subkey"="11881";"value"="891"};
+{"key"="110";"subkey"="12100";"value"="890"};
+{"key"="111";"subkey"="12321";"value"="889"};
+{"key"="112";"subkey"="12544";"value"="888"};
+{"key"="113";"subkey"="12769";"value"="887"};
+{"key"="114";"subkey"="12996";"value"="886"};
+{"key"="115";"subkey"="13225";"value"="885"};
+{"key"="116";"subkey"="13456";"value"="884"};
+{"key"="117";"subkey"="13689";"value"="883"};
+{"key"="118";"subkey"="13924";"value"="882"};
+{"key"="119";"subkey"="14161";"value"="881"};
+{"key"="120";"subkey"="14400";"value"="880"};
+{"key"="121";"subkey"="14641";"value"="879"};
+{"key"="122";"subkey"="14884";"value"="878"};
+{"key"="123";"subkey"="15129";"value"="877"};
+{"key"="124";"subkey"="15376";"value"="876"};
+{"key"="125";"subkey"="15625";"value"="875"};
+{"key"="126";"subkey"="15876";"value"="874"};
+{"key"="127";"subkey"="16129";"value"="873"};
+{"key"="128";"subkey"="16384";"value"="872"};
+{"key"="129";"subkey"="16641";"value"="871"};
+{"key"="130";"subkey"="16900";"value"="870"};
+{"key"="131";"subkey"="17161";"value"="869"};
+{"key"="132";"subkey"="17424";"value"="868"};
+{"key"="133";"subkey"="17689";"value"="867"};
+{"key"="134";"subkey"="17956";"value"="866"};
+{"key"="135";"subkey"="18225";"value"="865"};
+{"key"="136";"subkey"="18496";"value"="864"};
+{"key"="137";"subkey"="18769";"value"="863"};
+{"key"="138";"subkey"="19044";"value"="862"};
+{"key"="139";"subkey"="19321";"value"="861"};
+{"key"="140";"subkey"="19600";"value"="860"};
+{"key"="141";"subkey"="19881";"value"="859"};
+{"key"="142";"subkey"="20164";"value"="858"};
+{"key"="143";"subkey"="20449";"value"="857"};
+{"key"="144";"subkey"="20736";"value"="856"};
+{"key"="145";"subkey"="21025";"value"="855"};
+{"key"="146";"subkey"="21316";"value"="854"};
+{"key"="147";"subkey"="21609";"value"="853"};
+{"key"="148";"subkey"="21904";"value"="852"};
+{"key"="149";"subkey"="22201";"value"="851"};
+{"key"="150";"subkey"="22500";"value"="850"};
+{"key"="151";"subkey"="22801";"value"="849"};
+{"key"="152";"subkey"="23104";"value"="848"};
+{"key"="153";"subkey"="23409";"value"="847"};
+{"key"="154";"subkey"="23716";"value"="846"};
+{"key"="155";"subkey"="24025";"value"="845"};
+{"key"="156";"subkey"="24336";"value"="844"};
+{"key"="157";"subkey"="24649";"value"="843"};
+{"key"="158";"subkey"="24964";"value"="842"};
+{"key"="159";"subkey"="25281";"value"="841"};
+{"key"="160";"subkey"="25600";"value"="840"};
+{"key"="161";"subkey"="25921";"value"="839"};
+{"key"="162";"subkey"="26244";"value"="838"};
+{"key"="163";"subkey"="26569";"value"="837"};
+{"key"="164";"subkey"="26896";"value"="836"};
+{"key"="165";"subkey"="27225";"value"="835"};
+{"key"="166";"subkey"="27556";"value"="834"};
+{"key"="167";"subkey"="27889";"value"="833"};
+{"key"="168";"subkey"="28224";"value"="832"};
+{"key"="169";"subkey"="28561";"value"="831"};
+{"key"="170";"subkey"="28900";"value"="830"};
+{"key"="171";"subkey"="29241";"value"="829"};
+{"key"="172";"subkey"="29584";"value"="828"};
+{"key"="173";"subkey"="29929";"value"="827"};
+{"key"="174";"subkey"="30276";"value"="826"};
+{"key"="175";"subkey"="30625";"value"="825"};
+{"key"="176";"subkey"="30976";"value"="824"};
+{"key"="177";"subkey"="31329";"value"="823"};
+{"key"="178";"subkey"="31684";"value"="822"};
+{"key"="179";"subkey"="32041";"value"="821"};
+{"key"="180";"subkey"="32400";"value"="820"};
+{"key"="181";"subkey"="32761";"value"="819"};
+{"key"="182";"subkey"="33124";"value"="818"};
+{"key"="183";"subkey"="33489";"value"="817"};
+{"key"="184";"subkey"="33856";"value"="816"};
+{"key"="185";"subkey"="34225";"value"="815"};
+{"key"="186";"subkey"="34596";"value"="814"};
+{"key"="187";"subkey"="34969";"value"="813"};
+{"key"="188";"subkey"="35344";"value"="812"};
+{"key"="189";"subkey"="35721";"value"="811"};
+{"key"="190";"subkey"="36100";"value"="810"};
+{"key"="191";"subkey"="36481";"value"="809"};
+{"key"="192";"subkey"="36864";"value"="808"};
+{"key"="193";"subkey"="37249";"value"="807"};
+{"key"="194";"subkey"="37636";"value"="806"};
+{"key"="195";"subkey"="38025";"value"="805"};
+{"key"="196";"subkey"="38416";"value"="804"};
+{"key"="197";"subkey"="38809";"value"="803"};
+{"key"="198";"subkey"="39204";"value"="802"};
+{"key"="199";"subkey"="39601";"value"="801"};
+{"key"="200";"subkey"="40000";"value"="800"};
+{"key"="201";"subkey"="40401";"value"="799"};
+{"key"="202";"subkey"="40804";"value"="798"};
+{"key"="203";"subkey"="41209";"value"="797"};
+{"key"="204";"subkey"="41616";"value"="796"};
+{"key"="205";"subkey"="42025";"value"="795"};
+{"key"="206";"subkey"="42436";"value"="794"};
+{"key"="207";"subkey"="42849";"value"="793"};
+{"key"="208";"subkey"="43264";"value"="792"};
+{"key"="209";"subkey"="43681";"value"="791"};
+{"key"="210";"subkey"="44100";"value"="790"};
+{"key"="211";"subkey"="44521";"value"="789"};
+{"key"="212";"subkey"="44944";"value"="788"};
+{"key"="213";"subkey"="45369";"value"="787"};
+{"key"="214";"subkey"="45796";"value"="786"};
+{"key"="215";"subkey"="46225";"value"="785"};
+{"key"="216";"subkey"="46656";"value"="784"};
+{"key"="217";"subkey"="47089";"value"="783"};
+{"key"="218";"subkey"="47524";"value"="782"};
+{"key"="219";"subkey"="47961";"value"="781"};
+{"key"="220";"subkey"="48400";"value"="780"};
+{"key"="221";"subkey"="48841";"value"="779"};
+{"key"="222";"subkey"="49284";"value"="778"};
+{"key"="223";"subkey"="49729";"value"="777"};
+{"key"="224";"subkey"="50176";"value"="776"};
+{"key"="225";"subkey"="50625";"value"="775"};
+{"key"="226";"subkey"="51076";"value"="774"};
+{"key"="227";"subkey"="51529";"value"="773"};
+{"key"="228";"subkey"="51984";"value"="772"};
+{"key"="229";"subkey"="52441";"value"="771"};
+{"key"="230";"subkey"="52900";"value"="770"};
+{"key"="231";"subkey"="53361";"value"="769"};
+{"key"="232";"subkey"="53824";"value"="768"};
+{"key"="233";"subkey"="54289";"value"="767"};
+{"key"="234";"subkey"="54756";"value"="766"};
+{"key"="235";"subkey"="55225";"value"="765"};
+{"key"="236";"subkey"="55696";"value"="764"};
+{"key"="237";"subkey"="56169";"value"="763"};
+{"key"="238";"subkey"="56644";"value"="762"};
+{"key"="239";"subkey"="57121";"value"="761"};
+{"key"="240";"subkey"="57600";"value"="760"};
+{"key"="241";"subkey"="58081";"value"="759"};
+{"key"="242";"subkey"="58564";"value"="758"};
+{"key"="243";"subkey"="59049";"value"="757"};
+{"key"="244";"subkey"="59536";"value"="756"};
+{"key"="245";"subkey"="60025";"value"="755"};
+{"key"="246";"subkey"="60516";"value"="754"};
+{"key"="247";"subkey"="61009";"value"="753"};
+{"key"="248";"subkey"="61504";"value"="752"};
+{"key"="249";"subkey"="62001";"value"="751"};
+{"key"="250";"subkey"="62500";"value"="750"};
+{"key"="251";"subkey"="63001";"value"="749"};
+{"key"="252";"subkey"="63504";"value"="748"};
+{"key"="253";"subkey"="64009";"value"="747"};
+{"key"="254";"subkey"="64516";"value"="746"};
+{"key"="255";"subkey"="65025";"value"="745"};
+{"key"="256";"subkey"="65536";"value"="744"};
+{"key"="257";"subkey"="66049";"value"="743"};
+{"key"="258";"subkey"="66564";"value"="742"};
+{"key"="259";"subkey"="67081";"value"="741"};
+{"key"="260";"subkey"="67600";"value"="740"};
+{"key"="261";"subkey"="68121";"value"="739"};
+{"key"="262";"subkey"="68644";"value"="738"};
+{"key"="263";"subkey"="69169";"value"="737"};
+{"key"="264";"subkey"="69696";"value"="736"};
+{"key"="265";"subkey"="70225";"value"="735"};
+{"key"="266";"subkey"="70756";"value"="734"};
+{"key"="267";"subkey"="71289";"value"="733"};
+{"key"="268";"subkey"="71824";"value"="732"};
+{"key"="269";"subkey"="72361";"value"="731"};
+{"key"="270";"subkey"="72900";"value"="730"};
+{"key"="271";"subkey"="73441";"value"="729"};
+{"key"="272";"subkey"="73984";"value"="728"};
+{"key"="273";"subkey"="74529";"value"="727"};
+{"key"="274";"subkey"="75076";"value"="726"};
+{"key"="275";"subkey"="75625";"value"="725"};
+{"key"="276";"subkey"="76176";"value"="724"};
+{"key"="277";"subkey"="76729";"value"="723"};
+{"key"="278";"subkey"="77284";"value"="722"};
+{"key"="279";"subkey"="77841";"value"="721"};
+{"key"="280";"subkey"="78400";"value"="720"};
+{"key"="281";"subkey"="78961";"value"="719"};
+{"key"="282";"subkey"="79524";"value"="718"};
+{"key"="283";"subkey"="80089";"value"="717"};
+{"key"="284";"subkey"="80656";"value"="716"};
+{"key"="285";"subkey"="81225";"value"="715"};
+{"key"="286";"subkey"="81796";"value"="714"};
+{"key"="287";"subkey"="82369";"value"="713"};
+{"key"="288";"subkey"="82944";"value"="712"};
+{"key"="289";"subkey"="83521";"value"="711"};
+{"key"="290";"subkey"="84100";"value"="710"};
+{"key"="291";"subkey"="84681";"value"="709"};
+{"key"="292";"subkey"="85264";"value"="708"};
+{"key"="293";"subkey"="85849";"value"="707"};
+{"key"="294";"subkey"="86436";"value"="706"};
+{"key"="295";"subkey"="87025";"value"="705"};
+{"key"="296";"subkey"="87616";"value"="704"};
+{"key"="297";"subkey"="88209";"value"="703"};
+{"key"="298";"subkey"="88804";"value"="702"};
+{"key"="299";"subkey"="89401";"value"="701"};
+{"key"="300";"subkey"="90000";"value"="700"};
+{"key"="301";"subkey"="90601";"value"="699"};
+{"key"="302";"subkey"="91204";"value"="698"};
+{"key"="303";"subkey"="91809";"value"="697"};
+{"key"="304";"subkey"="92416";"value"="696"};
+{"key"="305";"subkey"="93025";"value"="695"};
+{"key"="306";"subkey"="93636";"value"="694"};
+{"key"="307";"subkey"="94249";"value"="693"};
+{"key"="308";"subkey"="94864";"value"="692"};
+{"key"="309";"subkey"="95481";"value"="691"};
+{"key"="310";"subkey"="96100";"value"="690"};
+{"key"="311";"subkey"="96721";"value"="689"};
+{"key"="312";"subkey"="97344";"value"="688"};
+{"key"="313";"subkey"="97969";"value"="687"};
+{"key"="314";"subkey"="98596";"value"="686"};
+{"key"="315";"subkey"="99225";"value"="685"};
+{"key"="316";"subkey"="99856";"value"="684"};
+{"key"="317";"subkey"="100489";"value"="683"};
+{"key"="318";"subkey"="101124";"value"="682"};
+{"key"="319";"subkey"="101761";"value"="681"};
+{"key"="320";"subkey"="102400";"value"="680"};
+{"key"="321";"subkey"="103041";"value"="679"};
+{"key"="322";"subkey"="103684";"value"="678"};
+{"key"="323";"subkey"="104329";"value"="677"};
+{"key"="324";"subkey"="104976";"value"="676"};
+{"key"="325";"subkey"="105625";"value"="675"};
+{"key"="326";"subkey"="106276";"value"="674"};
+{"key"="327";"subkey"="106929";"value"="673"};
+{"key"="328";"subkey"="107584";"value"="672"};
+{"key"="329";"subkey"="108241";"value"="671"};
+{"key"="330";"subkey"="108900";"value"="670"};
+{"key"="331";"subkey"="109561";"value"="669"};
+{"key"="332";"subkey"="110224";"value"="668"};
+{"key"="333";"subkey"="110889";"value"="667"};
+{"key"="334";"subkey"="111556";"value"="666"};
+{"key"="335";"subkey"="112225";"value"="665"};
+{"key"="336";"subkey"="112896";"value"="664"};
+{"key"="337";"subkey"="113569";"value"="663"};
+{"key"="338";"subkey"="114244";"value"="662"};
+{"key"="339";"subkey"="114921";"value"="661"};
+{"key"="340";"subkey"="115600";"value"="660"};
+{"key"="341";"subkey"="116281";"value"="659"};
+{"key"="342";"subkey"="116964";"value"="658"};
+{"key"="343";"subkey"="117649";"value"="657"};
+{"key"="344";"subkey"="118336";"value"="656"};
+{"key"="345";"subkey"="119025";"value"="655"};
+{"key"="346";"subkey"="119716";"value"="654"};
+{"key"="347";"subkey"="120409";"value"="653"};
+{"key"="348";"subkey"="121104";"value"="652"};
+{"key"="349";"subkey"="121801";"value"="651"};
+{"key"="350";"subkey"="122500";"value"="650"};
+{"key"="351";"subkey"="123201";"value"="649"};
+{"key"="352";"subkey"="123904";"value"="648"};
+{"key"="353";"subkey"="124609";"value"="647"};
+{"key"="354";"subkey"="125316";"value"="646"};
+{"key"="355";"subkey"="126025";"value"="645"};
+{"key"="356";"subkey"="126736";"value"="644"};
+{"key"="357";"subkey"="127449";"value"="643"};
+{"key"="358";"subkey"="128164";"value"="642"};
+{"key"="359";"subkey"="128881";"value"="641"};
+{"key"="360";"subkey"="129600";"value"="640"};
+{"key"="361";"subkey"="130321";"value"="639"};
+{"key"="362";"subkey"="131044";"value"="638"};
+{"key"="363";"subkey"="131769";"value"="637"};
+{"key"="364";"subkey"="132496";"value"="636"};
+{"key"="365";"subkey"="133225";"value"="635"};
+{"key"="366";"subkey"="133956";"value"="634"};
+{"key"="367";"subkey"="134689";"value"="633"};
+{"key"="368";"subkey"="135424";"value"="632"};
+{"key"="369";"subkey"="136161";"value"="631"};
+{"key"="370";"subkey"="136900";"value"="630"};
+{"key"="371";"subkey"="137641";"value"="629"};
+{"key"="372";"subkey"="138384";"value"="628"};
+{"key"="373";"subkey"="139129";"value"="627"};
+{"key"="374";"subkey"="139876";"value"="626"};
+{"key"="375";"subkey"="140625";"value"="625"};
+{"key"="376";"subkey"="141376";"value"="624"};
+{"key"="377";"subkey"="142129";"value"="623"};
+{"key"="378";"subkey"="142884";"value"="622"};
+{"key"="379";"subkey"="143641";"value"="621"};
+{"key"="380";"subkey"="144400";"value"="620"};
+{"key"="381";"subkey"="145161";"value"="619"};
+{"key"="382";"subkey"="145924";"value"="618"};
+{"key"="383";"subkey"="146689";"value"="617"};
+{"key"="384";"subkey"="147456";"value"="616"};
+{"key"="385";"subkey"="148225";"value"="615"};
+{"key"="386";"subkey"="148996";"value"="614"};
+{"key"="387";"subkey"="149769";"value"="613"};
+{"key"="388";"subkey"="150544";"value"="612"};
+{"key"="389";"subkey"="151321";"value"="611"};
+{"key"="390";"subkey"="152100";"value"="610"};
+{"key"="391";"subkey"="152881";"value"="609"};
+{"key"="392";"subkey"="153664";"value"="608"};
+{"key"="393";"subkey"="154449";"value"="607"};
+{"key"="394";"subkey"="155236";"value"="606"};
+{"key"="395";"subkey"="156025";"value"="605"};
+{"key"="396";"subkey"="156816";"value"="604"};
+{"key"="397";"subkey"="157609";"value"="603"};
+{"key"="398";"subkey"="158404";"value"="602"};
+{"key"="399";"subkey"="159201";"value"="601"};
+{"key"="400";"subkey"="160000";"value"="600"};
+{"key"="401";"subkey"="160801";"value"="599"};
+{"key"="402";"subkey"="161604";"value"="598"};
+{"key"="403";"subkey"="162409";"value"="597"};
+{"key"="404";"subkey"="163216";"value"="596"};
+{"key"="405";"subkey"="164025";"value"="595"};
+{"key"="406";"subkey"="164836";"value"="594"};
+{"key"="407";"subkey"="165649";"value"="593"};
+{"key"="408";"subkey"="166464";"value"="592"};
+{"key"="409";"subkey"="167281";"value"="591"};
+{"key"="410";"subkey"="168100";"value"="590"};
+{"key"="411";"subkey"="168921";"value"="589"};
+{"key"="412";"subkey"="169744";"value"="588"};
+{"key"="413";"subkey"="170569";"value"="587"};
+{"key"="414";"subkey"="171396";"value"="586"};
+{"key"="415";"subkey"="172225";"value"="585"};
+{"key"="416";"subkey"="173056";"value"="584"};
+{"key"="417";"subkey"="173889";"value"="583"};
+{"key"="418";"subkey"="174724";"value"="582"};
+{"key"="419";"subkey"="175561";"value"="581"};
+{"key"="420";"subkey"="176400";"value"="580"};
+{"key"="421";"subkey"="177241";"value"="579"};
+{"key"="422";"subkey"="178084";"value"="578"};
+{"key"="423";"subkey"="178929";"value"="577"};
+{"key"="424";"subkey"="179776";"value"="576"};
+{"key"="425";"subkey"="180625";"value"="575"};
+{"key"="426";"subkey"="181476";"value"="574"};
+{"key"="427";"subkey"="182329";"value"="573"};
+{"key"="428";"subkey"="183184";"value"="572"};
+{"key"="429";"subkey"="184041";"value"="571"};
+{"key"="430";"subkey"="184900";"value"="570"};
+{"key"="431";"subkey"="185761";"value"="569"};
+{"key"="432";"subkey"="186624";"value"="568"};
+{"key"="433";"subkey"="187489";"value"="567"};
+{"key"="434";"subkey"="188356";"value"="566"};
+{"key"="435";"subkey"="189225";"value"="565"};
+{"key"="436";"subkey"="190096";"value"="564"};
+{"key"="437";"subkey"="190969";"value"="563"};
+{"key"="438";"subkey"="191844";"value"="562"};
+{"key"="439";"subkey"="192721";"value"="561"};
+{"key"="440";"subkey"="193600";"value"="560"};
+{"key"="441";"subkey"="194481";"value"="559"};
+{"key"="442";"subkey"="195364";"value"="558"};
+{"key"="443";"subkey"="196249";"value"="557"};
+{"key"="444";"subkey"="197136";"value"="556"};
+{"key"="445";"subkey"="198025";"value"="555"};
+{"key"="446";"subkey"="198916";"value"="554"};
+{"key"="447";"subkey"="199809";"value"="553"};
+{"key"="448";"subkey"="200704";"value"="552"};
+{"key"="449";"subkey"="201601";"value"="551"};
+{"key"="450";"subkey"="202500";"value"="550"};
+{"key"="451";"subkey"="203401";"value"="549"};
+{"key"="452";"subkey"="204304";"value"="548"};
+{"key"="453";"subkey"="205209";"value"="547"};
+{"key"="454";"subkey"="206116";"value"="546"};
+{"key"="455";"subkey"="207025";"value"="545"};
+{"key"="456";"subkey"="207936";"value"="544"};
+{"key"="457";"subkey"="208849";"value"="543"};
+{"key"="458";"subkey"="209764";"value"="542"};
+{"key"="459";"subkey"="210681";"value"="541"};
+{"key"="460";"subkey"="211600";"value"="540"};
+{"key"="461";"subkey"="212521";"value"="539"};
+{"key"="462";"subkey"="213444";"value"="538"};
+{"key"="463";"subkey"="214369";"value"="537"};
+{"key"="464";"subkey"="215296";"value"="536"};
+{"key"="465";"subkey"="216225";"value"="535"};
+{"key"="466";"subkey"="217156";"value"="534"};
+{"key"="467";"subkey"="218089";"value"="533"};
+{"key"="468";"subkey"="219024";"value"="532"};
+{"key"="469";"subkey"="219961";"value"="531"};
+{"key"="470";"subkey"="220900";"value"="530"};
+{"key"="471";"subkey"="221841";"value"="529"};
+{"key"="472";"subkey"="222784";"value"="528"};
+{"key"="473";"subkey"="223729";"value"="527"};
+{"key"="474";"subkey"="224676";"value"="526"};
+{"key"="475";"subkey"="225625";"value"="525"};
+{"key"="476";"subkey"="226576";"value"="524"};
+{"key"="477";"subkey"="227529";"value"="523"};
+{"key"="478";"subkey"="228484";"value"="522"};
+{"key"="479";"subkey"="229441";"value"="521"};
+{"key"="480";"subkey"="230400";"value"="520"};
+{"key"="481";"subkey"="231361";"value"="519"};
+{"key"="482";"subkey"="232324";"value"="518"};
+{"key"="483";"subkey"="233289";"value"="517"};
+{"key"="484";"subkey"="234256";"value"="516"};
+{"key"="485";"subkey"="235225";"value"="515"};
+{"key"="486";"subkey"="236196";"value"="514"};
+{"key"="487";"subkey"="237169";"value"="513"};
+{"key"="488";"subkey"="238144";"value"="512"};
+{"key"="489";"subkey"="239121";"value"="511"};
+{"key"="490";"subkey"="240100";"value"="510"};
+{"key"="491";"subkey"="241081";"value"="509"};
+{"key"="492";"subkey"="242064";"value"="508"};
+{"key"="493";"subkey"="243049";"value"="507"};
+{"key"="494";"subkey"="244036";"value"="506"};
+{"key"="495";"subkey"="245025";"value"="505"};
+{"key"="496";"subkey"="246016";"value"="504"};
+{"key"="497";"subkey"="247009";"value"="503"};
+{"key"="498";"subkey"="248004";"value"="502"};
+{"key"="499";"subkey"="249001";"value"="501"};
+{"key"="500";"subkey"="250000";"value"="500"};
+{"key"="501";"subkey"="251001";"value"="499"};
+{"key"="502";"subkey"="252004";"value"="498"};
+{"key"="503";"subkey"="253009";"value"="497"};
+{"key"="504";"subkey"="254016";"value"="496"};
+{"key"="505";"subkey"="255025";"value"="495"};
+{"key"="506";"subkey"="256036";"value"="494"};
+{"key"="507";"subkey"="257049";"value"="493"};
+{"key"="508";"subkey"="258064";"value"="492"};
+{"key"="509";"subkey"="259081";"value"="491"};
+{"key"="510";"subkey"="260100";"value"="490"};
+{"key"="511";"subkey"="261121";"value"="489"};
+{"key"="512";"subkey"="262144";"value"="488"};
+{"key"="513";"subkey"="263169";"value"="487"};
+{"key"="514";"subkey"="264196";"value"="486"};
+{"key"="515";"subkey"="265225";"value"="485"};
+{"key"="516";"subkey"="266256";"value"="484"};
+{"key"="517";"subkey"="267289";"value"="483"};
+{"key"="518";"subkey"="268324";"value"="482"};
+{"key"="519";"subkey"="269361";"value"="481"};
+{"key"="520";"subkey"="270400";"value"="480"};
+{"key"="521";"subkey"="271441";"value"="479"};
+{"key"="522";"subkey"="272484";"value"="478"};
+{"key"="523";"subkey"="273529";"value"="477"};
+{"key"="524";"subkey"="274576";"value"="476"};
+{"key"="525";"subkey"="275625";"value"="475"};
+{"key"="526";"subkey"="276676";"value"="474"};
+{"key"="527";"subkey"="277729";"value"="473"};
+{"key"="528";"subkey"="278784";"value"="472"};
+{"key"="529";"subkey"="279841";"value"="471"};
+{"key"="530";"subkey"="280900";"value"="470"};
+{"key"="531";"subkey"="281961";"value"="469"};
+{"key"="532";"subkey"="283024";"value"="468"};
+{"key"="533";"subkey"="284089";"value"="467"};
+{"key"="534";"subkey"="285156";"value"="466"};
+{"key"="535";"subkey"="286225";"value"="465"};
+{"key"="536";"subkey"="287296";"value"="464"};
+{"key"="537";"subkey"="288369";"value"="463"};
+{"key"="538";"subkey"="289444";"value"="462"};
+{"key"="539";"subkey"="290521";"value"="461"};
+{"key"="540";"subkey"="291600";"value"="460"};
+{"key"="541";"subkey"="292681";"value"="459"};
+{"key"="542";"subkey"="293764";"value"="458"};
+{"key"="543";"subkey"="294849";"value"="457"};
+{"key"="544";"subkey"="295936";"value"="456"};
+{"key"="545";"subkey"="297025";"value"="455"};
+{"key"="546";"subkey"="298116";"value"="454"};
+{"key"="547";"subkey"="299209";"value"="453"};
+{"key"="548";"subkey"="300304";"value"="452"};
+{"key"="549";"subkey"="301401";"value"="451"};
+{"key"="550";"subkey"="302500";"value"="450"};
+{"key"="551";"subkey"="303601";"value"="449"};
+{"key"="552";"subkey"="304704";"value"="448"};
+{"key"="553";"subkey"="305809";"value"="447"};
+{"key"="554";"subkey"="306916";"value"="446"};
+{"key"="555";"subkey"="308025";"value"="445"};
+{"key"="556";"subkey"="309136";"value"="444"};
+{"key"="557";"subkey"="310249";"value"="443"};
+{"key"="558";"subkey"="311364";"value"="442"};
+{"key"="559";"subkey"="312481";"value"="441"};
+{"key"="560";"subkey"="313600";"value"="440"};
+{"key"="561";"subkey"="314721";"value"="439"};
+{"key"="562";"subkey"="315844";"value"="438"};
+{"key"="563";"subkey"="316969";"value"="437"};
+{"key"="564";"subkey"="318096";"value"="436"};
+{"key"="565";"subkey"="319225";"value"="435"};
+{"key"="566";"subkey"="320356";"value"="434"};
+{"key"="567";"subkey"="321489";"value"="433"};
+{"key"="568";"subkey"="322624";"value"="432"};
+{"key"="569";"subkey"="323761";"value"="431"};
+{"key"="570";"subkey"="324900";"value"="430"};
+{"key"="571";"subkey"="326041";"value"="429"};
+{"key"="572";"subkey"="327184";"value"="428"};
+{"key"="573";"subkey"="328329";"value"="427"};
+{"key"="574";"subkey"="329476";"value"="426"};
+{"key"="575";"subkey"="330625";"value"="425"};
+{"key"="576";"subkey"="331776";"value"="424"};
+{"key"="577";"subkey"="332929";"value"="423"};
+{"key"="578";"subkey"="334084";"value"="422"};
+{"key"="579";"subkey"="335241";"value"="421"};
+{"key"="580";"subkey"="336400";"value"="420"};
+{"key"="581";"subkey"="337561";"value"="419"};
+{"key"="582";"subkey"="338724";"value"="418"};
+{"key"="583";"subkey"="339889";"value"="417"};
+{"key"="584";"subkey"="341056";"value"="416"};
+{"key"="585";"subkey"="342225";"value"="415"};
+{"key"="586";"subkey"="343396";"value"="414"};
+{"key"="587";"subkey"="344569";"value"="413"};
+{"key"="588";"subkey"="345744";"value"="412"};
+{"key"="589";"subkey"="346921";"value"="411"};
+{"key"="590";"subkey"="348100";"value"="410"};
+{"key"="591";"subkey"="349281";"value"="409"};
+{"key"="592";"subkey"="350464";"value"="408"};
+{"key"="593";"subkey"="351649";"value"="407"};
+{"key"="594";"subkey"="352836";"value"="406"};
+{"key"="595";"subkey"="354025";"value"="405"};
+{"key"="596";"subkey"="355216";"value"="404"};
+{"key"="597";"subkey"="356409";"value"="403"};
+{"key"="598";"subkey"="357604";"value"="402"};
+{"key"="599";"subkey"="358801";"value"="401"};
+{"key"="600";"subkey"="360000";"value"="400"};
+{"key"="601";"subkey"="361201";"value"="399"};
+{"key"="602";"subkey"="362404";"value"="398"};
+{"key"="603";"subkey"="363609";"value"="397"};
+{"key"="604";"subkey"="364816";"value"="396"};
+{"key"="605";"subkey"="366025";"value"="395"};
+{"key"="606";"subkey"="367236";"value"="394"};
+{"key"="607";"subkey"="368449";"value"="393"};
+{"key"="608";"subkey"="369664";"value"="392"};
+{"key"="609";"subkey"="370881";"value"="391"};
+{"key"="610";"subkey"="372100";"value"="390"};
+{"key"="611";"subkey"="373321";"value"="389"};
+{"key"="612";"subkey"="374544";"value"="388"};
+{"key"="613";"subkey"="375769";"value"="387"};
+{"key"="614";"subkey"="376996";"value"="386"};
+{"key"="615";"subkey"="378225";"value"="385"};
+{"key"="616";"subkey"="379456";"value"="384"};
+{"key"="617";"subkey"="380689";"value"="383"};
+{"key"="618";"subkey"="381924";"value"="382"};
+{"key"="619";"subkey"="383161";"value"="381"};
+{"key"="620";"subkey"="384400";"value"="380"};
+{"key"="621";"subkey"="385641";"value"="379"};
+{"key"="622";"subkey"="386884";"value"="378"};
+{"key"="623";"subkey"="388129";"value"="377"};
+{"key"="624";"subkey"="389376";"value"="376"};
+{"key"="625";"subkey"="390625";"value"="375"};
+{"key"="626";"subkey"="391876";"value"="374"};
+{"key"="627";"subkey"="393129";"value"="373"};
+{"key"="628";"subkey"="394384";"value"="372"};
+{"key"="629";"subkey"="395641";"value"="371"};
+{"key"="630";"subkey"="396900";"value"="370"};
+{"key"="631";"subkey"="398161";"value"="369"};
+{"key"="632";"subkey"="399424";"value"="368"};
+{"key"="633";"subkey"="400689";"value"="367"};
+{"key"="634";"subkey"="401956";"value"="366"};
+{"key"="635";"subkey"="403225";"value"="365"};
+{"key"="636";"subkey"="404496";"value"="364"};
+{"key"="637";"subkey"="405769";"value"="363"};
+{"key"="638";"subkey"="407044";"value"="362"};
+{"key"="639";"subkey"="408321";"value"="361"};
+{"key"="640";"subkey"="409600";"value"="360"};
+{"key"="641";"subkey"="410881";"value"="359"};
+{"key"="642";"subkey"="412164";"value"="358"};
+{"key"="643";"subkey"="413449";"value"="357"};
+{"key"="644";"subkey"="414736";"value"="356"};
+{"key"="645";"subkey"="416025";"value"="355"};
+{"key"="646";"subkey"="417316";"value"="354"};
+{"key"="647";"subkey"="418609";"value"="353"};
+{"key"="648";"subkey"="419904";"value"="352"};
+{"key"="649";"subkey"="421201";"value"="351"};
+{"key"="650";"subkey"="422500";"value"="350"};
+{"key"="651";"subkey"="423801";"value"="349"};
+{"key"="652";"subkey"="425104";"value"="348"};
+{"key"="653";"subkey"="426409";"value"="347"};
+{"key"="654";"subkey"="427716";"value"="346"};
+{"key"="655";"subkey"="429025";"value"="345"};
+{"key"="656";"subkey"="430336";"value"="344"};
+{"key"="657";"subkey"="431649";"value"="343"};
+{"key"="658";"subkey"="432964";"value"="342"};
+{"key"="659";"subkey"="434281";"value"="341"};
+{"key"="660";"subkey"="435600";"value"="340"};
+{"key"="661";"subkey"="436921";"value"="339"};
+{"key"="662";"subkey"="438244";"value"="338"};
+{"key"="663";"subkey"="439569";"value"="337"};
+{"key"="664";"subkey"="440896";"value"="336"};
+{"key"="665";"subkey"="442225";"value"="335"};
+{"key"="666";"subkey"="443556";"value"="334"};
+{"key"="667";"subkey"="444889";"value"="333"};
+{"key"="668";"subkey"="446224";"value"="332"};
+{"key"="669";"subkey"="447561";"value"="331"};
+{"key"="670";"subkey"="448900";"value"="330"};
+{"key"="671";"subkey"="450241";"value"="329"};
+{"key"="672";"subkey"="451584";"value"="328"};
+{"key"="673";"subkey"="452929";"value"="327"};
+{"key"="674";"subkey"="454276";"value"="326"};
+{"key"="675";"subkey"="455625";"value"="325"};
+{"key"="676";"subkey"="456976";"value"="324"};
+{"key"="677";"subkey"="458329";"value"="323"};
+{"key"="678";"subkey"="459684";"value"="322"};
+{"key"="679";"subkey"="461041";"value"="321"};
+{"key"="680";"subkey"="462400";"value"="320"};
+{"key"="681";"subkey"="463761";"value"="319"};
+{"key"="682";"subkey"="465124";"value"="318"};
+{"key"="683";"subkey"="466489";"value"="317"};
+{"key"="684";"subkey"="467856";"value"="316"};
+{"key"="685";"subkey"="469225";"value"="315"};
+{"key"="686";"subkey"="470596";"value"="314"};
+{"key"="687";"subkey"="471969";"value"="313"};
+{"key"="688";"subkey"="473344";"value"="312"};
+{"key"="689";"subkey"="474721";"value"="311"};
+{"key"="690";"subkey"="476100";"value"="310"};
+{"key"="691";"subkey"="477481";"value"="309"};
+{"key"="692";"subkey"="478864";"value"="308"};
+{"key"="693";"subkey"="480249";"value"="307"};
+{"key"="694";"subkey"="481636";"value"="306"};
+{"key"="695";"subkey"="483025";"value"="305"};
+{"key"="696";"subkey"="484416";"value"="304"};
+{"key"="697";"subkey"="485809";"value"="303"};
+{"key"="698";"subkey"="487204";"value"="302"};
+{"key"="699";"subkey"="488601";"value"="301"};
+{"key"="700";"subkey"="490000";"value"="300"};
+{"key"="701";"subkey"="491401";"value"="299"};
+{"key"="702";"subkey"="492804";"value"="298"};
+{"key"="703";"subkey"="494209";"value"="297"};
+{"key"="704";"subkey"="495616";"value"="296"};
+{"key"="705";"subkey"="497025";"value"="295"};
+{"key"="706";"subkey"="498436";"value"="294"};
+{"key"="707";"subkey"="499849";"value"="293"};
+{"key"="708";"subkey"="501264";"value"="292"};
+{"key"="709";"subkey"="502681";"value"="291"};
+{"key"="710";"subkey"="504100";"value"="290"};
+{"key"="711";"subkey"="505521";"value"="289"};
+{"key"="712";"subkey"="506944";"value"="288"};
+{"key"="713";"subkey"="508369";"value"="287"};
+{"key"="714";"subkey"="509796";"value"="286"};
+{"key"="715";"subkey"="511225";"value"="285"};
+{"key"="716";"subkey"="512656";"value"="284"};
+{"key"="717";"subkey"="514089";"value"="283"};
+{"key"="718";"subkey"="515524";"value"="282"};
+{"key"="719";"subkey"="516961";"value"="281"};
+{"key"="720";"subkey"="518400";"value"="280"};
+{"key"="721";"subkey"="519841";"value"="279"};
+{"key"="722";"subkey"="521284";"value"="278"};
+{"key"="723";"subkey"="522729";"value"="277"};
+{"key"="724";"subkey"="524176";"value"="276"};
+{"key"="725";"subkey"="525625";"value"="275"};
+{"key"="726";"subkey"="527076";"value"="274"};
+{"key"="727";"subkey"="528529";"value"="273"};
+{"key"="728";"subkey"="529984";"value"="272"};
+{"key"="729";"subkey"="531441";"value"="271"};
+{"key"="730";"subkey"="532900";"value"="270"};
+{"key"="731";"subkey"="534361";"value"="269"};
+{"key"="732";"subkey"="535824";"value"="268"};
+{"key"="733";"subkey"="537289";"value"="267"};
+{"key"="734";"subkey"="538756";"value"="266"};
+{"key"="735";"subkey"="540225";"value"="265"};
+{"key"="736";"subkey"="541696";"value"="264"};
+{"key"="737";"subkey"="543169";"value"="263"};
+{"key"="738";"subkey"="544644";"value"="262"};
+{"key"="739";"subkey"="546121";"value"="261"};
+{"key"="740";"subkey"="547600";"value"="260"};
+{"key"="741";"subkey"="549081";"value"="259"};
+{"key"="742";"subkey"="550564";"value"="258"};
+{"key"="743";"subkey"="552049";"value"="257"};
+{"key"="744";"subkey"="553536";"value"="256"};
+{"key"="745";"subkey"="555025";"value"="255"};
+{"key"="746";"subkey"="556516";"value"="254"};
+{"key"="747";"subkey"="558009";"value"="253"};
+{"key"="748";"subkey"="559504";"value"="252"};
+{"key"="749";"subkey"="561001";"value"="251"};
+{"key"="750";"subkey"="562500";"value"="250"};
+{"key"="751";"subkey"="564001";"value"="249"};
+{"key"="752";"subkey"="565504";"value"="248"};
+{"key"="753";"subkey"="567009";"value"="247"};
+{"key"="754";"subkey"="568516";"value"="246"};
+{"key"="755";"subkey"="570025";"value"="245"};
+{"key"="756";"subkey"="571536";"value"="244"};
+{"key"="757";"subkey"="573049";"value"="243"};
+{"key"="758";"subkey"="574564";"value"="242"};
+{"key"="759";"subkey"="576081";"value"="241"};
+{"key"="760";"subkey"="577600";"value"="240"};
+{"key"="761";"subkey"="579121";"value"="239"};
+{"key"="762";"subkey"="580644";"value"="238"};
+{"key"="763";"subkey"="582169";"value"="237"};
+{"key"="764";"subkey"="583696";"value"="236"};
+{"key"="765";"subkey"="585225";"value"="235"};
+{"key"="766";"subkey"="586756";"value"="234"};
+{"key"="767";"subkey"="588289";"value"="233"};
+{"key"="768";"subkey"="589824";"value"="232"};
+{"key"="769";"subkey"="591361";"value"="231"};
+{"key"="770";"subkey"="592900";"value"="230"};
+{"key"="771";"subkey"="594441";"value"="229"};
+{"key"="772";"subkey"="595984";"value"="228"};
+{"key"="773";"subkey"="597529";"value"="227"};
+{"key"="774";"subkey"="599076";"value"="226"};
+{"key"="775";"subkey"="600625";"value"="225"};
+{"key"="776";"subkey"="602176";"value"="224"};
+{"key"="777";"subkey"="603729";"value"="223"};
+{"key"="778";"subkey"="605284";"value"="222"};
+{"key"="779";"subkey"="606841";"value"="221"};
+{"key"="780";"subkey"="608400";"value"="220"};
+{"key"="781";"subkey"="609961";"value"="219"};
+{"key"="782";"subkey"="611524";"value"="218"};
+{"key"="783";"subkey"="613089";"value"="217"};
+{"key"="784";"subkey"="614656";"value"="216"};
+{"key"="785";"subkey"="616225";"value"="215"};
+{"key"="786";"subkey"="617796";"value"="214"};
+{"key"="787";"subkey"="619369";"value"="213"};
+{"key"="788";"subkey"="620944";"value"="212"};
+{"key"="789";"subkey"="622521";"value"="211"};
+{"key"="790";"subkey"="624100";"value"="210"};
+{"key"="791";"subkey"="625681";"value"="209"};
+{"key"="792";"subkey"="627264";"value"="208"};
+{"key"="793";"subkey"="628849";"value"="207"};
+{"key"="794";"subkey"="630436";"value"="206"};
+{"key"="795";"subkey"="632025";"value"="205"};
+{"key"="796";"subkey"="633616";"value"="204"};
+{"key"="797";"subkey"="635209";"value"="203"};
+{"key"="798";"subkey"="636804";"value"="202"};
+{"key"="799";"subkey"="638401";"value"="201"};
+{"key"="800";"subkey"="640000";"value"="200"};
+{"key"="801";"subkey"="641601";"value"="199"};
+{"key"="802";"subkey"="643204";"value"="198"};
+{"key"="803";"subkey"="644809";"value"="197"};
+{"key"="804";"subkey"="646416";"value"="196"};
+{"key"="805";"subkey"="648025";"value"="195"};
+{"key"="806";"subkey"="649636";"value"="194"};
+{"key"="807";"subkey"="651249";"value"="193"};
+{"key"="808";"subkey"="652864";"value"="192"};
+{"key"="809";"subkey"="654481";"value"="191"};
+{"key"="810";"subkey"="656100";"value"="190"};
+{"key"="811";"subkey"="657721";"value"="189"};
+{"key"="812";"subkey"="659344";"value"="188"};
+{"key"="813";"subkey"="660969";"value"="187"};
+{"key"="814";"subkey"="662596";"value"="186"};
+{"key"="815";"subkey"="664225";"value"="185"};
+{"key"="816";"subkey"="665856";"value"="184"};
+{"key"="817";"subkey"="667489";"value"="183"};
+{"key"="818";"subkey"="669124";"value"="182"};
+{"key"="819";"subkey"="670761";"value"="181"};
+{"key"="820";"subkey"="672400";"value"="180"};
+{"key"="821";"subkey"="674041";"value"="179"};
+{"key"="822";"subkey"="675684";"value"="178"};
+{"key"="823";"subkey"="677329";"value"="177"};
+{"key"="824";"subkey"="678976";"value"="176"};
+{"key"="825";"subkey"="680625";"value"="175"};
+{"key"="826";"subkey"="682276";"value"="174"};
+{"key"="827";"subkey"="683929";"value"="173"};
+{"key"="828";"subkey"="685584";"value"="172"};
+{"key"="829";"subkey"="687241";"value"="171"};
+{"key"="830";"subkey"="688900";"value"="170"};
+{"key"="831";"subkey"="690561";"value"="169"};
+{"key"="832";"subkey"="692224";"value"="168"};
+{"key"="833";"subkey"="693889";"value"="167"};
+{"key"="834";"subkey"="695556";"value"="166"};
+{"key"="835";"subkey"="697225";"value"="165"};
+{"key"="836";"subkey"="698896";"value"="164"};
+{"key"="837";"subkey"="700569";"value"="163"};
+{"key"="838";"subkey"="702244";"value"="162"};
+{"key"="839";"subkey"="703921";"value"="161"};
+{"key"="840";"subkey"="705600";"value"="160"};
+{"key"="841";"subkey"="707281";"value"="159"};
+{"key"="842";"subkey"="708964";"value"="158"};
+{"key"="843";"subkey"="710649";"value"="157"};
+{"key"="844";"subkey"="712336";"value"="156"};
+{"key"="845";"subkey"="714025";"value"="155"};
+{"key"="846";"subkey"="715716";"value"="154"};
+{"key"="847";"subkey"="717409";"value"="153"};
+{"key"="848";"subkey"="719104";"value"="152"};
+{"key"="849";"subkey"="720801";"value"="151"};
+{"key"="850";"subkey"="722500";"value"="150"};
+{"key"="851";"subkey"="724201";"value"="149"};
+{"key"="852";"subkey"="725904";"value"="148"};
+{"key"="853";"subkey"="727609";"value"="147"};
+{"key"="854";"subkey"="729316";"value"="146"};
+{"key"="855";"subkey"="731025";"value"="145"};
+{"key"="856";"subkey"="732736";"value"="144"};
+{"key"="857";"subkey"="734449";"value"="143"};
+{"key"="858";"subkey"="736164";"value"="142"};
+{"key"="859";"subkey"="737881";"value"="141"};
+{"key"="860";"subkey"="739600";"value"="140"};
+{"key"="861";"subkey"="741321";"value"="139"};
+{"key"="862";"subkey"="743044";"value"="138"};
+{"key"="863";"subkey"="744769";"value"="137"};
+{"key"="864";"subkey"="746496";"value"="136"};
+{"key"="865";"subkey"="748225";"value"="135"};
+{"key"="866";"subkey"="749956";"value"="134"};
+{"key"="867";"subkey"="751689";"value"="133"};
+{"key"="868";"subkey"="753424";"value"="132"};
+{"key"="869";"subkey"="755161";"value"="131"};
+{"key"="870";"subkey"="756900";"value"="130"};
+{"key"="871";"subkey"="758641";"value"="129"};
+{"key"="872";"subkey"="760384";"value"="128"};
+{"key"="873";"subkey"="762129";"value"="127"};
+{"key"="874";"subkey"="763876";"value"="126"};
+{"key"="875";"subkey"="765625";"value"="125"};
+{"key"="876";"subkey"="767376";"value"="124"};
+{"key"="877";"subkey"="769129";"value"="123"};
+{"key"="878";"subkey"="770884";"value"="122"};
+{"key"="879";"subkey"="772641";"value"="121"};
+{"key"="880";"subkey"="774400";"value"="120"};
+{"key"="881";"subkey"="776161";"value"="119"};
+{"key"="882";"subkey"="777924";"value"="118"};
+{"key"="883";"subkey"="779689";"value"="117"};
+{"key"="884";"subkey"="781456";"value"="116"};
+{"key"="885";"subkey"="783225";"value"="115"};
+{"key"="886";"subkey"="784996";"value"="114"};
+{"key"="887";"subkey"="786769";"value"="113"};
+{"key"="888";"subkey"="788544";"value"="112"};
+{"key"="889";"subkey"="790321";"value"="111"};
+{"key"="890";"subkey"="792100";"value"="110"};
+{"key"="891";"subkey"="793881";"value"="109"};
+{"key"="892";"subkey"="795664";"value"="108"};
+{"key"="893";"subkey"="797449";"value"="107"};
+{"key"="894";"subkey"="799236";"value"="106"};
+{"key"="895";"subkey"="801025";"value"="105"};
+{"key"="896";"subkey"="802816";"value"="104"};
+{"key"="897";"subkey"="804609";"value"="103"};
+{"key"="898";"subkey"="806404";"value"="102"};
+{"key"="899";"subkey"="808201";"value"="101"};
+{"key"="900";"subkey"="810000";"value"="100"};
+{"key"="901";"subkey"="811801";"value"="99"};
+{"key"="902";"subkey"="813604";"value"="98"};
+{"key"="903";"subkey"="815409";"value"="97"};
+{"key"="904";"subkey"="817216";"value"="96"};
+{"key"="905";"subkey"="819025";"value"="95"};
+{"key"="906";"subkey"="820836";"value"="94"};
+{"key"="907";"subkey"="822649";"value"="93"};
+{"key"="908";"subkey"="824464";"value"="92"};
+{"key"="909";"subkey"="826281";"value"="91"};
+{"key"="910";"subkey"="828100";"value"="90"};
+{"key"="911";"subkey"="829921";"value"="89"};
+{"key"="912";"subkey"="831744";"value"="88"};
+{"key"="913";"subkey"="833569";"value"="87"};
+{"key"="914";"subkey"="835396";"value"="86"};
+{"key"="915";"subkey"="837225";"value"="85"};
+{"key"="916";"subkey"="839056";"value"="84"};
+{"key"="917";"subkey"="840889";"value"="83"};
+{"key"="918";"subkey"="842724";"value"="82"};
+{"key"="919";"subkey"="844561";"value"="81"};
+{"key"="920";"subkey"="846400";"value"="80"};
+{"key"="921";"subkey"="848241";"value"="79"};
+{"key"="922";"subkey"="850084";"value"="78"};
+{"key"="923";"subkey"="851929";"value"="77"};
+{"key"="924";"subkey"="853776";"value"="76"};
+{"key"="925";"subkey"="855625";"value"="75"};
+{"key"="926";"subkey"="857476";"value"="74"};
+{"key"="927";"subkey"="859329";"value"="73"};
+{"key"="928";"subkey"="861184";"value"="72"};
+{"key"="929";"subkey"="863041";"value"="71"};
+{"key"="930";"subkey"="864900";"value"="70"};
+{"key"="931";"subkey"="866761";"value"="69"};
+{"key"="932";"subkey"="868624";"value"="68"};
+{"key"="933";"subkey"="870489";"value"="67"};
+{"key"="934";"subkey"="872356";"value"="66"};
+{"key"="935";"subkey"="874225";"value"="65"};
+{"key"="936";"subkey"="876096";"value"="64"};
+{"key"="937";"subkey"="877969";"value"="63"};
+{"key"="938";"subkey"="879844";"value"="62"};
+{"key"="939";"subkey"="881721";"value"="61"};
+{"key"="940";"subkey"="883600";"value"="60"};
+{"key"="941";"subkey"="885481";"value"="59"};
+{"key"="942";"subkey"="887364";"value"="58"};
+{"key"="943";"subkey"="889249";"value"="57"};
+{"key"="944";"subkey"="891136";"value"="56"};
+{"key"="945";"subkey"="893025";"value"="55"};
+{"key"="946";"subkey"="894916";"value"="54"};
+{"key"="947";"subkey"="896809";"value"="53"};
+{"key"="948";"subkey"="898704";"value"="52"};
+{"key"="949";"subkey"="900601";"value"="51"};
+{"key"="950";"subkey"="902500";"value"="50"};
+{"key"="951";"subkey"="904401";"value"="49"};
+{"key"="952";"subkey"="906304";"value"="48"};
+{"key"="953";"subkey"="908209";"value"="47"};
+{"key"="954";"subkey"="910116";"value"="46"};
+{"key"="955";"subkey"="912025";"value"="45"};
+{"key"="956";"subkey"="913936";"value"="44"};
+{"key"="957";"subkey"="915849";"value"="43"};
+{"key"="958";"subkey"="917764";"value"="42"};
+{"key"="959";"subkey"="919681";"value"="41"};
+{"key"="960";"subkey"="921600";"value"="40"};
+{"key"="961";"subkey"="923521";"value"="39"};
+{"key"="962";"subkey"="925444";"value"="38"};
+{"key"="963";"subkey"="927369";"value"="37"};
+{"key"="964";"subkey"="929296";"value"="36"};
+{"key"="965";"subkey"="931225";"value"="35"};
+{"key"="966";"subkey"="933156";"value"="34"};
+{"key"="967";"subkey"="935089";"value"="33"};
+{"key"="968";"subkey"="937024";"value"="32"};
+{"key"="969";"subkey"="938961";"value"="31"};
+{"key"="970";"subkey"="940900";"value"="30"};
+{"key"="971";"subkey"="942841";"value"="29"};
+{"key"="972";"subkey"="944784";"value"="28"};
+{"key"="973";"subkey"="946729";"value"="27"};
+{"key"="974";"subkey"="948676";"value"="26"};
+{"key"="975";"subkey"="950625";"value"="25"};
+{"key"="976";"subkey"="952576";"value"="24"};
+{"key"="977";"subkey"="954529";"value"="23"};
+{"key"="978";"subkey"="956484";"value"="22"};
+{"key"="979";"subkey"="958441";"value"="21"};
+{"key"="980";"subkey"="960400";"value"="20"};
+{"key"="981";"subkey"="962361";"value"="19"};
+{"key"="982";"subkey"="964324";"value"="18"};
+{"key"="983";"subkey"="966289";"value"="17"};
+{"key"="984";"subkey"="968256";"value"="16"};
+{"key"="985";"subkey"="970225";"value"="15"};
+{"key"="986";"subkey"="972196";"value"="14"};
+{"key"="987";"subkey"="974169";"value"="13"};
+{"key"="988";"subkey"="976144";"value"="12"};
+{"key"="989";"subkey"="978121";"value"="11"};
+{"key"="990";"subkey"="980100";"value"="10"};
+{"key"="991";"subkey"="982081";"value"="9"};
+{"key"="992";"subkey"="984064";"value"="8"};
+{"key"="993";"subkey"="986049";"value"="7"};
+{"key"="994";"subkey"="988036";"value"="6"};
+{"key"="995";"subkey"="990025";"value"="5"};
+{"key"="996";"subkey"="992016";"value"="4"};
+{"key"="997";"subkey"="994009";"value"="3"};
+{"key"="998";"subkey"="996004";"value"="2"};
+{"key"="999";"subkey"="998001";"value"="1"};
+{"key"="1000";"subkey"="1000000";"value"="0"};
diff --git a/yt/yql/tests/sql/suites/join/test_join_2.txt b/yt/yql/tests/sql/suites/join/test_join_2.txt
new file mode 100644
index 0000000000..2e5076d14c
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/test_join_2.txt
@@ -0,0 +1,100 @@
+{"key"="99";"subkey"="2";"value"="x"};
+{"key"="98";"subkey"="8";"value"="xx"};
+{"key"="97";"subkey"="18";"value"="xxx"};
+{"key"="96";"subkey"="32";"value"="xxxx"};
+{"key"="95";"subkey"="50";"value"="xxxxx"};
+{"key"="94";"subkey"="72";"value"="xxxxxx"};
+{"key"="93";"subkey"="98";"value"="xxxxxxx"};
+{"key"="92";"subkey"="128";"value"="xxxxxxxx"};
+{"key"="91";"subkey"="162";"value"="xxxxxxxxx"};
+{"key"="90";"subkey"="200";"value"="xxxxxxxxxx"};
+{"key"="89";"subkey"="242";"value"="xxxxxxxxxxx"};
+{"key"="88";"subkey"="288";"value"="xxxxxxxxxxxx"};
+{"key"="87";"subkey"="338";"value"="xxxxxxxxxxxxx"};
+{"key"="86";"subkey"="392";"value"="xxxxxxxxxxxxxx"};
+{"key"="85";"subkey"="450";"value"="xxxxxxxxxxxxxxx"};
+{"key"="84";"subkey"="512";"value"="xxxxxxxxxxxxxxxx"};
+{"key"="83";"subkey"="578";"value"="xxxxxxxxxxxxxxxxx"};
+{"key"="82";"subkey"="648";"value"="xxxxxxxxxxxxxxxxxx"};
+{"key"="81";"subkey"="722";"value"="xxxxxxxxxxxxxxxxxxx"};
+{"key"="80";"subkey"="800";"value"="xxxxxxxxxxxxxxxxxxxx"};
+{"key"="79";"subkey"="882";"value"="xxxxxxxxxxxxxxxxxxxxx"};
+{"key"="78";"subkey"="968";"value"="xxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="77";"subkey"="1058";"value"="xxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="76";"subkey"="1152";"value"="xxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="75";"subkey"="1250";"value"="xxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="74";"subkey"="1352";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="73";"subkey"="1458";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="72";"subkey"="1568";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="71";"subkey"="1682";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="70";"subkey"="1800";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="69";"subkey"="1922";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="68";"subkey"="2048";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="67";"subkey"="2178";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="66";"subkey"="2312";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="65";"subkey"="2450";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="64";"subkey"="2592";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="63";"subkey"="2738";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="62";"subkey"="2888";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="61";"subkey"="3042";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="60";"subkey"="3200";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="59";"subkey"="3362";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="58";"subkey"="3528";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="57";"subkey"="3698";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="56";"subkey"="3872";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="55";"subkey"="4050";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="54";"subkey"="4232";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="53";"subkey"="4418";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="52";"subkey"="4608";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="51";"subkey"="4802";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="50";"subkey"="5000";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="49";"subkey"="5202";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="48";"subkey"="5408";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="47";"subkey"="5618";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="46";"subkey"="5832";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="45";"subkey"="6050";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="44";"subkey"="6272";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="43";"subkey"="6498";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="42";"subkey"="6728";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="41";"subkey"="6962";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="40";"subkey"="7200";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="39";"subkey"="7442";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="38";"subkey"="7688";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="37";"subkey"="7938";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="36";"subkey"="8192";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="35";"subkey"="8450";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="34";"subkey"="8712";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="33";"subkey"="8978";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="32";"subkey"="9248";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="31";"subkey"="9522";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="30";"subkey"="9800";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="29";"subkey"="10082";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="28";"subkey"="10368";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="27";"subkey"="10658";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="26";"subkey"="10952";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="25";"subkey"="11250";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="24";"subkey"="11552";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="23";"subkey"="11858";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="22";"subkey"="12168";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="21";"subkey"="12482";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="20";"subkey"="12800";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="19";"subkey"="13122";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="18";"subkey"="13448";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="17";"subkey"="13778";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="16";"subkey"="14112";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="15";"subkey"="14450";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="14";"subkey"="14792";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="13";"subkey"="15138";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="12";"subkey"="15488";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="11";"subkey"="15842";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="10";"subkey"="16200";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="9";"subkey"="16562";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="8";"subkey"="16928";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="7";"subkey"="17298";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="6";"subkey"="17672";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="5";"subkey"="18050";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="4";"subkey"="18432";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="3";"subkey"="18818";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="2";"subkey"="19208";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="1";"subkey"="19602";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
+{"key"="0";"subkey"="20000";"value"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
diff --git a/yt/yql/tests/sql/suites/join/uniqkeys.txt b/yt/yql/tests/sql/suites/join/uniqkeys.txt
new file mode 100644
index 0000000000..b214aab0d9
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/uniqkeys.txt
@@ -0,0 +1,10 @@
+{"key"="023";"subkey"="3";"value"="aaa"};
+{"key"="037";"subkey"="5";"value"="ddd"};
+{"key"="075";"subkey"="1";"value"="abc"};
+{"key"="150";"subkey"="1";"value"="aaa"};
+{"key"="150";"subkey"="3";"value"="iii"};
+{"key"="150";"subkey"="8";"value"="zzz"};
+{"key"="200";"subkey"="7";"value"="qqq"};
+{"key"="527";"subkey"="4";"value"="bbb"};
+{"key"="761";"subkey"="6";"value"="ccc"};
+{"key"="911";"subkey"="2";"value"="kkk"};
diff --git a/yt/yql/tests/sql/suites/join/view_input.txt b/yt/yql/tests/sql/suites/join/view_input.txt
new file mode 100644
index 0000000000..e1faba7b62
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/view_input.txt
@@ -0,0 +1,3 @@
+{"key"="foo";"subkey"="bar";"value"="jar"};
+{"key"="bar";"subkey"="jar";"value"="foo"};
+{"key"="jar";"subkey"="foo";"value"="baz"};
diff --git a/yt/yql/tests/sql/suites/join/vk1_sorted.txt b/yt/yql/tests/sql/suites/join/vk1_sorted.txt
new file mode 100644
index 0000000000..0210602a64
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/vk1_sorted.txt
@@ -0,0 +1,32 @@
+{"v1"="01";"k1"="1";"u1"="01"};
+{"v1"="01";"k1"="2";"u1"="02"};
+
+{"v1"="02";"k1"="1";"u1"="03"};
+{"v1"="02";"k1"="1";"u1"="04"};
+{"v1"="02";"k1"="2";"u1"="05"};
+{"v1"="02";"k1"="2";"u1"="06"};
+
+{"v1"="03";"k1"=#; "u1"="07"};
+{"v1"="03";"k1"="1";"u1"="08"};
+{"v1"="03";"k1"="2";"u1"="09"};
+
+{"v1"="04";"k1"="1";"u1"="10"};
+{"v1"="04";"k1"="2";"u1"="11"};
+
+{"v1"="05";"k1"="1";"u1"="12"};
+{"v1"="05";"k1"="2";"u1"="13"};
+
+{"v1"="06";"k1"="1";"u1"="14"};
+{"v1"="06";"k1"="2";"u1"="15"};
+
+{"v1"="07";"k1"="1";"u1"="16"};
+{"v1"="07";"k1"="2";"u1"="17"};
+
+{"v1"="08";"k1"="1";"u1"="18"};
+{"v1"="08";"k1"="2";"u1"="19"};
+
+{"v1"="09";"k1"="1";"u1"="20"};
+{"v1"="09";"k1"="2";"u1"="21"};
+
+{"v1"="10";"k1"="1";"u1"="22"};
+{"v1"="10";"k1"="2";"u1"="23"};
diff --git a/yt/yql/tests/sql/suites/join/vk2_sorted.txt b/yt/yql/tests/sql/suites/join/vk2_sorted.txt
new file mode 100644
index 0000000000..1156f3cbef
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/vk2_sorted.txt
@@ -0,0 +1,22 @@
+{"v2"="02";"k2"="1";"u2"="01"};
+{"v2"="02";"k2"="1";"u2"="02"};
+{"v2"="02";"k2"="2";"u2"="03"};
+{"v2"="02";"k2"="2";"u2"="04"};
+
+{"v2"="03";"k2"="1";"u2"="05"};
+{"v2"="03";"k2"="2";"u2"="06"};
+
+{"v2"="04";"k2"="1";"u2"="07"};
+{"v2"="04";"k2"="2";"u2"="08"};
+
+{"v2"="05";"k2"="1";"u2"="09"};
+{"v2"="05";"k2"="2";"u2"="10"};
+
+{"v2"="06";"k2"="1";"u2"="11"};
+{"v2"="06";"k2"="2";"u2"="12"};
+
+{"v2"="07";"k2"="1";"u2"="13"};
+{"v2"="07";"k2"="2";"u2"="14"};
+
+{"v2"="09";"k2"="1";"u2"="15"};
+{"v2"="09";"k2"="2";"u2"="16"};
diff --git a/yt/yql/tests/sql/suites/join/vk3_sorted.txt b/yt/yql/tests/sql/suites/join/vk3_sorted.txt
new file mode 100644
index 0000000000..3b3797f549
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/vk3_sorted.txt
@@ -0,0 +1,8 @@
+{"v3"=#; "k3"="1";"u3"="01"};
+{"v3"=#; "k3"="2";"u3"="02"};
+
+{"v3"="04";"k3"="1";"u3"="03"};
+{"v3"="04";"k3"="2";"u3"="04"};
+
+{"v3"="05";"k3"="1";"u3"="05"};
+{"v3"="05";"k3"="2";"u3"="06"};
diff --git a/yt/yql/tests/sql/suites/join/yql-4275.txt b/yt/yql/tests/sql/suites/join/yql-4275.txt
new file mode 100644
index 0000000000..172a11b713
--- /dev/null
+++ b/yt/yql/tests/sql/suites/join/yql-4275.txt
@@ -0,0 +1,6 @@
+{"key"=#;subkey=".";"value"="E"};
+{"key"=#;subkey=".";"value"="F"};
+{"key"=#;subkey=".";"value"="G"};
+{"key"=1;subkey=".";"value"="A"};
+{"key"=4;subkey=".";"value"="C"};
+{"key"=4;subkey=".";"value"="D"};