summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1
diff options
context:
space:
mode:
authortesseract <[email protected]>2025-07-10 16:44:40 +0300
committertesseract <[email protected]>2025-07-10 17:03:23 +0300
commitad23f535a9e3590dffcd0cebcebbc0600c521652 (patch)
tree2fadae51e07ad37facd2f0e79f48d803d0c76040 /yql/essentials/sql/v1
parentab4a6f4beadc1b478f8c208d07226687821b5fc2 (diff)
Fixed grammar of the transfer
commit_hash:98f460965618cdddf9fc25373b20741b4e85a303
Diffstat (limited to 'yql/essentials/sql/v1')
-rw-r--r--yql/essentials/sql/v1/SQLv1.g.in4
-rw-r--r--yql/essentials/sql/v1/SQLv1Antlr4.g.in4
-rw-r--r--yql/essentials/sql/v1/format/sql_format_ut.h4
-rw-r--r--yql/essentials/sql/v1/sql_query.cpp8
4 files changed, 9 insertions, 11 deletions
diff --git a/yql/essentials/sql/v1/SQLv1.g.in b/yql/essentials/sql/v1/SQLv1.g.in
index 367eafe2b8d..d9fd70f8ab4 100644
--- a/yql/essentials/sql/v1/SQLv1.g.in
+++ b/yql/essentials/sql/v1/SQLv1.g.in
@@ -937,8 +937,8 @@ alter_replication_set_setting: SET LPAREN replication_settings RPAREN;
drop_replication_stmt: DROP ASYNC REPLICATION object_ref CASCADE?;
create_transfer_stmt: CREATE TRANSFER object_ref
- FROM object_ref TO object_ref (USING lambda_or_parameter)?
- WITH LPAREN transfer_settings RPAREN
+ FROM object_ref TO object_ref USING lambda_or_parameter
+ (WITH LPAREN transfer_settings RPAREN)?
;
lambda_or_parameter:
diff --git a/yql/essentials/sql/v1/SQLv1Antlr4.g.in b/yql/essentials/sql/v1/SQLv1Antlr4.g.in
index 99b3139dafa..95db5bbc5f6 100644
--- a/yql/essentials/sql/v1/SQLv1Antlr4.g.in
+++ b/yql/essentials/sql/v1/SQLv1Antlr4.g.in
@@ -941,8 +941,8 @@ lambda_or_parameter:
;
create_transfer_stmt: CREATE TRANSFER object_ref
- FROM object_ref TO object_ref (USING lambda_or_parameter)?
- WITH LPAREN transfer_settings RPAREN
+ FROM object_ref TO object_ref USING lambda_or_parameter
+ (WITH LPAREN transfer_settings RPAREN)?
;
transfer_settings: transfer_settings_entry (COMMA transfer_settings_entry)*;
diff --git a/yql/essentials/sql/v1/format/sql_format_ut.h b/yql/essentials/sql/v1/format/sql_format_ut.h
index 7f77d456a15..b4986c6aaf1 100644
--- a/yql/essentials/sql/v1/format/sql_format_ut.h
+++ b/yql/essentials/sql/v1/format/sql_format_ut.h
@@ -417,14 +417,14 @@ Y_UNIT_TEST(AsyncReplication) {
Y_UNIT_TEST(Transfer) {
TCases cases = {
- {"create transfer user from topic1 to table1 with (user='foo')",
- "CREATE TRANSFER user FROM topic1 TO table1 WITH (user = 'foo');\n"},
{"alter transfer user set (user='foo')",
"ALTER TRANSFER user SET (user = 'foo');\n"},
{"drop transfer user",
"DROP TRANSFER user;\n"},
{"drop transfer user cascade",
"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) -> { $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 $xxx with (user='foo')",
diff --git a/yql/essentials/sql/v1/sql_query.cpp b/yql/essentials/sql/v1/sql_query.cpp
index d77500463d5..5461ec09de0 100644
--- a/yql/essentials/sql/v1/sql_query.cpp
+++ b/yql/essentials/sql/v1/sql_query.cpp
@@ -1855,7 +1855,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
std::map<TString, TNodePtr> settings;
TSqlExpression expr(Ctx_, Mode_);
- if (!TransferSettings(settings, node.GetRule_transfer_settings11(), expr, true)) {
+ if (node.GetBlock10().HasRule_transfer_settings3() && !TransferSettings(settings, node.GetBlock10().GetRule_transfer_settings3(), expr, true)) {
return false;
}
@@ -1863,10 +1863,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
const TString source = Id(node.GetRule_object_ref5().GetRule_id_or_at2(), *this).second;
const TString target = Id(node.GetRule_object_ref7().GetRule_id_or_at2(), *this).second;
TString transformLambda;
- if (node.GetBlock8().HasRule_lambda_or_parameter2()) {
- if (!ParseTransferLambda(transformLambda, node.GetBlock8().GetRule_lambda_or_parameter2())) {
- return false;
- }
+ if (!ParseTransferLambda(transformLambda, node.GetRule_lambda_or_parameter9())) {
+ return false;
}
AddStatementToBlocks(blocks, BuildCreateTransfer(Ctx_.Pos(), BuildTablePath(prefixPath, id),