Changeset: c45ac716ac2b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c45ac716ac2b
Added Files:
sql/test/BugTracker-2025/Tests/7623_update_returning.test
Modified Files:
sql/backends/monet5/rel_bin.c
sql/test/BugTracker-2025/Tests/All
Branch: Mar2025
Log Message:
also handle returning for updates involving indices
diffs (42 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -6655,6 +6655,7 @@ rel2bin_update(backend *be, sql_rel *rel
node *m;
sql_rel *tr = rel->l, *prel = rel->r;
sql_table *t = NULL;
+ bool needs_returning = rel->returning;
if ((rel->flag&UPD_COMP)) { /* special case ! */
idx_ups = 1;
@@ -6754,7 +6755,7 @@ rel2bin_update(backend *be, sql_rel *rel
}
stmt* returning = NULL;
- if (rel->returning) {
+ if (needs_returning) {
sql_rel* b = rel->l;
int refcnt = b->ref.refcnt; // HACK: forces recalculation of
base columns since they are assumed to be updated
b->ref.refcnt = 1;
diff --git a/sql/test/BugTracker-2025/Tests/7623_update_returning.test
b/sql/test/BugTracker-2025/Tests/7623_update_returning.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2025/Tests/7623_update_returning.test
@@ -0,0 +1,9 @@
+statement ok
+CREATE TABLE "emp" (
+"name" VARCHAR(20) NOT NULL,
+"age" INTEGER,
+CONSTRAINT "emp_name_pkey" PRIMARY KEY ("name")
+)
+
+statement ok
+UPDATE emp SET name = 'aa' WHERE age = 10 RETURNING age
diff --git a/sql/test/BugTracker-2025/Tests/All
b/sql/test/BugTracker-2025/Tests/All
--- a/sql/test/BugTracker-2025/Tests/All
+++ b/sql/test/BugTracker-2025/Tests/All
@@ -3,3 +3,4 @@ 7614_join_reordering
7615_join_reordering_2
7616_join_reordering_3
7621_count_case_crash
+7623_update_returning
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]