diff options
author | vitya-smirnov <[email protected]> | 2025-06-24 15:50:39 +0300 |
---|---|---|
committer | vitya-smirnov <[email protected]> | 2025-06-24 16:06:46 +0300 |
commit | 573dadf304e5729bdad2dc02fd7c4ad2cb7a0524 (patch) | |
tree | ed72d28bb7b17af07d1364abd08360829533792d /yql/essentials/sql/v1/complete/check/check_complete_ut.cpp | |
parent | 7ad54f585b44a26b4c619ab33dcfe06fd0add315 (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.cpp | 46 |
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) |