summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql_ut_antlr4.cpp
diff options
context:
space:
mode:
authorAlexander Smirnov <[email protected]>2025-01-22 00:22:18 +0000
committerAlexander Smirnov <[email protected]>2025-01-22 00:22:18 +0000
commit47763d31b221c4f827cfb2d3dec8c0a23489fccc (patch)
treeead46596168eae5e9d38b6e8b770456acaf69ec9 /yql/essentials/sql/v1/sql_ut_antlr4.cpp
parentf64d8ea3633ca6e8062dd5cd795e72f107353854 (diff)
parentfbaf25eeb4ece3eafbc5f111ff230d1124b86cab (diff)
Merge branch 'rightlib' into merge-libs-250122-0020
Diffstat (limited to 'yql/essentials/sql/v1/sql_ut_antlr4.cpp')
-rw-r--r--yql/essentials/sql/v1/sql_ut_antlr4.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/sql_ut_antlr4.cpp b/yql/essentials/sql/v1/sql_ut_antlr4.cpp
index 5337f573510..05e85605ef4 100644
--- a/yql/essentials/sql/v1/sql_ut_antlr4.cpp
+++ b/yql/essentials/sql/v1/sql_ut_antlr4.cpp
@@ -287,6 +287,11 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) {
UNIT_ASSERT(SqlToYql("USE plato; SELECT REPLICATION FROM REPLICATION").IsOk());
}
+ Y_UNIT_TEST(TransferKeywordNotReservedForNames) {
+ UNIT_ASSERT(SqlToYql("USE plato; CREATE TABLE TRANSFER (TRANSFER Uint32, PRIMARY KEY (TRANSFER));").IsOk());
+ UNIT_ASSERT(SqlToYql("USE plato; SELECT TRANSFER FROM TRANSFER").IsOk());
+ }
+
Y_UNIT_TEST(SecondsKeywordNotReservedForNames) {
UNIT_ASSERT(SqlToYql("USE plato; CREATE TABLE SECONDS (SECONDS Uint32, PRIMARY KEY (SECONDS));").IsOk());
UNIT_ASSERT(SqlToYql("USE plato; SELECT SECONDS FROM SECONDS").IsOk());
@@ -8028,3 +8033,48 @@ Y_UNIT_TEST_SUITE(ColumnFamily) {
UNIT_ASSERT_STRING_CONTAINS(res.Issues.ToString(), "COMPRESSION_LEVEL value should be an integer");
}
}
+
+Y_UNIT_TEST_SUITE(Transfer) {
+ Y_UNIT_TEST(Lambda) {
+ NYql::TAstParseResult res = SqlToYql(R"( use plato;
+ -- Русский коммент, empty statement
+ ;
+
+ -- befor comment
+ $a = "А";
+
+ SELECT * FROM Input;
+
+ $b = ($x) -> { return $a || $x; };
+
+ CREATE TRANSFER `TransferName`
+ FROM `TopicName` TO `TableName`
+ USING ($x) -> {
+ -- internal comment
+ return $b($x);
+ }
+ WITH (
+ CONNECTION_STRING = "grpc://localhost:2135/?database=/Root"
+ );
+ )");
+
+ UNIT_ASSERT_C(res.IsOk(), res.Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL_C(res.Issues.Size(), 0, res.Issues.ToString());
+
+ const auto programm = GetPrettyPrint(res);
+
+ Cerr << ">>>>> Root " << programm << Endl;
+ auto expected = R"('transformLambda 'use plato;
+-- befor comment
+ $a = "А";
+$b = ($x) -> { return $a || $x; };
+$__ydb_transfer_lambda = ($x) -> {
+ -- internal comment
+ return $b($x);
+ };
+))";
+
+ UNIT_ASSERT_VALUES_UNEQUAL(TString::npos, programm.find(expected));
+
+ }
+}