diff options
author | shumkovnd <[email protected]> | 2025-02-11 13:49:08 +0300 |
---|---|---|
committer | shumkovnd <[email protected]> | 2025-02-11 14:47:31 +0300 |
commit | 69a7cf8a411058070c2ce9e4224c53a06cfd9d3f (patch) | |
tree | 6b0f818137d14b07c5afb634d249c7a45d143c7b /yql/essentials/sql/v1/sql_ut_antlr4.cpp | |
parent | 50c6140bfda6b86cd98464d7df5feb27c78a496c (diff) |
Support SHOW CREATE TABLE statement
commit_hash:01d41da47d238ae4a86642bd8cdb8c245d9c503a
Diffstat (limited to 'yql/essentials/sql/v1/sql_ut_antlr4.cpp')
-rw-r--r-- | yql/essentials/sql/v1/sql_ut_antlr4.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/yql/essentials/sql/v1/sql_ut_antlr4.cpp b/yql/essentials/sql/v1/sql_ut_antlr4.cpp index b591fd15a19..e4f9fb6d603 100644 --- a/yql/essentials/sql/v1/sql_ut_antlr4.cpp +++ b/yql/essentials/sql/v1/sql_ut_antlr4.cpp @@ -3064,6 +3064,26 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { } } + Y_UNIT_TEST(ShowCreateTable) { + NYql::TAstParseResult res = SqlToYql(R"( + USE plato; + SHOW CREATE TABLE user; + )"); + UNIT_ASSERT(res.Root); + + TVerifyLineFunc verifyLine = [](const TString& word, const TString& line) { + if (word == "Read") { + UNIT_ASSERT_VALUES_UNEQUAL(TString::npos, line.find("showCreateTable")); + } + }; + + TWordCountHive elementStat = {{TString("Read"), 0}, {TString("showCreateTable"), 0}}; + VerifyProgram(res, elementStat, verifyLine); + + UNIT_ASSERT_VALUES_EQUAL(1, elementStat["Read"]); + UNIT_ASSERT_VALUES_EQUAL(1, elementStat["showCreateTable"]); + } + Y_UNIT_TEST(OptionalAliases) { UNIT_ASSERT(SqlToYql("USE plato; SELECT foo FROM (SELECT key foo FROM Input);").IsOk()); UNIT_ASSERT(SqlToYql("USE plato; SELECT a.x FROM Input1 a JOIN Input2 b ON a.key = b.key;").IsOk()); @@ -5972,7 +5992,7 @@ Y_UNIT_TEST_SUITE(AnsiIdentsNegative) { "*/ select 1;"; res = SqlToYql(req); UNIT_ASSERT(!res.Root); - UNIT_ASSERT_NO_DIFF(Err2Str(res), "<main>:4:0: Error: mismatched input '*' expecting {';', '(', '$', ALTER, ANALYZE, BACKUP, BATCH, COMMIT, CREATE, DECLARE, DEFINE, DELETE, DISCARD, DO, DROP, EVALUATE, EXPLAIN, EXPORT, FOR, FROM, GRANT, IF, IMPORT, INSERT, PARALLEL, PRAGMA, PROCESS, REDUCE, REPLACE, RESTORE, REVOKE, ROLLBACK, SELECT, UPDATE, UPSERT, USE, VALUES}\n"); + UNIT_ASSERT_NO_DIFF(Err2Str(res), "<main>:4:0: Error: mismatched input '*' expecting {';', '(', '$', ALTER, ANALYZE, BACKUP, BATCH, COMMIT, CREATE, DECLARE, DEFINE, DELETE, DISCARD, DO, DROP, EVALUATE, EXPLAIN, EXPORT, FOR, FROM, GRANT, IF, IMPORT, INSERT, PARALLEL, PRAGMA, PROCESS, REDUCE, REPLACE, RESTORE, REVOKE, ROLLBACK, SELECT, SHOW, UPDATE, UPSERT, USE, VALUES}\n"); res = SqlToYqlWithAnsiLexer(req); UNIT_ASSERT(res.Root); } |