summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/format
diff options
context:
space:
mode:
authorvitya-smirnov <[email protected]>2025-10-07 09:34:39 +0300
committervitya-smirnov <[email protected]>2025-10-07 09:52:14 +0300
commitbabe7533f18c11be1f8a195ed2324d2d9a89436a (patch)
tree45b7627141bf5a52b45a3d61fd1fbdd564bb8dd9 /yql/essentials/sql/v1/format
parent8fe7cfe254fde2772477a8933a163b5f303716b4 (diff)
YQL-20086 sql/v1
commit_hash:55bc611cdaa0d8a0fc3c4c7708ed9f17cc4976cf
Diffstat (limited to 'yql/essentials/sql/v1/format')
-rw-r--r--yql/essentials/sql/v1/format/sql_format.cpp1128
-rw-r--r--yql/essentials/sql/v1/format/sql_format.h10
-rw-r--r--yql/essentials/sql/v1/format/sql_format_ut.cpp7
-rw-r--r--yql/essentials/sql/v1/format/sql_format_ut.h1278
-rw-r--r--yql/essentials/sql/v1/format/sql_format_ut_antlr4.cpp7
-rw-r--r--yql/essentials/sql/v1/format/ya.make1
6 files changed, 1196 insertions, 1235 deletions
diff --git a/yql/essentials/sql/v1/format/sql_format.cpp b/yql/essentials/sql/v1/format/sql_format.cpp
index d76b64df3b7..aed116585a6 100644
--- a/yql/essentials/sql/v1/format/sql_format.cpp
+++ b/yql/essentials/sql/v1/format/sql_format.cpp
@@ -16,7 +16,6 @@
#include <util/string/subst.h>
#include <util/generic/hash_set.h>
-
namespace NSQLFormat {
namespace {
@@ -54,8 +53,7 @@ void SkipForValidate(
TTokenIterator& out,
const TParsedTokenList& query,
const TParsedTokenList& formattedQuery,
- i32& parenthesesBalance
-) {
+ i32& parenthesesBalance) {
in = SkipWS(in, query.end());
out = SkipWS(out, formattedQuery.end());
@@ -66,8 +64,7 @@ void SkipForValidate(
out != formattedQuery.end() && out->Name == addedToken &&
(in == query.end() || in->Name != addedToken) &&
(beforeTokens.empty() || (inSkippedComments != query.end() && IsIn(beforeTokens, inSkippedComments->Name))) &&
- (afterTokens.empty() || (in != query.begin() && IsIn(afterTokens, SkipWSOrCommentBackward(in - 1, query.begin())->Name)))
- ) {
+ (afterTokens.empty() || (in != query.begin() && IsIn(afterTokens, SkipWSOrCommentBackward(in - 1, query.begin())->Name)))) {
out = SkipWS(++out, formattedQuery.end());
if (addedToken == "LPAREN") {
++parenthesesBalance;
@@ -85,15 +82,15 @@ void SkipForValidate(
if (
in != query.end() && in->Name == deletedToken &&
(out == formattedQuery.end() || out->Name != deletedToken) &&
- in != query.begin() && IsIn(afterTokens, SkipWSOrCommentBackward(in - 1, query.begin())->Name)
- ) {
+ in != query.begin() && IsIn(afterTokens, SkipWSOrCommentBackward(in - 1, query.begin())->Name)) {
in = SkipWS(++in, query.end());
return true;
}
return false;
};
- while (skipDeletedToken("SEMICOLON", {"AS", "BEGIN", "LBRACE_CURLY", "SEMICOLON"})) {}
+ while (skipDeletedToken("SEMICOLON", {"AS", "BEGIN", "LBRACE_CURLY", "SEMICOLON"})) {
+ }
}
TParsedToken TransformTokenForValidate(TParsedToken token) {
@@ -202,11 +199,13 @@ void VisitAllFieldsImpl(T* obj, const NProtoBuf::Descriptor* descr, const NProto
}
class TObfuscatingVisitor {
-friend struct TStaticData;
+ friend struct TStaticData;
+
public:
TObfuscatingVisitor()
: StaticData_(TStaticData::GetInstance())
- {}
+ {
+ }
TString Process(const NProtoBuf::Message& msg) {
Scopes_.push_back(EScope::Default);
@@ -247,42 +246,42 @@ private:
void VisitPragmaValue(const TRule_pragma_value& msg) {
switch (msg.Alt_case()) {
- case TRule_pragma_value::kAltPragmaValue1: {
- NextToken_ = "0";
- break;
- }
- case TRule_pragma_value::kAltPragmaValue3: {
- NextToken_ = "'str'";
- break;
- }
- case TRule_pragma_value::kAltPragmaValue4: {
- NextToken_ = "false";
- break;
- }
- default:;
+ case TRule_pragma_value::kAltPragmaValue1: {
+ NextToken_ = "0";
+ break;
+ }
+ case TRule_pragma_value::kAltPragmaValue3: {
+ NextToken_ = "'str'";
+ break;
+ }
+ case TRule_pragma_value::kAltPragmaValue4: {
+ NextToken_ = "false";
+ break;
+ }
+ default:;
}
VisitAllFields(TRule_pragma_value::GetDescriptor(), msg);
}
void VisitLiteralValue(const TRule_literal_value& msg) {
switch (msg.Alt_case()) {
- case TRule_literal_value::kAltLiteralValue1: {
- NextToken_ = "0";
- break;
- }
- case TRule_literal_value::kAltLiteralValue2: {
- NextToken_ = "0.0";
- break;
- }
- case TRule_literal_value::kAltLiteralValue3: {
- NextToken_ = "'str'";
- break;
- }
- case TRule_literal_value::kAltLiteralValue9: {
- NextToken_ = "false";
- break;
- }
- default:;
+ case TRule_literal_value::kAltLiteralValue1: {
+ NextToken_ = "0";
+ break;
+ }
+ case TRule_literal_value::kAltLiteralValue2: {
+ NextToken_ = "0.0";
+ break;
+ }
+ case TRule_literal_value::kAltLiteralValue3: {
+ NextToken_ = "'str'";
+ break;
+ }
+ case TRule_literal_value::kAltLiteralValue9: {
+ NextToken_ = "false";
+ break;
+ }
+ default:;
}
VisitAllFields(TRule_literal_value::GetDescriptor(), msg);
@@ -290,11 +289,11 @@ private:
void VisitAtomExpr(const TRule_atom_expr& msg) {
switch (msg.Alt_case()) {
- case TRule_atom_expr::kAltAtomExpr7: {
- FuncCall_ = true;
- break;
- }
- default:;
+ case TRule_atom_expr::kAltAtomExpr7: {
+ FuncCall_ = true;
+ break;
+ }
+ default:;
}
VisitAllFields(TRule_atom_expr::GetDescriptor(), msg);
@@ -303,11 +302,11 @@ private:
void VisitInAtomExpr(const TRule_in_atom_expr& msg) {
switch (msg.Alt_case()) {
- case TRule_in_atom_expr::kAltInAtomExpr6: {
- FuncCall_ = true;
- break;
- }
- default:;
+ case TRule_in_atom_expr::kAltInAtomExpr6: {
+ FuncCall_ = true;
+ break;
+ }
+ default:;
}
VisitAllFields(TRule_in_atom_expr::GetDescriptor(), msg);
@@ -318,11 +317,11 @@ private:
bool invoke = false;
for (auto& b : msg.GetRule_unary_subexpr_suffix2().GetBlock1()) {
switch (b.GetBlock1().Alt_case()) {
- case TRule_unary_subexpr_suffix::TBlock1::TBlock1::kAlt2: {
- invoke = true;
- break;
- }
- default:;
+ case TRule_unary_subexpr_suffix::TBlock1::TBlock1::kAlt2: {
+ invoke = true;
+ break;
+ }
+ default:;
}
break;
@@ -344,11 +343,11 @@ private:
bool invoke = false;
for (auto& b : msg.GetRule_unary_subexpr_suffix2().GetBlock1()) {
switch (b.GetBlock1().Alt_case()) {
- case TRule_unary_subexpr_suffix::TBlock1::TBlock1::kAlt2: {
- invoke = true;
- break;
- }
- default:;
+ case TRule_unary_subexpr_suffix::TBlock1::TBlock1::kAlt2: {
+ invoke = true;
+ break;
+ }
+ default:;
}
break;
@@ -398,7 +397,8 @@ private:
};
class TPrettyVisitor {
-friend struct TStaticData;
+ friend struct TStaticData;
+
public:
TPrettyVisitor(const TParsedTokenList& parsedTokens, const TParsedTokenList& comments, bool ansiLexer)
: StaticData_(TStaticData::GetInstance())
@@ -508,8 +508,7 @@ private:
if (!text.StartsWith("--") &&
TokenIndex_ < ParsedTokens_.size() &&
Comments_[LastComment_].Line < ParsedTokens_[TokenIndex_].Line &&
- (LastComment_ + 1 >= Comments_.size() || Comments_[LastComment_].Line < Comments_[LastComment_ + 1].Line)
- ) {
+ (LastComment_ + 1 >= Comments_.size() || Comments_[LastComment_].Line < Comments_[LastComment_ + 1].Line)) {
Out('\n');
}
}
@@ -660,7 +659,7 @@ private:
void Visit(const NProtoBuf::Message& msg) {
const NProtoBuf::Descriptor* descr = msg.GetDescriptor();
- //Cerr << descr->name() << "\n";
+ // Cerr << descr->name() << "\n";
auto scopePtr = StaticData_.ScopeDispatch.FindPtr(descr);
if (descr == TRule_invoke_expr::GetDescriptor()) {
AfterInvokeExpr_ = true;
@@ -696,10 +695,10 @@ private:
TMaybe<bool> IsSimpleStatement(const TRule_sql_stmt_core& msg) {
switch (msg.Alt_case()) {
- case TRule_sql_stmt_core::kAltSqlStmtCore1: // pragma
- case TRule_sql_stmt_core::kAltSqlStmtCore5: // drop table
- case TRule_sql_stmt_core::kAltSqlStmtCore6: // use
- case TRule_sql_stmt_core::kAltSqlStmtCore8: // commit
+ case TRule_sql_stmt_core::kAltSqlStmtCore1: // pragma
+ case TRule_sql_stmt_core::kAltSqlStmtCore5: // drop table
+ case TRule_sql_stmt_core::kAltSqlStmtCore6: // use
+ case TRule_sql_stmt_core::kAltSqlStmtCore8: // commit
case TRule_sql_stmt_core::kAltSqlStmtCore11: // rollback
case TRule_sql_stmt_core::kAltSqlStmtCore12: // declare
case TRule_sql_stmt_core::kAltSqlStmtCore13: // import
@@ -714,10 +713,9 @@ private:
case TRule_sql_stmt_core::kAltSqlStmtCore3: { // named nodes
const auto& stmt = msg.GetAlt_sql_stmt_core3().GetRule_named_nodes_stmt1();
- const bool isSelect = (
- (stmt.GetBlock3().HasAlt1() &&
- IsSelect(stmt.GetBlock3().GetAlt1().GetRule_expr1())) ||
- (stmt.GetBlock3().HasAlt2()));
+ const bool isSelect = ((stmt.GetBlock3().HasAlt1() &&
+ IsSelect(stmt.GetBlock3().GetAlt1().GetRule_expr1())) ||
+ (stmt.GetBlock3().HasAlt2()));
if (!isSelect) {
return true;
@@ -937,26 +935,26 @@ private:
ExprLineIndent_ = CurrentIndent_;
switch (msg.GetBlock3().Alt_case()) {
- case TRule_named_nodes_stmt::TBlock3::kAlt1: {
- const auto& alt = msg.GetBlock3().GetAlt1();
- Visit(alt);
- break;
- }
+ case TRule_named_nodes_stmt::TBlock3::kAlt1: {
+ const auto& alt = msg.GetBlock3().GetAlt1();
+ Visit(alt);
+ break;
+ }
- case TRule_named_nodes_stmt::TBlock3::kAlt2: {
- const auto& alt = msg.GetBlock3().GetAlt2();
- Out(" (");
- NewLine();
- PushCurrentIndent();
- Visit(alt);
- PopCurrentIndent();
- NewLine();
- Out(')');
- break;
- }
+ case TRule_named_nodes_stmt::TBlock3::kAlt2: {
+ const auto& alt = msg.GetBlock3().GetAlt2();
+ Out(" (");
+ NewLine();
+ PushCurrentIndent();
+ Visit(alt);
+ PopCurrentIndent();
+ NewLine();
+ Out(')');
+ break;
+ }
- default:
- ythrow yexception() << "Alt is not supported";
+ default:
+ ythrow yexception() << "Alt is not supported";
}
ExprLineIndent_ = 0;
@@ -1081,107 +1079,106 @@ private:
Visit(msg.GetToken2());
Visit(msg.GetRule_simple_table_ref3());
switch (msg.GetBlock4().Alt_case()) {
- case TRule_update_stmt_TBlock4::kAlt1: {
- const auto& alt = msg.GetBlock4().GetAlt1();
- NewLine();
- Visit(alt.GetToken1());
- const auto& choice = alt.GetRule_set_clause_choice2();
- NewLine();
-
- switch (choice.Alt_case()) {
- case TRule_set_clause_choice::kAltSetClauseChoice1: {
- const auto& clauses = choice.GetAlt_set_clause_choice1().GetRule_set_clause_list1();
- NewLine();
- PushCurrentIndent();
- Visit(clauses.GetRule_set_clause1());
- for (auto& block : clauses.GetBlock2()) {
- Visit(block.GetToken1());
- NewLine();
- Visit(block.GetRule_set_clause2());
- }
-
- PopCurrentIndent();
+ case TRule_update_stmt_TBlock4::kAlt1: {
+ const auto& alt = msg.GetBlock4().GetAlt1();
NewLine();
- break;
- }
- case TRule_set_clause_choice::kAltSetClauseChoice2: {
- const auto& multiColumn = choice.GetAlt_set_clause_choice2().GetRule_multiple_column_assignment1();
- const auto& targets = multiColumn.GetRule_set_target_list1();
- Visit(targets.GetToken1());
+ Visit(alt.GetToken1());
+ const auto& choice = alt.GetRule_set_clause_choice2();
NewLine();
- PushCurrentIndent();
- Visit(targets.GetRule_set_target2());
- for (auto& block : targets.GetBlock3()) {
- Visit(block.GetToken1());
- NewLine();
- Visit(block.GetRule_set_target2());
- }
- NewLine();
- PopCurrentIndent();
- Visit(targets.GetToken4());
- Visit(multiColumn.GetToken2());
-
- const auto& parenthesis = multiColumn.GetRule_smart_parenthesis3();
+ switch (choice.Alt_case()) {
+ case TRule_set_clause_choice::kAltSetClauseChoice1: {
+ const auto& clauses = choice.GetAlt_set_clause_choice1().GetRule_set_clause_list1();
+ NewLine();
+ PushCurrentIndent();
+ Visit(clauses.GetRule_set_clause1());
+ for (auto& block : clauses.GetBlock2()) {
+ Visit(block.GetToken1());
+ NewLine();
+ Visit(block.GetRule_set_clause2());
+ }
+
+ PopCurrentIndent();
+ NewLine();
+ break;
+ }
+ case TRule_set_clause_choice::kAltSetClauseChoice2: {
+ const auto& multiColumn = choice.GetAlt_set_clause_choice2().GetRule_multiple_column_assignment1();
+ const auto& targets = multiColumn.GetRule_set_target_list1();
+ Visit(targets.GetToken1());
+ NewLine();
+ PushCurrentIndent();
+ Visit(targets.GetRule_set_target2());
+ for (auto& block : targets.GetBlock3()) {
+ Visit(block.GetToken1());
+ NewLine();
+ Visit(block.GetRule_set_target2());
+ }
- const auto* tuple_or_expr = GetTupleOrExpr(parenthesis);
- if (!tuple_or_expr) {
- Visit(parenthesis);
- break;
- }
+ NewLine();
+ PopCurrentIndent();
+ Visit(targets.GetToken4());
+ Visit(multiColumn.GetToken2());
+
+ const auto& parenthesis = multiColumn.GetRule_smart_parenthesis3();
+
+ const auto* tuple_or_expr = GetTupleOrExpr(parenthesis);
+ if (!tuple_or_expr) {
+ Visit(parenthesis);
+ break;
+ }
+
+ const bool isHeadNamed = tuple_or_expr->HasBlock2();
+ const bool isTailNamed = AnyOf(tuple_or_expr->GetBlock3(), [](const auto& block) {
+ return block.GetRule_named_expr2().HasBlock2();
+ });
+ if (isHeadNamed || isTailNamed) {
+ Visit(parenthesis);
+ break;
+ }
+
+ Visit(parenthesis.GetToken1());
+ PushCurrentIndent();
+ NewLine();
- const bool isHeadNamed = tuple_or_expr->HasBlock2();
- const bool isTailNamed = AnyOf(tuple_or_expr->GetBlock3(), [](const auto& block) {
- return block.GetRule_named_expr2().HasBlock2();
- });
- if (isHeadNamed || isTailNamed) {
- Visit(parenthesis);
- break;
- }
+ Visit(tuple_or_expr->GetRule_expr1());
+ for (auto& block : tuple_or_expr->GetBlock3()) {
+ Visit(block.GetToken1());
+ NewLine();
+ Visit(block.GetRule_named_expr2().GetRule_expr1());
+ }
+ if (tuple_or_expr->HasBlock4()) {
+ Visit(tuple_or_expr->GetBlock4().GetToken1());
+ }
+ NewLine();
+ PopCurrentIndent();
+ Visit(parenthesis.GetToken3());
- Visit(parenthesis.GetToken1());
- PushCurrentIndent();
- NewLine();
+ break;
+ }
+ default:
+ ythrow yexception() << "Alt is not supported";
+ }
- Visit(tuple_or_expr->GetRule_expr1());
- for (auto& block : tuple_or_expr->GetBlock3()) {
- Visit(block.GetToken1());
+ PopCurrentIndent();
+ if (alt.HasBlock3()) {
NewLine();
- Visit(block.GetRule_named_expr2().GetRule_expr1());
- }
- if (tuple_or_expr->HasBlock4()) {
- Visit(tuple_or_expr->GetBlock4().GetToken1());
+ Visit(alt.GetBlock3());
}
- NewLine();
PopCurrentIndent();
- Visit(parenthesis.GetToken3());
-
break;
}
- default:
- ythrow yexception() << "Alt is not supported";
- }
-
- PopCurrentIndent();
- if (alt.HasBlock3()) {
+ case TRule_update_stmt_TBlock4::kAlt2: {
+ const auto& alt = msg.GetBlock4().GetAlt2();
NewLine();
- Visit(alt.GetBlock3());
+ Visit(alt.GetToken1());
+ Visit(alt.GetRule_into_values_source2());
+ break;
}
-
- PopCurrentIndent();
- break;
- }
- case TRule_update_stmt_TBlock4::kAlt2: {
- const auto& alt = msg.GetBlock4().GetAlt2();
- NewLine();
- Visit(alt.GetToken1());
- Visit(alt.GetRule_into_values_source2());
- break;
- }
- default:
- ythrow yexception() << "Alt is not supported";
+ default:
+ ythrow yexception() << "Alt is not supported";
}
}
@@ -1192,20 +1189,20 @@ private:
Visit(msg.GetRule_simple_table_ref4());
if (msg.HasBlock5()) {
switch (msg.GetBlock5().Alt_case()) {
- case TRule_delete_stmt_TBlock5::kAlt1: {
- const auto& alt = msg.GetBlock5().GetAlt1();
- NewLine();
- Visit(alt);
- break;
- }
- case TRule_delete_stmt_TBlock5::kAlt2: {
- const auto& alt = msg.GetBlock5().GetAlt2();
- NewLine();
- Visit(alt);
- break;
- }
- default:
- ythrow yexception() << "Alt is not supported";
+ case TRule_delete_stmt_TBlock5::kAlt1: {
+ const auto& alt = msg.GetBlock5().GetAlt1();
+ NewLine();
+ Visit(alt);
+ break;
+ }
+ case TRule_delete_stmt_TBlock5::kAlt2: {
+ const auto& alt = msg.GetBlock5().GetAlt2();
+ NewLine();
+ Visit(alt);
+ break;
+ }
+ default:
+ ythrow yexception() << "Alt is not supported";
}
}
}
@@ -1289,35 +1286,35 @@ private:
void VisitDo(const TRule_do_stmt& msg) {
VisitKeyword(msg.GetToken1());
switch (msg.GetBlock2().Alt_case()) {
- case TRule_do_stmt_TBlock2::kAlt1: { // CALL
- PushCurrentIndent();
- NewLine();
- const auto& alt = msg.GetBlock2().GetAlt1().GetRule_call_action1();
- Visit(alt.GetBlock1());
- AfterInvokeExpr_ = true;
- Visit(alt.GetToken2());
- if (alt.HasBlock3()) {
- Visit(alt.GetBlock3());
+ case TRule_do_stmt_TBlock2::kAlt1: { // CALL
+ PushCurrentIndent();
+ NewLine();
+ const auto& alt = msg.GetBlock2().GetAlt1().GetRule_call_action1();
+ Visit(alt.GetBlock1());
+ AfterInvokeExpr_ = true;
+ Visit(alt.GetToken2());
+ if (alt.HasBlock3()) {
+ Visit(alt.GetBlock3());
+ }
+ Visit(alt.GetToken4());
+ PopCurrentIndent();
+ NewLine();
+ break;
}
- Visit(alt.GetToken4());
- PopCurrentIndent();
- NewLine();
- break;
- }
- case TRule_do_stmt_TBlock2::kAlt2: { // INLINE
- const auto& alt = msg.GetBlock2().GetAlt2().GetRule_inline_action1();
- VisitKeyword(alt.GetToken1());
- PushCurrentIndent();
- NewLine();
- Visit(alt.GetRule_define_action_or_subquery_body2());
- PopCurrentIndent();
- NewLine();
- VisitKeyword(alt.GetToken3());
- VisitKeyword(alt.GetToken4());
- break;
- }
- default:
- ythrow yexception() << "Alt is not supported";
+ case TRule_do_stmt_TBlock2::kAlt2: { // INLINE
+ const auto& alt = msg.GetBlock2().GetAlt2().GetRule_inline_action1();
+ VisitKeyword(alt.GetToken1());
+ PushCurrentIndent();
+ NewLine();
+ Visit(alt.GetRule_define_action_or_subquery_body2());
+ PopCurrentIndent();
+ NewLine();
+ VisitKeyword(alt.GetToken3());
+ VisitKeyword(alt.GetToken4());
+ break;
+ }
+ default:
+ ythrow yexception() << "Alt is not supported";
}
}
@@ -1597,26 +1594,26 @@ private:
NewLine();
PushCurrentIndent();
switch (msg.GetBlock3().Alt_case()) {
- case TRule_alter_backup_collection_stmt_TBlock3::kAlt1: {
- Visit(msg.GetBlock3().GetAlt1().GetRule_alter_backup_collection_actions1().GetRule_alter_backup_collection_action1());
- for (const auto& action : msg.GetBlock3().GetAlt1().GetRule_alter_backup_collection_actions1().GetBlock2()) {
- Visit(action.GetToken1()); // comma
- NewLine();
- Visit(action.GetRule_alter_backup_collection_action2());
+ case TRule_alter_backup_collection_stmt_TBlock3::kAlt1: {
+ Visit(msg.GetBlock3().GetAlt1().GetRule_alter_backup_collection_actions1().GetRule_alter_backup_collection_action1());
+ for (const auto& action : msg.GetBlock3().GetAlt1().GetRule_alter_backup_collection_actions1().GetBlock2()) {
+ Visit(action.GetToken1()); // comma
+ NewLine();
+ Visit(action.GetRule_alter_backup_collection_action2());
+ }
+ break;
}
- break;
- }
- case TRule_alter_backup_collection_stmt_TBlock3::kAlt2: {
- Visit(msg.GetBlock3().GetAlt2().GetRule_alter_backup_collection_entries1().GetRule_alter_backup_collection_entry1());
- for (const auto& entry : msg.GetBlock3().GetAlt2().GetRule_alter_backup_collection_entries1().GetBlock2()) {
- Visit(entry.GetToken1()); // comma
- NewLine();
- Visit(entry.GetRule_alter_backup_collection_entry2());
+ case TRule_alter_backup_collection_stmt_TBlock3::kAlt2: {
+ Visit(msg.GetBlock3().GetAlt2().GetRule_alter_backup_collection_entries1().GetRule_alter_backup_collection_entry1());
+ for (const auto& entry : msg.GetBlock3().GetAlt2().GetRule_alter_backup_collection_entries1().GetBlock2()) {
+ Visit(entry.GetToken1()); // comma
+ NewLine();
+ Visit(entry.GetRule_alter_backup_collection_entry2());
+ }
+ break;
}
- break;
- }
- default:
- ythrow yexception() << "Alt is not supported";
+ default:
+ ythrow yexception() << "Alt is not supported";
}
PopCurrentIndent();
@@ -1733,21 +1730,22 @@ private:
return;
}
- //Cerr << str << "\n";
+ // Cerr << str << "\n";
auto currentScope = Scopes_.back();
if (!SkipSpaceAfterUnaryOp_ && !InMultiTokenOp_) {
if (AfterLess_ && str == ">") {
Out(' ');
} else if (AfterDigits_ && str == ".") {
Out(' ');
- } else if (OutColumn_ && (currentScope == EScope::DoubleQuestion || str != "?")
- && str != ":" && str != "." && str != "," && str != ";" && str != ")" && str != "]"
- && str != "}" && str != "|>" && str != "::" && !AfterNamespace_ && !AfterBracket_
- && !AfterInvokeExpr_ && !AfterDollarOrAt_ && !AfterDot_ && (!AfterQuestion_ || str != "?")
- && (!InsideType_ || (str != "<" && str != ">" && str != "<>"))
- && (!InsideType_ || !AfterLess_)
- && (!AfterKeyExpr_ || str != "[")
- ) {
+ } else if (OutColumn_ &&
+ (currentScope == EScope::DoubleQuestion || str != "?") &&
+ str != ":" && str != "." && str != "," && str != ";" && str != ")" &&
+ str != "]" && str != "}" && str != "|>" && str != "::" &&
+ !AfterNamespace_ && !AfterBracket_ && !AfterInvokeExpr_ &&
+ !AfterDollarOrAt_ && !AfterDot_ && (!AfterQuestion_ || str != "?") &&
+ (!InsideType_ || (str != "<" && str != ">" && str != "<>")) &&
+ (!InsideType_ || !AfterLess_) && (!AfterKeyExpr_ || str != "["))
+ {
Out(' ');
}
}
@@ -1774,7 +1772,7 @@ private:
if (forceKeyword) {
str = to_upper(str);
} else if (currentScope == EScope::Default) {
- if (auto p = StaticData_.Keywords.find(to_upper(str)); p != StaticData_.Keywords.end()) {
+ if (auto p = StaticData_.Keywords.find(to_upper(str)); p != StaticData_.Keywords.end()) {
str = *p;
}
}
@@ -1830,8 +1828,7 @@ 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);
+ (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 (addNewline) {
NewLine();
@@ -1843,35 +1840,35 @@ private:
void VisitIntoValuesSource(const TRule_into_values_source& msg) {
switch (msg.Alt_case()) {
- case TRule_into_values_source::kAltIntoValuesSource1: {
- const auto& alt = msg.GetAlt_into_values_source1();
- if (alt.HasBlock1()) {
- const auto& columns = alt.GetBlock1().GetRule_pure_column_list1();
- Visit(columns.GetToken1());
- NewLine();
- PushCurrentIndent();
- Visit(columns.GetRule_an_id2());
- for (const auto& block : columns.GetBlock3()) {
- Visit(block.GetToken1());
+ case TRule_into_values_source::kAltIntoValuesSource1: {
+ const auto& alt = msg.GetAlt_into_values_source1();
+ if (alt.HasBlock1()) {
+ const auto& columns = alt.GetBlock1().GetRule_pure_column_list1();
+ Visit(columns.GetToken1());
+ NewLine();
+ PushCurrentIndent();
+ Visit(columns.GetRule_an_id2());
+ for (const auto& block : columns.GetBlock3()) {
+ Visit(block.GetToken1());
+ NewLine();
+ Visit(block.GetRule_an_id2());
+ }
+
+ PopCurrentIndent();
+ NewLine();
+ Visit(columns.GetToken4());
NewLine();
- Visit(block.GetRule_an_id2());
}
- PopCurrentIndent();
- NewLine();
- Visit(columns.GetToken4());
- NewLine();
+ Visit(alt.GetRule_values_source2());
+ break;
}
-
- Visit(alt.GetRule_values_source2());
- break;
- }
- case TRule_into_values_source::kAltIntoValuesSource2: {
- VisitAllFields(TRule_into_values_source::GetDescriptor(), msg);
- break;
- }
- default:
- ythrow yexception() << "Alt is not supported";
+ case TRule_into_values_source::kAltIntoValuesSource2: {
+ VisitAllFields(TRule_into_values_source::GetDescriptor(), msg);
+ break;
+ }
+ default:
+ ythrow yexception() << "Alt is not supported";
}
}
@@ -2220,35 +2217,35 @@ private:
void VisitSingleSource(const TRule_single_source& msg) {
switch (msg.Alt_case()) {
- case TRule_single_source::kAltSingleSource1: {
- const auto& alt = msg.GetAlt_single_source1();
- Visit(alt);
- break;
- }
- case TRule_single_source::kAltSingleSource2: {
- const auto& alt = msg.GetAlt_single_source2();
- Visit(alt.GetToken1());
- NewLine();
- PushCurrentIndent();
- Visit(alt.GetRule_select_stmt2());
- PopCurrentIndent();
- NewLine();
- Visit(alt.GetToken3());
- break;
- }
- case TRule_single_source::kAltSingleSource3: {
- const auto& alt = msg.GetAlt_single_source3();
- Visit(alt.GetToken1());
- NewLine();
- PushCurrentIndent();
- Visit(alt.GetRule_values_stmt2());
- PopCurrentIndent();
- NewLine();
- Visit(alt.GetToken3());
- break;
- }
- default:
- ythrow yexception() << "Alt is not supported";
+ case TRule_single_source::kAltSingleSource1: {
+ const auto& alt = msg.GetAlt_single_source1();
+ Visit(alt);
+ break;
+ }
+ case TRule_single_source::kAltSingleSource2: {
+ const auto& alt = msg.GetAlt_single_source2();
+ Visit(alt.GetToken1());
+ NewLine();
+ PushCurrentIndent();
+ Visit(alt.GetRule_select_stmt2());
+ PopCurrentIndent();
+ NewLine();
+ Visit(alt.GetToken3());
+ break;
+ }
+ case TRule_single_source::kAltSingleSource3: {
+ const auto& alt = msg.GetAlt_single_source3();
+ Visit(alt.GetToken1());
+ NewLine();
+ PushCurrentIndent();
+ Visit(alt.GetRule_values_stmt2());
+ PopCurrentIndent();
+ NewLine();
+ Visit(alt.GetToken3());
+ break;
+ }
+ default:
+ ythrow yexception() << "Alt is not supported";
}
}
@@ -2377,35 +2374,35 @@ private:
void VisitFlattenByArg(const TRule_flatten_by_arg& msg) {
switch (msg.Alt_case()) {
- case TRule_flatten_by_arg::kAltFlattenByArg1: {
- const auto& alt = msg.GetAlt_flatten_by_arg1();
- Visit(alt);
- break;
- }
- case TRule_flatten_by_arg::kAltFlattenByArg2: {
- const auto& alt = msg.GetAlt_flatten_by_arg2();
- Visit(alt.GetToken1());
- NewLine();
- PushCurrentIndent();
- const auto& exprs = alt.GetRule_named_expr_list2();
- Visit(exprs.GetRule_named_expr1());
- for (const auto& block : exprs.GetBlock2()) {
- Visit(block.GetToken1());
- NewLine();
- Visit(block.GetRule_named_expr2());
+ case TRule_flatten_by_arg::kAltFlattenByArg1: {
+ const auto& alt = msg.GetAlt_flatten_by_arg1();
+ Visit(alt);
+ break;
}
+ case TRule_flatten_by_arg::kAltFlattenByArg2: {
+ const auto& alt = msg.GetAlt_flatten_by_arg2();
+ Visit(alt.GetToken1());
+ NewLine();
+ PushCurrentIndent();
+ const auto& exprs = alt.GetRule_named_expr_list2();
+ Visit(exprs.GetRule_named_expr1());
+ for (const auto& block : exprs.GetBlock2()) {
+ Visit(block.GetToken1());
+ NewLine();
+ Visit(block.GetRule_named_expr2());
+ }
- if (alt.HasBlock3()) {
- Visit(alt.GetBlock3());
- }
+ if (alt.HasBlock3()) {
+ Visit(alt.GetBlock3());
+ }
- NewLine();
- PopCurrentIndent();
- Visit(alt.GetToken4());
- break;
- }
- default:
- ythrow yexception() << "Alt is not supported";
+ NewLine();
+ PopCurrentIndent();
+ Visit(alt.GetToken4());
+ break;
+ }
+ default:
+ ythrow yexception() << "Alt is not supported";
}
}
@@ -2438,42 +2435,42 @@ private:
const auto& block3 = msg.GetBlock3();
switch (block3.Alt_case()) {
- case TRule_table_ref::TBlock3::kAlt1: {
- const auto& alt = block3.GetAlt1();
- const auto& key = alt.GetRule_table_key1();
- Visit(key.GetRule_id_table_or_type1());
- Visit(key.GetBlock2());
+ case TRule_table_ref::TBlock3::kAlt1: {
+ const auto& alt = block3.GetAlt1();
+ const auto& key = alt.GetRule_table_key1();
+ Visit(key.GetRule_id_table_or_type1());
+ Visit(key.GetBlock2());
- break;
- }
- case TRule_table_ref::TBlock3::kAlt2: {
- const auto& alt = block3.GetAlt2();
- Visit(alt.GetRule_an_id_expr1());
- AfterInvokeExpr_ = true;
- Visit(alt.GetToken2());
- if (alt.HasBlock3()) {
- Visit(alt.GetBlock3());
+ break;
}
-
- Visit(alt.GetToken4());
- break;
- }
- case TRule_table_ref::TBlock3::kAlt3: {
- const auto& alt = block3.GetAlt3();
- Visit(alt.GetRule_bind_parameter1());
- if (alt.HasBlock2()) {
+ case TRule_table_ref::TBlock3::kAlt2: {
+ const auto& alt = block3.GetAlt2();
+ Visit(alt.GetRule_an_id_expr1());
AfterInvokeExpr_ = true;
- Visit(alt.GetBlock2());
- }
+ Visit(alt.GetToken2());
+ if (alt.HasBlock3()) {
+ Visit(alt.GetBlock3());
+ }
- if (alt.HasBlock3()) {
- Visit(alt.GetBlock3());
+ Visit(alt.GetToken4());
+ break;
}
+ case TRule_table_ref::TBlock3::kAlt3: {
+ const auto& alt = block3.GetAlt3();
+ Visit(alt.GetRule_bind_parameter1());
+ if (alt.HasBlock2()) {
+ AfterInvokeExpr_ = true;
+ Visit(alt.GetBlock2());
+ }
- break;
- }
- default:
- ythrow yexception() << "Alt is not supported";
+ if (alt.HasBlock3()) {
+ Visit(alt.GetBlock3());
+ }
+
+ break;
+ }
+ default:
+ ythrow yexception() << "Alt is not supported";
}
if (msg.HasBlock4()) {
@@ -2835,43 +2832,43 @@ private:
if (msg.HasBlock3()) {
const auto& b = msg.GetBlock3();
switch (b.Alt_case()) {
- case TRule_neq_subexpr_TBlock3::kAlt1: {
- const auto& alt = b.GetAlt1();
- const bool hasFirstNewline = LastLine_ != ParsedTokens_[TokenIndex_].Line;
- // 2 is `??` size in tokens
- const bool hasSecondNewline = ParsedTokens_[TokenIndex_].Line != ParsedTokens_[TokenIndex_ + 2].Line;
- const ui32 currentOutLine = OutLine_;
-
- if (currentOutLine != OutLine_ || (hasFirstNewline && hasSecondNewline)) {
- NewLine();
- if (!pushedIndent) {
- PushCurrentIndent();
- pushedIndent = true;
+ case TRule_neq_subexpr_TBlock3::kAlt1: {
+ const auto& alt = b.GetAlt1();
+ const bool hasFirstNewline = LastLine_ != ParsedTokens_[TokenIndex_].Line;
+ // 2 is `??` size in tokens
+ const bool hasSecondNewline = ParsedTokens_[TokenIndex_].Line != ParsedTokens_[TokenIndex_ + 2].Line;
+ const ui32 currentOutLine = OutLine_;
+
+ if (currentOutLine != OutLine_ || (hasFirstNewline && hasSecondNewline)) {
+ NewLine();
+ if (!pushedIndent) {
+ PushCurrentIndent();
+ pushedIndent = true;
+ }
}
- }
- Visit(alt.GetRule_double_question1());
- if (hasFirstNewline || hasSecondNewline) {
- NewLine();
- if (!pushedIndent) {
- PushCurrentIndent();
- pushedIndent = true;
+ Visit(alt.GetRule_double_question1());
+ if (hasFirstNewline || hasSecondNewline) {
+ NewLine();
+ if (!pushedIndent) {
+ PushCurrentIndent();
+ pushedIndent = true;
+ }
}
- }
- VisitNeqSubexprImpl(alt.GetRule_neq_subexpr2(), pushedIndent, false);
- if (pushedIndent && top) {
- PopCurrentIndent();
- pushedIndent = false;
- }
+ VisitNeqSubexprImpl(alt.GetRule_neq_subexpr2(), pushedIndent, false);
+ if (pushedIndent && top) {
+ PopCurrentIndent();
+ pushedIndent = false;
+ }
- break;
- }
- case TRule_neq_subexpr_TBlock3::kAlt2:
- Visit(b.GetAlt2());
- break;
- default:
- ythrow yexception() << "Alt is not supported";
+ break;
+ }
+ case TRule_neq_subexpr_TBlock3::kAlt2:
+ Visit(b.GetAlt2());
+ break;
+ default:
+ ythrow yexception() << "Alt is not supported";
}
}
}
@@ -2900,18 +2897,18 @@ private:
ui32 BinaryOpTokenSize(const TRule_neq_subexpr::TBlock2::TBlock1& block) {
switch (block.Alt_case()) {
- case TRule_neq_subexpr::TBlock2::TBlock1::kAlt1:
- case TRule_neq_subexpr::TBlock2::TBlock1::kAlt3:
- case TRule_neq_subexpr::TBlock2::TBlock1::kAlt5:
- case TRule_neq_subexpr::TBlock2::TBlock1::kAlt6:
- case TRule_neq_subexpr::TBlock2::TBlock1::kAlt7:
- return 1;
- case TRule_neq_subexpr::TBlock2::TBlock1::kAlt2:
- return 2;
- case TRule_neq_subexpr::TBlock2::TBlock1::kAlt4:
- return 3;
- default:
- ythrow yexception() << "Alt is not supported";
+ case TRule_neq_subexpr::TBlock2::TBlock1::kAlt1:
+ case TRule_neq_subexpr::TBlock2::TBlock1::kAlt3:
+ case TRule_neq_subexpr::TBlock2::TBlock1::kAlt5:
+ case TRule_neq_subexpr::TBlock2::TBlock1::kAlt6:
+ case TRule_neq_subexpr::TBlock2::TBlock1::kAlt7:
+ return 1;
+ case TRule_neq_subexpr::TBlock2::TBlock1::kAlt2:
+ return 2;
+ case TRule_neq_subexpr::TBlock2::TBlock1::kAlt4:
+ return 3;
+ default:
+ ythrow yexception() << "Alt is not supported";
}
}
@@ -3036,161 +3033,161 @@ TObfuscatingFunctor MakeObfuscatingFunctor(void (TObfuscatingVisitor::*memberPtr
TStaticData::TStaticData()
: Keywords(GetKeywords())
, ScopeDispatch({
- {TRule_type_name::GetDescriptor(), EScope::TypeName},
- {TRule_type_name_composite::GetDescriptor(), EScope::TypeName},
- {TRule_double_question::GetDescriptor(), EScope::DoubleQuestion},
- {TRule_id::GetDescriptor(), EScope::Identifier},
- {TRule_id_or_type::GetDescriptor(), EScope::Identifier},
- {TRule_id_schema::GetDescriptor(), EScope::Identifier},
- {TRule_id_expr::GetDescriptor(), EScope::Identifier},
- {TRule_id_expr_in::GetDescriptor(), EScope::Identifier},
- {TRule_id_window::GetDescriptor(), EScope::Identifier},
- {TRule_id_table::GetDescriptor(), EScope::Identifier},
- {TRule_id_without::GetDescriptor(), EScope::Identifier},
- {TRule_id_hint::GetDescriptor(), EScope::Identifier},
- {TRule_identifier::GetDescriptor(), EScope::Identifier},
- {TRule_id_table_or_type::GetDescriptor(), EScope::Identifier},
- {TRule_bind_parameter::GetDescriptor(), EScope::Identifier},
- {TRule_an_id_as_compat::GetDescriptor(), EScope::Identifier},
- })
+ {TRule_type_name::GetDescriptor(), EScope::TypeName},
+ {TRule_type_name_composite::GetDescriptor(), EScope::TypeName},
+ {TRule_double_question::GetDescriptor(), EScope::DoubleQuestion},
+ {TRule_id::GetDescriptor(), EScope::Identifier},
+ {TRule_id_or_type::GetDescriptor(), EScope::Identifier},
+ {TRule_id_schema::GetDescriptor(), EScope::Identifier},
+ {TRule_id_expr::GetDescriptor(), EScope::Identifier},
+ {TRule_id_expr_in::GetDescriptor(), EScope::Identifier},
+ {TRule_id_window::GetDescriptor(), EScope::Identifier},
+ {TRule_id_table::GetDescriptor(), EScope::Identifier},
+ {TRule_id_without::GetDescriptor(), EScope::Identifier},
+ {TRule_id_hint::GetDescriptor(), EScope::Identifier},
+ {TRule_identifier::GetDescriptor(), EScope::Identifier},
+ {TRule_id_table_or_type::GetDescriptor(), EScope::Identifier},
+ {TRule_bind_parameter::GetDescriptor(), EScope::Identifier},
+ {TRule_an_id_as_compat::GetDescriptor(), EScope::Identifier},
+ })
, PrettyVisitDispatch({
- {TToken::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitToken)},
- {TRule_value_constructor::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitValueConstructor)},
- {TRule_into_values_source::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitIntoValuesSource)},
- {TRule_select_kind::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectKind)},
- {TRule_process_core::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitProcessCore)},
- {TRule_reduce_core::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitReduceCore)},
- {TRule_sort_specification_list::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSortSpecificationList)},
- {TRule_select_core::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectCore)},
- {TRule_row_pattern_recognition_clause::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitRowPatternRecognitionClause)},
- {TRule_join_source::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitJoinSource)},
- {TRule_join_constraint::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitJoinConstraint)},
- {TRule_single_source::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSingleSource)},
- {TRule_flatten_source::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitFlattenSource)},
- {TRule_named_single_source::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitNamedSingleSource)},
- {TRule_table_hints::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitTableHints)},
- {TRule_simple_table_ref::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSimpleTableRef)},
- {TRule_into_simple_table_ref::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitIntoSimpleTableRef)},
- {TRule_select_kind_partial::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectKindPartial)},
- {TRule_flatten_by_arg::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitFlattenByArg)},
- {TRule_without_column_list::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitWithoutColumnList)},
- {TRule_table_ref::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitTableRef)},
- {TRule_grouping_element_list::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitGroupingElementList)},
- {TRule_group_by_clause::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitGroupByClause)},
- {TRule_window_definition_list::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitWindowDefinitionList)},
- {TRule_window_specification::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitWindowSpecification)},
- {TRule_window_partition_clause::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitWindowParitionClause)},
- {TRule_lambda_body::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitLambdaBody)},
- {TRule_select_kind_parenthesis::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectKindParenthesis)},
- {TRule_cast_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCastExpr)},
- {TRule_bitcast_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitBitCastExpr)},
- {TRule_ext_order_by_clause::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitExtOrderByClause)},
- {TRule_key_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitKeyExpr)},
- {TRule_define_action_or_subquery_body::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDefineActionOrSubqueryBody)},
- {TRule_exists_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitExistsExpr)},
- {TRule_case_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCaseExpr)},
- {TRule_with_table_settings::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitWithTableSettingsExpr)},
- {TRule_table_setting_value::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitTableSettingValue)},
- {TRule_ttl_tier_action::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitTtlTierAction)},
-
- {TRule_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitExpr)},
- {TRule_cond_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCondExpr)},
- {TRule_or_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitOrSubexpr)},
- {TRule_and_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAndSubexpr)},
- {TRule_eq_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitEqSubexpr)},
- {TRule_neq_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitNeqSubexpr)},
- {TRule_bit_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitBitSubexpr)},
- {TRule_add_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAddSubexpr)},
- {TRule_mul_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitMulSubexpr)},
-
- {TRule_rot_right::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitRotRight)},
- {TRule_shift_right::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitShiftRight)},
-
- {TRule_pragma_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitPragma)},
- {TRule_select_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelect)},
- {TRule_select_stmt_intersect::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectIntersect)},
- {TRule_smart_parenthesis::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSmartParenthesis)},
- {TRule_select_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectSubExpr)},
- {TRule_select_subexpr_intersect::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectSubExprIntersect)},
- {TRule_select_unparenthesized_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectUnparenthesized)},
- {TRule_select_unparenthesized_stmt_intersect::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectUnparenthesizedIntersect)},
- {TRule_named_nodes_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitNamedNodes)},
- {TRule_create_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateTable)},
- {TRule_drop_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropTable)},
- {TRule_use_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitUse)},
- {TRule_into_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitIntoTable)},
- {TRule_commit_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCommit)},
- {TRule_update_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitUpdate)},
- {TRule_delete_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDelete)},
- {TRule_rollback_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitRollback)},
- {TRule_declare_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDeclare)},
- {TRule_import_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitImport)},
- {TRule_export_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitExport)},
- {TRule_alter_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterTable)},
- {TRule_alter_external_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterExternalTable)},
- {TRule_do_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDo)},
- {TRule_define_action_or_subquery_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAction)},
- {TRule_if_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitIf)},
- {TRule_for_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitFor)},
- {TRule_values_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitValues)},
- {TRule_create_user_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateUser)},
- {TRule_alter_user_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterUser)},
- {TRule_create_group_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateGroup)},
- {TRule_alter_group_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterGroup)},
- {TRule_drop_role_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropRole)},
- {TRule_upsert_object_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitUpsertObject)},
- {TRule_create_object_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateObject)},
- {TRule_alter_object_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterObject)},
- {TRule_drop_object_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropObject)},
- {TRule_create_external_data_source_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateExternalDataSource)},
- {TRule_alter_external_data_source_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterExternalDataSource)},
- {TRule_drop_external_data_source_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropExternalDataSource)},
- {TRule_create_replication_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateAsyncReplication)},
- {TRule_alter_replication_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterAsyncReplication)},
- {TRule_drop_replication_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropAsyncReplication)},
- {TRule_create_transfer_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateTransfer)},
- {TRule_alter_transfer_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterTransfer)},
- {TRule_drop_transfer_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropTransfer)},
- {TRule_create_topic_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateTopic)},
- {TRule_alter_topic_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterTopic)},
- {TRule_drop_topic_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropTopic)},
- {TRule_grant_permissions_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitGrantPermissions)},
- {TRule_revoke_permissions_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitRevokePermissions)},
- {TRule_alter_table_store_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterTableStore)},
- {TRule_create_view_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateView)},
- {TRule_drop_view_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropView)},
- {TRule_create_resource_pool_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateResourcePool)},
- {TRule_alter_resource_pool_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterResourcePool)},
- {TRule_drop_resource_pool_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropResourcePool)},
- {TRule_create_backup_collection_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateBackupCollection)},
- {TRule_alter_backup_collection_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterBackupCollection)},
- {TRule_drop_backup_collection_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropBackupCollection)},
- {TRule_analyze_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAnalyze)},
- {TRule_create_resource_pool_classifier_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateResourcePoolClassifier)},
- {TRule_alter_resource_pool_classifier_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterResourcePoolClassifier)},
- {TRule_drop_resource_pool_classifier_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropResourcePoolClassifier)},
- {TRule_backup_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitBackup)},
- {TRule_restore_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitRestore)},
- {TRule_alter_sequence_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterSequence)},
- {TRule_alter_database_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterDatabase)},
- {TRule_show_create_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitShowCreateTable)},
- {TRule_streaming_query_settings::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitStreamingQuerySettings)},
- {TRule_create_streaming_query_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateStreamingQuery)},
- {TRule_alter_streaming_query_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterStreamingQuery)},
- {TRule_drop_streaming_query_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropStreamingQuery)},
- {TRule_create_secret_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateSecret)},
- {TRule_alter_secret_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterSecret)},
- {TRule_drop_secret_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropSecret)},
- })
+ {TToken::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitToken)},
+ {TRule_value_constructor::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitValueConstructor)},
+ {TRule_into_values_source::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitIntoValuesSource)},
+ {TRule_select_kind::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectKind)},
+ {TRule_process_core::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitProcessCore)},
+ {TRule_reduce_core::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitReduceCore)},
+ {TRule_sort_specification_list::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSortSpecificationList)},
+ {TRule_select_core::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectCore)},
+ {TRule_row_pattern_recognition_clause::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitRowPatternRecognitionClause)},
+ {TRule_join_source::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitJoinSource)},
+ {TRule_join_constraint::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitJoinConstraint)},
+ {TRule_single_source::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSingleSource)},
+ {TRule_flatten_source::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitFlattenSource)},
+ {TRule_named_single_source::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitNamedSingleSource)},
+ {TRule_table_hints::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitTableHints)},
+ {TRule_simple_table_ref::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSimpleTableRef)},
+ {TRule_into_simple_table_ref::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitIntoSimpleTableRef)},
+ {TRule_select_kind_partial::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectKindPartial)},
+ {TRule_flatten_by_arg::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitFlattenByArg)},
+ {TRule_without_column_list::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitWithoutColumnList)},
+ {TRule_table_ref::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitTableRef)},
+ {TRule_grouping_element_list::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitGroupingElementList)},
+ {TRule_group_by_clause::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitGroupByClause)},
+ {TRule_window_definition_list::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitWindowDefinitionList)},
+ {TRule_window_specification::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitWindowSpecification)},
+ {TRule_window_partition_clause::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitWindowParitionClause)},
+ {TRule_lambda_body::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitLambdaBody)},
+ {TRule_select_kind_parenthesis::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectKindParenthesis)},
+ {TRule_cast_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCastExpr)},
+ {TRule_bitcast_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitBitCastExpr)},
+ {TRule_ext_order_by_clause::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitExtOrderByClause)},
+ {TRule_key_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitKeyExpr)},
+ {TRule_define_action_or_subquery_body::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDefineActionOrSubqueryBody)},
+ {TRule_exists_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitExistsExpr)},
+ {TRule_case_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCaseExpr)},
+ {TRule_with_table_settings::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitWithTableSettingsExpr)},
+ {TRule_table_setting_value::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitTableSettingValue)},
+ {TRule_ttl_tier_action::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitTtlTierAction)},
+
+ {TRule_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitExpr)},
+ {TRule_cond_expr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCondExpr)},
+ {TRule_or_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitOrSubexpr)},
+ {TRule_and_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAndSubexpr)},
+ {TRule_eq_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitEqSubexpr)},
+ {TRule_neq_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitNeqSubexpr)},
+ {TRule_bit_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitBitSubexpr)},
+ {TRule_add_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAddSubexpr)},
+ {TRule_mul_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitMulSubexpr)},
+
+ {TRule_rot_right::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitRotRight)},
+ {TRule_shift_right::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitShiftRight)},
+
+ {TRule_pragma_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitPragma)},
+ {TRule_select_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelect)},
+ {TRule_select_stmt_intersect::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectIntersect)},
+ {TRule_smart_parenthesis::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSmartParenthesis)},
+ {TRule_select_subexpr::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectSubExpr)},
+ {TRule_select_subexpr_intersect::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectSubExprIntersect)},
+ {TRule_select_unparenthesized_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectUnparenthesized)},
+ {TRule_select_unparenthesized_stmt_intersect::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitSelectUnparenthesizedIntersect)},
+ {TRule_named_nodes_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitNamedNodes)},
+ {TRule_create_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateTable)},
+ {TRule_drop_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropTable)},
+ {TRule_use_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitUse)},
+ {TRule_into_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitIntoTable)},
+ {TRule_commit_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCommit)},
+ {TRule_update_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitUpdate)},
+ {TRule_delete_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDelete)},
+ {TRule_rollback_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitRollback)},
+ {TRule_declare_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDeclare)},
+ {TRule_import_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitImport)},
+ {TRule_export_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitExport)},
+ {TRule_alter_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterTable)},
+ {TRule_alter_external_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterExternalTable)},
+ {TRule_do_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDo)},
+ {TRule_define_action_or_subquery_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAction)},
+ {TRule_if_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitIf)},
+ {TRule_for_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitFor)},
+ {TRule_values_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitValues)},
+ {TRule_create_user_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateUser)},
+ {TRule_alter_user_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterUser)},
+ {TRule_create_group_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateGroup)},
+ {TRule_alter_group_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterGroup)},
+ {TRule_drop_role_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropRole)},
+ {TRule_upsert_object_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitUpsertObject)},
+ {TRule_create_object_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateObject)},
+ {TRule_alter_object_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterObject)},
+ {TRule_drop_object_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropObject)},
+ {TRule_create_external_data_source_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateExternalDataSource)},
+ {TRule_alter_external_data_source_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterExternalDataSource)},
+ {TRule_drop_external_data_source_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropExternalDataSource)},
+ {TRule_create_replication_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateAsyncReplication)},
+ {TRule_alter_replication_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterAsyncReplication)},
+ {TRule_drop_replication_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropAsyncReplication)},
+ {TRule_create_transfer_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateTransfer)},
+ {TRule_alter_transfer_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterTransfer)},
+ {TRule_drop_transfer_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropTransfer)},
+ {TRule_create_topic_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateTopic)},
+ {TRule_alter_topic_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterTopic)},
+ {TRule_drop_topic_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropTopic)},
+ {TRule_grant_permissions_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitGrantPermissions)},
+ {TRule_revoke_permissions_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitRevokePermissions)},
+ {TRule_alter_table_store_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterTableStore)},
+ {TRule_create_view_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateView)},
+ {TRule_drop_view_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropView)},
+ {TRule_create_resource_pool_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateResourcePool)},
+ {TRule_alter_resource_pool_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterResourcePool)},
+ {TRule_drop_resource_pool_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropResourcePool)},
+ {TRule_create_backup_collection_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateBackupCollection)},
+ {TRule_alter_backup_collection_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterBackupCollection)},
+ {TRule_drop_backup_collection_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropBackupCollection)},
+ {TRule_analyze_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAnalyze)},
+ {TRule_create_resource_pool_classifier_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateResourcePoolClassifier)},
+ {TRule_alter_resource_pool_classifier_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterResourcePoolClassifier)},
+ {TRule_drop_resource_pool_classifier_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropResourcePoolClassifier)},
+ {TRule_backup_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitBackup)},
+ {TRule_restore_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitRestore)},
+ {TRule_alter_sequence_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterSequence)},
+ {TRule_alter_database_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterDatabase)},
+ {TRule_show_create_table_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitShowCreateTable)},
+ {TRule_streaming_query_settings::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitStreamingQuerySettings)},
+ {TRule_create_streaming_query_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateStreamingQuery)},
+ {TRule_alter_streaming_query_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterStreamingQuery)},
+ {TRule_drop_streaming_query_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropStreamingQuery)},
+ {TRule_create_secret_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitCreateSecret)},
+ {TRule_alter_secret_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitAlterSecret)},
+ {TRule_drop_secret_stmt::GetDescriptor(), MakePrettyFunctor(&TPrettyVisitor::VisitDropSecret)},
+ })
, ObfuscatingVisitDispatch({
- {TToken::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitToken)},
- {TRule_literal_value::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitLiteralValue)},
- {TRule_pragma_value::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitPragmaValue)},
- {TRule_atom_expr::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitAtomExpr)},
- {TRule_in_atom_expr::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitInAtomExpr)},
- {TRule_unary_casual_subexpr::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitUnaryCasualSubexpr)},
- {TRule_in_unary_casual_subexpr::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitInUnaryCasualSubexpr)},
- })
+ {TToken::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitToken)},
+ {TRule_literal_value::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitLiteralValue)},
+ {TRule_pragma_value::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitPragmaValue)},
+ {TRule_atom_expr::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitAtomExpr)},
+ {TRule_in_atom_expr::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitInAtomExpr)},
+ {TRule_unary_casual_subexpr::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitUnaryCasualSubexpr)},
+ {TRule_in_unary_casual_subexpr::GetDescriptor(), MakeObfuscatingFunctor(&TObfuscatingVisitor::VisitInUnaryCasualSubexpr)},
+ })
{
// ensure that all statements have a visitor
auto coreDescr = TRule_sql_stmt_core::GetDescriptor();
@@ -3213,15 +3210,16 @@ TStaticData::TStaticData()
}
}
-class TSqlFormatter : public NSQLFormat::ISqlFormatter {
+class TSqlFormatter: public NSQLFormat::ISqlFormatter {
public:
TSqlFormatter(const NSQLTranslationV1::TLexers& lexers,
- const NSQLTranslationV1::TParsers& parsers,
- const NSQLTranslation::TTranslationSettings& settings)
+ const NSQLTranslationV1::TParsers& parsers,
+ const NSQLTranslation::TTranslationSettings& settings)
: Lexers_(lexers)
, Parsers_(parsers)
, Settings_(settings)
- {}
+ {
+ }
bool Format(const TString& query, TString& formattedQuery, NYql::TIssues& issues, EFormatMode mode) override {
formattedQuery = (mode == EFormatMode::Obfuscate) ? "" : query;
@@ -3323,16 +3321,16 @@ private:
const NSQLTranslation::TTranslationSettings Settings_;
};
-}
+} // namespace
ISqlFormatter::TPtr MakeSqlFormatter(const NSQLTranslationV1::TLexers& lexers,
- const NSQLTranslationV1::TParsers& parsers,
- const NSQLTranslation::TTranslationSettings& settings) {
+ const NSQLTranslationV1::TParsers& parsers,
+ const NSQLTranslation::TTranslationSettings& settings) {
return ISqlFormatter::TPtr(new TSqlFormatter(lexers, parsers, settings));
}
TString MutateQuery(const NSQLTranslationV1::TLexers& lexers,
- const TString& query, const NSQLTranslation::TTranslationSettings& settings) {
+ const TString& query, const NSQLTranslation::TTranslationSettings& settings) {
auto parsedSettings = settings;
NYql::TIssues issues;
if (!NSQLTranslation::ParseTranslationSettings(query, parsedSettings, issues)) {
@@ -3363,8 +3361,8 @@ TString MutateQuery(const NSQLTranslationV1::TLexers& lexers,
}
bool SqlFormatSimple(const NSQLTranslationV1::TLexers& lexers,
- const NSQLTranslationV1::TParsers& parsers,
- const TString& query, TString& formattedQuery, TString& error) {
+ const NSQLTranslationV1::TParsers& parsers,
+ const TString& query, TString& formattedQuery, TString& error) {
try {
google::protobuf::Arena arena;
NSQLTranslation::TTranslationSettings settings;
@@ -3407,7 +3405,7 @@ THashSet<TString> GetKeywords() {
SubstGlobal(after, " ", "");
SubstGlobal(after, "'", "");
if (after == before) {
- //Cerr << before << "\n";
+ // Cerr << before << "\n";
res.insert(before);
}
}
diff --git a/yql/essentials/sql/v1/format/sql_format.h b/yql/essentials/sql/v1/format/sql_format.h
index 55c34a462db..92be72b088a 100644
--- a/yql/essentials/sql/v1/format/sql_format.h
+++ b/yql/essentials/sql/v1/format/sql_format.h
@@ -21,20 +21,20 @@ public:
using TPtr = THolder<ISqlFormatter>;
virtual bool Format(const TString& query, TString& formattedQuery, NYql::TIssues& issues,
- EFormatMode mode = EFormatMode::Pretty) = 0;
+ EFormatMode mode = EFormatMode::Pretty) = 0;
virtual ~ISqlFormatter() = default;
};
ISqlFormatter::TPtr MakeSqlFormatter(const NSQLTranslationV1::TLexers& lexers,
- const NSQLTranslationV1::TParsers& parsers,
- const NSQLTranslation::TTranslationSettings& settings = {});
+ const NSQLTranslationV1::TParsers& parsers,
+ const NSQLTranslation::TTranslationSettings& settings = {});
// insert spaces and comments between each tokens
TString MutateQuery(const NSQLTranslationV1::TLexers& lexers, const TString& query, const NSQLTranslation::TTranslationSettings& settings = {});
bool SqlFormatSimple(const NSQLTranslationV1::TLexers& lexers,
- const NSQLTranslationV1::TParsers& parsers, const TString& query, TString& formattedQuery, TString& error);
+ const NSQLTranslationV1::TParsers& parsers, const TString& query, TString& formattedQuery, TString& error);
THashSet<TString> GetKeywords();
-}
+} // namespace NSQLFormat
diff --git a/yql/essentials/sql/v1/format/sql_format_ut.cpp b/yql/essentials/sql/v1/format/sql_format_ut.cpp
index 8714ee2d7c9..9a277f64b74 100644
--- a/yql/essentials/sql/v1/format/sql_format_ut.cpp
+++ b/yql/essentials/sql/v1/format/sql_format_ut.cpp
@@ -49,7 +49,6 @@ struct TSetup {
UNIT_ASSERT_C(res2, issues.ToString());
UNIT_ASSERT_NO_DIFF(formatted, formatted2);
-
if (mode == NSQLFormat::EFormatMode::Pretty) {
NSQLTranslation::TTranslationSettings settings;
settings.Antlr4Parser = false;
@@ -64,8 +63,8 @@ struct TSetup {
NSQLFormat::ISqlFormatter::TPtr Formatter;
};
-}
+} // namespace
Y_UNIT_TEST_SUITE(CheckSqlFormatter) {
- #include "sql_format_ut.h"
-}
+#include "sql_format_ut.h"
+} // Y_UNIT_TEST_SUITE(CheckSqlFormatter)
diff --git a/yql/essentials/sql/v1/format/sql_format_ut.h b/yql/essentials/sql/v1/format/sql_format_ut.h
index 395b12caa4e..0279753af48 100644
--- a/yql/essentials/sql/v1/format/sql_format_ut.h
+++ b/yql/essentials/sql/v1/format/sql_format_ut.h
@@ -1,3 +1,5 @@
+#pragma once
+
Y_UNIT_TEST(Pragma) {
TCases cases = {
{"pragma user = user;", "PRAGMA user = user;\n"},
@@ -13,7 +15,7 @@ Y_UNIT_TEST(Pragma) {
Y_UNIT_TEST(DotAfterDigits) {
TCases cases = {
- {"select a.1 .b from plato.foo;","SELECT\n\ta.1 .b\nFROM\n\tplato.foo\n;\n"},
+ {"select a.1 .b from plato.foo;", "SELECT\n\ta.1 .b\nFROM\n\tplato.foo\n;\n"},
};
TSetup setup;
@@ -21,18 +23,17 @@ Y_UNIT_TEST(DotAfterDigits) {
}
Y_UNIT_TEST(AlterDatabase) {
- TCases cases {
+ TCases cases{
{"use plato;alter database `/Root/test` owner to user1;", "USE plato;\n\nALTER DATABASE `/Root/test` OWNER TO user1;\n"},
{"use plato;alter database `/Root/test` set (key1 = 1);", "USE plato;\n\nALTER DATABASE `/Root/test` SET (key1 = 1);\n"},
- {"use plato;alter database `/Root/test` set (\n\tkey1 = 1,\n\tkey2 = \"2\"\n);", "USE plato;\n\nALTER DATABASE `/Root/test` SET (key1 = 1, key2 = '2');\n"}
- };
+ {"use plato;alter database `/Root/test` set (\n\tkey1 = 1,\n\tkey2 = \"2\"\n);", "USE plato;\n\nALTER DATABASE `/Root/test` SET (key1 = 1, key2 = '2');\n"}};
TSetup setup;
setup.Run(cases);
}
Y_UNIT_TEST(GrantPermissions) {
- TCases cases {
+ TCases cases{
{"use plato;grant connect, modify tables, list on `/Root` to user;", "USE plato;\n\nGRANT CONNECT, MODIFY TABLES, LIST ON `/Root` TO user;\n"},
{"use plato;grant select , select tables, select attributes on `/Root` to user;", "USE plato;\n\nGRANT SELECT, SELECT TABLES, SELECT ATTRIBUTES ON `/Root` TO user;\n"},
{"use plato;grant insert, modify attributes on `/Root` to user;", "USE plato;\n\nGRANT INSERT, MODIFY ATTRIBUTES ON `/Root` TO user;\n"},
@@ -44,15 +45,14 @@ Y_UNIT_TEST(GrantPermissions) {
{"use plato;grant describe schema, alter schema on `/Root` to user;", "USE plato;\n\nGRANT DESCRIBE SCHEMA, ALTER SCHEMA ON `/Root` TO user;\n"},
{"use plato;grant select, on `/Root` to user, with grant option;", "USE plato;\n\nGRANT SELECT, ON `/Root` TO user, WITH GRANT OPTION;\n"},
{"use plato;grant all privileges on `/Root` to user;", "USE plato;\n\nGRANT ALL PRIVILEGES ON `/Root` TO user;\n"},
- {"use plato;grant list on `/Root/db1`, `/Root/db2` to user;", "USE plato;\n\nGRANT LIST ON `/Root/db1`, `/Root/db2` TO user;\n"}
- };
+ {"use plato;grant list on `/Root/db1`, `/Root/db2` to user;", "USE plato;\n\nGRANT LIST ON `/Root/db1`, `/Root/db2` TO user;\n"}};
TSetup setup;
setup.Run(cases);
}
Y_UNIT_TEST(RevokePermissions) {
- TCases cases {
+ TCases cases{
{"use plato;revoke connect, modify tables, list on `/Root` from user;", "USE plato;\n\nREVOKE CONNECT, MODIFY TABLES, LIST ON `/Root` FROM user;\n"},
{"use plato;revoke select , select tables, select attributes on `/Root` from user;", "USE plato;\n\nREVOKE SELECT, SELECT TABLES, SELECT ATTRIBUTES ON `/Root` FROM user;\n"},
{"use plato;revoke insert, modify attributes on `/Root` from user;", "USE plato;\n\nREVOKE INSERT, MODIFY ATTRIBUTES ON `/Root` FROM user;\n"},
@@ -64,8 +64,7 @@ Y_UNIT_TEST(RevokePermissions) {
{"use plato;revoke describe schema, alter schema on `/Root` from user;", "USE plato;\n\nREVOKE DESCRIBE SCHEMA, ALTER SCHEMA ON `/Root` FROM user;\n"},
{"use plato;revoke grant option for insert, on `/Root` from user;", "USE plato;\n\nREVOKE GRANT OPTION FOR INSERT, ON `/Root` FROM user;\n"},
{"use plato;revoke all privileges on `/Root` from user;", "USE plato;\n\nREVOKE ALL PRIVILEGES ON `/Root` FROM user;\n"},
- {"use plato;revoke list on `/Root/db1`, `/Root/db2` from user;", "USE plato;\n\nREVOKE LIST ON `/Root/db1`, `/Root/db2` FROM user;\n"}
- };
+ {"use plato;revoke list on `/Root/db1`, `/Root/db2` from user;", "USE plato;\n\nREVOKE LIST ON `/Root/db1`, `/Root/db2` FROM user;\n"}};
TSetup setup;
setup.Run(cases);
@@ -73,9 +72,9 @@ Y_UNIT_TEST(RevokePermissions) {
Y_UNIT_TEST(DropRole) {
TCases cases = {
- {"use plato;drop user user,user,user;","USE plato;\n\nDROP USER user, user, user;\n"},
- {"use plato;drop group if exists user;","USE plato;\n\nDROP GROUP IF EXISTS user;\n"},
- {"use plato;drop group user,;","USE plato;\n\nDROP GROUP user,;\n"},
+ {"use plato;drop user user,user,user;", "USE plato;\n\nDROP USER user, user, user;\n"},
+ {"use plato;drop group if exists user;", "USE plato;\n\nDROP GROUP IF EXISTS user;\n"},
+ {"use plato;drop group user,;", "USE plato;\n\nDROP GROUP user,;\n"},
};
TSetup setup;
@@ -92,7 +91,7 @@ Y_UNIT_TEST(CreateUser) {
{"use plato;CREATE USER user1 LOGIN;", "USE plato;\n\nCREATE USER user1 LOGIN;\n"},
{"use plato;CREATE USER user1 NOLOGIN;", "USE plato;\n\nCREATE USER user1 NOLOGIN;\n"},
{"use plato;CReATE UseR user1 HasH '{\"hash\": \"p4ffeMugohqyBwyckYCK1TjJfz3LIHbKiGL+t+oEhzw=\",\"salt\": \"U+tzBtgo06EBQCjlARA6Jg==\",\"type\": \"argon2id\"}'",
- "USE plato;\n\nCREATE USER user1 HASH '{\"hash\": \"p4ffeMugohqyBwyckYCK1TjJfz3LIHbKiGL+t+oEhzw=\",\"salt\": \"U+tzBtgo06EBQCjlARA6Jg==\",\"type\": \"argon2id\"}';\n"},
+ "USE plato;\n\nCREATE USER user1 HASH '{\"hash\": \"p4ffeMugohqyBwyckYCK1TjJfz3LIHbKiGL+t+oEhzw=\",\"salt\": \"U+tzBtgo06EBQCjlARA6Jg==\",\"type\": \"argon2id\"}';\n"},
};
TSetup setup;
@@ -101,9 +100,9 @@ Y_UNIT_TEST(CreateUser) {
Y_UNIT_TEST(CreateGroup) {
TCases cases = {
- {"use plato;create group user;","USE plato;\n\nCREATE GROUP user;\n"},
- {"use plato;create group user with user user;","USE plato;\n\nCREATE GROUP user WITH USER user;\n"},
- {"use plato;create group user with user user, user,;","USE plato;\n\nCREATE GROUP user WITH USER user, user,;\n"},
+ {"use plato;create group user;", "USE plato;\n\nCREATE GROUP user;\n"},
+ {"use plato;create group user with user user;", "USE plato;\n\nCREATE GROUP user WITH USER user;\n"},
+ {"use plato;create group user with user user, user,;", "USE plato;\n\nCREATE GROUP user WITH USER user, user,;\n"},
};
TSetup setup;
@@ -112,12 +111,12 @@ Y_UNIT_TEST(CreateGroup) {
Y_UNIT_TEST(AlterUser) {
TCases cases = {
- {"use plato;alter user user rename to user;","USE plato;\n\nALTER USER user RENAME TO user;\n"},
- {"use plato;alter user user encrypted password 'foo';","USE plato;\n\nALTER USER user ENCRYPTED PASSWORD 'foo';\n"},
- {"use plato;alter user user with encrypted password 'foo';","USE plato;\n\nALTER USER user WITH ENCRYPTED PASSWORD 'foo';\n"},
+ {"use plato;alter user user rename to user;", "USE plato;\n\nALTER USER user RENAME TO user;\n"},
+ {"use plato;alter user user encrypted password 'foo';", "USE plato;\n\nALTER USER user ENCRYPTED PASSWORD 'foo';\n"},
+ {"use plato;alter user user with encrypted password 'foo';", "USE plato;\n\nALTER USER user WITH ENCRYPTED PASSWORD 'foo';\n"},
{"use plato;ALTER USER user1 NOLOGIN;", "USE plato;\n\nALTER USER user1 NOLOGIN;\n"},
{"use plato;alter UseR user1 HasH '{\"hash\": \"p4ffeMugohqyBwyckYCK1TjJfz3LIHbKiGL+t+oEhzw=\",\"salt\": \"U+tzBtgo06EBQCjlARA6Jg==\",\"type\": \"argon2id\"}'",
- "USE plato;\n\nALTER USER user1 HASH '{\"hash\": \"p4ffeMugohqyBwyckYCK1TjJfz3LIHbKiGL+t+oEhzw=\",\"salt\": \"U+tzBtgo06EBQCjlARA6Jg==\",\"type\": \"argon2id\"}';\n"},
+ "USE plato;\n\nALTER USER user1 HASH '{\"hash\": \"p4ffeMugohqyBwyckYCK1TjJfz3LIHbKiGL+t+oEhzw=\",\"salt\": \"U+tzBtgo06EBQCjlARA6Jg==\",\"type\": \"argon2id\"}';\n"},
};
TSetup setup;
@@ -126,10 +125,10 @@ Y_UNIT_TEST(AlterUser) {
Y_UNIT_TEST(AlterGroup) {
TCases cases = {
- {"use plato;alter group user add user user;","USE plato;\n\nALTER GROUP user ADD USER user;\n"},
- {"use plato;alter group user drop user user;","USE plato;\n\nALTER GROUP user DROP USER user;\n"},
- {"use plato;alter group user add user user, user,;","USE plato;\n\nALTER GROUP user ADD USER user, user,;\n"},
- {"use plato;alter group user rename to user;","USE plato;\n\nALTER GROUP user RENAME TO user;\n"},
+ {"use plato;alter group user add user user;", "USE plato;\n\nALTER GROUP user ADD USER user;\n"},
+ {"use plato;alter group user drop user user;", "USE plato;\n\nALTER GROUP user DROP USER user;\n"},
+ {"use plato;alter group user add user user, user,;", "USE plato;\n\nALTER GROUP user ADD USER user, user,;\n"},
+ {"use plato;alter group user rename to user;", "USE plato;\n\nALTER GROUP user RENAME TO user;\n"},
};
TSetup setup;
@@ -138,8 +137,8 @@ Y_UNIT_TEST(AlterGroup) {
Y_UNIT_TEST(AlterSequence) {
TCases cases = {
- {"use plato;alter sequence sequence start with 10 increment 2 restart with 5;","USE plato;\n\nALTER SEQUENCE sequence START WITH 10 INCREMENT 2 RESTART WITH 5;\n"},
- {"use plato;alter sequence if exists sequence increment 1000 start 100 restart;","USE plato;\n\nALTER SEQUENCE IF EXISTS sequence INCREMENT 1000 START 100 RESTART;\n"},
+ {"use plato;alter sequence sequence start with 10 increment 2 restart with 5;", "USE plato;\n\nALTER SEQUENCE sequence START WITH 10 INCREMENT 2 RESTART WITH 5;\n"},
+ {"use plato;alter sequence if exists sequence increment 1000 start 100 restart;", "USE plato;\n\nALTER SEQUENCE IF EXISTS sequence INCREMENT 1000 START 100 RESTART;\n"},
};
TSetup setup;
@@ -148,7 +147,7 @@ Y_UNIT_TEST(AlterSequence) {
Y_UNIT_TEST(ShowCreateTable) {
TCases cases = {
- {"use plato;show create table user;","USE plato;\n\nSHOW CREATE TABLE user;\n"},
+ {"use plato;show create table user;", "USE plato;\n\nSHOW CREATE TABLE user;\n"},
};
TSetup setup;
@@ -157,22 +156,18 @@ Y_UNIT_TEST(ShowCreateTable) {
Y_UNIT_TEST(SecretOperations) {
TCases cases = {
- { // create with one setting
- "use plato; create secret `secret-name` with (value=\"secret_value\");\n",
- "USE plato;\n\nCREATE SECRET `secret-name` WITH (value = 'secret_value');\n"
- },
- { // create with more than one setting
- "use plato; create secret `secret-name` with (value=\"secret_value\",inherit_permissions=fALSe);\n",
- "USE plato;\n\nCREATE SECRET `secret-name` WITH (value = 'secret_value', inherit_permissions = FALSE);\n"
- },
- { // alter
- "use plato; alter secret `secret-name` with (value=\"secret_value\");\n",
- "USE plato;\n\nALTER SECRET `secret-name` WITH (value = 'secret_value');\n"
- },
- { // drop
- "use plato; drop secret `secret-name`;\n",
- "USE plato;\n\nDROP SECRET `secret-name`;\n"
- },
+ {// create with one setting
+ "use plato; create secret `secret-name` with (value=\"secret_value\");\n",
+ "USE plato;\n\nCREATE SECRET `secret-name` WITH (value = 'secret_value');\n"},
+ {// create with more than one setting
+ "use plato; create secret `secret-name` with (value=\"secret_value\",inherit_permissions=fALSe);\n",
+ "USE plato;\n\nCREATE SECRET `secret-name` WITH (value = 'secret_value', inherit_permissions = FALSE);\n"},
+ {// alter
+ "use plato; alter secret `secret-name` with (value=\"secret_value\");\n",
+ "USE plato;\n\nALTER SECRET `secret-name` WITH (value = 'secret_value');\n"},
+ {// drop
+ "use plato; drop secret `secret-name`;\n",
+ "USE plato;\n\nDROP SECRET `secret-name`;\n"},
};
TSetup setup;
@@ -181,7 +176,7 @@ Y_UNIT_TEST(SecretOperations) {
Y_UNIT_TEST(ShowCreateView) {
TCases cases = {
- {"use plato;show create view user;","USE plato;\n\nSHOW CREATE VIEW user;\n"},
+ {"use plato;show create view user;", "USE plato;\n\nSHOW CREATE VIEW user;\n"},
};
TSetup setup;
@@ -190,9 +185,9 @@ Y_UNIT_TEST(ShowCreateView) {
Y_UNIT_TEST(Use) {
TCases cases = {
- {"use user;","USE user;\n"},
- {"use user:user;","USE user: user;\n"},
- {"use user:*;","USE user: *;\n"},
+ {"use user;", "USE user;\n"},
+ {"use user:user;", "USE user: user;\n"},
+ {"use user:*;", "USE user: *;\n"},
};
TSetup setup;
@@ -201,7 +196,7 @@ Y_UNIT_TEST(Use) {
Y_UNIT_TEST(Commit) {
TCases cases = {
- {"commit;","COMMIT;\n"},
+ {"commit;", "COMMIT;\n"},
};
TSetup setup;
@@ -210,7 +205,7 @@ Y_UNIT_TEST(Commit) {
Y_UNIT_TEST(Rollback) {
TCases cases = {
- {"rollback;","ROLLBACK;\n"},
+ {"rollback;", "ROLLBACK;\n"},
};
TSetup setup;
@@ -219,8 +214,8 @@ Y_UNIT_TEST(Rollback) {
Y_UNIT_TEST(Export) {
TCases cases = {
- {"export $foo;","EXPORT\n\t$foo\n;\n"},
- {"export $foo, $bar;","EXPORT\n\t$foo,\n\t$bar\n;\n"},
+ {"export $foo;", "EXPORT\n\t$foo\n;\n"},
+ {"export $foo, $bar;", "EXPORT\n\t$foo,\n\t$bar\n;\n"},
};
TSetup setup;
@@ -229,8 +224,8 @@ Y_UNIT_TEST(Export) {
Y_UNIT_TEST(Import) {
TCases cases = {
- {"import user symbols $foo;","IMPORT user SYMBOLS $foo;\n"},
- {"import user symbols $foo,$bar;","IMPORT user SYMBOLS $foo, $bar;\n"},
+ {"import user symbols $foo;", "IMPORT user SYMBOLS $foo;\n"},
+ {"import user symbols $foo,$bar;", "IMPORT user SYMBOLS $foo, $bar;\n"},
};
TSetup setup;
@@ -239,9 +234,9 @@ Y_UNIT_TEST(Import) {
Y_UNIT_TEST(Values) {
TCases cases = {
- {"values (1);","VALUES\n\t(1)\n;\n"},
- {"values (1,2),(3,4);","VALUES\n\t(1, 2),\n\t(3, 4)\n;\n"},
- {"values ('a\nb');","VALUES\n\t('a\nb')\n;\n"},
+ {"values (1);", "VALUES\n\t(1)\n;\n"},
+ {"values (1,2),(3,4);", "VALUES\n\t(1, 2),\n\t(3, 4)\n;\n"},
+ {"values ('a\nb');", "VALUES\n\t('a\nb')\n;\n"},
};
TSetup setup;
@@ -250,9 +245,9 @@ Y_UNIT_TEST(Values) {
Y_UNIT_TEST(Declare) {
TCases cases = {
- {"declare $foo as int32;","DECLARE $foo AS int32;\n"},
- {"declare $foo as bool ?","DECLARE $foo AS bool?;\n"},
- {"declare $foo as bool ? ?","DECLARE $foo AS bool??;\n"},
+ {"declare $foo as int32;", "DECLARE $foo AS int32;\n"},
+ {"declare $foo as bool ?", "DECLARE $foo AS bool?;\n"},
+ {"declare $foo as bool ? ?", "DECLARE $foo AS bool??;\n"},
};
TSetup setup;
@@ -262,19 +257,19 @@ Y_UNIT_TEST(Declare) {
Y_UNIT_TEST(NamedNode) {
TCases cases = {
{"$x=1",
- "$x = 1;\n"},
+ "$x = 1;\n"},
{"$x,$y=(2,3)",
- "$x, $y = (2, 3);\n"},
+ "$x, $y = (2, 3);\n"},
{"$a = select 1 union all select 2",
- "$a = (\n\tSELECT\n\t\t1\n\tUNION ALL\n\tSELECT\n\t\t2\n);\n"},
+ "$a = (\n\tSELECT\n\t\t1\n\tUNION ALL\n\tSELECT\n\t\t2\n);\n"},
{"$a = select 1 from $as;",
- "$a = (\n\tSELECT\n\t\t1\n\tFROM\n\t\t$as\n);\n"},
+ "$a = (\n\tSELECT\n\t\t1\n\tFROM\n\t\t$as\n);\n"},
{"$a = select * from $t -- comment",
- "$a = (\n\tSELECT\n\t\t*\n\tFROM\n\t\t$t -- comment\n);\n"},
+ "$a = (\n\tSELECT\n\t\t*\n\tFROM\n\t\t$t -- comment\n);\n"},
{"-- comment\r\r\r$a=1;",
- "-- comment\r\n$a = 1;\n"},
+ "-- comment\r\n$a = 1;\n"},
{"$a=1;-- comment\n$b=2;/* comment */ /* comment */\n$c = 3;/* comment */ -- comment",
- "$a = 1; -- comment\n$b = 2; /* comment */ /* comment */\n$c = 3; /* comment */ -- comment\n"},
+ "$a = 1; -- comment\n$b = 2; /* comment */ /* comment */\n$c = 3; /* comment */ -- comment\n"},
};
TSetup setup;
@@ -283,8 +278,8 @@ Y_UNIT_TEST(NamedNode) {
Y_UNIT_TEST(DropTable) {
TCases cases = {
- {"drop table user","DROP TABLE user;\n"},
- {"drop table if exists user","DROP TABLE IF EXISTS user;\n"},
+ {"drop table user", "DROP TABLE user;\n"},
+ {"drop table if exists user", "DROP TABLE IF EXISTS user;\n"},
};
TSetup setup;
@@ -293,76 +288,75 @@ Y_UNIT_TEST(DropTable) {
Y_UNIT_TEST(CreateTable) {
TCases cases = {
- {"create table user(user int32)","CREATE TABLE user (\n\tuser int32\n);\n"},
- {"create table user(user int32,user bool ?)","CREATE TABLE user (\n\tuser int32,\n\tuser bool?\n);\n"},
- {"create table user(user int32) with (user=user)","CREATE TABLE user (\n\tuser int32\n)\nWITH (user = user);\n"},
- {"create table user(primary key (user))","CREATE TABLE user (\n\tPRIMARY KEY (user)\n);\n"},
- {"create table user(primary key (user,user))","CREATE TABLE user (\n\tPRIMARY KEY (user, user)\n);\n"},
- {"create table user(partition by (user))","CREATE TABLE user (\n\tPARTITION BY (user)\n);\n"},
- {"create table user(partition by (user,user))","CREATE TABLE user (\n\tPARTITION BY (user, user)\n);\n"},
- {"create table user(order by (user asc))","CREATE TABLE user (\n\tORDER BY (user ASC)\n);\n"},
- {"create table user(order by (user desc,user))","CREATE TABLE user (\n\tORDER BY (user DESC, user)\n);\n"},
+ {"create table user(user int32)", "CREATE TABLE user (\n\tuser int32\n);\n"},
+ {"create table user(user int32,user bool ?)", "CREATE TABLE user (\n\tuser int32,\n\tuser bool?\n);\n"},
+ {"create table user(user int32) with (user=user)", "CREATE TABLE user (\n\tuser int32\n)\nWITH (user = user);\n"},
+ {"create table user(primary key (user))", "CREATE TABLE user (\n\tPRIMARY KEY (user)\n);\n"},
+ {"create table user(primary key (user,user))", "CREATE TABLE user (\n\tPRIMARY KEY (user, user)\n);\n"},
+ {"create table user(partition by (user))", "CREATE TABLE user (\n\tPARTITION BY (user)\n);\n"},
+ {"create table user(partition by (user,user))", "CREATE TABLE user (\n\tPARTITION BY (user, user)\n);\n"},
+ {"create table user(order by (user asc))", "CREATE TABLE user (\n\tORDER BY (user ASC)\n);\n"},
+ {"create table user(order by (user desc,user))", "CREATE TABLE user (\n\tORDER BY (user DESC, user)\n);\n"},
{"create table user(user int32) with (ttl=interval('P1D') on user as seconds)",
- "CREATE TABLE user (\n\tuser int32\n)\nWITH (ttl = interval('P1D') ON user AS SECONDS);\n"},
+ "CREATE TABLE user (\n\tuser int32\n)\nWITH (ttl = interval('P1D') ON user AS SECONDS);\n"},
{"create table user(user int32) with (ttl=interval('P1D') on user as MilliSeconds)",
- "CREATE TABLE user (\n\tuser int32\n)\nWITH (ttl = interval('P1D') ON user AS MILLISECONDS);\n"},
+ "CREATE TABLE user (\n\tuser int32\n)\nWITH (ttl = interval('P1D') ON user AS MILLISECONDS);\n"},
{"create table user(user int32) with (ttl=interval('P1D') on user as microSeconds)",
- "CREATE TABLE user (\n\tuser int32\n)\nWITH (ttl = interval('P1D') ON user AS MICROSECONDS);\n"},
+ "CREATE TABLE user (\n\tuser int32\n)\nWITH (ttl = interval('P1D') ON user AS MICROSECONDS);\n"},
{"create table user(user int32) with (ttl=interval('P1D') on user as nAnOsEcOnDs)",
- "CREATE TABLE user (\n\tuser int32\n)\nWITH (ttl = interval('P1D') ON user AS NANOSECONDS);\n"},
+ "CREATE TABLE user (\n\tuser int32\n)\nWITH (ttl = interval('P1D') ON user AS NANOSECONDS);\n"},
{"create table user(user int32) with (ttl=interval('P1D') delete on user as nAnOsEcOnDs)",
- "CREATE TABLE user (\n\tuser int32\n)\nWITH (ttl = interval('P1D') DELETE ON user AS NANOSECONDS);\n"},
+ "CREATE TABLE user (\n\tuser int32\n)\nWITH (ttl = interval('P1D') DELETE ON user AS NANOSECONDS);\n"},
{"create table user(user int32) with (ttl=interval('P1D')to external data source tier1 ,interval('P10D')delete on user as seconds)",
- "CREATE TABLE user (\n"
- "\tuser int32\n"
- ")\n"
- "WITH (ttl =\n"
- "\tinterval('P1D') TO EXTERNAL DATA SOURCE tier1,\n"
- "\tinterval('P10D') DELETE\n"
- "ON user AS SECONDS);\n"},
+ "CREATE TABLE user (\n"
+ "\tuser int32\n"
+ ")\n"
+ "WITH (ttl =\n"
+ "\tinterval('P1D') TO EXTERNAL DATA SOURCE tier1,\n"
+ "\tinterval('P10D') DELETE\n"
+ "ON user AS SECONDS);\n"},
{"create table user(index user global unique sync on (user,user) with (user=user,user=user))",
- "CREATE TABLE user (\n\tINDEX user GLOBAL UNIQUE SYNC ON (user, user) WITH (user = user, user = user)\n);\n"},
+ "CREATE TABLE user (\n\tINDEX user GLOBAL UNIQUE SYNC ON (user, user) WITH (user = user, user = user)\n);\n"},
{"create table user(index user global async on (user) with (user=user,))",
- "CREATE TABLE user (\n\tINDEX user GLOBAL ASYNC ON (user) WITH (user = user,)\n);\n"},
+ "CREATE TABLE user (\n\tINDEX user GLOBAL ASYNC ON (user) WITH (user = user,)\n);\n"},
{"create table user(index user local on (user) cover (user))",
- "CREATE TABLE user (\n\tINDEX user LOCAL ON (user) COVER (user)\n);\n"},
+ "CREATE TABLE user (\n\tINDEX user LOCAL ON (user) COVER (user)\n);\n"},
{"create table user(index user local on (user) cover (user,user))",
- "CREATE TABLE user (\n\tINDEX user LOCAL ON (user) COVER (user, user)\n);\n"},
+ "CREATE TABLE user (\n\tINDEX user LOCAL ON (user) COVER (user, user)\n);\n"},
{"create table user(index idx global using subtype on (col) cover (col) with (setting = foo, another_setting = bar));",
- "CREATE TABLE user (\n\tINDEX idx GLOBAL USING subtype ON (col) COVER (col) WITH (setting = foo, another_setting = bar)\n);\n"},
+ "CREATE TABLE user (\n\tINDEX idx GLOBAL USING subtype ON (col) COVER (col) WITH (setting = foo, another_setting = bar)\n);\n"},
{"create table user(family user (user='foo'))",
- "CREATE TABLE user (\n\tFAMILY user (user = 'foo')\n);\n"},
+ "CREATE TABLE user (\n\tFAMILY user (user = 'foo')\n);\n"},
{"create table user(family user (user='foo',user='bar'))",
- "CREATE TABLE user (\n\tFAMILY user (user = 'foo', user = 'bar')\n);\n"},
+ "CREATE TABLE user (\n\tFAMILY user (user = 'foo', user = 'bar')\n);\n"},
{"create table user(changefeed user with (user='foo'))",
- "CREATE TABLE user (\n\tCHANGEFEED user WITH (user = 'foo')\n);\n"},
+ "CREATE TABLE user (\n\tCHANGEFEED user WITH (user = 'foo')\n);\n"},
{"create table user(changefeed user with (user='foo',user='bar'))",
- "CREATE TABLE user (\n\tCHANGEFEED user WITH (user = 'foo', user = 'bar')\n);\n"},
- {"create table user(user) AS SELECT 1","CREATE TABLE user (\n\tuser\n)\nAS\nSELECT\n\t1\n;\n"},
- {"create table user(user) AS VALUES (1), (2)","CREATE TABLE user (\n\tuser\n)\nAS\nVALUES\n\t(1),\n\t(2)\n;\n"},
+ "CREATE TABLE user (\n\tCHANGEFEED user WITH (user = 'foo', user = 'bar')\n);\n"},
+ {"create table user(user) AS SELECT 1", "CREATE TABLE user (\n\tuser\n)\nAS\nSELECT\n\t1\n;\n"},
+ {"create table user(user) AS VALUES (1), (2)", "CREATE TABLE user (\n\tuser\n)\nAS\nVALUES\n\t(1),\n\t(2)\n;\n"},
{"create table user(foo int32, bar bool ?) inherits (s3:$cluster.xxx) partition by hash(a,b,hash) with (inherits=interval('PT1D') ON logical_time) tablestore tablestore",
- "CREATE TABLE user (\n"
- "\tfoo int32,\n"
- "\tbar bool?\n"
- ")\n"
- "INHERITS (s3: $cluster.xxx)\n"
- "PARTITION BY HASH (a, b, hash)\n"
- "WITH (inherits = interval('PT1D') ON logical_time)\n"
- "TABLESTORE tablestore;\n"},
+ "CREATE TABLE user (\n"
+ "\tfoo int32,\n"
+ "\tbar bool?\n"
+ ")\n"
+ "INHERITS (s3: $cluster.xxx)\n"
+ "PARTITION BY HASH (a, b, hash)\n"
+ "WITH (inherits = interval('PT1D') ON logical_time)\n"
+ "TABLESTORE tablestore;\n"},
{"create table user(foo int32, bar bool ?) partition by hash(a,b,hash) with (tiering='some')",
- "CREATE TABLE user (\n"
- "\tfoo int32,\n"
- "\tbar bool?\n"
- ")\n"
- "PARTITION BY HASH (a, b, hash)\n"
- "WITH (tiering = 'some');\n"},
+ "CREATE TABLE user (\n"
+ "\tfoo int32,\n"
+ "\tbar bool?\n"
+ ")\n"
+ "PARTITION BY HASH (a, b, hash)\n"
+ "WITH (tiering = 'some');\n"},
{"create table if not exists user(user int32)", "CREATE TABLE IF NOT EXISTS user (\n\tuser int32\n);\n"},
{"create temp table user(user int32)", "CREATE TEMP TABLE user (\n\tuser int32\n);\n"},
{"create temporary table user(user int32)", "CREATE TEMPORARY TABLE user (\n\tuser int32\n);\n"},
- {"create table user(user int32 (default 0, not null))","CREATE TABLE user (\n\tuser int32 (DEFAULT 0, NOT NULL)\n);\n"},
- {"create table user(user int32 (default 0, not null, family f))","CREATE TABLE user (\n\tuser int32 (DEFAULT 0, NOT NULL, FAMILY f)\n);\n"},
- {"create table user(user int32 (default 0, family f, not null))","CREATE TABLE user (\n\tuser int32 (DEFAULT 0, FAMILY f, NOT NULL)\n);\n"}
- };
+ {"create table user(user int32 (default 0, not null))", "CREATE TABLE user (\n\tuser int32 (DEFAULT 0, NOT NULL)\n);\n"},
+ {"create table user(user int32 (default 0, not null, family f))", "CREATE TABLE user (\n\tuser int32 (DEFAULT 0, NOT NULL, FAMILY f)\n);\n"},
+ {"create table user(user int32 (default 0, family f, not null))", "CREATE TABLE user (\n\tuser int32 (DEFAULT 0, FAMILY f, NOT NULL)\n);\n"}};
TSetup setup;
setup.Run(cases);
@@ -371,20 +365,19 @@ Y_UNIT_TEST(CreateTable) {
Y_UNIT_TEST(ObjectOperations) {
TCases cases = {
{"alter oBject usEr (TYpe abcde) Set (a = b)",
- "ALTER OBJECT usEr (TYPE abcde) SET (a = b);\n"},
+ "ALTER OBJECT usEr (TYPE abcde) SET (a = b);\n"},
{"creAte oBject usEr (tYpe abcde) With (a = b)",
- "CREATE OBJECT usEr (TYPE abcde) WITH (a = b);\n"},
- {"creAte oBject if not exIstS usEr (tYpe abcde) With (a = b)",
- "CREATE OBJECT IF NOT EXISTS usEr (TYPE abcde) WITH (a = b);\n"},
+ "CREATE OBJECT usEr (TYPE abcde) WITH (a = b);\n"},
+ {"creAte oBject if not exIstS usEr (tYpe abcde) With (a = b)",
+ "CREATE OBJECT IF NOT EXISTS usEr (TYPE abcde) WITH (a = b);\n"},
{"creAte oBject usEr (tYpe abcde) With a = b",
- "CREATE OBJECT usEr (TYPE abcde) WITH a = b;\n"},
+ "CREATE OBJECT usEr (TYPE abcde) WITH a = b;\n"},
{"dRop oBject usEr (tYpe abcde) With (aeEE)",
- "DROP OBJECT usEr (TYPE abcde) WITH (aeEE);\n"},
- {"dRop oBject If ExistS usEr (tYpe abcde) With (aeEE)",
- "DROP OBJECT IF EXISTS usEr (TYPE abcde) WITH (aeEE);\n"},
+ "DROP OBJECT usEr (TYPE abcde) WITH (aeEE);\n"},
+ {"dRop oBject If ExistS usEr (tYpe abcde) With (aeEE)",
+ "DROP OBJECT IF EXISTS usEr (TYPE abcde) WITH (aeEE);\n"},
{"dRop oBject usEr (tYpe abcde) With aeEE",
- "DROP OBJECT usEr (TYPE abcde) WITH aeEE;\n"}
- };
+ "DROP OBJECT usEr (TYPE abcde) WITH aeEE;\n"}};
TSetup setup;
setup.Run(cases);
@@ -393,10 +386,9 @@ Y_UNIT_TEST(ObjectOperations) {
Y_UNIT_TEST(TableStoreOperations) {
TCases cases = {
{"alter tableStore uSer aDd column usEr int32",
- "ALTER TABLESTORE uSer ADD COLUMN usEr int32;\n"},
- {"alter tableStore uSer drOp column usEr",
- "ALTER TABLESTORE uSer DROP COLUMN usEr;\n"}
- };
+ "ALTER TABLESTORE uSer ADD COLUMN usEr int32;\n"},
+ {"alter tableStore uSer drOp column usEr",
+ "ALTER TABLESTORE uSer DROP COLUMN usEr;\n"}};
TSetup setup;
setup.Run(cases);
@@ -405,21 +397,21 @@ Y_UNIT_TEST(TableStoreOperations) {
Y_UNIT_TEST(ExternalDataSourceOperations) {
TCases cases = {
{"creAte exTernAl daTa SouRce usEr With (a = \"b\")",
- "CREATE EXTERNAL DATA SOURCE usEr WITH (a = 'b');\n"},
+ "CREATE EXTERNAL DATA SOURCE usEr WITH (a = 'b');\n"},
{"creAte exTernAl daTa SouRce if not exists usEr With (a = \"b\")",
- "CREATE EXTERNAL DATA SOURCE IF NOT EXISTS usEr WITH (a = 'b');\n"},
+ "CREATE EXTERNAL DATA SOURCE IF NOT EXISTS usEr WITH (a = 'b');\n"},
{"creAte oR rePlaCe exTernAl daTa SouRce usEr With (a = \"b\")",
- "CREATE OR REPLACE EXTERNAL DATA SOURCE usEr WITH (a = 'b');\n"},
+ "CREATE OR REPLACE EXTERNAL DATA SOURCE usEr WITH (a = 'b');\n"},
{"create external data source eds with (a=\"a\",b=\"b\",c = true)",
- "CREATE EXTERNAL DATA SOURCE eds WITH (\n\ta = 'a',\n\tb = 'b',\n\tc = TRUE\n);\n"},
+ "CREATE EXTERNAL DATA SOURCE eds WITH (\n\ta = 'a',\n\tb = 'b',\n\tc = TRUE\n);\n"},
{"alter external data source eds set a true, reset (b, c), set (x=y, z=false)",
- "ALTER EXTERNAL DATA SOURCE eds\n\tSET a TRUE,\n\tRESET (b, c),\n\tSET (x = y, z = FALSE)\n;\n"},
+ "ALTER EXTERNAL DATA SOURCE eds\n\tSET a TRUE,\n\tRESET (b, c),\n\tSET (x = y, z = FALSE)\n;\n"},
{"alter external data source eds reset (a), set (x=y)",
- "ALTER EXTERNAL DATA SOURCE eds\n\tRESET (a),\n\tSET (x = y)\n;\n"},
+ "ALTER EXTERNAL DATA SOURCE eds\n\tRESET (a),\n\tSET (x = y)\n;\n"},
{"dRop exTerNal Data SouRce usEr",
- "DROP EXTERNAL DATA SOURCE usEr;\n"},
+ "DROP EXTERNAL DATA SOURCE usEr;\n"},
{"dRop exTerNal Data SouRce if exists usEr",
- "DROP EXTERNAL DATA SOURCE IF EXISTS usEr;\n"},
+ "DROP EXTERNAL DATA SOURCE IF EXISTS usEr;\n"},
};
TSetup setup;
@@ -429,13 +421,13 @@ Y_UNIT_TEST(ExternalDataSourceOperations) {
Y_UNIT_TEST(AsyncReplication) {
TCases cases = {
{"create async replication user for table1 AS table2 with (user='foo')",
- "CREATE ASYNC REPLICATION user FOR table1 AS table2 WITH (user = 'foo');\n"},
+ "CREATE ASYNC REPLICATION user FOR table1 AS table2 WITH (user = 'foo');\n"},
{"alter async replication user set (user='foo')",
- "ALTER ASYNC REPLICATION user SET (user = 'foo');\n"},
+ "ALTER ASYNC REPLICATION user SET (user = 'foo');\n"},
{"drop async replication user",
- "DROP ASYNC REPLICATION user;\n"},
+ "DROP ASYNC REPLICATION user;\n"},
{"drop async replication user cascade",
- "DROP ASYNC REPLICATION user CASCADE;\n"},
+ "DROP ASYNC REPLICATION user CASCADE;\n"},
};
TSetup setup;
@@ -445,17 +437,17 @@ Y_UNIT_TEST(AsyncReplication) {
Y_UNIT_TEST(Transfer) {
TCases cases = {
{"alter transfer user set (user='foo')",
- "ALTER TRANSFER user SET (user = 'foo');\n"},
+ "ALTER TRANSFER user SET (user = 'foo');\n"},
{"drop transfer user",
- "DROP TRANSFER user;\n"},
+ "DROP TRANSFER user;\n"},
{"drop transfer user cascade",
- "DROP TRANSFER user CASCADE;\n"},
+ "DROP TRANSFER user CASCADE;\n"},
{"create transfer user from topic1 to table1 using ($x) -> { $y = cast($x as String); return $y ; }",
- "CREATE TRANSFER user FROM topic1 TO table1 USING ($x) -> {\n $y = CAST($x AS String);\n RETURN $y;\n};\n"},
+ "CREATE TRANSFER user FROM topic1 TO table1 USING ($x) -> {\n $y = CAST($x AS String);\n RETURN $y;\n};\n"},
{"create transfer user from topic1 to table1 using ($x) -> { $y = cast($x as String); return $y ; } with (user='foo')",
- "CREATE TRANSFER user FROM topic1 TO table1 USING ($x) -> {\n $y = CAST($x AS String);\n RETURN $y;\n} WITH (user = 'foo');\n"},
+ "CREATE TRANSFER user FROM topic1 TO table1 USING ($x) -> {\n $y = CAST($x AS String);\n RETURN $y;\n} WITH (user = 'foo');\n"},
{"create transfer user from topic1 to table1 using $xxx with (user='foo')",
- "CREATE TRANSFER user FROM topic1 TO table1 USING $xxx WITH (user = 'foo');\n"},
+ "CREATE TRANSFER user FROM topic1 TO table1 USING $xxx WITH (user = 'foo');\n"},
};
TSetup setup;
@@ -465,19 +457,19 @@ Y_UNIT_TEST(Transfer) {
Y_UNIT_TEST(ExternalTableOperations) {
TCases cases = {
{"creAte exTernAl TabLe usEr (a int) With (a = \"b\")",
- "CREATE EXTERNAL TABLE usEr (\n\ta int\n)\nWITH (a = 'b');\n"},
+ "CREATE EXTERNAL TABLE usEr (\n\ta int\n)\nWITH (a = 'b');\n"},
{"creAte oR rePlaCe exTernAl TabLe usEr (a int) With (a = \"b\")",
- "CREATE OR REPLACE EXTERNAL TABLE usEr (\n\ta int\n)\nWITH (a = 'b');\n"},
+ "CREATE OR REPLACE EXTERNAL TABLE usEr (\n\ta int\n)\nWITH (a = 'b');\n"},
{"creAte exTernAl TabLe iF NOt Exists usEr (a int) With (a = \"b\")",
- "CREATE EXTERNAL TABLE IF NOT EXISTS usEr (\n\ta int\n)\nWITH (a = 'b');\n"},
+ "CREATE EXTERNAL TABLE IF NOT EXISTS usEr (\n\ta int\n)\nWITH (a = 'b');\n"},
{"create external table user (a int) with (a=\"b\",c=\"d\")",
- "CREATE EXTERNAL TABLE user (\n\ta int\n)\nWITH (\n\ta = 'b',\n\tc = 'd'\n);\n"},
+ "CREATE EXTERNAL TABLE user (\n\ta int\n)\nWITH (\n\ta = 'b',\n\tc = 'd'\n);\n"},
{"alter external table user add column col1 int32, drop column col2, reset(prop), set (prop2 = 42, x=y), set a true",
- "ALTER EXTERNAL TABLE user\n\tADD COLUMN col1 int32,\n\tDROP COLUMN col2,\n\tRESET (prop),\n\tSET (prop2 = 42, x = y),\n\tSET a TRUE\n;\n"},
+ "ALTER EXTERNAL TABLE user\n\tADD COLUMN col1 int32,\n\tDROP COLUMN col2,\n\tRESET (prop),\n\tSET (prop2 = 42, x = y),\n\tSET a TRUE\n;\n"},
{"dRop exTerNal taBlE usEr",
- "DROP EXTERNAL TABLE usEr;\n"},
+ "DROP EXTERNAL TABLE usEr;\n"},
{"dRop exTerNal taBlE iF eXiStS usEr",
- "DROP EXTERNAL TABLE IF EXISTS usEr;\n"},
+ "DROP EXTERNAL TABLE IF EXISTS usEr;\n"},
};
TSetup setup;
@@ -487,8 +479,7 @@ Y_UNIT_TEST(ExternalTableOperations) {
Y_UNIT_TEST(TypeSelection) {
TCases cases = {
{"Select tYpe.* frOm Table tYpe",
- "SELECT\n\ttYpe.*\nFROM\n\tTable tYpe\n;\n"}
- };
+ "SELECT\n\ttYpe.*\nFROM\n\tTable tYpe\n;\n"}};
TSetup setup;
setup.Run(cases);
@@ -497,77 +488,77 @@ Y_UNIT_TEST(TypeSelection) {
Y_UNIT_TEST(AlterTable) {
TCases cases = {
{"alter table user add user int32",
- "ALTER TABLE user\n\tADD user int32\n;\n"},
+ "ALTER TABLE user\n\tADD user int32\n;\n"},
{"alter table user add user int32, add user bool ?",
- "ALTER TABLE user\n\tADD user int32,\n\tADD user bool?\n;\n"},
+ "ALTER TABLE user\n\tADD user int32,\n\tADD user bool?\n;\n"},
{"alter table user add column user int32",
- "ALTER TABLE user\n\tADD COLUMN user int32\n;\n"},
+ "ALTER TABLE user\n\tADD COLUMN user int32\n;\n"},
{"alter table user drop user",
- "ALTER TABLE user\n\tDROP user\n;\n"},
+ "ALTER TABLE user\n\tDROP user\n;\n"},
{"alter table user drop column user",
- "ALTER TABLE user\n\tDROP COLUMN user\n;\n"},
+ "ALTER TABLE user\n\tDROP COLUMN user\n;\n"},
{"alter table user alter column user set family user",
- "ALTER TABLE user\n\tALTER COLUMN user SET FAMILY user\n;\n"},
+ "ALTER TABLE user\n\tALTER COLUMN user SET FAMILY user\n;\n"},
{"alter table t alter column c drop not null",
- "ALTER TABLE t\n\tALTER COLUMN c DROP NOT NULL\n;\n"},
+ "ALTER TABLE t\n\tALTER COLUMN c DROP NOT NULL\n;\n"},
{"alter table t alter column c set not null",
- "ALTER TABLE t\n\tALTER COLUMN c SET NOT NULL\n;\n"},
+ "ALTER TABLE t\n\tALTER COLUMN c SET NOT NULL\n;\n"},
{"alter table user add family user(user='foo')",
- "ALTER TABLE user\n\tADD FAMILY user (user = 'foo')\n;\n"},
+ "ALTER TABLE user\n\tADD FAMILY user (user = 'foo')\n;\n"},
{"alter table user alter family user set user 'foo'",
- "ALTER TABLE user\n\tALTER FAMILY user SET user 'foo'\n;\n"},
+ "ALTER TABLE user\n\tALTER FAMILY user SET user 'foo'\n;\n"},
{"alter table user set user user",
- "ALTER TABLE user\n\tSET user user\n;\n"},
+ "ALTER TABLE user\n\tSET user user\n;\n"},
{"alter table user set (user=user)",
- "ALTER TABLE user\n\tSET (user = user)\n;\n"},
+ "ALTER TABLE user\n\tSET (user = user)\n;\n"},
{"alter table user set (user=user,user=user)",
- "ALTER TABLE user\n\tSET (user = user, user = user)\n;\n"},
+ "ALTER TABLE user\n\tSET (user = user, user = user)\n;\n"},
{"alter table user reset(user)",
- "ALTER TABLE user\n\tRESET (user)\n;\n"},
+ "ALTER TABLE user\n\tRESET (user)\n;\n"},
{"alter table user reset(user, user)",
- "ALTER TABLE user\n\tRESET (user, user)\n;\n"},
+ "ALTER TABLE user\n\tRESET (user, user)\n;\n"},
{"alter table user add index user local on (user)",
- "ALTER TABLE user\n\tADD INDEX user LOCAL ON (user)\n;\n"},
+ "ALTER TABLE user\n\tADD INDEX user LOCAL ON (user)\n;\n"},
{"alter table user alter index idx set setting 'foo'",
- "ALTER TABLE user\n\tALTER INDEX idx SET setting 'foo'\n;\n"},
+ "ALTER TABLE user\n\tALTER INDEX idx SET setting 'foo'\n;\n"},
{"alter table user alter index idx set (setting = 'foo', another_setting = 'bar')",
- "ALTER TABLE user\n\tALTER INDEX idx SET (setting = 'foo', another_setting = 'bar')\n;\n"},
+ "ALTER TABLE user\n\tALTER INDEX idx SET (setting = 'foo', another_setting = 'bar')\n;\n"},
{"alter table user alter index idx reset (setting, another_setting)",
- "ALTER TABLE user\n\tALTER INDEX idx RESET (setting, another_setting)\n;\n"},
+ "ALTER TABLE user\n\tALTER INDEX idx RESET (setting, another_setting)\n;\n"},
{"alter table user add index idx global using subtype on (col) cover (col) with (setting = foo, another_setting = 'bar');",
- "ALTER TABLE user\n\tADD INDEX idx GLOBAL USING subtype ON (col) COVER (col) WITH (setting = foo, another_setting = 'bar')\n;\n"},
+ "ALTER TABLE user\n\tADD INDEX idx GLOBAL USING subtype ON (col) COVER (col) WITH (setting = foo, another_setting = 'bar')\n;\n"},
{"alter table user drop index user",
- "ALTER TABLE user\n\tDROP INDEX user\n;\n"},
+ "ALTER TABLE user\n\tDROP INDEX user\n;\n"},
{"alter table user rename to user",
- "ALTER TABLE user\n\tRENAME TO user\n;\n"},
+ "ALTER TABLE user\n\tRENAME TO user\n;\n"},
{"alter table user add changefeed user with (user = 'foo')",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (user = 'foo')\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (user = 'foo')\n;\n"},
{"alter table user alter changefeed user disable",
- "ALTER TABLE user\n\tALTER CHANGEFEED user DISABLE\n;\n"},
+ "ALTER TABLE user\n\tALTER CHANGEFEED user DISABLE\n;\n"},
{"alter table user alter changefeed user set(user='foo')",
- "ALTER TABLE user\n\tALTER CHANGEFEED user SET (user = 'foo')\n;\n"},
+ "ALTER TABLE user\n\tALTER CHANGEFEED user SET (user = 'foo')\n;\n"},
{"alter table user drop changefeed user",
- "ALTER TABLE user\n\tDROP CHANGEFEED user\n;\n"},
+ "ALTER TABLE user\n\tDROP CHANGEFEED user\n;\n"},
{"alter table user add changefeed user with (initial_scan = tRUe)",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (initial_scan = TRUE)\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (initial_scan = TRUE)\n;\n"},
{"alter table user add changefeed user with (initial_scan = FaLsE)",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (initial_scan = FALSE)\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (initial_scan = FALSE)\n;\n"},
{"alter table user add changefeed user with (retention_period = Interval(\"P1D\"))",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (retention_period = Interval('P1D'))\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (retention_period = Interval('P1D'))\n;\n"},
{"alter table user add changefeed user with (virtual_timestamps = TruE)",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (virtual_timestamps = TRUE)\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (virtual_timestamps = TRUE)\n;\n"},
{"alter table user add changefeed user with (virtual_timestamps = fAlSe)",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (virtual_timestamps = FALSE)\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (virtual_timestamps = FALSE)\n;\n"},
{"alter table user add changefeed user with (barriers_interval = Interval(\"PT1S\"))",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (barriers_interval = Interval('PT1S'))\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (barriers_interval = Interval('PT1S'))\n;\n"},
{"alter table user add changefeed user with (schema_changes = TruE)",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (schema_changes = TRUE)\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (schema_changes = TRUE)\n;\n"},
{"alter table user add changefeed user with (schema_changes = fAlSe)",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (schema_changes = FALSE)\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (schema_changes = FALSE)\n;\n"},
{"alter table user add changefeed user with (topic_min_active_partitions = 1)",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (topic_min_active_partitions = 1)\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (topic_min_active_partitions = 1)\n;\n"},
{"alter table user add changefeed user with (topic_auto_partitioning = 'ENABLED', topic_min_active_partitions = 1, topic_max_active_partitions = 7)",
- "ALTER TABLE user\n\tADD CHANGEFEED user WITH (topic_auto_partitioning = 'ENABLED', topic_min_active_partitions = 1, topic_max_active_partitions = 7)\n;\n"},
+ "ALTER TABLE user\n\tADD CHANGEFEED user WITH (topic_auto_partitioning = 'ENABLED', topic_min_active_partitions = 1, topic_max_active_partitions = 7)\n;\n"},
};
TSetup setup;
@@ -577,15 +568,15 @@ Y_UNIT_TEST(AlterTable) {
Y_UNIT_TEST(CreateTopic) {
TCases cases = {
{"create topic topic1",
- "CREATE TOPIC topic1;\n"},
+ "CREATE TOPIC topic1;\n"},
{"create topic topic1 (consumer c1)",
- "CREATE TOPIC topic1 (\n\tCONSUMER c1\n);\n"},
+ "CREATE TOPIC topic1 (\n\tCONSUMER c1\n);\n"},
{"create topic topic1 (consumer c1, consumer c2 with (important = True))",
- "CREATE TOPIC topic1 (\n\tCONSUMER c1,\n\tCONSUMER c2 WITH (important = TRUE)\n);\n"},
+ "CREATE TOPIC topic1 (\n\tCONSUMER c1,\n\tCONSUMER c2 WITH (important = TRUE)\n);\n"},
{"create topic topic1 (consumer c1) with (partition_count_limit = 5)",
- "CREATE TOPIC topic1 (\n\tCONSUMER c1\n) WITH (\n\tpartition_count_limit = 5\n);\n"},
+ "CREATE TOPIC topic1 (\n\tCONSUMER c1\n) WITH (\n\tpartition_count_limit = 5\n);\n"},
{"create topic topic1 (consumer c1) with (availability_period=Interval('PT9H'))",
- "CREATE TOPIC topic1 (\n\tCONSUMER c1\n) WITH (\n\tavailability_period = Interval('PT9H')\n);\n"},
+ "CREATE TOPIC topic1 (\n\tCONSUMER c1\n) WITH (\n\tavailability_period = Interval('PT9H')\n);\n"},
};
TSetup setup;
@@ -595,15 +586,15 @@ Y_UNIT_TEST(CreateTopic) {
Y_UNIT_TEST(AlterTopic) {
TCases cases = {
{"alter topic topic1 alter consumer c1 set (important = false)",
- "ALTER TOPIC topic1\n\tALTER CONSUMER c1 SET (important = FALSE)\n;\n"},
+ "ALTER TOPIC topic1\n\tALTER CONSUMER c1 SET (important = FALSE)\n;\n"},
{"alter topic topic1 alter consumer c1 set (important = false), alter consumer c2 reset (read_from)",
- "ALTER TOPIC topic1\n\tALTER CONSUMER c1 SET (important = FALSE),\n\tALTER CONSUMER c2 RESET (read_from)\n;\n"},
+ "ALTER TOPIC topic1\n\tALTER CONSUMER c1 SET (important = FALSE),\n\tALTER CONSUMER c2 RESET (read_from)\n;\n"},
{"alter topic topic1 add consumer c1, drop consumer c2",
- "ALTER TOPIC topic1\n\tADD CONSUMER c1,\n\tDROP CONSUMER c2\n;\n"},
+ "ALTER TOPIC topic1\n\tADD CONSUMER c1,\n\tDROP CONSUMER c2\n;\n"},
{"alter topic topic1 set (supported_codecs = 'RAW'), RESET (retention_period)",
- "ALTER TOPIC topic1\n\tSET (supported_codecs = 'RAW'),\n\tRESET (retention_period)\n;\n"},
+ "ALTER TOPIC topic1\n\tSET (supported_codecs = 'RAW'),\n\tRESET (retention_period)\n;\n"},
{"alter topic topic1 alter consumer c1 set (availability_period=Interval('PT9H')), alter consumer c2 reset (availability_period)",
- "ALTER TOPIC topic1\n\tALTER CONSUMER c1 SET (availability_period = Interval('PT9H')),\n\tALTER CONSUMER c2 RESET (availability_period)\n;\n"},
+ "ALTER TOPIC topic1\n\tALTER CONSUMER c1 SET (availability_period = Interval('PT9H')),\n\tALTER CONSUMER c2 RESET (availability_period)\n;\n"},
};
TSetup setup;
@@ -613,7 +604,7 @@ Y_UNIT_TEST(AlterTopic) {
Y_UNIT_TEST(DropTopic) {
TCases cases = {
{"drop topic topic1",
- "DROP TOPIC topic1;\n"},
+ "DROP TOPIC topic1;\n"},
};
TSetup setup;
@@ -623,11 +614,11 @@ Y_UNIT_TEST(DropTopic) {
Y_UNIT_TEST(TopicExistsStatement) {
TCases cases = {
{"drop topic if exists topic1",
- "DROP TOPIC IF EXISTS topic1;\n"},
+ "DROP TOPIC IF EXISTS topic1;\n"},
{"create topic if not exists topic1 with (partition_count_limit = 5)",
- "CREATE TOPIC IF NOT EXISTS topic1 WITH (\n\tpartition_count_limit = 5\n);\n"},
+ "CREATE TOPIC IF NOT EXISTS topic1 WITH (\n\tpartition_count_limit = 5\n);\n"},
{"alter topic if exists topic1 alter consumer c1 set (important = false)",
- "ALTER TOPIC IF EXISTS topic1\n\tALTER CONSUMER c1 SET (important = FALSE)\n;\n"},
+ "ALTER TOPIC IF EXISTS topic1\n\tALTER CONSUMER c1 SET (important = FALSE)\n;\n"},
};
TSetup setup;
@@ -637,9 +628,9 @@ Y_UNIT_TEST(TopicExistsStatement) {
Y_UNIT_TEST(Do) {
TCases cases = {
{"do $a(1,2,3)",
- "DO\n\t$a(1, 2, 3)\n;\n"},
+ "DO\n\t$a(1, 2, 3)\n;\n"},
{"do begin values(1); end do;",
- "DO BEGIN\n\tVALUES\n\t\t(1)\n\t;\nEND DO;\n"},
+ "DO BEGIN\n\tVALUES\n\t\t(1)\n\t;\nEND DO;\n"},
};
TSetup setup;
@@ -649,46 +640,46 @@ Y_UNIT_TEST(Do) {
Y_UNIT_TEST(DefineActionOrSubquery) {
TCases cases = {
{"define action $a() as "
- "define action $b() as "
- "values(1); "
- "end define; "
- "define subquery $c() as "
- "select 1; "
- "end define; "
- "do $b(); "
- "process $c(); "
- "end define",
- "DEFINE ACTION $a() AS\n\tDEFINE ACTION $b() AS\n\t\t"
- "VALUES\n\t\t\t(1)\n\t\t;\n\tEND DEFINE;\n\n\t"
- "DEFINE SUBQUERY $c() AS\n\t\tSELECT\n\t\t\t1\n\t\t;\n\t"
- "END DEFINE;\n\tDO\n\t\t$b()\n\t;\n\n\tPROCESS $c();\nEND DEFINE;\n"},
+ "define action $b() as "
+ "values(1); "
+ "end define; "
+ "define subquery $c() as "
+ "select 1; "
+ "end define; "
+ "do $b(); "
+ "process $c(); "
+ "end define",
+ "DEFINE ACTION $a() AS\n\tDEFINE ACTION $b() AS\n\t\t"
+ "VALUES\n\t\t\t(1)\n\t\t;\n\tEND DEFINE;\n\n\t"
+ "DEFINE SUBQUERY $c() AS\n\t\tSELECT\n\t\t\t1\n\t\t;\n\t"
+ "END DEFINE;\n\tDO\n\t\t$b()\n\t;\n\n\tPROCESS $c();\nEND DEFINE;\n"},
{"define action $foo($bar) as;"
- "$a = 10;; "
- "$b = 20;;; "
- "$c = $a + $b "
- "end define",
- "DEFINE ACTION $foo($bar) AS\n\t"
- "$a = 10;\n\t"
- "$b = 20;\n\t"
- "$c = $a + $b;\n"
- "END DEFINE;\n"},
+ "$a = 10;; "
+ "$b = 20;;; "
+ "$c = $a + $b "
+ "end define",
+ "DEFINE ACTION $foo($bar) AS\n\t"
+ "$a = 10;\n\t"
+ "$b = 20;\n\t"
+ "$c = $a + $b;\n"
+ "END DEFINE;\n"},
{"define subquery $s() as;"
- "select * from $t1 "
- "union all select * from $t2 "
- "end define",
- "DEFINE SUBQUERY $s() AS\n\t"
- "SELECT\n\t\t*\n\tFROM\n\t\t$t1\n\t"
- "UNION ALL\n\t"
- "SELECT\n\t\t*\n\tFROM\n\t\t$t2\n\t;\n"
- "END DEFINE;\n"},
+ "select * from $t1 "
+ "union all select * from $t2 "
+ "end define",
+ "DEFINE SUBQUERY $s() AS\n\t"
+ "SELECT\n\t\t*\n\tFROM\n\t\t$t1\n\t"
+ "UNION ALL\n\t"
+ "SELECT\n\t\t*\n\tFROM\n\t\t$t2\n\t;\n"
+ "END DEFINE;\n"},
{"define subquery $s() as $t = select * from $a end define",
- "DEFINE SUBQUERY $s() AS\n\t"
- "$t = (\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t$a\n\t);\n"
- "END DEFINE;\n"},
+ "DEFINE SUBQUERY $s() AS\n\t"
+ "$t = (\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t$a\n\t);\n"
+ "END DEFINE;\n"},
{"define subquery $s() as; $t = select * from $a; end define",
- "DEFINE SUBQUERY $s() AS\n\t"
- "$t = (\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t$a\n\t);\n"
- "END DEFINE;\n"},
+ "DEFINE SUBQUERY $s() AS\n\t"
+ "$t = (\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t$a\n\t);\n"
+ "END DEFINE;\n"},
};
TSetup setup;
@@ -698,21 +689,21 @@ Y_UNIT_TEST(DefineActionOrSubquery) {
Y_UNIT_TEST(If) {
TCases cases = {
{"evaluate if 1=1 do $a()",
- "EVALUATE IF 1 == 1 DO\n\t$a()\n;\n"},
+ "EVALUATE IF 1 == 1 DO\n\t$a()\n;\n"},
{"evaluate if 1=1 do $a() else do $b()",
- "EVALUATE IF 1 == 1 DO\n\t$a()\nELSE DO\n\t$b()\n;\n"},
+ "EVALUATE IF 1 == 1 DO\n\t$a()\nELSE DO\n\t$b()\n;\n"},
{"evaluate if 1=1 do begin select 1; end do",
- "EVALUATE IF 1 == 1 DO BEGIN\n\tSELECT\n\t\t1\n\t;\nEND DO;\n"},
+ "EVALUATE IF 1 == 1 DO BEGIN\n\tSELECT\n\t\t1\n\t;\nEND DO;\n"},
{"evaluate if 1=1 do begin select 1; end do else do begin select 2; end do",
- "EVALUATE IF 1 == 1 DO BEGIN\n\tSELECT\n\t\t1\n\t;\nEND DO "
- "ELSE DO BEGIN\n\tSELECT\n\t\t2\n\t;\nEND DO;\n"},
+ "EVALUATE IF 1 == 1 DO BEGIN\n\tSELECT\n\t\t1\n\t;\nEND DO "
+ "ELSE DO BEGIN\n\tSELECT\n\t\t2\n\t;\nEND DO;\n"},
{"evaluate if 1=1 do begin; select 1 end do else do begin select 2;; select 3 end do",
- "EVALUATE IF 1 == 1 DO BEGIN\n\tSELECT\n\t\t1\n\t;\nEND DO ELSE DO BEGIN\n\t"
- "SELECT\n\t\t2\n\t;\n\n\tSELECT\n\t\t3\n\t;\nEND DO;\n"},
+ "EVALUATE IF 1 == 1 DO BEGIN\n\tSELECT\n\t\t1\n\t;\nEND DO ELSE DO BEGIN\n\t"
+ "SELECT\n\t\t2\n\t;\n\n\tSELECT\n\t\t3\n\t;\nEND DO;\n"},
{"evaluate if 1=1 do begin (select 1) end do",
- "EVALUATE IF 1 == 1 DO BEGIN\n\t(\n\t\tSELECT\n\t\t\t1\n\t);\nEND DO;\n"},
+ "EVALUATE IF 1 == 1 DO BEGIN\n\t(\n\t\tSELECT\n\t\t\t1\n\t);\nEND DO;\n"},
{"evaluate if 1=1 do begin $a = select * from $begin; $end = 1; end do",
- "EVALUATE IF 1 == 1 DO BEGIN\n\t$a = (\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t$begin\n\t);\n\t$end = 1;\nEND DO;\n"},
+ "EVALUATE IF 1 == 1 DO BEGIN\n\t$a = (\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t$begin\n\t);\n\t$end = 1;\nEND DO;\n"},
};
TSetup setup;
@@ -722,21 +713,21 @@ Y_UNIT_TEST(If) {
Y_UNIT_TEST(For) {
TCases cases = {
{"evaluate for $x in [] do $a($x)",
- "EVALUATE FOR $x IN [] DO\n\t$a($x)\n;\n"},
+ "EVALUATE FOR $x IN [] DO\n\t$a($x)\n;\n"},
{"evaluate for $x in [] do $a($x) else do $b()",
- "EVALUATE FOR $x IN [] DO\n\t$a($x)\nELSE DO\n\t$b()\n;\n"},
+ "EVALUATE FOR $x IN [] DO\n\t$a($x)\nELSE DO\n\t$b()\n;\n"},
{"evaluate for $x in [] do begin select $x; end do",
- "EVALUATE FOR $x IN [] DO BEGIN\n\tSELECT\n\t\t$x\n\t;\nEND DO;\n"},
+ "EVALUATE FOR $x IN [] DO BEGIN\n\tSELECT\n\t\t$x\n\t;\nEND DO;\n"},
{"evaluate for $x in [] do begin select $x; end do else do begin select 2; end do",
- "EVALUATE FOR $x IN [] DO BEGIN\n\tSELECT\n\t\t$x\n\t;\nEND DO ELSE DO BEGIN\n\tSELECT\n\t\t2\n\t;\nEND DO;\n"},
+ "EVALUATE FOR $x IN [] DO BEGIN\n\tSELECT\n\t\t$x\n\t;\nEND DO ELSE DO BEGIN\n\tSELECT\n\t\t2\n\t;\nEND DO;\n"},
{"evaluate parallel for $x in [] do $a($x)",
- "EVALUATE PARALLEL FOR $x IN [] DO\n\t$a($x)\n;\n"},
+ "EVALUATE PARALLEL FOR $x IN [] DO\n\t$a($x)\n;\n"},
{"evaluate for $x in [] do begin; select $x;; select $y end do",
- "EVALUATE FOR $x IN [] DO BEGIN\n\tSELECT\n\t\t$x\n\t;\n\n\tSELECT\n\t\t$y\n\t;\nEND DO;\n"},
+ "EVALUATE FOR $x IN [] DO BEGIN\n\tSELECT\n\t\t$x\n\t;\n\n\tSELECT\n\t\t$y\n\t;\nEND DO;\n"},
{"evaluate for $x in [] do begin (select 1) end do",
- "EVALUATE FOR $x IN [] DO BEGIN\n\t(\n\t\tSELECT\n\t\t\t1\n\t);\nEND DO;\n"},
+ "EVALUATE FOR $x IN [] DO BEGIN\n\t(\n\t\tSELECT\n\t\t\t1\n\t);\nEND DO;\n"},
{"evaluate for $x in [] do begin $a = select * from $begin; $end = 1; end do",
- "EVALUATE FOR $x IN [] DO BEGIN\n\t$a = (\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t$begin\n\t);\n\t$end = 1;\nEND DO;\n"},
+ "EVALUATE FOR $x IN [] DO BEGIN\n\t$a = (\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t$begin\n\t);\n\t$end = 1;\nEND DO;\n"},
};
TSetup setup;
@@ -746,29 +737,29 @@ Y_UNIT_TEST(For) {
Y_UNIT_TEST(Update) {
TCases cases = {
{"update user on default values",
- "UPDATE user\nON DEFAULT VALUES;\n"},
+ "UPDATE user\nON DEFAULT VALUES;\n"},
{"update user on values (1),(2)",
- "UPDATE user\nON\nVALUES\n\t(1),\n\t(2)\n;\n"},
+ "UPDATE user\nON\nVALUES\n\t(1),\n\t(2)\n;\n"},
{"update user on select 1 as x, 2 as y",
- "UPDATE user\nON\nSELECT\n\t1 AS x,\n\t2 AS y\n;\n"},
+ "UPDATE user\nON\nSELECT\n\t1 AS x,\n\t2 AS y\n;\n"},
{"update user on (x) values (1),(2),(3)",
- "UPDATE user\nON (\n\tx\n)\nVALUES\n\t(1),\n\t(2),\n\t(3)\n;\n"},
+ "UPDATE user\nON (\n\tx\n)\nVALUES\n\t(1),\n\t(2),\n\t(3)\n;\n"},
{"update user on (x,y) values (1,2),(2,3),(3,4)",
- "UPDATE user\nON (\n\tx,\n\ty\n)\nVALUES\n\t(1, 2),\n\t(2, 3),\n\t(3, 4)\n;\n"},
+ "UPDATE user\nON (\n\tx,\n\ty\n)\nVALUES\n\t(1, 2),\n\t(2, 3),\n\t(3, 4)\n;\n"},
{"update user on (x) select 1",
- "UPDATE user\nON (\n\tx\n)\nSELECT\n\t1\n;\n"},
+ "UPDATE user\nON (\n\tx\n)\nSELECT\n\t1\n;\n"},
{"update user on (x,y) select 1,2",
- "UPDATE user\nON (\n\tx,\n\ty\n)\nSELECT\n\t1,\n\t2\n;\n"},
+ "UPDATE user\nON (\n\tx,\n\ty\n)\nSELECT\n\t1,\n\t2\n;\n"},
{"update user set x=1",
- "UPDATE user\nSET\n\tx = 1\n;\n"},
+ "UPDATE user\nSET\n\tx = 1\n;\n"},
{"update user set (x)=(1)",
- "UPDATE user\nSET\n(\n\tx\n) = (\n\t1\n);\n"},
+ "UPDATE user\nSET\n(\n\tx\n) = (\n\t1\n);\n"},
{"update user set (x,y)=(1,2)",
- "UPDATE user\nSET\n(\n\tx,\n\ty\n) = (\n\t1,\n\t2\n);\n"},
+ "UPDATE user\nSET\n(\n\tx,\n\ty\n) = (\n\t1,\n\t2\n);\n"},
{"update user set (x,y)=(select 1,2)",
- "UPDATE user\nSET\n(\n\tx,\n\ty\n) = (\n\tSELECT\n\t\t1,\n\t\t2\n);\n"},
+ "UPDATE user\nSET\n(\n\tx,\n\ty\n) = (\n\tSELECT\n\t\t1,\n\t\t2\n);\n"},
{"update user set x=1,y=2 where z=3",
- "UPDATE user\nSET\n\tx = 1,\n\ty = 2\nWHERE z == 3;\n"},
+ "UPDATE user\nSET\n\tx = 1,\n\ty = 2\nWHERE z == 3;\n"},
};
TSetup setup;
@@ -778,15 +769,15 @@ Y_UNIT_TEST(Update) {
Y_UNIT_TEST(Delete) {
TCases cases = {
{"delete from user",
- "DELETE FROM user;\n"},
+ "DELETE FROM user;\n"},
{"delete from user where 1=1",
- "DELETE FROM user\nWHERE 1 == 1;\n"},
+ "DELETE FROM user\nWHERE 1 == 1;\n"},
{"delete from user on select 1 as x, 2 as y",
- "DELETE FROM user\nON\nSELECT\n\t1 AS x,\n\t2 AS y\n;\n"},
+ "DELETE FROM user\nON\nSELECT\n\t1 AS x,\n\t2 AS y\n;\n"},
{"delete from user on (x) values (1)",
- "DELETE FROM user\nON (\n\tx\n)\nVALUES\n\t(1)\n;\n"},
+ "DELETE FROM user\nON (\n\tx\n)\nVALUES\n\t(1)\n;\n"},
{"delete from user on (x,y) values (1,2), (3,4)",
- "DELETE FROM user\nON (\n\tx,\n\ty\n)\nVALUES\n\t(1, 2),\n\t(3, 4)\n;\n"},
+ "DELETE FROM user\nON (\n\tx,\n\ty\n)\nVALUES\n\t(1, 2),\n\t(3, 4)\n;\n"},
};
TSetup setup;
@@ -796,39 +787,39 @@ Y_UNIT_TEST(Delete) {
Y_UNIT_TEST(Into) {
TCases cases = {
{"insert into user select 1 as x",
- "INSERT INTO user\nSELECT\n\t1 AS x\n;\n"},
+ "INSERT INTO user\nSELECT\n\t1 AS x\n;\n"},
{"insert or abort into user select 1 as x",
- "INSERT OR ABORT INTO user\nSELECT\n\t1 AS x\n;\n"},
+ "INSERT OR ABORT INTO user\nSELECT\n\t1 AS x\n;\n"},
{"insert or revert into user select 1 as x",
- "INSERT OR REVERT INTO user\nSELECT\n\t1 AS x\n;\n"},
+ "INSERT OR REVERT INTO user\nSELECT\n\t1 AS x\n;\n"},
{"insert or ignore into user select 1 as x",
- "INSERT OR IGNORE INTO user\nSELECT\n\t1 AS x\n;\n"},
+ "INSERT OR IGNORE INTO user\nSELECT\n\t1 AS x\n;\n"},
{"upsert into user select 1 as x",
- "UPSERT INTO user\nSELECT\n\t1 AS x\n;\n"},
+ "UPSERT INTO user\nSELECT\n\t1 AS x\n;\n"},
{"replace into user select 1 as x",
- "REPLACE INTO user\nSELECT\n\t1 AS x\n;\n"},
+ "REPLACE INTO user\nSELECT\n\t1 AS x\n;\n"},
{"insert into user(x) values (1)",
- "INSERT INTO user (\n\tx\n)\nVALUES\n\t(1)\n;\n"},
+ "INSERT INTO user (\n\tx\n)\nVALUES\n\t(1)\n;\n"},
{"insert into user(x,y) values (1,2)",
- "INSERT INTO user (\n\tx,\n\ty\n)\nVALUES\n\t(1, 2)\n;\n"},
+ "INSERT INTO user (\n\tx,\n\ty\n)\nVALUES\n\t(1, 2)\n;\n"},
{"insert into plato.user select 1 as x",
- "INSERT INTO plato.user\nSELECT\n\t1 AS x\n;\n"},
+ "INSERT INTO plato.user\nSELECT\n\t1 AS x\n;\n"},
{"insert into @user select 1 as x",
- "INSERT INTO @user\nSELECT\n\t1 AS x\n;\n"},
+ "INSERT INTO @user\nSELECT\n\t1 AS x\n;\n"},
{"insert into $user select 1 as x",
- "INSERT INTO $user\nSELECT\n\t1 AS x\n;\n"},
+ "INSERT INTO $user\nSELECT\n\t1 AS x\n;\n"},
{"insert into @$user select 1 as x",
- "INSERT INTO @$user\nSELECT\n\t1 AS x\n;\n"},
+ "INSERT INTO @$user\nSELECT\n\t1 AS x\n;\n"},
{"upsert into user erase by (x,y) values (1)",
- "UPSERT INTO user\n\tERASE BY (\n\t\tx,\n\t\ty\n\t)\nVALUES\n\t(1)\n;\n"},
+ "UPSERT INTO user\n\tERASE BY (\n\t\tx,\n\t\ty\n\t)\nVALUES\n\t(1)\n;\n"},
{"insert into user with truncate select 1 as x",
- "INSERT INTO user WITH truncate\nSELECT\n\t1 AS x\n;\n"},
+ "INSERT INTO user WITH truncate\nSELECT\n\t1 AS x\n;\n"},
{"insert into user with (truncate,inferscheme='1') select 1 as x",
- "INSERT INTO user WITH (\n\ttruncate,\n\tinferscheme = '1'\n)\nSELECT\n\t1 AS x\n;\n"},
+ "INSERT INTO user WITH (\n\ttruncate,\n\tinferscheme = '1'\n)\nSELECT\n\t1 AS x\n;\n"},
{"insert into user with schema Struct<user:int32> select 1 as user",
- "INSERT INTO user WITH SCHEMA Struct<user: int32>\nSELECT\n\t1 AS user\n;\n"},
+ "INSERT INTO user WITH SCHEMA Struct<user: int32>\nSELECT\n\t1 AS user\n;\n"},
{"insert into user with schema (int32 as user) select 1 as user",
- "INSERT INTO user WITH SCHEMA (int32 AS user)\nSELECT\n\t1 AS user\n;\n"},
+ "INSERT INTO user WITH SCHEMA (int32 AS user)\nSELECT\n\t1 AS user\n;\n"},
};
TSetup setup;
@@ -838,21 +829,21 @@ Y_UNIT_TEST(Into) {
Y_UNIT_TEST(Process) {
TCases cases = {
{"process user",
- "PROCESS user;\n"},
+ "PROCESS user;\n"},
{"process user using $f() as user",
- "PROCESS user\nUSING $f() AS user;\n"},
+ "PROCESS user\nUSING $f() AS user;\n"},
{"process user,user using $f()",
- "PROCESS user, user\nUSING $f();\n"},
+ "PROCESS user, user\nUSING $f();\n"},
{"process user using $f() where 1=1 having 1=1 assume order by user",
- "PROCESS user\nUSING $f()\nWHERE\n\t1 == 1\nHAVING\n\t1 == 1\nASSUME ORDER BY\n\tuser\n;\n"},
+ "PROCESS user\nUSING $f()\nWHERE\n\t1 == 1\nHAVING\n\t1 == 1\nASSUME ORDER BY\n\tuser\n;\n"},
{"process user using $f() union all process user using $f()",
- "PROCESS user\nUSING $f()\nUNION ALL\nPROCESS user\nUSING $f();\n"},
+ "PROCESS user\nUSING $f()\nUNION ALL\nPROCESS user\nUSING $f();\n"},
{"process user using $f() with foo=bar",
- "PROCESS user\nUSING $f()\nWITH foo = bar;\n"},
+ "PROCESS user\nUSING $f()\nWITH foo = bar;\n"},
{"discard process user using $f()",
- "DISCARD PROCESS user\nUSING $f();\n"},
+ "DISCARD PROCESS user\nUSING $f();\n"},
{"process user using $f() into result user",
- "PROCESS user\nUSING $f()\nINTO RESULT user;\n"},
+ "PROCESS user\nUSING $f()\nINTO RESULT user;\n"},
};
TSetup setup;
@@ -862,25 +853,25 @@ Y_UNIT_TEST(Process) {
Y_UNIT_TEST(Reduce) {
TCases cases = {
{"reduce user on user using $f()",
- "REDUCE user\nON\n\tuser\nUSING $f();\n"},
+ "REDUCE user\nON\n\tuser\nUSING $f();\n"},
{"reduce user on user, using $f()",
- "REDUCE user\nON\n\tuser,\nUSING $f();\n"},
+ "REDUCE user\nON\n\tuser,\nUSING $f();\n"},
{"discard reduce user on user using $f();",
- "DISCARD REDUCE user\nON\n\tuser\nUSING $f();\n"},
+ "DISCARD REDUCE user\nON\n\tuser\nUSING $f();\n"},
{"reduce user on user using $f() into result user",
- "REDUCE user\nON\n\tuser\nUSING $f()\nINTO RESULT user;\n"},
+ "REDUCE user\nON\n\tuser\nUSING $f()\nINTO RESULT user;\n"},
{"reduce user on user using all $f()",
- "REDUCE user\nON\n\tuser\nUSING ALL $f();\n"},
+ "REDUCE user\nON\n\tuser\nUSING ALL $f();\n"},
{"reduce user on user using $f() as user",
- "REDUCE user\nON\n\tuser\nUSING $f() AS user;\n"},
+ "REDUCE user\nON\n\tuser\nUSING $f() AS user;\n"},
{"reduce user,user on user using $f()",
- "REDUCE user, user\nON\n\tuser\nUSING $f();\n"},
+ "REDUCE user, user\nON\n\tuser\nUSING $f();\n"},
{"reduce user on user,user using $f()",
- "REDUCE user\nON\n\tuser,\n\tuser\nUSING $f();\n"},
+ "REDUCE user\nON\n\tuser,\n\tuser\nUSING $f();\n"},
{"reduce user on user using $f() where 1=1 having 1=1 assume order by user",
- "REDUCE user\nON\n\tuser\nUSING $f()\nWHERE\n\t1 == 1\nHAVING\n\t1 == 1\nASSUME ORDER BY\n\tuser\n;\n"},
+ "REDUCE user\nON\n\tuser\nUSING $f()\nWHERE\n\t1 == 1\nHAVING\n\t1 == 1\nASSUME ORDER BY\n\tuser\n;\n"},
{"reduce user presort user,user on user using $f();",
- "REDUCE user\nPRESORT\n\tuser,\n\tuser\nON\n\tuser\nUSING $f();\n"},
+ "REDUCE user\nPRESORT\n\tuser,\n\tuser\nON\n\tuser\nUSING $f();\n"},
};
TSetup setup;
@@ -890,115 +881,115 @@ Y_UNIT_TEST(Reduce) {
Y_UNIT_TEST(Select) {
TCases cases = {
{"select 1",
- "SELECT\n\t1\n;\n"},
+ "SELECT\n\t1\n;\n"},
{"select 1,",
- "SELECT\n\t1,\n;\n"},
+ "SELECT\n\t1,\n;\n"},
{"select 1 as x",
- "SELECT\n\t1 AS x\n;\n"},
+ "SELECT\n\t1 AS x\n;\n"},
{"select *",
- "SELECT\n\t*\n;\n"},
+ "SELECT\n\t*\n;\n"},
{"select a.*",
- "SELECT\n\ta.*\n;\n"},
+ "SELECT\n\ta.*\n;\n"},
{"select * without a",
- "SELECT\n\t*\nWITHOUT\n\ta\n;\n"},
+ "SELECT\n\t*\nWITHOUT\n\ta\n;\n"},
{"select * without a,b",
- "SELECT\n\t*\nWITHOUT\n\ta,\n\tb\n;\n"},
+ "SELECT\n\t*\nWITHOUT\n\ta,\n\tb\n;\n"},
{"select * without a,",
- "SELECT\n\t*\nWITHOUT\n\ta,\n;\n"},
+ "SELECT\n\t*\nWITHOUT\n\ta,\n;\n"},
{"select * without if exists a",
- "SELECT\n\t*\nWITHOUT IF EXISTS\n\ta\n;\n"},
+ "SELECT\n\t*\nWITHOUT IF EXISTS\n\ta\n;\n"},
{"select 1 from user",
- "SELECT\n\t1\nFROM\n\tuser\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\n;\n"},
{"select 1 from plato.user",
- "SELECT\n\t1\nFROM\n\tplato.user\n;\n"},
+ "SELECT\n\t1\nFROM\n\tplato.user\n;\n"},
{"select 1 from $user",
- "SELECT\n\t1\nFROM\n\t$user\n;\n"},
+ "SELECT\n\t1\nFROM\n\t$user\n;\n"},
{"select 1 from @user",
- "SELECT\n\t1\nFROM\n\t@user\n;\n"},
+ "SELECT\n\t1\nFROM\n\t@user\n;\n"},
{"select 1 from @$user",
- "SELECT\n\t1\nFROM\n\t@$user\n;\n"},
+ "SELECT\n\t1\nFROM\n\t@$user\n;\n"},
{"select 1 from user view user",
- "SELECT\n\t1\nFROM\n\tuser VIEW user\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser VIEW user\n;\n"},
{"select 1 from user as user",
- "SELECT\n\t1\nFROM\n\tuser AS user\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser AS user\n;\n"},
{"select 1 from user as user(user)",
- "SELECT\n\t1\nFROM\n\tuser AS user (\n\t\tuser\n\t)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser AS user (\n\t\tuser\n\t)\n;\n"},
{"select 1 from user as user(user, user)",
- "SELECT\n\t1\nFROM\n\tuser AS user (\n\t\tuser,\n\t\tuser\n\t)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser AS user (\n\t\tuser,\n\t\tuser\n\t)\n;\n"},
{"select 1 from user with user=user",
- "SELECT\n\t1\nFROM\n\tuser WITH user = user\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser WITH user = user\n;\n"},
{"select 1 from user with (user=user, user=user)",
- "SELECT\n\t1\nFROM\n\tuser WITH (\n\t\tuser = user,\n\t\tuser = user\n\t)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser WITH (\n\t\tuser = user,\n\t\tuser = user\n\t)\n;\n"},
{"select 1 from user sample 0.1",
- "SELECT\n\t1\nFROM\n\tuser\n\tSAMPLE 0.1\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\n\tSAMPLE 0.1\n;\n"},
{"select 1 from user tablesample system(0.1)",
- "SELECT\n\t1\nFROM\n\tuser\n\tTABLESAMPLE SYSTEM (0.1)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\n\tTABLESAMPLE SYSTEM (0.1)\n;\n"},
{"select 1 from user tablesample bernoulli(0.1) repeatable(10)",
- "SELECT\n\t1\nFROM\n\tuser\n\tTABLESAMPLE BERNOULLI (0.1) REPEATABLE (10)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\n\tTABLESAMPLE BERNOULLI (0.1) REPEATABLE (10)\n;\n"},
{"select 1 from user flatten columns",
- "SELECT\n\t1\nFROM\n\tuser\n\tFLATTEN COLUMNS\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\n\tFLATTEN COLUMNS\n;\n"},
{"select 1 from user flatten list by user",
- "SELECT\n\t1\nFROM\n\tuser\n\tFLATTEN LIST BY user\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\n\tFLATTEN LIST BY user\n;\n"},
{"select 1 from user flatten list by (user,user)",
- "SELECT\n\t1\nFROM\n\tuser\n\tFLATTEN LIST BY (\n\t\tuser,\n\t\tuser\n\t)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\n\tFLATTEN LIST BY (\n\t\tuser,\n\t\tuser\n\t)\n;\n"},
{"select 1 from $user(1,2)",
- "SELECT\n\t1\nFROM\n\t$user(1, 2)\n;\n"},
+ "SELECT\n\t1\nFROM\n\t$user(1, 2)\n;\n"},
{"select 1 from $user(1,2) view user",
- "SELECT\n\t1\nFROM\n\t$user(1, 2) VIEW user\n;\n"},
+ "SELECT\n\t1\nFROM\n\t$user(1, 2) VIEW user\n;\n"},
{"select 1 from range('a','b')",
- "SELECT\n\t1\nFROM\n\trange('a', 'b')\n;\n"},
+ "SELECT\n\t1\nFROM\n\trange('a', 'b')\n;\n"},
{"from user select 1",
- "FROM\n\tuser\nSELECT\n\t1\n;\n"},
+ "FROM\n\tuser\nSELECT\n\t1\n;\n"},
{"select * from user as a join user as b on a.x=b.y",
- "SELECT\n\t*\nFROM\n\tuser AS a\nJOIN\n\tuser AS b\nON\n\ta.x == b.y\n;\n"},
+ "SELECT\n\t*\nFROM\n\tuser AS a\nJOIN\n\tuser AS b\nON\n\ta.x == b.y\n;\n"},
{"select * from user as a join user as b using(x)",
- "SELECT\n\t*\nFROM\n\tuser AS a\nJOIN\n\tuser AS b\nUSING (x);\n"},
+ "SELECT\n\t*\nFROM\n\tuser AS a\nJOIN\n\tuser AS b\nUSING (x);\n"},
{"select * from any user as a full join user as b on a.x=b.y",
- "SELECT\n\t*\nFROM ANY\n\tuser AS a\nFULL JOIN\n\tuser AS b\nON\n\ta.x == b.y\n;\n"},
+ "SELECT\n\t*\nFROM ANY\n\tuser AS a\nFULL JOIN\n\tuser AS b\nON\n\ta.x == b.y\n;\n"},
{"select * from user as a left join any user as b on a.x=b.y",
- "SELECT\n\t*\nFROM\n\tuser AS a\nLEFT JOIN ANY\n\tuser AS b\nON\n\ta.x == b.y\n;\n"},
+ "SELECT\n\t*\nFROM\n\tuser AS a\nLEFT JOIN ANY\n\tuser AS b\nON\n\ta.x == b.y\n;\n"},
{"select * from any user as a right join any user as b on a.x=b.y",
- "SELECT\n\t*\nFROM ANY\n\tuser AS a\nRIGHT JOIN ANY\n\tuser AS b\nON\n\ta.x == b.y\n;\n"},
+ "SELECT\n\t*\nFROM ANY\n\tuser AS a\nRIGHT JOIN ANY\n\tuser AS b\nON\n\ta.x == b.y\n;\n"},
{"select * from user as a cross join user as b",
- "SELECT\n\t*\nFROM\n\tuser AS a\nCROSS JOIN\n\tuser AS b\n;\n"},
+ "SELECT\n\t*\nFROM\n\tuser AS a\nCROSS JOIN\n\tuser AS b\n;\n"},
{"select 1 from user where key = 1",
- "SELECT\n\t1\nFROM\n\tuser\nWHERE\n\tkey == 1\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nWHERE\n\tkey == 1\n;\n"},
{"select 1 from user having count(*) = 1",
- "SELECT\n\t1\nFROM\n\tuser\nHAVING\n\tcount(*) == 1\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nHAVING\n\tcount(*) == 1\n;\n"},
{"select 1 from user group by key",
- "SELECT\n\t1\nFROM\n\tuser\nGROUP BY\n\tkey\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nGROUP BY\n\tkey\n;\n"},
{"select 1 from user group compact by key, value as v",
- "SELECT\n\t1\nFROM\n\tuser\nGROUP COMPACT BY\n\tkey,\n\tvalue AS v\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nGROUP COMPACT BY\n\tkey,\n\tvalue AS v\n;\n"},
{"select 1 from user group by key with combine",
- "SELECT\n\t1\nFROM\n\tuser\nGROUP BY\n\tkey\n\tWITH combine\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nGROUP BY\n\tkey\n\tWITH combine\n;\n"},
{"select 1 from user order by key asc",
- "SELECT\n\t1\nFROM\n\tuser\nORDER BY\n\tkey ASC\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nORDER BY\n\tkey ASC\n;\n"},
{"select 1 from user order by key, value desc",
- "SELECT\n\t1\nFROM\n\tuser\nORDER BY\n\tkey,\n\tvalue DESC\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nORDER BY\n\tkey,\n\tvalue DESC\n;\n"},
{"select 1 from user assume order by key",
- "SELECT\n\t1\nFROM\n\tuser\nASSUME ORDER BY\n\tkey\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nASSUME ORDER BY\n\tkey\n;\n"},
{"select 1 from user window w1 as (), w2 as ()",
- "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (),\n\tw2 AS ()\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (),\n\tw2 AS ()\n;\n"},
{"select 1 from user window w1 as (user)",
- "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tuser\n\t)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tuser\n\t)\n;\n"},
{"select 1 from user window w1 as (partition by user)",
- "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tPARTITION BY\n\t\t\tuser\n\t)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tPARTITION BY\n\t\t\tuser\n\t)\n;\n"},
{"select 1 from user window w1 as (partition by user, user)",
- "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tPARTITION BY\n\t\t\tuser,\n\t\t\tuser\n\t)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tPARTITION BY\n\t\t\tuser,\n\t\t\tuser\n\t)\n;\n"},
{"select 1 from user window w1 as (order by user asc)",
- "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tORDER BY\n\t\t\tuser ASC\n\t)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tORDER BY\n\t\t\tuser ASC\n\t)\n;\n"},
{"select 1 from user window w1 as (order by user, user desc)",
- "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tORDER BY\n\t\t\tuser,\n\t\t\tuser DESC\n\t)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tORDER BY\n\t\t\tuser,\n\t\t\tuser DESC\n\t)\n;\n"},
{"select 1 from user window w1 as (rows between 1 preceding and 1 following)",
- "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING\n\t)\n;\n"},
+ "SELECT\n\t1\nFROM\n\tuser\nWINDOW\n\tw1 AS (\n\t\tROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING\n\t)\n;\n"},
{"select 1 limit 10",
- "SELECT\n\t1\nLIMIT 10;\n"},
+ "SELECT\n\t1\nLIMIT 10;\n"},
{"select 1 limit 10 offset 5",
- "SELECT\n\t1\nLIMIT 10 OFFSET 5;\n"},
+ "SELECT\n\t1\nLIMIT 10 OFFSET 5;\n"},
{"select 1 union all select 2",
- "SELECT\n\t1\nUNION ALL\nSELECT\n\t2\n;\n" },
+ "SELECT\n\t1\nUNION ALL\nSELECT\n\t2\n;\n"},
{"select * from $user where key == 1 -- comment",
- "SELECT\n\t*\nFROM\n\t$user\nWHERE\n\tkey == 1 -- comment\n;\n"},
+ "SELECT\n\t*\nFROM\n\t$user\nWHERE\n\tkey == 1 -- comment\n;\n"},
};
TSetup setup;
@@ -1008,10 +999,10 @@ Y_UNIT_TEST(Select) {
Y_UNIT_TEST(CompositeTypesAndQuestions) {
TCases cases = {
{"declare $_x AS list<int32>??;declare $_y AS int32 ? ? ;select 1<>2, 1??2,"
- "formattype(list<int32>), formattype(resource<user>),formattype(tuple<>), formattype(tuple< >), formattype(int32 ? ? )",
- "DECLARE $_x AS list<int32>??;\nDECLARE $_y AS int32??;\n\nSELECT\n\t1 != 2,\n\t1 ?? 2,\n\tformattype(list<int32>),"
- "\n\tformattype(resource<user>),\n\tformattype(tuple<>),\n\tformattype(tuple< >),\n\tformattype(int32??" ")\n;\n"
- },
+ "formattype(list<int32>), formattype(resource<user>),formattype(tuple<>), formattype(tuple< >), formattype(int32 ? ? )",
+ "DECLARE $_x AS list<int32>??;\nDECLARE $_y AS int32??;\n\nSELECT\n\t1 != 2,\n\t1 ?? 2,\n\tformattype(list<int32>),"
+ "\n\tformattype(resource<user>),\n\tformattype(tuple<>),\n\tformattype(tuple< >),\n\tformattype(int32??"
+ ")\n;\n"},
};
TSetup setup;
@@ -1021,11 +1012,11 @@ Y_UNIT_TEST(CompositeTypesAndQuestions) {
Y_UNIT_TEST(Lambda) {
TCases cases = {
{"$f=($a,$b)->{$x=$a+$b;return $a*$x};$g=($a,$b?)->($a+$b??0);select $f(10,4),$g(1,2);",
- "$f = ($a, $b) -> {\n\t$x = $a + $b;\n\tRETURN $a * $x;\n};\n\n"
- "$g = ($a, $b?) -> ($a + $b ?? 0);\n\n"
- "SELECT\n\t$f(10, 4),\n\t$g(1, 2)\n;\n"},
+ "$f = ($a, $b) -> {\n\t$x = $a + $b;\n\tRETURN $a * $x;\n};\n\n"
+ "$g = ($a, $b?) -> ($a + $b ?? 0);\n\n"
+ "SELECT\n\t$f(10, 4),\n\t$g(1, 2)\n;\n"},
{"$f=($arg)->{;$a=10;;$b=20;;;RETURN $a+$b}",
- "$f = ($arg) -> {\n\t$a = 10;\n\t$b = 20;\n\tRETURN $a + $b;\n};\n"},
+ "$f = ($arg) -> {\n\t$a = 10;\n\t$b = 20;\n\tRETURN $a + $b;\n};\n"},
};
TSetup setup;
@@ -1035,17 +1026,17 @@ Y_UNIT_TEST(Lambda) {
Y_UNIT_TEST(NestedSelect) {
TCases cases = {
{"$x=select 1",
- "$x = (\n\tSELECT\n\t\t1\n);\n"},
+ "$x = (\n\tSELECT\n\t\t1\n);\n"},
{"$x=(select 1)",
- "$x = (\n\tSELECT\n\t\t1\n);\n"},
+ "$x = (\n\tSELECT\n\t\t1\n);\n"},
{"$x=((select 1))",
- "$x = (\n\t(\n\t\tSELECT\n\t\t\t1\n\t)\n);\n"},
+ "$x = (\n\t(\n\t\tSELECT\n\t\t\t1\n\t)\n);\n"},
{"select 1 in (select 1)",
- "SELECT\n\t1 IN (\n\t\tSELECT\n\t\t\t1\n\t)\n;\n"},
+ "SELECT\n\t1 IN (\n\t\tSELECT\n\t\t\t1\n\t)\n;\n"},
{"select 1 in ((select 1))",
- "SELECT\n\t1 IN (\n\t\t(\n\t\t\tSELECT\n\t\t\t\t1\n\t\t)\n\t)\n;\n"},
+ "SELECT\n\t1 IN (\n\t\t(\n\t\t\tSELECT\n\t\t\t\t1\n\t\t)\n\t)\n;\n"},
{"select 1 in (\nselect 1)",
- "SELECT\n\t1 IN (\n\t\tSELECT\n\t\t\t1\n\t)\n;\n"},
+ "SELECT\n\t1 IN (\n\t\tSELECT\n\t\t\t1\n\t)\n;\n"},
};
TSetup setup;
@@ -1054,8 +1045,8 @@ Y_UNIT_TEST(NestedSelect) {
Y_UNIT_TEST(Cast) {
TCases cases = {
- {"select cast(1 as string)","SELECT\n\tCAST(1 AS string)\n;\n"},
- {"select bitcast(1 as int32)","SELECT\n\tBITCAST(1 AS int32)\n;\n"},
+ {"select cast(1 as string)", "SELECT\n\tCAST(1 AS string)\n;\n"},
+ {"select bitcast(1 as int32)", "SELECT\n\tBITCAST(1 AS int32)\n;\n"},
};
TSetup setup;
@@ -1064,9 +1055,9 @@ Y_UNIT_TEST(Cast) {
Y_UNIT_TEST(StructLiteral) {
TCases cases = {
- {"select <||>","SELECT\n\t<||>\n;\n"},
- {"select <|a:1|>","SELECT\n\t<|a: 1|>\n;\n"},
- {"select <|a:1,b:2|>","SELECT\n\t<|a: 1, b: 2|>\n;\n"},
+ {"select <||>", "SELECT\n\t<||>\n;\n"},
+ {"select <|a:1|>", "SELECT\n\t<|a: 1|>\n;\n"},
+ {"select <|a:1,b:2|>", "SELECT\n\t<|a: 1, b: 2|>\n;\n"},
};
TSetup setup;
@@ -1076,13 +1067,13 @@ Y_UNIT_TEST(StructLiteral) {
Y_UNIT_TEST(TableHints) {
TCases cases = {
{"select * from plato.T with schema(foo int32, bar list<string>) where key is not null",
- "SELECT\n\t*\nFROM\n\tplato.T WITH SCHEMA (foo int32, bar list<string>)\nWHERE\n\tkey IS NOT NULL\n;\n"},
+ "SELECT\n\t*\nFROM\n\tplato.T WITH SCHEMA (foo int32, bar list<string>)\nWHERE\n\tkey IS NOT NULL\n;\n"},
{"select * from plato.T with schema struct<foo:integer, Bar:list<string?>> where key<0",
- "SELECT\n\t*\nFROM\n\tplato.T WITH SCHEMA struct<foo: integer, Bar: list<string?>>\nWHERE\n\tkey < 0\n;\n"},
+ "SELECT\n\t*\nFROM\n\tplato.T WITH SCHEMA struct<foo: integer, Bar: list<string?>>\nWHERE\n\tkey < 0\n;\n"},
{"select * from plato.T with (foo=bar, x=$y, a=(a, b, c), u='aaa', schema (foo int32, bar list<string>))",
- "SELECT\n\t*\nFROM\n\tplato.T WITH (\n\t\tfoo = bar,\n\t\tx = $y,\n\t\ta = (a, b, c),\n\t\tu = 'aaa',\n\t\tSCHEMA (foo int32, bar list<string>)\n\t)\n;\n"},
+ "SELECT\n\t*\nFROM\n\tplato.T WITH (\n\t\tfoo = bar,\n\t\tx = $y,\n\t\ta = (a, b, c),\n\t\tu = 'aaa',\n\t\tSCHEMA (foo int32, bar list<string>)\n\t)\n;\n"},
{"select * from plato.T with schema struct<\nfoo:int32,\nbar:double\n> as a",
- "SELECT\n\t*\nFROM\n\tplato.T WITH SCHEMA struct<\n\t\tfoo: int32,\n\t\tbar: double\n\t> AS a\n;\n"},
+ "SELECT\n\t*\nFROM\n\tplato.T WITH SCHEMA struct<\n\t\tfoo: int32,\n\t\tbar: double\n\t> AS a\n;\n"},
};
TSetup setup;
@@ -1092,7 +1083,7 @@ Y_UNIT_TEST(TableHints) {
Y_UNIT_TEST(BoolAsVariableName) {
TCases cases = {
{"$ False = True; select $ False;",
- "$False = TRUE;\n\nSELECT\n\t$False\n;\n"},
+ "$False = TRUE;\n\nSELECT\n\t$False\n;\n"},
};
TSetup setup;
@@ -1102,8 +1093,8 @@ Y_UNIT_TEST(BoolAsVariableName) {
Y_UNIT_TEST(WithSchemaEquals) {
TCases cases = {
{"select * from plato.T with (format= csv_with_names, schema=(year int32 Null, month String, day String not null, a Utf8, b Uint16));",
- "SELECT\n\t*\nFROM\n\tplato.T WITH (\n\t\tformat = csv_with_names,\n\t\tSCHEMA = (year int32 NULL, month String, day String NOT NULL, a Utf8, b Uint16)\n\t)\n;\n"},
- };
+ "SELECT\n\t*\nFROM\n\tplato.T WITH (\n\t\tformat = csv_with_names,\n\t\tSCHEMA = (year int32 NULL, month String, day String NOT NULL, a Utf8, b Uint16)\n\t)\n;\n"},
+ };
TSetup setup;
setup.Run(cases);
@@ -1112,7 +1103,7 @@ Y_UNIT_TEST(WithSchemaEquals) {
Y_UNIT_TEST(SquareBrackets) {
TCases cases = {
{"select a[0]",
- "SELECT\n\ta[0]\n;\n"},
+ "SELECT\n\ta[0]\n;\n"},
};
TSetup setup;
@@ -1122,23 +1113,23 @@ Y_UNIT_TEST(SquareBrackets) {
Y_UNIT_TEST(MultiLineList) {
TCases cases = {
{"select [\n]",
- "SELECT\n\t[\n\t]\n;\n"},
+ "SELECT\n\t[\n\t]\n;\n"},
{"select [1\n]",
- "SELECT\n\t[\n\t\t1\n\t]\n;\n"},
+ "SELECT\n\t[\n\t\t1\n\t]\n;\n"},
{"select [\n1]",
- "SELECT\n\t[\n\t\t1\n\t]\n;\n"},
+ "SELECT\n\t[\n\t\t1\n\t]\n;\n"},
{"select [1,\n]",
- "SELECT\n\t[\n\t\t1,\n\t]\n;\n"},
+ "SELECT\n\t[\n\t\t1,\n\t]\n;\n"},
{"select [1\n,]",
- "SELECT\n\t[\n\t\t1,\n\t]\n;\n"},
+ "SELECT\n\t[\n\t\t1,\n\t]\n;\n"},
{"select [\n1,]",
- "SELECT\n\t[\n\t\t1,\n\t]\n;\n"},
+ "SELECT\n\t[\n\t\t1,\n\t]\n;\n"},
{"select [1,2,\n3,4]",
- "SELECT\n\t[\n\t\t1, 2,\n\t\t3, 4\n\t]\n;\n"},
+ "SELECT\n\t[\n\t\t1, 2,\n\t\t3, 4\n\t]\n;\n"},
{"select [1,2,\n3,4,]",
- "SELECT\n\t[\n\t\t1, 2,\n\t\t3, 4,\n\t]\n;\n"},
+ "SELECT\n\t[\n\t\t1, 2,\n\t\t3, 4,\n\t]\n;\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;\n"},
+ "SELECT\n\t[\n\t\t1, 2,\n\t\t3,\n\t\t4,\n\t\t5\n\t]\n;\n"},
};
TSetup setup;
@@ -1148,17 +1139,17 @@ Y_UNIT_TEST(MultiLineList) {
Y_UNIT_TEST(MultiLineTuple) {
TCases cases = {
{"select (\n)",
- "SELECT\n\t(\n\t)\n;\n"},
+ "SELECT\n\t(\n\t)\n;\n"},
{"select (1,\n)",
- "SELECT\n\t(\n\t\t1,\n\t)\n;\n"},
+ "SELECT\n\t(\n\t\t1,\n\t)\n;\n"},
{"select (1\n,)",
- "SELECT\n\t(\n\t\t1,\n\t)\n;\n"},
+ "SELECT\n\t(\n\t\t1,\n\t)\n;\n"},
{"select (\n1,)",
- "SELECT\n\t(\n\t\t1,\n\t)\n;\n"},
+ "SELECT\n\t(\n\t\t1,\n\t)\n;\n"},
{"select (1,2,\n3,4)",
- "SELECT\n\t(\n\t\t1, 2,\n\t\t3, 4\n\t)\n;\n"},
+ "SELECT\n\t(\n\t\t1, 2,\n\t\t3, 4\n\t)\n;\n"},
{"select (1,2,\n3,4,)",
- "SELECT\n\t(\n\t\t1, 2,\n\t\t3, 4,\n\t)\n;\n"},
+ "SELECT\n\t(\n\t\t1, 2,\n\t\t3, 4,\n\t)\n;\n"},
};
TSetup setup;
@@ -1168,21 +1159,21 @@ Y_UNIT_TEST(MultiLineTuple) {
Y_UNIT_TEST(MultiLineSet) {
TCases cases = {
{"select {\n}",
- "SELECT\n\t{\n\t}\n;\n"},
+ "SELECT\n\t{\n\t}\n;\n"},
{"select {1\n}",
- "SELECT\n\t{\n\t\t1\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t1\n\t}\n;\n"},
{"select {\n1}",
- "SELECT\n\t{\n\t\t1\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t1\n\t}\n;\n"},
{"select {1,\n}",
- "SELECT\n\t{\n\t\t1,\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t1,\n\t}\n;\n"},
{"select {1\n,}",
- "SELECT\n\t{\n\t\t1,\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t1,\n\t}\n;\n"},
{"select {\n1,}",
- "SELECT\n\t{\n\t\t1,\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t1,\n\t}\n;\n"},
{"select {1,2,\n3,4}",
- "SELECT\n\t{\n\t\t1, 2,\n\t\t3, 4\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t1, 2,\n\t\t3, 4\n\t}\n;\n"},
{"select {1,2,\n3,4,}",
- "SELECT\n\t{\n\t\t1, 2,\n\t\t3, 4,\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t1, 2,\n\t\t3, 4,\n\t}\n;\n"},
};
TSetup setup;
@@ -1192,19 +1183,19 @@ Y_UNIT_TEST(MultiLineSet) {
Y_UNIT_TEST(MultiLineDict) {
TCases cases = {
{"select {0:1\n}",
- "SELECT\n\t{\n\t\t0: 1\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t0: 1\n\t}\n;\n"},
{"select {\n0:1}",
- "SELECT\n\t{\n\t\t0: 1\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t0: 1\n\t}\n;\n"},
{"select {0:1,\n}",
- "SELECT\n\t{\n\t\t0: 1,\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t0: 1,\n\t}\n;\n"},
{"select {0:1\n,}",
- "SELECT\n\t{\n\t\t0: 1,\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t0: 1,\n\t}\n;\n"},
{"select {\n0:1,}",
- "SELECT\n\t{\n\t\t0: 1,\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t0: 1,\n\t}\n;\n"},
{"select {10:1,20:2,\n30:3,40:4}",
- "SELECT\n\t{\n\t\t10: 1, 20: 2,\n\t\t30: 3, 40: 4\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t10: 1, 20: 2,\n\t\t30: 3, 40: 4\n\t}\n;\n"},
{"select {10:1,20:2,\n30:3,40:4,}",
- "SELECT\n\t{\n\t\t10: 1, 20: 2,\n\t\t30: 3, 40: 4,\n\t}\n;\n"},
+ "SELECT\n\t{\n\t\t10: 1, 20: 2,\n\t\t30: 3, 40: 4,\n\t}\n;\n"},
};
TSetup setup;
@@ -1214,21 +1205,21 @@ Y_UNIT_TEST(MultiLineDict) {
Y_UNIT_TEST(MultiLineFuncCall) {
TCases cases = {
{"select f(\n)",
- "SELECT\n\tf(\n\t)\n;\n"},
+ "SELECT\n\tf(\n\t)\n;\n"},
{"select f(1\n)",
- "SELECT\n\tf(\n\t\t1\n\t)\n;\n"},
+ "SELECT\n\tf(\n\t\t1\n\t)\n;\n"},
{"select f(\n1)",
- "SELECT\n\tf(\n\t\t1\n\t)\n;\n"},
+ "SELECT\n\tf(\n\t\t1\n\t)\n;\n"},
{"select f(1,\n)",
- "SELECT\n\tf(\n\t\t1,\n\t)\n;\n"},
+ "SELECT\n\tf(\n\t\t1,\n\t)\n;\n"},
{"select f(1\n,)",
- "SELECT\n\tf(\n\t\t1,\n\t)\n;\n"},
+ "SELECT\n\tf(\n\t\t1,\n\t)\n;\n"},
{"select f(\n1,)",
- "SELECT\n\tf(\n\t\t1,\n\t)\n;\n"},
+ "SELECT\n\tf(\n\t\t1,\n\t)\n;\n"},
{"select f(1,2,\n3,4)",
- "SELECT\n\tf(\n\t\t1, 2,\n\t\t3, 4\n\t)\n;\n"},
+ "SELECT\n\tf(\n\t\t1, 2,\n\t\t3, 4\n\t)\n;\n"},
{"select f(1,2,\n3,4,)",
- "SELECT\n\tf(\n\t\t1, 2,\n\t\t3, 4,\n\t)\n;\n"},
+ "SELECT\n\tf(\n\t\t1, 2,\n\t\t3, 4,\n\t)\n;\n"},
};
TSetup setup;
@@ -1238,21 +1229,21 @@ Y_UNIT_TEST(MultiLineFuncCall) {
Y_UNIT_TEST(MultiLineStruct) {
TCases cases = {
{"select <|\n|>",
- "SELECT\n\t<|\n\t|>\n;\n"},
+ "SELECT\n\t<|\n\t|>\n;\n"},
{"select <|a:1\n|>",
- "SELECT\n\t<|\n\t\ta: 1\n\t|>\n;\n"},
+ "SELECT\n\t<|\n\t\ta: 1\n\t|>\n;\n"},
{"select <|\na:1|>",
- "SELECT\n\t<|\n\t\ta: 1\n\t|>\n;\n"},
+ "SELECT\n\t<|\n\t\ta: 1\n\t|>\n;\n"},
{"select <|a:1,\n|>",
- "SELECT\n\t<|\n\t\ta: 1,\n\t|>\n;\n"},
+ "SELECT\n\t<|\n\t\ta: 1,\n\t|>\n;\n"},
{"select <|a:1\n,|>",
- "SELECT\n\t<|\n\t\ta: 1,\n\t|>\n;\n"},
+ "SELECT\n\t<|\n\t\ta: 1,\n\t|>\n;\n"},
{"select <|\na:1,|>",
- "SELECT\n\t<|\n\t\ta: 1,\n\t|>\n;\n"},
+ "SELECT\n\t<|\n\t\ta: 1,\n\t|>\n;\n"},
{"select <|a:1,b:2,\nc:3,d:4|>",
- "SELECT\n\t<|\n\t\ta: 1, b: 2,\n\t\tc: 3, d: 4\n\t|>\n;\n"},
+ "SELECT\n\t<|\n\t\ta: 1, b: 2,\n\t\tc: 3, d: 4\n\t|>\n;\n"},
{"select <|a:1,b:2,\nc:3,d:4,|>",
- "SELECT\n\t<|\n\t\ta: 1, b: 2,\n\t\tc: 3, d: 4,\n\t|>\n;\n"},
+ "SELECT\n\t<|\n\t\ta: 1, b: 2,\n\t\tc: 3, d: 4,\n\t|>\n;\n"},
};
TSetup setup;
@@ -1262,9 +1253,9 @@ Y_UNIT_TEST(MultiLineStruct) {
Y_UNIT_TEST(MultiLineListType) {
TCases cases = {
{"select list<int32\n>",
- "SELECT\n\tlist<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\tlist<\n\t\tint32\n\t>\n;\n"},
{"select list<\nint32>",
- "SELECT\n\tlist<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\tlist<\n\t\tint32\n\t>\n;\n"},
};
TSetup setup;
@@ -1274,9 +1265,9 @@ Y_UNIT_TEST(MultiLineListType) {
Y_UNIT_TEST(MultiLineOptionalType) {
TCases cases = {
{"select optional<int32\n>",
- "SELECT\n\toptional<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\toptional<\n\t\tint32\n\t>\n;\n"},
{"select optional<\nint32>",
- "SELECT\n\toptional<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\toptional<\n\t\tint32\n\t>\n;\n"},
};
TSetup setup;
@@ -1286,9 +1277,9 @@ Y_UNIT_TEST(MultiLineOptionalType) {
Y_UNIT_TEST(MultiLineStreamType) {
TCases cases = {
{"select stream<int32\n>",
- "SELECT\n\tstream<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\tstream<\n\t\tint32\n\t>\n;\n"},
{"select stream<\nint32>",
- "SELECT\n\tstream<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\tstream<\n\t\tint32\n\t>\n;\n"},
};
TSetup setup;
@@ -1298,9 +1289,9 @@ Y_UNIT_TEST(MultiLineStreamType) {
Y_UNIT_TEST(MultiLineFlowType) {
TCases cases = {
{"select flow<int32\n>",
- "SELECT\n\tflow<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\tflow<\n\t\tint32\n\t>\n;\n"},
{"select flow<\nint32>",
- "SELECT\n\tflow<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\tflow<\n\t\tint32\n\t>\n;\n"},
};
TSetup setup;
@@ -1310,9 +1301,9 @@ Y_UNIT_TEST(MultiLineFlowType) {
Y_UNIT_TEST(MultiLineSetType) {
TCases cases = {
{"select set<int32\n>",
- "SELECT\n\tset<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\tset<\n\t\tint32\n\t>\n;\n"},
{"select set<\nint32>",
- "SELECT\n\tset<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\tset<\n\t\tint32\n\t>\n;\n"},
};
TSetup setup;
@@ -1322,21 +1313,21 @@ Y_UNIT_TEST(MultiLineSetType) {
Y_UNIT_TEST(MultiLineTupleType) {
TCases cases = {
{"select tuple<\n>",
- "SELECT\n\ttuple<\n\t\t \n\t>\n;\n"},
+ "SELECT\n\ttuple<\n\t\t \n\t>\n;\n"},
{"select tuple<int32\n>",
- "SELECT\n\ttuple<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\ttuple<\n\t\tint32\n\t>\n;\n"},
{"select tuple<\nint32>",
- "SELECT\n\ttuple<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\ttuple<\n\t\tint32\n\t>\n;\n"},
{"select tuple<int32,\n>",
- "SELECT\n\ttuple<\n\t\tint32,\n\t>\n;\n"},
+ "SELECT\n\ttuple<\n\t\tint32,\n\t>\n;\n"},
{"select tuple<int32\n,>",
- "SELECT\n\ttuple<\n\t\tint32,\n\t>\n;\n"},
+ "SELECT\n\ttuple<\n\t\tint32,\n\t>\n;\n"},
{"select tuple<\nint32,>",
- "SELECT\n\ttuple<\n\t\tint32,\n\t>\n;\n"},
+ "SELECT\n\ttuple<\n\t\tint32,\n\t>\n;\n"},
{"select tuple<\nint32,string,\ndouble,bool>",
- "SELECT\n\ttuple<\n\t\tint32, string,\n\t\tdouble, bool\n\t>\n;\n"},
+ "SELECT\n\ttuple<\n\t\tint32, string,\n\t\tdouble, bool\n\t>\n;\n"},
{"select tuple<\nint32,string,\ndouble,bool,>",
- "SELECT\n\ttuple<\n\t\tint32, string,\n\t\tdouble, bool,\n\t>\n;\n"},
+ "SELECT\n\ttuple<\n\t\tint32, string,\n\t\tdouble, bool,\n\t>\n;\n"},
};
TSetup setup;
@@ -1346,21 +1337,21 @@ Y_UNIT_TEST(MultiLineTupleType) {
Y_UNIT_TEST(MultiLineStructType) {
TCases cases = {
{"select struct<\n>",
- "SELECT\n\tstruct<\n\t\t \n\t>\n;\n"},
+ "SELECT\n\tstruct<\n\t\t \n\t>\n;\n"},
{"select struct<a:int32\n>",
- "SELECT\n\tstruct<\n\t\ta: int32\n\t>\n;\n"},
+ "SELECT\n\tstruct<\n\t\ta: int32\n\t>\n;\n"},
{"select struct<\na:int32>",
- "SELECT\n\tstruct<\n\t\ta: int32\n\t>\n;\n"},
+ "SELECT\n\tstruct<\n\t\ta: int32\n\t>\n;\n"},
{"select struct<a:int32,\n>",
- "SELECT\n\tstruct<\n\t\ta: int32,\n\t>\n;\n"},
+ "SELECT\n\tstruct<\n\t\ta: int32,\n\t>\n;\n"},
{"select struct<a:int32\n,>",
- "SELECT\n\tstruct<\n\t\ta: int32,\n\t>\n;\n"},
+ "SELECT\n\tstruct<\n\t\ta: int32,\n\t>\n;\n"},
{"select struct<\na:int32,>",
- "SELECT\n\tstruct<\n\t\ta: int32,\n\t>\n;\n"},
+ "SELECT\n\tstruct<\n\t\ta: int32,\n\t>\n;\n"},
{"select struct<\na:int32,b:string,\nc:double,d:bool>",
- "SELECT\n\tstruct<\n\t\ta: int32, b: string,\n\t\tc: double, d: bool\n\t>\n;\n"},
+ "SELECT\n\tstruct<\n\t\ta: int32, b: string,\n\t\tc: double, d: bool\n\t>\n;\n"},
{"select struct<\na:int32,b:string,\nc:double,d:bool,>",
- "SELECT\n\tstruct<\n\t\ta: int32, b: string,\n\t\tc: double, d: bool,\n\t>\n;\n"},
+ "SELECT\n\tstruct<\n\t\ta: int32, b: string,\n\t\tc: double, d: bool,\n\t>\n;\n"},
};
TSetup setup;
@@ -1370,19 +1361,19 @@ Y_UNIT_TEST(MultiLineStructType) {
Y_UNIT_TEST(MultiLineVariantOverTupleType) {
TCases cases = {
{"select variant<int32\n>",
- "SELECT\n\tvariant<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\tint32\n\t>\n;\n"},
{"select variant<\nint32>",
- "SELECT\n\tvariant<\n\t\tint32\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\tint32\n\t>\n;\n"},
{"select variant<int32,\n>",
- "SELECT\n\tvariant<\n\t\tint32,\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\tint32,\n\t>\n;\n"},
{"select variant<int32\n,>",
- "SELECT\n\tvariant<\n\t\tint32,\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\tint32,\n\t>\n;\n"},
{"select variant<\nint32,>",
- "SELECT\n\tvariant<\n\t\tint32,\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\tint32,\n\t>\n;\n"},
{"select variant<\nint32,string,\ndouble,bool>",
- "SELECT\n\tvariant<\n\t\tint32, string,\n\t\tdouble, bool\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\tint32, string,\n\t\tdouble, bool\n\t>\n;\n"},
{"select variant<\nint32,string,\ndouble,bool,>",
- "SELECT\n\tvariant<\n\t\tint32, string,\n\t\tdouble, bool,\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\tint32, string,\n\t\tdouble, bool,\n\t>\n;\n"},
};
TSetup setup;
@@ -1392,19 +1383,19 @@ Y_UNIT_TEST(MultiLineVariantOverTupleType) {
Y_UNIT_TEST(MultiLineVariantOverStructType) {
TCases cases = {
{"select variant<a:int32\n>",
- "SELECT\n\tvariant<\n\t\ta: int32\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\ta: int32\n\t>\n;\n"},
{"select variant<\na:int32>",
- "SELECT\n\tvariant<\n\t\ta: int32\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\ta: int32\n\t>\n;\n"},
{"select variant<a:int32,\n>",
- "SELECT\n\tvariant<\n\t\ta: int32,\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\ta: int32,\n\t>\n;\n"},
{"select variant<a:int32\n,>",
- "SELECT\n\tvariant<\n\t\ta: int32,\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\ta: int32,\n\t>\n;\n"},
{"select variant<\na:int32,>",
- "SELECT\n\tvariant<\n\t\ta: int32,\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\ta: int32,\n\t>\n;\n"},
{"select variant<\na:int32,b:string,\nc:double,d:bool>",
- "SELECT\n\tvariant<\n\t\ta: int32, b: string,\n\t\tc: double, d: bool\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\ta: int32, b: string,\n\t\tc: double, d: bool\n\t>\n;\n"},
{"select variant<\na:int32,b:string,\nc:double,d:bool,>",
- "SELECT\n\tvariant<\n\t\ta: int32, b: string,\n\t\tc: double, d: bool,\n\t>\n;\n"},
+ "SELECT\n\tvariant<\n\t\ta: int32, b: string,\n\t\tc: double, d: bool,\n\t>\n;\n"},
};
TSetup setup;
@@ -1414,19 +1405,19 @@ Y_UNIT_TEST(MultiLineVariantOverStructType) {
Y_UNIT_TEST(MultiLineEnum) {
TCases cases = {
{"select enum<a\n>",
- "SELECT\n\tenum<\n\t\ta\n\t>\n;\n"},
+ "SELECT\n\tenum<\n\t\ta\n\t>\n;\n"},
{"select enum<\na>",
- "SELECT\n\tenum<\n\t\ta\n\t>\n;\n"},
+ "SELECT\n\tenum<\n\t\ta\n\t>\n;\n"},
{"select enum<a,\n>",
- "SELECT\n\tenum<\n\t\ta,\n\t>\n;\n"},
+ "SELECT\n\tenum<\n\t\ta,\n\t>\n;\n"},
{"select enum<a\n,>",
- "SELECT\n\tenum<\n\t\ta,\n\t>\n;\n"},
+ "SELECT\n\tenum<\n\t\ta,\n\t>\n;\n"},
{"select enum<\na,>",
- "SELECT\n\tenum<\n\t\ta,\n\t>\n;\n"},
+ "SELECT\n\tenum<\n\t\ta,\n\t>\n;\n"},
{"select enum<\na,b,\nc,d>",
- "SELECT\n\tenum<\n\t\ta, b,\n\t\tc, d\n\t>\n;\n"},
+ "SELECT\n\tenum<\n\t\ta, b,\n\t\tc, d\n\t>\n;\n"},
{"select enum<\na,b,\nc,d,>",
- "SELECT\n\tenum<\n\t\ta, b,\n\t\tc, d,\n\t>\n;\n"},
+ "SELECT\n\tenum<\n\t\ta, b,\n\t\tc, d,\n\t>\n;\n"},
};
TSetup setup;
@@ -1436,9 +1427,9 @@ Y_UNIT_TEST(MultiLineEnum) {
Y_UNIT_TEST(MultiLineResourceType) {
TCases cases = {
{"select resource<foo\n>",
- "SELECT\n\tresource<\n\t\tfoo\n\t>\n;\n"},
+ "SELECT\n\tresource<\n\t\tfoo\n\t>\n;\n"},
{"select resource<\nfoo>",
- "SELECT\n\tresource<\n\t\tfoo\n\t>\n;\n"},
+ "SELECT\n\tresource<\n\t\tfoo\n\t>\n;\n"},
};
TSetup setup;
@@ -1448,13 +1439,13 @@ Y_UNIT_TEST(MultiLineResourceType) {
Y_UNIT_TEST(MultiLineTaggedType) {
TCases cases = {
{"select tagged<int32,foo\n>",
- "SELECT\n\ttagged<\n\t\tint32, foo\n\t>\n;\n"},
+ "SELECT\n\ttagged<\n\t\tint32, foo\n\t>\n;\n"},
{"select tagged<int32,\nfoo>",
- "SELECT\n\ttagged<\n\t\tint32,\n\t\tfoo\n\t>\n;\n"},
+ "SELECT\n\ttagged<\n\t\tint32,\n\t\tfoo\n\t>\n;\n"},
{"select tagged<int32\n,foo>",
- "SELECT\n\ttagged<\n\t\tint32,\n\t\tfoo\n\t>\n;\n"},
+ "SELECT\n\ttagged<\n\t\tint32,\n\t\tfoo\n\t>\n;\n"},
{"select tagged<\nint32,foo>",
- "SELECT\n\ttagged<\n\t\tint32, foo\n\t>\n;\n"},
+ "SELECT\n\ttagged<\n\t\tint32, foo\n\t>\n;\n"},
};
TSetup setup;
@@ -1464,13 +1455,13 @@ Y_UNIT_TEST(MultiLineTaggedType) {
Y_UNIT_TEST(MultiLineDictType) {
TCases cases = {
{"select dict<int32,string\n>",
- "SELECT\n\tdict<\n\t\tint32, string\n\t>\n;\n"},
+ "SELECT\n\tdict<\n\t\tint32, string\n\t>\n;\n"},
{"select dict<int32,\nstring>",
- "SELECT\n\tdict<\n\t\tint32,\n\t\tstring\n\t>\n;\n"},
+ "SELECT\n\tdict<\n\t\tint32,\n\t\tstring\n\t>\n;\n"},
{"select dict<int32\n,string>",
- "SELECT\n\tdict<\n\t\tint32,\n\t\tstring\n\t>\n;\n"},
+ "SELECT\n\tdict<\n\t\tint32,\n\t\tstring\n\t>\n;\n"},
{"select dict<\nint32,string>",
- "SELECT\n\tdict<\n\t\tint32, string\n\t>\n;\n"},
+ "SELECT\n\tdict<\n\t\tint32, string\n\t>\n;\n"},
};
TSetup setup;
@@ -1480,15 +1471,15 @@ Y_UNIT_TEST(MultiLineDictType) {
Y_UNIT_TEST(MultiLineCallableType) {
TCases cases = {
{"select callable<()->int32\n>",
- "SELECT\n\tcallable<\n\t\t() -> int32\n\t>\n;\n"},
+ "SELECT\n\tcallable<\n\t\t() -> int32\n\t>\n;\n"},
{"select callable<\n()->int32>",
- "SELECT\n\tcallable<\n\t\t() -> int32\n\t>\n;\n"},
+ "SELECT\n\tcallable<\n\t\t() -> int32\n\t>\n;\n"},
{"select callable<\n(int32)->int32>",
- "SELECT\n\tcallable<\n\t\t(int32) -> int32\n\t>\n;\n"},
+ "SELECT\n\tcallable<\n\t\t(int32) -> int32\n\t>\n;\n"},
{"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;\n"},
+ "SELECT\n\tcallable<\n\t\t(\n\t\t\tint32,\n\t\t\tdouble\n\t\t) -> int32\n\t>\n;\n"},
{"select callable<\n(int32\n,double)->int32>",
- "SELECT\n\tcallable<\n\t\t(\n\t\t\tint32,\n\t\t\tdouble\n\t\t) -> int32\n\t>\n;\n"},
+ "SELECT\n\tcallable<\n\t\t(\n\t\t\tint32,\n\t\t\tdouble\n\t\t) -> int32\n\t>\n;\n"},
};
TSetup setup;
@@ -1498,7 +1489,7 @@ Y_UNIT_TEST(MultiLineCallableType) {
Y_UNIT_TEST(UnaryOp) {
TCases cases = {
{"select -x,+x,~x,-1,-1.0,+1,+1.0,~1u",
- "SELECT\n\t-x,\n\t+x,\n\t~x,\n\t-1,\n\t-1.0,\n\t+1,\n\t+1.0,\n\t~1u\n;\n"},
+ "SELECT\n\t-x,\n\t+x,\n\t~x,\n\t-1,\n\t-1.0,\n\t+1,\n\t+1.0,\n\t~1u\n;\n"},
};
TSetup setup;
@@ -1521,7 +1512,7 @@ FROM Input MATCH_RECOGNIZE(
DEFINE A as A, B as B
);
)",
-R"(PRAGMA FeatureR010 = 'prototype';
+ R"(PRAGMA FeatureR010 = 'prototype';
USE plato;
@@ -1549,8 +1540,7 @@ FROM
B AS B
)
;
-)"
- }};
+)"}};
TSetup setup;
setup.Run(cases);
}
@@ -1558,9 +1548,9 @@ FROM
Y_UNIT_TEST(CreateTableTrailingComma) {
TCases cases = {
{"CREATE TABLE tableName (Key Uint32, PRIMARY KEY (Key),);",
- "CREATE TABLE tableName (\n\tKey Uint32,\n\tPRIMARY KEY (Key),\n);\n"},
+ "CREATE TABLE tableName (\n\tKey Uint32,\n\tPRIMARY KEY (Key),\n);\n"},
{"CREATE TABLE tableName (Key Uint32,);",
- "CREATE TABLE tableName (\n\tKey Uint32,\n);\n"},
+ "CREATE TABLE tableName (\n\tKey Uint32,\n);\n"},
};
TSetup setup;
setup.Run(cases);
@@ -1569,11 +1559,11 @@ Y_UNIT_TEST(CreateTableTrailingComma) {
Y_UNIT_TEST(Union) {
TCases cases = {
{"select 1 union all select 2 union select 3 union all select 4 union select 5",
- "SELECT\n\t1\nUNION ALL\nSELECT\n\t2\nUNION\nSELECT\n\t3\nUNION ALL\nSELECT\n\t4\nUNION\nSELECT\n\t5\n;\n"},
+ "SELECT\n\t1\nUNION ALL\nSELECT\n\t2\nUNION\nSELECT\n\t3\nUNION ALL\nSELECT\n\t4\nUNION\nSELECT\n\t5\n;\n"},
{"select 1 union all (select 2)",
- "SELECT\n\t1\nUNION ALL\n(\n\tSELECT\n\t\t2\n);\n"},
+ "SELECT\n\t1\nUNION ALL\n(\n\tSELECT\n\t\t2\n);\n"},
{"select 1 union distinct select 2 union select 3 union distinct select 4 union select 5",
- "SELECT\n\t1\nUNION DISTINCT\nSELECT\n\t2\nUNION\nSELECT\n\t3\nUNION DISTINCT\nSELECT\n\t4\nUNION\nSELECT\n\t5\n;\n"},
+ "SELECT\n\t1\nUNION DISTINCT\nSELECT\n\t2\nUNION\nSELECT\n\t3\nUNION DISTINCT\nSELECT\n\t4\nUNION\nSELECT\n\t5\n;\n"},
};
TSetup setup;
@@ -1583,11 +1573,11 @@ Y_UNIT_TEST(Union) {
Y_UNIT_TEST(Intersect) {
TCases cases = {
{"select 1 intersect all select 2 intersect select 3 intersect all select 4 intersect select 5",
- "SELECT\n\t1\nINTERSECT ALL\nSELECT\n\t2\nINTERSECT\nSELECT\n\t3\nINTERSECT ALL\nSELECT\n\t4\nINTERSECT\nSELECT\n\t5\n;\n"},
+ "SELECT\n\t1\nINTERSECT ALL\nSELECT\n\t2\nINTERSECT\nSELECT\n\t3\nINTERSECT ALL\nSELECT\n\t4\nINTERSECT\nSELECT\n\t5\n;\n"},
{"select 1 intersect all (select 2)",
- "SELECT\n\t1\nINTERSECT ALL\n(\n\tSELECT\n\t\t2\n);\n"},
+ "SELECT\n\t1\nINTERSECT ALL\n(\n\tSELECT\n\t\t2\n);\n"},
{"select 1 intersect distinct select 2 intersect select 3 intersect distinct select 4 intersect select 5",
- "SELECT\n\t1\nINTERSECT DISTINCT\nSELECT\n\t2\nINTERSECT\nSELECT\n\t3\nINTERSECT DISTINCT\nSELECT\n\t4\nINTERSECT\nSELECT\n\t5\n;\n"},
+ "SELECT\n\t1\nINTERSECT DISTINCT\nSELECT\n\t2\nINTERSECT\nSELECT\n\t3\nINTERSECT DISTINCT\nSELECT\n\t4\nINTERSECT\nSELECT\n\t5\n;\n"},
};
TSetup setup;
@@ -1597,11 +1587,11 @@ Y_UNIT_TEST(Intersect) {
Y_UNIT_TEST(Except) {
TCases cases = {
{"select 1 except all select 2 except select 3 except all select 4 except select 5",
- "SELECT\n\t1\nEXCEPT ALL\nSELECT\n\t2\nEXCEPT\nSELECT\n\t3\nEXCEPT ALL\nSELECT\n\t4\nEXCEPT\nSELECT\n\t5\n;\n"},
+ "SELECT\n\t1\nEXCEPT ALL\nSELECT\n\t2\nEXCEPT\nSELECT\n\t3\nEXCEPT ALL\nSELECT\n\t4\nEXCEPT\nSELECT\n\t5\n;\n"},
{"select 1 except all (select 2)",
- "SELECT\n\t1\nEXCEPT ALL\n(\n\tSELECT\n\t\t2\n);\n"},
+ "SELECT\n\t1\nEXCEPT ALL\n(\n\tSELECT\n\t\t2\n);\n"},
{"select 1 except distinct select 2 except select 3 except distinct select 4 except select 5",
- "SELECT\n\t1\nEXCEPT DISTINCT\nSELECT\n\t2\nEXCEPT\nSELECT\n\t3\nEXCEPT DISTINCT\nSELECT\n\t4\nEXCEPT\nSELECT\n\t5\n;\n"},
+ "SELECT\n\t1\nEXCEPT DISTINCT\nSELECT\n\t2\nEXCEPT\nSELECT\n\t3\nEXCEPT DISTINCT\nSELECT\n\t4\nEXCEPT\nSELECT\n\t5\n;\n"},
};
TSetup setup;
@@ -1623,7 +1613,7 @@ Y_UNIT_TEST(UnionIntersectExcept) {
Y_UNIT_TEST(Comment) {
TCases cases = {
{"/*\nmulti\nline\ncomment\n*/\npragma foo = \"true\";\npragma bar = \"1\"",
- "/*\nmulti\nline\ncomment\n*/\nPRAGMA foo = 'true';\nPRAGMA bar = '1';\n"},
+ "/*\nmulti\nline\ncomment\n*/\nPRAGMA foo = 'true';\nPRAGMA bar = '1';\n"},
};
TSetup setup;
@@ -1633,15 +1623,15 @@ Y_UNIT_TEST(Comment) {
Y_UNIT_TEST(CommentAfterLastSelect) {
TCases cases = {
{"SELECT 1--comment\n",
- "SELECT\n\t1 --comment\n;\n"},
+ "SELECT\n\t1 --comment\n;\n"},
{"SELECT 1\n\n--comment\n",
- "SELECT\n\t1\n\n--comment\n;\n"},
+ "SELECT\n\t1\n\n--comment\n;\n"},
{"SELECT 1\n\n--comment",
- "SELECT\n\t1\n\n--comment\n;\n"},
+ "SELECT\n\t1\n\n--comment\n;\n"},
{"SELECT * FROM Input /* comment */\n\n\n",
- "SELECT\n\t*\nFROM\n\tInput /* comment */\n;\n"},
+ "SELECT\n\t*\nFROM\n\tInput /* comment */\n;\n"},
{"SELECT * FROM Input\n\n\n\n/* comment */\n\n\n",
- "SELECT\n\t*\nFROM\n\tInput\n\n/* comment */;\n"},
+ "SELECT\n\t*\nFROM\n\tInput\n\n/* comment */;\n"},
};
TSetup setup;
@@ -1651,11 +1641,11 @@ Y_UNIT_TEST(CommentAfterLastSelect) {
Y_UNIT_TEST(WindowFunctionInsideExpr) {
TCases cases = {
{"SELECT CAST(ROW_NUMBER() OVER () AS String) AS x,\nFROM Input;",
- "SELECT\n\tCAST(ROW_NUMBER() OVER () AS String) AS x,\nFROM\n\tInput\n;\n"},
+ "SELECT\n\tCAST(ROW_NUMBER() OVER () AS String) AS x,\nFROM\n\tInput\n;\n"},
{"SELECT CAST(ROW_NUMBER() OVER (PARTITION BY key) AS String) AS x,\nFROM Input;",
- "SELECT\n\tCAST(\n\t\tROW_NUMBER() OVER (\n\t\t\tPARTITION BY\n\t\t\t\tkey\n\t\t) AS String\n\t) AS x,\nFROM\n\tInput\n;\n"},
+ "SELECT\n\tCAST(\n\t\tROW_NUMBER() OVER (\n\t\t\tPARTITION BY\n\t\t\t\tkey\n\t\t) AS String\n\t) AS x,\nFROM\n\tInput\n;\n"},
{"SELECT CAST(ROW_NUMBER() OVER (users) AS String) AS x,\nFROM Input;",
- "SELECT\n\tCAST(\n\t\tROW_NUMBER() OVER (\n\t\t\tusers\n\t\t) AS String\n\t) AS x,\nFROM\n\tInput\n;\n"},
+ "SELECT\n\tCAST(\n\t\tROW_NUMBER() OVER (\n\t\t\tusers\n\t\t) AS String\n\t) AS x,\nFROM\n\tInput\n;\n"},
};
TSetup setup;
@@ -1665,9 +1655,9 @@ Y_UNIT_TEST(WindowFunctionInsideExpr) {
Y_UNIT_TEST(ExistsExpr) {
TCases cases = {
{"SELECT EXISTS (SELECT 1);",
- "SELECT\n\tEXISTS (\n\t\tSELECT\n\t\t\t1\n\t)\n;\n"},
+ "SELECT\n\tEXISTS (\n\t\tSELECT\n\t\t\t1\n\t)\n;\n"},
{"SELECT CAST(EXISTS(SELECT 1) AS Int) AS x,\nFROM Input;",
- "SELECT\n\tCAST(\n\t\tEXISTS (\n\t\t\tSELECT\n\t\t\t\t1\n\t\t) AS Int\n\t) AS x,\nFROM\n\tInput\n;\n"},
+ "SELECT\n\tCAST(\n\t\tEXISTS (\n\t\t\tSELECT\n\t\t\t\t1\n\t\t) AS Int\n\t) AS x,\nFROM\n\tInput\n;\n"},
};
TSetup setup;
@@ -1677,7 +1667,7 @@ Y_UNIT_TEST(ExistsExpr) {
Y_UNIT_TEST(LambdaInsideExpr) {
TCases cases = {
{"SELECT ListMap(AsList(1,2),($x)->{return $x+1});",
- "SELECT\n\tListMap(\n\t\tAsList(1, 2), ($x) -> {\n\t\t\tRETURN $x + 1;\n\t\t}\n\t)\n;\n"},
+ "SELECT\n\tListMap(\n\t\tAsList(1, 2), ($x) -> {\n\t\t\tRETURN $x + 1;\n\t\t}\n\t)\n;\n"},
};
TSetup setup;
@@ -1687,11 +1677,11 @@ Y_UNIT_TEST(LambdaInsideExpr) {
Y_UNIT_TEST(CaseExpr) {
TCases cases = {
{"SELECT CASE WHEN 1 == 2 THEN 3 WHEN 4 == 5 THEN 6 WHEN 7 == 8 THEN 9 ELSE 10 END;",
- "SELECT\n\tCASE\n\t\tWHEN 1 == 2 THEN 3\n\t\tWHEN 4 == 5 THEN 6\n\t\tWHEN 7 == 8 THEN 9\n\t\tELSE 10\n\tEND\n;\n"},
+ "SELECT\n\tCASE\n\t\tWHEN 1 == 2 THEN 3\n\t\tWHEN 4 == 5 THEN 6\n\t\tWHEN 7 == 8 THEN 9\n\t\tELSE 10\n\tEND\n;\n"},
{"SELECT CAST(CASE WHEN 1 == 2 THEN 3 WHEN 4 == 5 THEN 6 ELSE 10 END AS String);",
- "SELECT\n\tCAST(\n\t\tCASE\n\t\t\tWHEN 1 == 2 THEN 3\n\t\t\tWHEN 4 == 5 THEN 6\n\t\t\tELSE 10\n\t\tEND AS String\n\t)\n;\n"},
+ "SELECT\n\tCAST(\n\t\tCASE\n\t\t\tWHEN 1 == 2 THEN 3\n\t\t\tWHEN 4 == 5 THEN 6\n\t\t\tELSE 10\n\t\tEND AS String\n\t)\n;\n"},
{"SELECT CASE x WHEN 1 THEN 2 WHEN 3 THEN 4 WHEN 5 THEN 6 ELSE 10 END;",
- "SELECT\n\tCASE x\n\t\tWHEN 1 THEN 2\n\t\tWHEN 3 THEN 4\n\t\tWHEN 5 THEN 6\n\t\tELSE 10\n\tEND\n;\n"},
+ "SELECT\n\tCASE x\n\t\tWHEN 1 THEN 2\n\t\tWHEN 3 THEN 4\n\t\tWHEN 5 THEN 6\n\t\tELSE 10\n\tEND\n;\n"},
};
TSetup setup;
@@ -1701,13 +1691,13 @@ Y_UNIT_TEST(CaseExpr) {
Y_UNIT_TEST(MultiTokenOperations) {
TCases cases = {
{"$x = 1 >>| 2;",
- "$x = 1 >>| 2;\n"},
+ "$x = 1 >>| 2;\n"},
{"$x = 1 >> 2;",
- "$x = 1 >> 2;\n"},
+ "$x = 1 >> 2;\n"},
{"$x = 1 ?? 2;",
- "$x = 1 ?? 2;\n"},
+ "$x = 1 ?? 2;\n"},
{"$x = 1 > /*comment*/ > /*comment*/ | 2;",
- "$x = 1 > /*comment*/> /*comment*/| 2;\n"},
+ "$x = 1 > /*comment*/> /*comment*/| 2;\n"},
};
TSetup setup;
@@ -1717,37 +1707,37 @@ Y_UNIT_TEST(MultiTokenOperations) {
Y_UNIT_TEST(OperatorNewlines) {
TCases cases = {
{"$x = TRUE\nOR\nFALSE;",
- "$x = TRUE\n\tOR\n\tFALSE;\n"},
+ "$x = TRUE\n\tOR\n\tFALSE;\n"},
{"$x = TRUE OR\nFALSE;",
- "$x = TRUE\n\tOR FALSE;\n"},
+ "$x = TRUE\n\tOR FALSE;\n"},
{"$x = TRUE\nOR FALSE;",
- "$x = TRUE\n\tOR FALSE;\n"},
+ "$x = TRUE\n\tOR FALSE;\n"},
{"$x = 1+\n2*\n3;",
- "$x = 1\n\t+ 2\n\t* 3;\n"},
+ "$x = 1\n\t+ 2\n\t* 3;\n"},
{"$x = 1\n+\n2\n*3\n*5\n+\n4;",
- "$x = 1\n\t+\n\t2\n\t* 3\n\t* 5\n\t+\n\t4;\n"},
+ "$x = 1\n\t+\n\t2\n\t* 3\n\t* 5\n\t+\n\t4;\n"},
{"$x = 1\n+2+3+4\n+5+6+7+\n\n8+9+10;",
- "$x = 1\n\t+ 2 + 3 + 4\n\t+ 5 + 6 + 7\n\t+ 8 + 9 + 10;\n"},
+ "$x = 1\n\t+ 2 + 3 + 4\n\t+ 5 + 6 + 7\n\t+ 8 + 9 + 10;\n"},
{"$x = TRUE\nAND\nTRUE OR\nFALSE\nAND TRUE\nOR FALSE\nAND TRUE\nOR FALSE;",
- "$x = TRUE\n\tAND\n\tTRUE\n\tOR FALSE\n\tAND TRUE\n\tOR FALSE\n\tAND TRUE\n\tOR FALSE;\n"},
+ "$x = TRUE\n\tAND\n\tTRUE\n\tOR FALSE\n\tAND TRUE\n\tOR FALSE\n\tAND TRUE\n\tOR FALSE;\n"},
{"$x = 1 -- comment\n+ 2;",
- "$x = 1 -- comment\n\t+ 2;\n"},
+ "$x = 1 -- comment\n\t+ 2;\n"},
{"$x = 1 -- comment\n+ -- comment\n2;",
- "$x = 1 -- comment\n\t+ -- comment\n\t2;\n"},
+ "$x = 1 -- comment\n\t+ -- comment\n\t2;\n"},
{"$x = 1 + -- comment\n2;",
- "$x = 1\n\t+ -- comment\n\t2;\n"},
+ "$x = 1\n\t+ -- comment\n\t2;\n"},
{"$x = 1\n>\n>\n|\n2;",
- "$x = 1\n\t>>|\n\t2;\n"},
+ "$x = 1\n\t>>|\n\t2;\n"},
{"$x = 1\n?? 2 ??\n3\n??\n4 +\n5\n*\n6 +\n7 ??\n8;",
- "$x = 1 ??\n\t2 ??\n\t3\n\t??\n\t4\n\t+ 5\n\t*\n\t6\n\t+ 7 ??\n\t8;\n"},
+ "$x = 1 ??\n\t2 ??\n\t3\n\t??\n\t4\n\t+ 5\n\t*\n\t6\n\t+ 7 ??\n\t8;\n"},
{"select 1 ??\n2 ?? 3,\n4;",
- "SELECT\n\t1 ??\n\t\t2 ?? 3,\n\t4\n;\n"},
+ "SELECT\n\t1 ??\n\t\t2 ?? 3,\n\t4\n;\n"},
{"select 1\n?? 2 ?? 3,\n4;",
- "SELECT\n\t1 ??\n\t\t2 ?? 3,\n\t4\n;\n"},
+ "SELECT\n\t1 ??\n\t\t2 ?? 3,\n\t4\n;\n"},
{"select 1\n?? 2 ??\n3 ?? 4,\n5;",
- "SELECT\n\t1 ??\n\t\t2 ??\n\t\t3 ?? 4,\n\t5\n;\n"},
+ "SELECT\n\t1 ??\n\t\t2 ??\n\t\t3 ?? 4,\n\t5\n;\n"},
{"select 1\n?? 2 ?? 3 ??\n4 ?? 5,\n6;",
- "SELECT\n\t1 ??\n\t\t2 ?? 3 ??\n\t\t4 ?? 5,\n\t6\n;\n"},
+ "SELECT\n\t1 ??\n\t\t2 ?? 3 ??\n\t\t4 ?? 5,\n\t6\n;\n"},
};
TSetup setup;
@@ -1757,29 +1747,29 @@ Y_UNIT_TEST(OperatorNewlines) {
Y_UNIT_TEST(ObfuscateSelect) {
TCases cases = {
{"select 1;",
- "SELECT\n\t0\n;\n"},
+ "SELECT\n\t0\n;\n"},
{"select true;",
- "SELECT\n\tFALSE\n;\n"},
+ "SELECT\n\tFALSE\n;\n"},
{"select 'foo';",
- "SELECT\n\t'str'\n;\n"},
+ "SELECT\n\t'str'\n;\n"},
{"select 3.0;",
- "SELECT\n\t0.0\n;\n"},
+ "SELECT\n\t0.0\n;\n"},
{"select col;",
- "SELECT\n\tid\n;\n"},
+ "SELECT\n\tid\n;\n"},
{"select * from tab;",
- "SELECT\n\t*\nFROM\n\tid\n;\n"},
+ "SELECT\n\t*\nFROM\n\tid\n;\n"},
{"select cast(col as int32);",
- "SELECT\n\tCAST(id AS int32)\n;\n"},
+ "SELECT\n\tCAST(id AS int32)\n;\n"},
{"select func(col);",
- "SELECT\n\tfunc(id)\n;\n"},
+ "SELECT\n\tfunc(id)\n;\n"},
{"select mod::func(col);",
- "SELECT\n\tmod::func(id)\n;\n"},
+ "SELECT\n\tmod::func(id)\n;\n"},
{"declare $a as int32;",
- "DECLARE $id AS int32;\n"},
+ "DECLARE $id AS int32;\n"},
{"select * from `logs/of/bob` where pwd='foo';",
- "SELECT\n\t*\nFROM\n\tid\nWHERE\n\tid == 'str'\n;\n"},
+ "SELECT\n\t*\nFROM\n\tid\nWHERE\n\tid == 'str'\n;\n"},
{"select $f();",
- "SELECT\n\t$id()\n;\n"},
+ "SELECT\n\t$id()\n;\n"},
};
TSetup setup;
@@ -1789,15 +1779,15 @@ Y_UNIT_TEST(ObfuscateSelect) {
Y_UNIT_TEST(ObfuscatePragma) {
TCases cases = {
{"pragma a=1",
- "PRAGMA id = 0;\n"},
+ "PRAGMA id = 0;\n"},
{"pragma a='foo';",
- "PRAGMA id = 'str';\n"},
+ "PRAGMA id = 'str';\n"},
{"pragma a=true;",
- "PRAGMA id = FALSE;\n"},
+ "PRAGMA id = FALSE;\n"},
{"pragma a=$foo;",
- "PRAGMA id = $id;\n"},
+ "PRAGMA id = $id;\n"},
{"pragma a=foo;",
- "PRAGMA id = id;\n"},
+ "PRAGMA id = id;\n"},
};
TSetup setup;
@@ -1805,31 +1795,22 @@ Y_UNIT_TEST(ObfuscatePragma) {
}
Y_UNIT_TEST(CreateView) {
- TCases cases = {{
- "creAte vIEw TheView As SELect 1",
- "CREATE VIEW TheView AS\nSELECT\n\t1\n;\n"
- }, {
- "creAte vIEw If Not ExIsTs TheView As SELect 1",
- "CREATE VIEW IF NOT EXISTS TheView AS\nSELECT\n\t1\n;\n"
- }, {
- "creAte vIEw TheView wiTh (option = tRuE) As SELect 1",
- "CREATE VIEW TheView WITH (option = TRUE) AS\nSELECT\n\t1\n;\n"
- }
- };
+ TCases cases = {{"creAte vIEw TheView As SELect 1",
+ "CREATE VIEW TheView AS\nSELECT\n\t1\n;\n"},
+ {"creAte vIEw If Not ExIsTs TheView As SELect 1",
+ "CREATE VIEW IF NOT EXISTS TheView AS\nSELECT\n\t1\n;\n"},
+ {"creAte vIEw TheView wiTh (option = tRuE) As SELect 1",
+ "CREATE VIEW TheView WITH (option = TRUE) AS\nSELECT\n\t1\n;\n"}};
TSetup setup;
setup.Run(cases);
}
Y_UNIT_TEST(DropView) {
- TCases cases = {{
- "dRop viEW theVIEW",
- "DROP VIEW theVIEW;\n"
- }, {
- "dRop viEW iF EXistS theVIEW",
- "DROP VIEW IF EXISTS theVIEW;\n"
- }
- };
+ TCases cases = {{"dRop viEW theVIEW",
+ "DROP VIEW theVIEW;\n"},
+ {"dRop viEW iF EXistS theVIEW",
+ "DROP VIEW IF EXISTS theVIEW;\n"}};
TSetup setup;
setup.Run(cases);
@@ -1838,15 +1819,15 @@ Y_UNIT_TEST(DropView) {
Y_UNIT_TEST(ResourcePoolOperations) {
TCases cases = {
{"creAte reSourCe poOl naMe With (a = \"b\")",
- "CREATE RESOURCE POOL naMe WITH (a = 'b');\n"},
+ "CREATE RESOURCE POOL naMe WITH (a = 'b');\n"},
{"create resource pool eds with (a=\"a\",b=\"b\",c = true)",
- "CREATE RESOURCE POOL eds WITH (\n\ta = 'a',\n\tb = 'b',\n\tc = TRUE\n);\n"},
+ "CREATE RESOURCE POOL eds WITH (\n\ta = 'a',\n\tb = 'b',\n\tc = TRUE\n);\n"},
{"alTer reSOurcE poOl naMe resEt (b, c), seT (x=y, z=false)",
- "ALTER RESOURCE POOL naMe\n\tRESET (b, c),\n\tSET (x = y, z = FALSE)\n;\n"},
+ "ALTER RESOURCE POOL naMe\n\tRESET (b, c),\n\tSET (x = y, z = FALSE)\n;\n"},
{"alter resource pool eds reset (a), set (x=y)",
- "ALTER RESOURCE POOL eds\n\tRESET (a),\n\tSET (x = y)\n;\n"},
+ "ALTER RESOURCE POOL eds\n\tRESET (a),\n\tSET (x = y)\n;\n"},
{"dRop reSourCe poOl naMe",
- "DROP RESOURCE POOL naMe;\n"},
+ "DROP RESOURCE POOL naMe;\n"},
};
TSetup setup;
@@ -1856,21 +1837,21 @@ Y_UNIT_TEST(ResourcePoolOperations) {
Y_UNIT_TEST(BackupCollectionOperations) {
TCases cases = {
{"creAte BackuP colLection `-naMe` wIth (a = \"b\")",
- "CREATE BACKUP COLLECTION `-naMe` WITH (a = 'b');\n"},
+ "CREATE BACKUP COLLECTION `-naMe` WITH (a = 'b');\n"},
{"creAte BackuP colLection `-naMe` DATabase wIth (a = 'b')",
- "CREATE BACKUP COLLECTION `-naMe` DATABASE WITH (a = 'b');\n"},
+ "CREATE BACKUP COLLECTION `-naMe` DATABASE WITH (a = 'b');\n"},
{"creAte BackuP colLection `-naMe` ( tabLe `tbl1` , TablE `tbl2`) wIth (a = \"b\")",
- "CREATE BACKUP COLLECTION `-naMe` (TABLE `tbl1`, TABLE `tbl2`) WITH (a = 'b');\n"},
+ "CREATE BACKUP COLLECTION `-naMe` (TABLE `tbl1`, TABLE `tbl2`) WITH (a = 'b');\n"},
{"alTer bACKuP coLLECTION naMe resEt (b, c), seT (x=y, z=false)",
- "ALTER BACKUP COLLECTION naMe\n\tRESET (b, c),\n\tSET (x = y, z = FALSE)\n;\n"},
+ "ALTER BACKUP COLLECTION naMe\n\tRESET (b, c),\n\tSET (x = y, z = FALSE)\n;\n"},
{"alTer bACKuP coLLECTION naMe aDD DATAbase",
- "ALTER BACKUP COLLECTION naMe\n\tADD DATABASE\n;\n"},
+ "ALTER BACKUP COLLECTION naMe\n\tADD DATABASE\n;\n"},
{"alTer bACKuP coLLECTION naMe DRoP \n\n DaTAbase",
- "ALTER BACKUP COLLECTION naMe\n\tDROP DATABASE\n;\n"},
+ "ALTER BACKUP COLLECTION naMe\n\tDROP DATABASE\n;\n"},
{"alTer bACKuP coLLECTION naMe add \n\n tablE\n\tsometable,drOp TABle `other`",
- "ALTER BACKUP COLLECTION naMe\n\tADD TABLE sometable,\n\tDROP TABLE `other`\n;\n"},
+ "ALTER BACKUP COLLECTION naMe\n\tADD TABLE sometable,\n\tDROP TABLE `other`\n;\n"},
{"DROP backup collectiOn `/some/path`",
- "DROP BACKUP COLLECTION `/some/path`;\n"},
+ "DROP BACKUP COLLECTION `/some/path`;\n"},
};
TSetup setup;
@@ -1880,10 +1861,9 @@ Y_UNIT_TEST(BackupCollectionOperations) {
Y_UNIT_TEST(Analyze) {
TCases cases = {
{"analyze table (col1, col2, col3)",
- "ANALYZE table (col1, col2, col3);\n"},
+ "ANALYZE table (col1, col2, col3);\n"},
{"analyze table",
- "ANALYZE table;\n"}
- };
+ "ANALYZE table;\n"}};
TSetup setup;
setup.Run(cases);
@@ -1892,15 +1872,15 @@ Y_UNIT_TEST(Analyze) {
Y_UNIT_TEST(ResourcePoolClassifierOperations) {
TCases cases = {
{"creAte reSourCe poOl ClaSsiFIer naMe With (a = \"b\")",
- "CREATE RESOURCE POOL CLASSIFIER naMe WITH (a = 'b');\n"},
+ "CREATE RESOURCE POOL CLASSIFIER naMe WITH (a = 'b');\n"},
{"create resource pool classifier eds with (a=\"a\",b=\"b\",c = true)",
- "CREATE RESOURCE POOL CLASSIFIER eds WITH (\n\ta = 'a',\n\tb = 'b',\n\tc = TRUE\n);\n"},
+ "CREATE RESOURCE POOL CLASSIFIER eds WITH (\n\ta = 'a',\n\tb = 'b',\n\tc = TRUE\n);\n"},
{"alTer reSOurcE poOl ClaSsiFIer naMe resEt (b, c), seT (x=y, z=false)",
- "ALTER RESOURCE POOL CLASSIFIER naMe\n\tRESET (b, c),\n\tSET (x = y, z = FALSE)\n;\n"},
+ "ALTER RESOURCE POOL CLASSIFIER naMe\n\tRESET (b, c),\n\tSET (x = y, z = FALSE)\n;\n"},
{"alter resource pool classifier eds reset (a), set (x=y)",
- "ALTER RESOURCE POOL CLASSIFIER eds\n\tRESET (a),\n\tSET (x = y)\n;\n"},
+ "ALTER RESOURCE POOL CLASSIFIER eds\n\tRESET (a),\n\tSET (x = y)\n;\n"},
{"dRop reSourCe poOl ClaSsiFIer naMe",
- "DROP RESOURCE POOL CLASSIFIER naMe;\n"},
+ "DROP RESOURCE POOL CLASSIFIER naMe;\n"},
};
TSetup setup;
@@ -1910,7 +1890,7 @@ Y_UNIT_TEST(ResourcePoolClassifierOperations) {
Y_UNIT_TEST(Backup) {
TCases cases = {
{"\tBaCKup\n\n TestCollection incremENTAl",
- "BACKUP TestCollection INCREMENTAL;\n"},
+ "BACKUP TestCollection INCREMENTAL;\n"},
};
TSetup setup;
@@ -1920,7 +1900,7 @@ Y_UNIT_TEST(Backup) {
Y_UNIT_TEST(Restore) {
TCases cases = {
{"resToRe\n\n\n TestCollection aT\n \t \n '2024-06-16_20-14-02'",
- "RESTORE TestCollection AT '2024-06-16_20-14-02';\n"},
+ "RESTORE TestCollection AT '2024-06-16_20-14-02';\n"},
};
TSetup setup;
@@ -1930,7 +1910,7 @@ Y_UNIT_TEST(Restore) {
Y_UNIT_TEST(AnsiLexer) {
TCases cases = {
{"select 'a', \"a\" from (select 1 as \"a\")",
- "SELECT\n\t'a',\n\t\"a\"\nFROM (\n\tSELECT\n\t\t1 AS \"a\"\n);\n"},
+ "SELECT\n\t'a',\n\t\"a\"\nFROM (\n\tSELECT\n\t\t1 AS \"a\"\n);\n"},
};
TSetup setup(/* ansiLexer = */ true);
@@ -1940,11 +1920,11 @@ Y_UNIT_TEST(AnsiLexer) {
Y_UNIT_TEST(ValueConstructor) {
TCases cases = {
{"select Enum('a', Enum<'a','b'>)",
- "SELECT\n\tEnum('a', Enum<'a', 'b'>)\n;\n"},
+ "SELECT\n\tEnum('a', Enum<'a', 'b'>)\n;\n"},
{"select Variant(true, '0', Variant<bool>)",
- "SELECT\n\tVariant(TRUE, '0', Variant<bool>)\n;\n"},
+ "SELECT\n\tVariant(TRUE, '0', Variant<bool>)\n;\n"},
{"select Callable(Callable<(Int32)->Int32>,($x)->($x))(0)",
- "SELECT\n\tCallable(Callable<(Int32) -> Int32>, ($x) -> ($x))(0)\n;\n"},
+ "SELECT\n\tCallable(Callable<(Int32) -> Int32>, ($x) -> ($x))(0)\n;\n"},
};
TSetup setup;
@@ -1952,54 +1932,38 @@ Y_UNIT_TEST(ValueConstructor) {
}
Y_UNIT_TEST(CreateStreamingQuery) {
- TCases cases = {{
- "creAte sTReaMing qUErY TheQuery As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
- "CREATE STREAMING QUERY TheQuery AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"
- }, {
- "creAte sTReaMing qUErY If Not ExIsTs TheQuery As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
- "CREATE STREAMING QUERY IF NOT EXISTS TheQuery AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"
- }, {
- "creAte oR ReplAce sTReaMing qUErY TheQuery As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
- "CREATE OR REPLACE STREAMING QUERY TheQuery AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"
- }, {
- "creAte sTReaMing qUErY TheQuery wiTh (option = tRuE) As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
- "CREATE STREAMING QUERY TheQuery WITH (\n\toption = TRUE\n) AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"
- }
- };
+ TCases cases = {{"creAte sTReaMing qUErY TheQuery As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
+ "CREATE STREAMING QUERY TheQuery AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"},
+ {"creAte sTReaMing qUErY If Not ExIsTs TheQuery As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
+ "CREATE STREAMING QUERY IF NOT EXISTS TheQuery AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"},
+ {"creAte oR ReplAce sTReaMing qUErY TheQuery As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
+ "CREATE OR REPLACE STREAMING QUERY TheQuery AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"},
+ {"creAte sTReaMing qUErY TheQuery wiTh (option = tRuE) As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
+ "CREATE STREAMING QUERY TheQuery WITH (\n\toption = TRUE\n) AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"}};
TSetup setup;
setup.Run(cases);
}
Y_UNIT_TEST(AlterStreamingQuery) {
- TCases cases = {{
- "aLTer sTReaMing qUErY TheQuery As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
- "ALTER STREAMING QUERY TheQuery AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"
- }, {
- "aLTer sTReaMing qUErY If ExIsTs TheQuery As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
- "ALTER STREAMING QUERY IF EXISTS TheQuery AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"
- }, {
- "aLTer sTReaMing qUErY TheQuery sEt (option = tRuE)",
- "ALTER STREAMING QUERY TheQuery SET (\n\toption = TRUE\n);\n"
- }, {
- "aLTer sTReaMing qUErY TheQuery sEt (option = tRuE) As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
- "ALTER STREAMING QUERY TheQuery SET (\n\toption = TRUE\n) AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"
- }
- };
+ TCases cases = {{"aLTer sTReaMing qUErY TheQuery As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
+ "ALTER STREAMING QUERY TheQuery AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"},
+ {"aLTer sTReaMing qUErY If ExIsTs TheQuery As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
+ "ALTER STREAMING QUERY IF EXISTS TheQuery AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"},
+ {"aLTer sTReaMing qUErY TheQuery sEt (option = tRuE)",
+ "ALTER STREAMING QUERY TheQuery SET (\n\toption = TRUE\n);\n"},
+ {"aLTer sTReaMing qUErY TheQuery sEt (option = tRuE) As dO BeGin ;;\n\nInSeRT iNTo TheTable SELect 1;; eNd Do",
+ "ALTER STREAMING QUERY TheQuery SET (\n\toption = TRUE\n) AS DO BEGIN\nINSERT INTO TheTable\nSELECT\n\t1\n;\nEND DO;\n"}};
TSetup setup;
setup.Run(cases);
}
Y_UNIT_TEST(DropStreamingQuery) {
- TCases cases = {{
- "dRop sTReaMing qUErY TheQuery",
- "DROP STREAMING QUERY TheQuery;\n"
- } , {
- "dRop sTReaMing qUErY If ExIsTs TheQuery",
- "DROP STREAMING QUERY IF EXISTS TheQuery;\n"
- }
- };
+ TCases cases = {{"dRop sTReaMing qUErY TheQuery",
+ "DROP STREAMING QUERY TheQuery;\n"},
+ {"dRop sTReaMing qUErY If ExIsTs TheQuery",
+ "DROP STREAMING QUERY IF EXISTS TheQuery;\n"}};
TSetup setup;
setup.Run(cases);
@@ -2044,7 +2008,7 @@ END DEFINE;
}
Y_UNIT_TEST(InlineSubquery) {
- TString input = R"sql(
+ TString input = R"sql(
SELECT (SELECT 1);
SELECT (SELECT * FROM t WHERE p);
SELECT * FROM t WHERE x > (SELECT 1);
diff --git a/yql/essentials/sql/v1/format/sql_format_ut_antlr4.cpp b/yql/essentials/sql/v1/format/sql_format_ut_antlr4.cpp
index 9e5be312a7f..adf95b48508 100644
--- a/yql/essentials/sql/v1/format/sql_format_ut_antlr4.cpp
+++ b/yql/essentials/sql/v1/format/sql_format_ut_antlr4.cpp
@@ -7,7 +7,6 @@
#include <yql/essentials/sql/v1/proto_parser/antlr4/proto_parser.h>
#include <yql/essentials/sql/v1/proto_parser/antlr4_ansi/proto_parser.h>
-
#include <google/protobuf/arena.h>
#include <util/string/subst.h>
#include <util/string/join.h>
@@ -65,8 +64,8 @@ struct TSetup {
NSQLFormat::ISqlFormatter::TPtr Formatter;
};
-}
+} // namespace
Y_UNIT_TEST_SUITE(CheckSqlFormatter) {
- #include "sql_format_ut.h"
-}
+#include "sql_format_ut.h"
+} // Y_UNIT_TEST_SUITE(CheckSqlFormatter)
diff --git a/yql/essentials/sql/v1/format/ya.make b/yql/essentials/sql/v1/format/ya.make
index a6d5ec0537c..0ee8aed6a85 100644
--- a/yql/essentials/sql/v1/format/ya.make
+++ b/yql/essentials/sql/v1/format/ya.make
@@ -1,5 +1,6 @@
LIBRARY()
+ENABLE(YQL_STYLE_CPP)
SRCS(
sql_format.cpp