diff options
author | areredify <areredify@ydb.tech> | 2023-12-07 19:01:32 +0300 |
---|---|---|
committer | areredify <areredify@ydb.tech> | 2023-12-07 19:59:09 +0300 |
commit | a2043f21c2c07ed59112aab640ca405d793d530a (patch) | |
tree | 2add89932a18a18ec1f34b7df030d3e4fff2c7fc | |
parent | d01177cfd9cca951f32b6e68c739391d26d624b4 (diff) | |
download | ydb-a2043f21c2c07ed59112aab640ca405d793d530a.tar.gz |
preserve newlines before binary operators
-rw-r--r-- | ydb/library/yql/sql/v1/format/sql_format.cpp | 198 | ||||
-rw-r--r-- | ydb/library/yql/sql/v1/format/sql_format_ut.cpp | 48 | ||||
-rw-r--r-- | ydb/library/yql/tests/sql/sql2yql/canondata/result.json | 252 |
3 files changed, 370 insertions, 128 deletions
diff --git a/ydb/library/yql/sql/v1/format/sql_format.cpp b/ydb/library/yql/sql/v1/format/sql_format.cpp index 8fee98d22b..c88e9604f5 100644 --- a/ydb/library/yql/sql/v1/format/sql_format.cpp +++ b/ydb/library/yql/sql/v1/format/sql_format.cpp @@ -23,6 +23,7 @@ namespace { using namespace NSQLv1Generated; +using NSQLTranslation::TParsedToken; using NSQLTranslation::TParsedTokenList; using TTokenIterator = TParsedTokenList::const_iterator; @@ -1246,6 +1247,12 @@ private: WriteComments(); } + void PosFromParsedToken(const TParsedToken& token) { + LastLine = token.Line; + LastColumn = token.LinePos; + WriteComments(); + } + void VisitToken(const TToken& token) { VisitTokenImpl(token, false); } @@ -1264,7 +1271,7 @@ private: //Cerr << str << "\n"; auto currentScope = Scopes.back(); - if (!SkipSpaceAfterUnaryOp) { + if (!SkipSpaceAfterUnaryOp && !InMultiTokenOp) { if (AfterLess && str == ">") { Out(' '); } else if (AfterDigits && str == ".") { @@ -2060,6 +2067,180 @@ private: PopCurrentIndent(); } + void VisitExpr(const TRule_expr& msg) { + if (msg.HasAlt_expr2()) { + Visit(msg.GetAlt_expr2()); + return; + } + const auto& orExpr = msg.GetAlt_expr1(); + auto getExpr = [](const TRule_expr::TAlt1::TBlock2& b) -> const TRule_or_subexpr& { return b.GetRule_or_subexpr2(); }; + auto getOp = [](const TRule_expr::TAlt1::TBlock2& b) -> const TToken& { return b.GetToken1(); }; + VisitBinaryOp(orExpr.GetRule_or_subexpr1(), getOp, getExpr, orExpr.GetBlock2().begin(), orExpr.GetBlock2().end()); + } + + void VisitOrSubexpr(const TRule_or_subexpr& msg) { + auto getExpr = [](const TRule_or_subexpr::TBlock2& b) -> const TRule_and_subexpr& { return b.GetRule_and_subexpr2(); }; + auto getOp = [](const TRule_or_subexpr::TBlock2& b) -> const TToken& { return b.GetToken1(); }; + VisitBinaryOp(msg.GetRule_and_subexpr1(), getOp, getExpr, msg.GetBlock2().begin(), msg.GetBlock2().end()); + } + + void VisitAndSubexpr(const TRule_and_subexpr& msg) { + auto getExpr = [](const TRule_and_subexpr::TBlock2& b) -> const TRule_xor_subexpr& { return b.GetRule_xor_subexpr2(); }; + auto getOp = [](const TRule_and_subexpr::TBlock2& b) -> const TToken& { return b.GetToken1(); }; + VisitBinaryOp(msg.GetRule_xor_subexpr1(), getOp, getExpr, msg.GetBlock2().begin(), msg.GetBlock2().end()); + } + + void VisitEqSubexpr(const TRule_eq_subexpr& msg) { + auto getExpr = [](const TRule_eq_subexpr::TBlock2& b) -> const TRule_neq_subexpr& { return b.GetRule_neq_subexpr2(); }; + auto getOp = [](const TRule_eq_subexpr::TBlock2& b) -> const TToken& { return b.GetToken1(); }; + VisitBinaryOp(msg.GetRule_neq_subexpr1(), getOp, getExpr, msg.GetBlock2().begin(), msg.GetBlock2().end()); + } + + void VisitNeqSubexpr(const TRule_neq_subexpr& msg) { + VisitNeqSubexprImpl(msg, false); + } + + void VisitNeqSubexprImpl(const TRule_neq_subexpr& msg, bool pushedIndent) { + auto getExpr = [](const TRule_neq_subexpr::TBlock2& b) -> const TRule_bit_subexpr& { return b.GetRule_bit_subexpr2(); }; + auto getOp = [](const TRule_neq_subexpr::TBlock2& b) -> const TRule_neq_subexpr::TBlock2::TBlock1& { return b.GetBlock1(); }; + VisitBinaryOp(msg.GetRule_bit_subexpr1(), getOp, getExpr, msg.GetBlock2().begin(), msg.GetBlock2().end()); + + if (msg.HasBlock3()) { + const auto& b = msg.GetBlock3(); + switch (b.Alt_case()) { + case TRule_neq_subexpr_TBlock3::kAlt1: { + const auto& alt = b.GetAlt1(); + const bool hasFirstNewline = LastLine != ParsedTokens[TokenIndex].Line; + // 2 is `??` size in tokens + const bool hasSecondNewline = ParsedTokens[TokenIndex].Line != ParsedTokens[TokenIndex + 2].Line; + const ui32 currentOutLine = OutLine; + + PosFromParsedToken(ParsedTokens[TokenIndex]); + if (currentOutLine != OutLine || (hasFirstNewline && hasSecondNewline)) { + NewLine(); + if (!pushedIndent) { + PushCurrentIndent(); + pushedIndent = true; + } + } + + Visit(alt.GetRule_double_question1()); + PosFromParsedToken(ParsedTokens[TokenIndex]); + if (hasFirstNewline || hasSecondNewline) { + NewLine(); + if (!pushedIndent) { + PushCurrentIndent(); + pushedIndent = true; + } + } + + VisitNeqSubexprImpl(alt.GetRule_neq_subexpr2(), pushedIndent); + if (pushedIndent) { + PopCurrentIndent(); + } + } + case TRule_neq_subexpr_TBlock3::kAlt2: + Visit(b.GetAlt2()); + break; + default: + ythrow yexception() << "Alt is not supported"; + } + } + } + + void VisitBitSubexpr(const TRule_bit_subexpr& msg) { + auto getExpr = [](const TRule_bit_subexpr::TBlock2& b) -> const TRule_add_subexpr& { return b.GetRule_add_subexpr2(); }; + auto getOp = [](const TRule_bit_subexpr::TBlock2& b) -> const TToken& { return b.GetToken1(); }; + VisitBinaryOp(msg.GetRule_add_subexpr1(), getOp, getExpr, msg.GetBlock2().begin(), msg.GetBlock2().end()); + } + + void VisitAddSubexpr(const TRule_add_subexpr& msg) { + auto getExpr = [](const TRule_add_subexpr::TBlock2& b) -> const TRule_mul_subexpr& { return b.GetRule_mul_subexpr2(); }; + auto getOp = [](const TRule_add_subexpr::TBlock2& b) -> const TToken& { return b.GetToken1(); }; + VisitBinaryOp(msg.GetRule_mul_subexpr1(), getOp, getExpr, msg.GetBlock2().begin(), msg.GetBlock2().end()); + } + + void VisitMulSubexpr(const TRule_mul_subexpr& msg) { + auto getExpr = [](const TRule_mul_subexpr::TBlock2& b) -> const TRule_con_subexpr& { return b.GetRule_con_subexpr2(); }; + auto getOp = [](const TRule_mul_subexpr::TBlock2& b) -> const TToken& { return b.GetToken1(); }; + VisitBinaryOp(msg.GetRule_con_subexpr1(), getOp, getExpr, msg.GetBlock2().begin(), msg.GetBlock2().end()); + } + + ui32 BinaryOpTokenSize(const TToken&) { + return 1; + } + + ui32 BinaryOpTokenSize(const TRule_neq_subexpr::TBlock2::TBlock1& block) { + switch (block.Alt_case()) { + case TRule_neq_subexpr::TBlock2::TBlock1::kAlt1: + case TRule_neq_subexpr::TBlock2::TBlock1::kAlt3: + case TRule_neq_subexpr::TBlock2::TBlock1::kAlt5: + case TRule_neq_subexpr::TBlock2::TBlock1::kAlt6: + case TRule_neq_subexpr::TBlock2::TBlock1::kAlt7: + return 1; + case TRule_neq_subexpr::TBlock2::TBlock1::kAlt2: + return 2; + case TRule_neq_subexpr::TBlock2::TBlock1::kAlt4: + return 3; + default: + ythrow yexception() << "Alt is not supported"; + } + } + + void VisitShiftRight(const TRule_shift_right& msg) { + VisitToken(msg.GetToken1()); + InMultiTokenOp = true; + VisitToken(msg.GetToken2()); + InMultiTokenOp = false; + } + + void VisitRotRight(const TRule_rot_right& msg) { + VisitToken(msg.GetToken1()); + InMultiTokenOp = true; + VisitToken(msg.GetToken2()); + VisitToken(msg.GetToken3()); + InMultiTokenOp = false; + } + + template <typename TExpr, typename TGetOp, typename TGetExpr, typename TIter> + void VisitBinaryOp(const TExpr& expr, TGetOp getOp, TGetExpr getExpr, TIter begin, TIter end) { + Visit(expr); + bool pushedIndent = false; + + for (; begin != end; ++begin) { + const auto op = getOp(*begin); + const auto opSize = BinaryOpTokenSize(op); + const bool hasFirstNewline = LastLine != ParsedTokens[TokenIndex].Line; + const bool hasSecondNewline = ParsedTokens[TokenIndex].Line != ParsedTokens[TokenIndex + opSize].Line; + const ui32 currentOutLine = OutLine; + + PosFromParsedToken(ParsedTokens[TokenIndex]); + if (currentOutLine != OutLine || (hasFirstNewline && hasSecondNewline)) { + NewLine(); + if (!pushedIndent) { + PushCurrentIndent(); + pushedIndent = true; + } + } + Visit(op); + + PosFromParsedToken(ParsedTokens[TokenIndex]); + if (hasFirstNewline || hasSecondNewline) { + NewLine(); + if (!pushedIndent) { + PushCurrentIndent(); + pushedIndent = true; + } + } + + Visit(getExpr(*begin)); + } + + if (pushedIndent) { + PopCurrentIndent(); + } + } + void PushCurrentIndent() { CurrentIndent += OneIndent; } @@ -2092,7 +2273,8 @@ private: bool AfterDigits = false; bool AfterQuestion = false; bool AfterLess = false; - bool AfterKeyExpr = false; + bool AfterKeyExpr = false; + bool InMultiTokenOp = false; ui32 ForceExpandedLine = 0; ui32 ForceExpandedColumn = 0; @@ -2164,6 +2346,18 @@ TStaticData::TStaticData() {TRule_case_expr::GetDescriptor(), MakeFunctor(&TVisitor::VisitCaseExpr)}, {TRule_when_expr::GetDescriptor(), MakeFunctor(&TVisitor::VisitWhenExpr)}, + {TRule_expr::GetDescriptor(), MakeFunctor(&TVisitor::VisitExpr)}, + {TRule_or_subexpr::GetDescriptor(), MakeFunctor(&TVisitor::VisitOrSubexpr)}, + {TRule_and_subexpr::GetDescriptor(), MakeFunctor(&TVisitor::VisitAndSubexpr)}, + {TRule_eq_subexpr::GetDescriptor(), MakeFunctor(&TVisitor::VisitEqSubexpr)}, + {TRule_neq_subexpr::GetDescriptor(), MakeFunctor(&TVisitor::VisitNeqSubexpr)}, + {TRule_bit_subexpr::GetDescriptor(), MakeFunctor(&TVisitor::VisitBitSubexpr)}, + {TRule_add_subexpr::GetDescriptor(), MakeFunctor(&TVisitor::VisitAddSubexpr)}, + {TRule_mul_subexpr::GetDescriptor(), MakeFunctor(&TVisitor::VisitMulSubexpr)}, + + {TRule_rot_right::GetDescriptor(), MakeFunctor(&TVisitor::VisitRotRight)}, + {TRule_shift_right::GetDescriptor(), MakeFunctor(&TVisitor::VisitShiftRight)}, + {TRule_pragma_stmt::GetDescriptor(), MakeFunctor(&TVisitor::VisitPragma)}, {TRule_select_stmt::GetDescriptor(), MakeFunctor(&TVisitor::VisitSelect)}, {TRule_select_unparenthesized_stmt::GetDescriptor(), MakeFunctor(&TVisitor::VisitSelectUnparenthesized)}, diff --git a/ydb/library/yql/sql/v1/format/sql_format_ut.cpp b/ydb/library/yql/sql/v1/format/sql_format_ut.cpp index 5e69192052..c2b6b82403 100644 --- a/ydb/library/yql/sql/v1/format/sql_format_ut.cpp +++ b/ydb/library/yql/sql/v1/format/sql_format_ut.cpp @@ -1418,4 +1418,52 @@ FROM Input MATCH_RECOGNIZE (PATTERN (A) DEFINE A AS A); TSetup setup; setup.Run(cases); } + + Y_UNIT_TEST(MultiTokenOperations) { + TCases cases = { + {"$x = 1 >>| 2;", + "$x = 1 >>| 2;\n"}, + {"$x = 1 >> 2;", + "$x = 1 >> 2;\n"}, + {"$x = 1 ?? 2;", + "$x = 1 ?? 2;\n"}, + {"$x = 1 > /*comment*/ > /*comment*/ | 2;", + "$x = 1 >/*comment*/>/*comment*/| 2;\n"}, + }; + + TSetup setup; + setup.Run(cases); + } + + Y_UNIT_TEST(OperatorNewlines) { + TCases cases = { + {"$x = TRUE\nOR\nFALSE;", + "$x = TRUE\n\tOR\n\tFALSE;\n"}, + {"$x = TRUE OR\nFALSE;", + "$x = TRUE OR\n\tFALSE;\n"}, + {"$x = TRUE\nOR FALSE;", + "$x = TRUE OR\n\tFALSE;\n"}, + {"$x = 1\n+2\n*3;", + "$x = 1 +\n\t2 *\n\t\t3;\n"}, + {"$x = 1\n+\n2\n*3\n*5\n+\n4;", + "$x = 1\n\t+\n\t2 *\n\t\t3 *\n\t\t5\n\t+\n\t4;\n"}, + {"$x = 1\n+2+3+4\n+5+6+7+\n\n8+9+10;", + "$x = 1 +\n\t2 + 3 + 4 +\n\t5 + 6 + 7 +\n\t8 + 9 + 10;\n"}, + {"$x = TRUE\nAND\nTRUE OR\nFALSE\nAND TRUE\nOR FALSE\nAND TRUE\nOR FALSE;", + "$x = TRUE\n\tAND\n\tTRUE OR\n\tFALSE AND\n\t\tTRUE OR\n\tFALSE AND\n\t\tTRUE OR\n\tFALSE;\n"}, + {"$x = 1 -- comment\n+ 2;", + "$x = 1-- comment\n\t+\n\t2;\n"}, + {"$x = 1 -- comment\n+ -- comment\n2;", + "$x = 1-- comment\n\t+-- comment\n\t2;\n"}, + {"$x = 1 + -- comment\n2;", + "$x = 1 +-- comment\n\t2;\n"}, + {"$x = 1\n>\n>\n|\n2;", + "$x = 1\n\t>>|\n\t2;\n"}, + {"$x = 1\n?? 2 ??\n3\n??\n4 +\n5\n*\n6 +\n7 ??\n8;", + "$x = 1 ??\n\t2 ??\n\t3\n\t??\n\t4 +\n\t\t5\n\t\t\t*\n\t\t\t6 +\n\t\t7 ??\n\t8;\n"}, + }; + + TSetup setup; + setup.Run(cases); + } } diff --git a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json index 7d0288dc0d..4d9f624192 100644 --- a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json +++ b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json @@ -21022,16 +21022,16 @@ ], "test_sql_format.test[compute_range-preserve_rest_predicates_order]": [ { - "checksum": "d1d8fba1f74d7396be8c6d83682327ec", - "size": 531, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_compute_range-preserve_rest_predicates_order_/formatted.sql" + "checksum": "77cd36176a336f2a79ee10f5697b124f", + "size": 595, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_compute_range-preserve_rest_predicates_order_/formatted.sql" } ], "test_sql_format.test[compute_range-repeated_keyranges_in_and]": [ { - "checksum": "00aafa08013ddec2f0b688f1b9198d4b", - "size": 453, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_compute_range-repeated_keyranges_in_and_/formatted.sql" + "checksum": "ee930056e23f610fd46efb0ac627f4fd", + "size": 473, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_compute_range-repeated_keyranges_in_and_/formatted.sql" } ], "test_sql_format.test[compute_range-startswith]": [ @@ -21148,16 +21148,16 @@ ], "test_sql_format.test[csee-closure_in_l1_and_l2]": [ { - "checksum": "d96ac414efdc891f93a5d8f090558ba5", - "size": 893, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_csee-closure_in_l1_and_l2_/formatted.sql" + "checksum": "473c3610118876c2475bda536fefda40", + "size": 1013, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_csee-closure_in_l1_and_l2_/formatted.sql" } ], "test_sql_format.test[csee-closure_in_l2_and_l1]": [ { - "checksum": "00efd458fc7ce6e8cdbc796416804f4a", - "size": 893, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_csee-closure_in_l2_and_l1_/formatted.sql" + "checksum": "d6af72437a02a0992d3ea43ae775dd95", + "size": 1013, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_csee-closure_in_l2_and_l1_/formatted.sql" } ], "test_sql_format.test[csee-closure_l2]": [ @@ -21246,9 +21246,9 @@ ], "test_sql_format.test[csee-nested_closure_in_l1_and_l2]": [ { - "checksum": "83056b25572b8346bd7b9edfc80bd304", - "size": 1707, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_csee-nested_closure_in_l1_and_l2_/formatted.sql" + "checksum": "d3d47e0062e4d46d0c6e3351fd7f114d", + "size": 1891, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_csee-nested_closure_in_l1_and_l2_/formatted.sql" } ], "test_sql_format.test[csee-nested_closure_in_l1_and_l2_unordered]": [ @@ -21260,9 +21260,9 @@ ], "test_sql_format.test[csee-nested_closure_in_l2_and_l1]": [ { - "checksum": "15b07a75672a99e4bbf06922a4ea9da9", - "size": 1707, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_csee-nested_closure_in_l2_and_l1_/formatted.sql" + "checksum": "bc6a39ffe89056254b624ed287452561", + "size": 1891, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_csee-nested_closure_in_l2_and_l1_/formatted.sql" } ], "test_sql_format.test[csee-nested_closure_in_l2_and_l1_unordered]": [ @@ -23654,9 +23654,9 @@ ], "test_sql_format.test[in-in_tablesource_to_equijoin]": [ { - "checksum": "0957734ea8a23e6d5a0478c9a061f3f9", - "size": 1113, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_in-in_tablesource_to_equijoin_/formatted.sql" + "checksum": "b579014424a464997cf9126277b85d5a", + "size": 1145, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_in-in_tablesource_to_equijoin_/formatted.sql" } ], "test_sql_format.test[in-in_tuple_check0_fail]": [ @@ -23766,16 +23766,16 @@ ], "test_sql_format.test[in-yql-10038]": [ { - "checksum": "382d33f783b45fb5887b9656872ecd66", - "size": 320, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_in-yql-10038_/formatted.sql" + "checksum": "65c9b60b81a2689c61b3dff1ff571b97", + "size": 344, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_in-yql-10038_/formatted.sql" } ], "test_sql_format.test[in-yql-14677]": [ { - "checksum": "a3d2876afba2a82ddb2f80ae33cefc2d", - "size": 181, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_in-yql-14677_/formatted.sql" + "checksum": "3324c5569be16e27400dff5a8ec362bb", + "size": 189, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_in-yql-14677_/formatted.sql" } ], "test_sql_format.test[insert-after_group_by]": [ @@ -24249,16 +24249,16 @@ ], "test_sql_format.test[join-convert_key]": [ { - "checksum": "759b4a835d371d008425f63956bc90d1", - "size": 577, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_join-convert_key_/formatted.sql" + "checksum": "e52069a677e9a7b895475fe789a77841", + "size": 585, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_join-convert_key_/formatted.sql" } ], "test_sql_format.test[join-count_bans]": [ { - "checksum": "813db98f5e25442582e24670ffb0428a", - "size": 882, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_join-count_bans_/formatted.sql" + "checksum": "795867b40bbd1692311a66e9cb29f9ed", + "size": 886, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_join-count_bans_/formatted.sql" } ], "test_sql_format.test[join-cross_join_with_lazy_list]": [ @@ -24858,9 +24858,9 @@ ], "test_sql_format.test[join-mapjoin_on_complex_type_optional_left_semi_many]": [ { - "checksum": "0107f045af1a84fd4ce3bd76d50cc109", - "size": 636, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_join-mapjoin_on_complex_type_optional_left_semi_many_/formatted.sql" + "checksum": "1e219535c7573cb05e4cef5636d21097", + "size": 640, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_join-mapjoin_on_complex_type_optional_left_semi_many_/formatted.sql" } ], "test_sql_format.test[join-mapjoin_on_complex_type_optional_left_semi_single]": [ @@ -25523,16 +25523,16 @@ ], "test_sql_format.test[join-three_equalities]": [ { - "checksum": "15aa663995af1ed75047f4a9e743cfae", - "size": 214, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_join-three_equalities_/formatted.sql" + "checksum": "8bbb24fe6aaa308533d385c7a0ec27b2", + "size": 222, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_join-three_equalities_/formatted.sql" } ], "test_sql_format.test[join-three_equalities_paren]": [ { - "checksum": "dd96797bb58468b2337c55a39385c16a", - "size": 169, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_join-three_equalities_paren_/formatted.sql" + "checksum": "849232d6de90cd592170709da73f7a4d", + "size": 177, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_join-three_equalities_paren_/formatted.sql" } ], "test_sql_format.test[join-trivial_view]": [ @@ -25950,9 +25950,9 @@ ], "test_sql_format.test[key_filter-convert]": [ { - "checksum": "2bf3b288442314ed208b32b631551edd", - "size": 93, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_key_filter-convert_/formatted.sql" + "checksum": "c64eac12d90aaf679ee3f1c929dc0730", + "size": 97, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_key_filter-convert_/formatted.sql" } ], "test_sql_format.test[key_filter-datetime]": [ @@ -26062,9 +26062,9 @@ ], "test_sql_format.test[key_filter-multiusage]": [ { - "checksum": "63bc77633eb65af527c6d0542957b348", - "size": 508, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_key_filter-multiusage_/formatted.sql" + "checksum": "eb0ba8ed1b1b02aa50301a5c5057f6b5", + "size": 524, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_key_filter-multiusage_/formatted.sql" } ], "test_sql_format.test[key_filter-nile_pred]": [ @@ -26188,9 +26188,9 @@ ], "test_sql_format.test[key_filter-yql-8663-dedup_ranges]": [ { - "checksum": "d3bf04e7d3014eeb4221fb1af1410661", - "size": 85, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_key_filter-yql-8663-dedup_ranges_/formatted.sql" + "checksum": "39453a7dbaf5222e2cc9f8ff201b0587", + "size": 89, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_key_filter-yql-8663-dedup_ranges_/formatted.sql" } ], "test_sql_format.test[key_filter-yql_5895_or]": [ @@ -26335,9 +26335,9 @@ ], "test_sql_format.test[like-like_clause_escape]": [ { - "checksum": "cdb4462aa343da22d7fdde6ecbc27367", - "size": 168, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_like-like_clause_escape_/formatted.sql" + "checksum": "d2e246198f662ac465a62f23cbb740df", + "size": 176, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_like-like_clause_escape_/formatted.sql" } ], "test_sql_format.test[like-like_clause_no_pattern]": [ @@ -26713,16 +26713,16 @@ ], "test_sql_format.test[match_recognize-alerts-streaming]": [ { - "checksum": "05625f7b1c20f0f17fefa61d08be4cb0", - "size": 2887, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_match_recognize-alerts-streaming_/formatted.sql" + "checksum": "b8aa97680d42faf26e093c2a3ccb05f1", + "size": 2939, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_match_recognize-alerts-streaming_/formatted.sql" } ], "test_sql_format.test[match_recognize-alerts]": [ { - "checksum": "4f217d57f6493087ccb63d38c69760a4", - "size": 2889, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_match_recognize-alerts_/formatted.sql" + "checksum": "585357811c1f0240f4c3207baf8d66f3", + "size": 2941, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_match_recognize-alerts_/formatted.sql" } ], "test_sql_format.test[match_recognize-simple_paritioning-streaming]": [ @@ -26888,16 +26888,16 @@ ], "test_sql_format.test[optimizers-sorted_scalar_content]": [ { - "checksum": "89898061d4c18fc3d6f81bfe2253fe8b", - "size": 247, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_optimizers-sorted_scalar_content_/formatted.sql" + "checksum": "99b4ca4e5322c1f04efb785efc8489a2", + "size": 251, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_optimizers-sorted_scalar_content_/formatted.sql" } ], "test_sql_format.test[optimizers-sorted_sql_in]": [ { - "checksum": "53e2a3806c479709a92659ed74be6989", - "size": 293, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_optimizers-sorted_sql_in_/formatted.sql" + "checksum": "c43f12ac8cae1021845d70bec31e3a08", + "size": 313, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_optimizers-sorted_sql_in_/formatted.sql" } ], "test_sql_format.test[optimizers-test_fuse_map_predicate_limit]": [ @@ -27175,9 +27175,9 @@ ], "test_sql_format.test[optimizers-yql_6179_merge_chunks_of_outputs]": [ { - "checksum": "f91762ce5f49a82fd1f8d9f0bc200e4c", - "size": 466, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_optimizers-yql_6179_merge_chunks_of_outputs_/formatted.sql" + "checksum": "ba679e76eec245eba1110d581a98c07d", + "size": 470, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_optimizers-yql_6179_merge_chunks_of_outputs_/formatted.sql" } ], "test_sql_format.test[optimizers-yson_dup_serialize]": [ @@ -29023,9 +29023,9 @@ ], "test_sql_format.test[select-bit_ops]": [ { - "checksum": "e6053e18e10e57674d049d15ab344795", - "size": 348, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_select-bit_ops_/formatted.sql" + "checksum": "34d70f1db875660f1a8fb9923b0faffe", + "size": 345, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_select-bit_ops_/formatted.sql" } ], "test_sql_format.test[select-boolean_where]": [ @@ -29233,16 +29233,16 @@ ], "test_sql_format.test[select-hits_count]": [ { - "checksum": "a7174ce0af02cc07e885d398bd59f47e", - "size": 569, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_select-hits_count_/formatted.sql" + "checksum": "b96b7f593261f8731099e042fc06d417", + "size": 605, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_select-hits_count_/formatted.sql" } ], "test_sql_format.test[select-host_count]": [ { - "checksum": "217938a539739098b4964192290920e0", - "size": 571, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_select-host_count_/formatted.sql" + "checksum": "c8a94e1d5db2d2704860f091955542ce", + "size": 607, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_select-host_count_/formatted.sql" } ], "test_sql_format.test[select-id_xor]": [ @@ -29702,9 +29702,9 @@ ], "test_sql_format.test[select-where_in]": [ { - "checksum": "1beec2fb4c916ffd81ad5fa587cfbdf0", - "size": 102, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_select-where_in_/formatted.sql" + "checksum": "08c4bf8651c7529044442e28b8fda841", + "size": 106, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_select-where_in_/formatted.sql" } ], "test_sql_format.test[select-where_not_null]": [ @@ -30031,9 +30031,9 @@ ], "test_sql_format.test[tpch-q10]": [ { - "checksum": "c99a0a1b7c72c2522c028337ebdb5e8e", - "size": 1955, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q10_/formatted.sql" + "checksum": "9ec239d1d0eb419ac9f171c001b6d300", + "size": 1963, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q10_/formatted.sql" } ], "test_sql_format.test[tpch-q11]": [ @@ -30045,9 +30045,9 @@ ], "test_sql_format.test[tpch-q12]": [ { - "checksum": "b791c6ab2387c61262aa4430ec8bfd23", - "size": 1197, - "uri": "https://{canondata_backend}/1925842/ffeacd65677f75bcab2445d237890283afc5e8f6/resource.tar.gz#test_sql_format.test_tpch-q12_/formatted.sql" + "checksum": "32b465f1d18ea39f5bb64fa065f99e8d", + "size": 1245, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q12_/formatted.sql" } ], "test_sql_format.test[tpch-q13]": [ @@ -30059,30 +30059,30 @@ ], "test_sql_format.test[tpch-q14]": [ { - "checksum": "d35d151964b1109a1035f161f161e812", - "size": 622, - "uri": "https://{canondata_backend}/1925842/ffeacd65677f75bcab2445d237890283afc5e8f6/resource.tar.gz#test_sql_format.test_tpch-q14_/formatted.sql" + "checksum": "b70727f1ecb657c40c3d715e6cff0372", + "size": 626, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q14_/formatted.sql" } ], "test_sql_format.test[tpch-q15]": [ { - "checksum": "8f12894b561a04543f9c45260611a421", - "size": 1311, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q15_/formatted.sql" + "checksum": "171263f4e196a02abbfd9e44f0149e5d", + "size": 1319, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q15_/formatted.sql" } ], "test_sql_format.test[tpch-q16]": [ { - "checksum": "7aa8d61137b5231c4f9ffa018ab6f72a", - "size": 968, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q16_/formatted.sql" + "checksum": "0ea704ccb3786e1355335a8995f35119", + "size": 976, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q16_/formatted.sql" } ], "test_sql_format.test[tpch-q17]": [ { - "checksum": "c19ced9846f196a10732ca54a362cc86", - "size": 775, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q17_/formatted.sql" + "checksum": "5c38bcc1a9b055316fb93df4e2b2b389", + "size": 783, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q17_/formatted.sql" } ], "test_sql_format.test[tpch-q18]": [ @@ -30094,9 +30094,9 @@ ], "test_sql_format.test[tpch-q19]": [ { - "checksum": "60da8e66e10433bb9f6432018ca7a3da", - "size": 1291, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q19_/formatted.sql" + "checksum": "a5ef042c23d8e7954abe2331567a492d", + "size": 1483, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q19_/formatted.sql" } ], "test_sql_format.test[tpch-q1]": [ @@ -30108,9 +30108,9 @@ ], "test_sql_format.test[tpch-q20]": [ { - "checksum": "c880bc44a359a5a1cd6a5dfcfe89dcba", - "size": 1555, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q20_/formatted.sql" + "checksum": "70f826b78ae27d845af71c31e1d89349", + "size": 1563, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q20_/formatted.sql" } ], "test_sql_format.test[tpch-q21]": [ @@ -30129,44 +30129,44 @@ ], "test_sql_format.test[tpch-q2]": [ { - "checksum": "9f39da0baf33d4967a016a81863a57d0", - "size": 1699, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q2_/formatted.sql" + "checksum": "c3ac7d673eb6f462aac1936026f67782", + "size": 1707, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q2_/formatted.sql" } ], "test_sql_format.test[tpch-q3]": [ { - "checksum": "9c4329c579922bf5139984f085d25b34", - "size": 1226, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q3_/formatted.sql" + "checksum": "9f52f4072df573689ef66baafefddc4c", + "size": 1234, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q3_/formatted.sql" } ], "test_sql_format.test[tpch-q4]": [ { - "checksum": "1e36831efec62aee7b22ea53466ba271", - "size": 782, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q4_/formatted.sql" + "checksum": "0b0b79a2cb95ff0431dd1317ef491298", + "size": 790, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q4_/formatted.sql" } ], "test_sql_format.test[tpch-q5]": [ { - "checksum": "9f5f89cd68b5408979ec552ba7c92f0c", - "size": 2414, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q5_/formatted.sql" + "checksum": "6d9d70d0bfce6e702ad69e6948310146", + "size": 2430, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q5_/formatted.sql" } ], "test_sql_format.test[tpch-q6]": [ { - "checksum": "d00c79fd1475c8df771d122acec18312", - "size": 447, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q6_/formatted.sql" + "checksum": "3b2ea366dd542cc7e394aa4cc3b7c818", + "size": 459, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q6_/formatted.sql" } ], "test_sql_format.test[tpch-q7]": [ { - "checksum": "51e19ada87886b1a013dfb85b7d7c431", - "size": 1908, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_tpch-q7_/formatted.sql" + "checksum": "2264a2561b98b18a2787c53561650e31", + "size": 1916, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_tpch-q7_/formatted.sql" } ], "test_sql_format.test[tpch-q8]": [ @@ -30983,9 +30983,9 @@ ], "test_sql_format.test[weak_field-yql-7888_mapfieldsubset]": [ { - "checksum": "9ba7f8fc5022a96ac849c027fc36d464", - "size": 826, - "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_weak_field-yql-7888_mapfieldsubset_/formatted.sql" + "checksum": "2255267d80d4f06c833ce8c105dc0125", + "size": 842, + "uri": "https://{canondata_backend}/1937001/da4215d5087e56eec0224ec5e7754dafd0b2bdcf/resource.tar.gz#test_sql_format.test_weak_field-yql-7888_mapfieldsubset_/formatted.sql" } ], "test_sql_format.test[window-all_columns_hide_window_special_ones]": [ |