summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql_query.cpp
diff options
context:
space:
mode:
authorditimizhev <[email protected]>2025-03-31 11:36:01 +0300
committerditimizhev <[email protected]>2025-03-31 11:47:59 +0300
commit8b6fc14354f419cb8f0f71a4160b045c4ed37ab4 (patch)
tree8661db17c3e89288b642868d0d9ab040a1c8fe22 /yql/essentials/sql/v1/sql_query.cpp
parent85508809abdcad8b11787cbef5c73ca72c4a1e52 (diff)
Error for batch operations with RETURNING
commit_hash:23ea6a6a3224e161a1998aceb2162dfe84744831
Diffstat (limited to 'yql/essentials/sql/v1/sql_query.cpp')
-rw-r--r--yql/essentials/sql/v1/sql_query.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/yql/essentials/sql/v1/sql_query.cpp b/yql/essentials/sql/v1/sql_query.cpp
index b59ae88c4b6..ec72610a244 100644
--- a/yql/essentials/sql/v1/sql_query.cpp
+++ b/yql/essentials/sql/v1/sql_query.cpp
@@ -3521,14 +3521,20 @@ TNodePtr TSqlQuery::Build(const TRule_delete_stmt& stmt) {
TSourcePtr source = BuildTableSource(Ctx.Pos(), table);
+ const bool isBatch = stmt.HasBlock1();
TNodePtr options = nullptr;
+
if (stmt.HasBlock6()) {
+ if (isBatch) {
+ Ctx.Error(GetPos(stmt.GetToken2()))
+ << "BATCH DELETE is unsupported with RETURNING";
+ return nullptr;
+ }
+
options = ReturningList(stmt.GetBlock6().GetRule_returning_columns_list1());
options = options->Y(options);
}
- const bool isBatch = stmt.HasBlock1();
-
if (stmt.HasBlock5()) {
switch (stmt.GetBlock5().Alt_case()) {
case TRule_delete_stmt_TBlock5::kAlt1: {
@@ -3585,14 +3591,20 @@ TNodePtr TSqlQuery::Build(const TRule_update_stmt& stmt) {
return nullptr;
}
+ const bool isBatch = stmt.HasBlock1();
TNodePtr options = nullptr;
+
if (stmt.HasBlock5()) {
+ if (isBatch) {
+ Ctx.Error(GetPos(stmt.GetToken2()))
+ << "BATCH UPDATE is unsupported with RETURNING";
+ return nullptr;
+ }
+
options = ReturningList(stmt.GetBlock5().GetRule_returning_columns_list1());
options = options->Y(options);
}
- const bool isBatch = stmt.HasBlock1();
-
switch (stmt.GetBlock4().Alt_case()) {
case TRule_update_stmt_TBlock4::kAlt1: {
const auto& alt = stmt.GetBlock4().GetAlt1();