diff options
| author | vitya-smirnov <[email protected]> | 2026-02-26 18:18:51 +0300 |
|---|---|---|
| committer | vitya-smirnov <[email protected]> | 2026-02-26 19:05:55 +0300 |
| commit | df83fc78eda0422e120490a601fed3f5172007eb (patch) | |
| tree | 7b73aacc3129e2cb73b76408ff990ff1f63e5da5 | |
| parent | fdd66936e2e34659bbd650ba5e48e225f68d2ce6 (diff) | |
YQL-20538: Fix format on named node line comment
The problem is that a space (`' '`) followed by a openning brace (`(`)
were always unconditinally inserted, which is true when it comes just
after an assignment (`'='`), but does not work correctly, when an `=`
is followed by a comment, so the brace-wrapped select statement should
start on a next line.
commit_hash:23521a65125e41f199a6244c5501fc17c5b01b85
| -rw-r--r-- | yql/essentials/sql/v1/format/sql_format.cpp | 5 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/format/sql_format_ut.h | 127 |
2 files changed, 105 insertions, 27 deletions
diff --git a/yql/essentials/sql/v1/format/sql_format.cpp b/yql/essentials/sql/v1/format/sql_format.cpp index 6be56002834..257ba1dbe91 100644 --- a/yql/essentials/sql/v1/format/sql_format.cpp +++ b/yql/essentials/sql/v1/format/sql_format.cpp @@ -993,7 +993,10 @@ private: case TRule_named_nodes_stmt::TBlock3::kAlt2: { const auto& alt = msg.GetBlock3().GetAlt2(); - Out(" ("); + if (OutColumn_ != 0) { + Out(' '); + } + Out('('); NewLine(); PushCurrentIndent(); Visit(alt); diff --git a/yql/essentials/sql/v1/format/sql_format_ut.h b/yql/essentials/sql/v1/format/sql_format_ut.h index 65460c876f2..a2dd0c38bf8 100644 --- a/yql/essentials/sql/v1/format/sql_format_ut.h +++ b/yql/essentials/sql/v1/format/sql_format_ut.h @@ -2039,41 +2039,115 @@ Y_UNIT_TEST(DropStreamingQuery) { } Y_UNIT_TEST(NamedNodeNewLine) { - TString input = TrimIndent(R"sql( - DEFINE SUBQUERY $x() AS - $a = SELECT 1; - $b = SELECT $a; - SELECT $b; - END DEFINE; - )sql"); - - TString expected = TrimIndent(R"sql( - DEFINE SUBQUERY $x() AS - $a = ( - SELECT - 1 - ); - - $b = ( - SELECT - $a - ); + TCases cases = { + { + TrimIndent(R"sql( + DEFINE SUBQUERY $x() AS + $a = SELECT 1; + $b = SELECT $a; + SELECT $b; + END DEFINE; + )sql"), + TrimIndent(R"sql( + DEFINE SUBQUERY $x() AS + $a = ( + SELECT + 1 + ); - SELECT - $b - ; - END DEFINE; + $b = ( + SELECT + $a + ); - )sql"); + SELECT + $b + ; + END DEFINE; - TCases cases = { - {input, expected}, + )sql"), + }, }; TSetup setup; setup.Run(cases); } +Y_UNIT_TEST(NamedNodeCommentAndBraces) { + TSetup().Run(TCases{ + { + TrimIndent(R"sql( + $x = -- a + SELECT 1; + )sql"), + TrimIndent(R"sql( + $x = -- a + ( + SELECT + 1 + ); + + )sql"), + }, + { + TrimIndent(R"sql( + $x=-- a + (SELECT 1); + )sql"), + TrimIndent(R"sql( + $x = -- a + ( + SELECT + 1 + ); + + )sql"), + }, + { + TrimIndent(R"sql( + $x = /*a*/ ( + SELECT + 1 + ); + )sql"), + TrimIndent(R"sql( + $x = /*a*/ ( + SELECT + 1 + ); + + )sql"), + }, + { + TrimIndent(R"sql( + $x=/*a + */(SELECT 1); + )sql"), + TrimIndent(R"sql( + $x = /*a + */ ( + SELECT + 1 + ); + + )sql"), + }, + { + TrimIndent(R"sql( + $x=(-- a + SELECT 1); + )sql"), + TrimIndent(R"sql( + $x = ( -- a + SELECT + 1 + ); + + )sql"), + }, + }); +} + Y_UNIT_TEST(InlineSubquery) { TString input = TrimIndent(R"sql( SELECT (SELECT 1); @@ -2120,4 +2194,5 @@ Y_UNIT_TEST(InlineSubquery) { TSetup setup; setup.Run(cases); } + // NOLINTEND(misc-definitions-in-headers) |
