summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/complete/check/check_complete_ut.cpp
diff options
context:
space:
mode:
authorvitya-smirnov <[email protected]>2025-06-24 15:50:39 +0300
committervitya-smirnov <[email protected]>2025-06-24 16:06:46 +0300
commit573dadf304e5729bdad2dc02fd7c4ad2cb7a0524 (patch)
treeed72d28bb7b17af07d1364abd08360829533792d /yql/essentials/sql/v1/complete/check/check_complete_ut.cpp
parent7ad54f585b44a26b4c619ab33dcfe06fd0add315 (diff)
YQL-19747: Synthesise subquery columns
commit_hash:40a2de243a67135e44505619fb766954ba24e2e8
Diffstat (limited to 'yql/essentials/sql/v1/complete/check/check_complete_ut.cpp')
-rw-r--r--yql/essentials/sql/v1/complete/check/check_complete_ut.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/complete/check/check_complete_ut.cpp b/yql/essentials/sql/v1/complete/check/check_complete_ut.cpp
new file mode 100644
index 00000000000..7743f574321
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/check/check_complete_ut.cpp
@@ -0,0 +1,46 @@
+#include "check_complete.h"
+
+#include <library/cpp/testing/unittest/registar.h>
+
+#include <yql/essentials/sql/sql.h>
+#include <yql/essentials/sql/v1/sql.h>
+#include <yql/essentials/sql/v1/lexer/antlr4/lexer.h>
+#include <yql/essentials/sql/v1/lexer/antlr4_ansi/lexer.h>
+#include <yql/essentials/sql/v1/proto_parser/antlr4/proto_parser.h>
+#include <yql/essentials/sql/v1/proto_parser/antlr4_ansi/proto_parser.h>
+
+using namespace NSQLComplete;
+
+Y_UNIT_TEST_SUITE(CheckTests) {
+
+ Y_UNIT_TEST(Runs) {
+ TString query = R"(
+ SELECT * FROM (SELECT 1 AS x)
+ )";
+
+ NSQLTranslationV1::TLexers lexers = {
+ .Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory(),
+ .Antlr4Ansi = NSQLTranslationV1::MakeAntlr4AnsiLexerFactory(),
+ };
+
+ NSQLTranslationV1::TParsers parsers = {
+ .Antlr4 = NSQLTranslationV1::MakeAntlr4ParserFactory(),
+ .Antlr4Ansi = NSQLTranslationV1::MakeAntlr4AnsiParserFactory(),
+ };
+
+ NSQLTranslation::TTranslators translators(
+ /* V0 = */ nullptr,
+ /* V1 = */ NSQLTranslationV1::MakeTranslator(lexers, parsers),
+ /* PG = */ nullptr);
+
+ google::protobuf::Arena arena;
+ NSQLTranslation::TTranslationSettings settings;
+ settings.Arena = &arena;
+
+ NYql::TAstParseResult result = NSQLTranslation::SqlToYql(translators, query, settings);
+ Y_ENSURE(result.IsOk());
+
+ Y_ENSURE(CheckComplete(query, *result.Root, result.Issues), result.Issues.ToString());
+ }
+
+} // Y_UNIT_TEST_SUITE(CheckTests)