aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorareredify <areredify@ydb.tech>2023-12-04 15:47:58 +0300
committerareredify <areredify@ydb.tech>2023-12-05 02:26:43 +0300
commite3a62fefd2e31f8525a2cdc97d5bc71b13342b2c (patch)
treed4fcff5390eff4fa94b2794b54573a2cbfd303ea
parenta2a20e78420fe939146b632456fced62e560e6c5 (diff)
downloadydb-e3a62fefd2e31f8525a2cdc97d5bc71b13342b2c.tar.gz
insert a newline after the comma if comma is on a newline
bless tests insert newline if there was a newline before a comma
-rw-r--r--ydb/library/yql/sql/v1/format/sql_format.cpp5
-rw-r--r--ydb/library/yql/sql/v1/format/sql_format_ut.cpp8
-rw-r--r--ydb/library/yql/tests/sql/sql2yql/canondata/result.json12
3 files changed, 15 insertions, 10 deletions
diff --git a/ydb/library/yql/sql/v1/format/sql_format.cpp b/ydb/library/yql/sql/v1/format/sql_format.cpp
index 365082317e..8fee98d22b 100644
--- a/ydb/library/yql/sql/v1/format/sql_format.cpp
+++ b/ydb/library/yql/sql/v1/format/sql_format.cpp
@@ -1337,8 +1337,11 @@ private:
}
if (str == "," && !MarkTokenStack.empty()) {
+ const bool addNewline =
+ (TokenIndex + 1 < ParsedTokens.size() && ParsedTokens[TokenIndex].Line != ParsedTokens[TokenIndex + 1].Line)
+ || (TokenIndex > 0 && ParsedTokens[TokenIndex - 1].Line != ParsedTokens[TokenIndex].Line);
// add line for trailing comma
- if (TokenIndex + 1 < ParsedTokens.size() && ParsedTokens[TokenIndex].Line != ParsedTokens[TokenIndex + 1].Line) {
+ if (addNewline) {
NewLine();
}
}
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 a2ecc86781..5e69192052 100644
--- a/ydb/library/yql/sql/v1/format/sql_format_ut.cpp
+++ b/ydb/library/yql/sql/v1/format/sql_format_ut.cpp
@@ -941,6 +941,8 @@ Y_UNIT_TEST_SUITE(CheckSqlFormatter) {
"SELECT\n\t[\n\t\t1, 2,\n\t\t3, 4\n\t];\n"},
{"select [1,2,\n3,4,]",
"SELECT\n\t[\n\t\t1, 2,\n\t\t3, 4,\n\t];\n"},
+ {"select [1,2\n,3,\n4\n,5]",
+ "SELECT\n\t[\n\t\t1, 2,\n\t\t3,\n\t\t4,\n\t\t5\n\t];\n"},
};
TSetup setup;
@@ -1254,7 +1256,7 @@ Y_UNIT_TEST_SUITE(CheckSqlFormatter) {
{"select tagged<int32,\nfoo>",
"SELECT\n\ttagged<\n\t\tint32,\n\t\tfoo\n\t>;\n"},
{"select tagged<int32\n,foo>",
- "SELECT\n\ttagged<\n\t\tint32, foo\n\t>;\n"},
+ "SELECT\n\ttagged<\n\t\tint32,\n\t\tfoo\n\t>;\n"},
{"select tagged<\nint32,foo>",
"SELECT\n\ttagged<\n\t\tint32, foo\n\t>;\n"},
};
@@ -1270,7 +1272,7 @@ Y_UNIT_TEST_SUITE(CheckSqlFormatter) {
{"select dict<int32,\nstring>",
"SELECT\n\tdict<\n\t\tint32,\n\t\tstring\n\t>;\n"},
{"select dict<int32\n,string>",
- "SELECT\n\tdict<\n\t\tint32, string\n\t>;\n"},
+ "SELECT\n\tdict<\n\t\tint32,\n\t\tstring\n\t>;\n"},
{"select dict<\nint32,string>",
"SELECT\n\tdict<\n\t\tint32, string\n\t>;\n"},
};
@@ -1290,7 +1292,7 @@ Y_UNIT_TEST_SUITE(CheckSqlFormatter) {
{"select callable<\n(int32,\ndouble)->int32>",
"SELECT\n\tcallable<\n\t\t(\n\t\t\tint32,\n\t\t\tdouble\n\t\t) -> int32\n\t>;\n"},
{"select callable<\n(int32\n,double)->int32>",
- "SELECT\n\tcallable<\n\t\t(\n\t\t\tint32, double\n\t\t) -> int32\n\t>;\n"},
+ "SELECT\n\tcallable<\n\t\t(\n\t\t\tint32,\n\t\t\tdouble\n\t\t) -> int32\n\t>;\n"},
};
TSetup setup;
diff --git a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json
index 70bc89cf7d..c192e9b374 100644
--- a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json
+++ b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json
@@ -18355,9 +18355,9 @@
],
"test_sql_format.test[aggr_factory-container]": [
{
- "checksum": "217e7869070c06b96caad579d757b70f",
- "size": 1793,
- "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_aggr_factory-container_/formatted.sql"
+ "checksum": "22bfa4d8986c5499bc4a0bc3f33c7e45",
+ "size": 1825,
+ "uri": "https://{canondata_backend}/937458/ee77031f79efe530ec1a9f6d0ade947cf33aa7ed/resource.tar.gz#test_sql_format.test_aggr_factory-container_/formatted.sql"
}
],
"test_sql_format.test[aggr_factory-container_empty]": [
@@ -23444,9 +23444,9 @@
],
"test_sql_format.test[hor_join-sorted_out_mix]": [
{
- "checksum": "0baa246e24247977fc514b47188fd4e3",
- "size": 830,
- "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_hor_join-sorted_out_mix_/formatted.sql"
+ "checksum": "cc4283d7e0f6479882acf46c73629907",
+ "size": 866,
+ "uri": "https://{canondata_backend}/937458/ee77031f79efe530ec1a9f6d0ade947cf33aa7ed/resource.tar.gz#test_sql_format.test_hor_join-sorted_out_mix_/formatted.sql"
}
],
"test_sql_format.test[hor_join-table_record]": [