aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql_ut_antlr4.cpp
diff options
context:
space:
mode:
authorvvvv <vvvv@yandex-team.com>2025-02-21 13:37:16 +0300
committervvvv <vvvv@yandex-team.com>2025-02-21 13:58:34 +0300
commit39c78c7d5074d33cc06b63234fa96e9a93213fdc (patch)
tree6b6eba4e73067e1112f454f68e7de81973aeba76 /yql/essentials/sql/v1/sql_ut_antlr4.cpp
parenta4e53fc5cc0c64cd0c54aa050e82cab26e258b7f (diff)
downloadydb-39c78c7d5074d33cc06b63234fa96e9a93213fdc.tar.gz
YQL-19594 Explicit lexers & parsers 2
commit_hash:2aa733486a55a04c39ff8bb1c7eaca3a85719647
Diffstat (limited to 'yql/essentials/sql/v1/sql_ut_antlr4.cpp')
-rw-r--r--yql/essentials/sql/v1/sql_ut_antlr4.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/sql_ut_antlr4.cpp b/yql/essentials/sql/v1/sql_ut_antlr4.cpp
index a150a7624b..6d54a4f409 100644
--- a/yql/essentials/sql/v1/sql_ut_antlr4.cpp
+++ b/yql/essentials/sql/v1/sql_ut_antlr4.cpp
@@ -8118,6 +8118,68 @@ Y_UNIT_TEST_SUITE(ColumnFamily) {
}
}
+Y_UNIT_TEST_SUITE(QuerySplit) {
+ Y_UNIT_TEST(Simple) {
+ TString query = R"(
+ ;
+ -- Comment 1
+ SELECT * From Input; -- Comment 2
+ -- Comment 3
+ $a = "a";
+
+ -- Comment 9
+ ;
+
+ -- Comment 10
+
+ -- Comment 8
+
+ $b = ($x) -> {
+ -- comment 4
+ return /* Comment 5 */ $x;
+ -- Comment 6
+ };
+
+ // Comment 7
+
+
+
+ )";
+
+ google::protobuf::Arena Arena;
+
+ NSQLTranslation::TTranslationSettings settings;
+ settings.AnsiLexer = false;
+ settings.Antlr4Parser = true;
+ settings.Arena = &Arena;
+
+ TVector<TString> statements;
+ NYql::TIssues issues;
+
+ NSQLTranslationV1::TLexers lexers;
+ lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory();
+ NSQLTranslationV1::TParsers parsers;
+ parsers.Antlr4 = NSQLTranslationV1::MakeAntlr4ParserFactory();
+
+ UNIT_ASSERT(NSQLTranslationV1::SplitQueryToStatements(lexers, parsers, query, statements, issues, settings));
+
+ UNIT_ASSERT_VALUES_EQUAL(statements.size(), 3);
+
+ UNIT_ASSERT_VALUES_EQUAL(statements[0], "-- Comment 1\n SELECT * From Input; -- Comment 2\n");
+ UNIT_ASSERT_VALUES_EQUAL(statements[1], R"(-- Comment 3
+ $a = "a";)");
+ UNIT_ASSERT_VALUES_EQUAL(statements[2], R"(-- Comment 10
+
+ -- Comment 8
+
+ $b = ($x) -> {
+ -- comment 4
+ return /* Comment 5 */ $x;
+ -- Comment 6
+ };)");
+ }
+}
+
Y_UNIT_TEST_SUITE(Transfer) {
Y_UNIT_TEST(Lambda) {
NYql::TAstParseResult res = SqlToYql(R"( use plato;