Changeset: b3cea6ea4502 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b3cea6ea4502
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/server/rel_updates.c
Branch: returning
Log Message:

move rel_dup


diffs (24 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,7 +6655,6 @@ rel2bin_delete(backend *be, sql_rel *rel
 
        if (rel->r) { /* first construct the deletes relation */
                stmt *rows = subrel_bin(be, rel->r, refs);
-               (void) rel_dup(((sql_rel*) rel->r)->l); // rel_dup in case 
returning
                rows = subrel_project(be, rows, refs, rel->r);
                if (!rows)
                        return NULL;
diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c
--- a/sql/server/rel_updates.c
+++ b/sql/server/rel_updates.c
@@ -1317,6 +1317,9 @@ delete_table(sql_query *query, dlist *qn
                        list *pexps = sa_list(sql->sa);
                        for (dnode *n = opt_returning->h; n; n = n->next) {
                                sql_rel* inner = r->l;
+                               sql_rel* sel = ((sql_rel*) r->r)->l;
+                               assert(is_select(sel->op));
+                               (void) rel_dup (sel); // required to prevent 
recalculating select in rel2bin_delete
                                sql_exp *ce = rel_column_exp(query, &inner, 
n->data.sym, sql_sel | sql_no_subquery | sql_update_set);
                                if (ce == NULL)
                                        return sql_error(sql, 02, 
SQLSTATE(42000) "aggregate functions and subqueries are not allowed in 
RETURNING clause");
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to