summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvitya-smirnov <[email protected]>2026-02-26 18:18:51 +0300
committervitya-smirnov <[email protected]>2026-02-26 19:05:55 +0300
commitdf83fc78eda0422e120490a601fed3f5172007eb (patch)
tree7b73aacc3129e2cb73b76408ff990ff1f63e5da5
parentfdd66936e2e34659bbd650ba5e48e225f68d2ce6 (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.cpp5
-rw-r--r--yql/essentials/sql/v1/format/sql_format_ut.h127
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)