Changeset: 90dc8b75f110 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/90dc8b75f110
Modified Files:
        sql/server/rel_updates.c
Branch: default
Log Message:

properly cleanup query before handling return clause


diffs (40 lines):

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
@@ -1256,7 +1256,6 @@ update_table(sql_query *query, dlist *qn
                        res = rel_crossproduct(sql->sa, res, tables, op_join);
                        set_single(res);
                }
-               query_push_outer(query, res, sql_where);
                if (opt_where) {
                        if (!(r = rel_logical_exp(query, res, opt_where, 
sql_where)))
                                return NULL;
@@ -1269,8 +1268,8 @@ update_table(sql_query *query, dlist *qn
                        r = res;
                }
                r = update_generate_assignments(query, t, r, bt, 
assignmentlist, "UPDATE");
-               query_pop_outer(query);
                if (opt_returning) {
+                       query_processed(query);
                        r->returning = 1;
                        list *pexps = sa_list(sql->sa);
                        sql_rel* inner = r->l;
@@ -1346,10 +1345,8 @@ delete_table(sql_query *query, dlist *qn
                        }
                        rel_base_use_tid(sql, r);
 
-                       query_push_outer(query, r, sql_where);
                        if (!(r = rel_logical_exp(query, r, opt_where, 
sql_where)))
                                return NULL;
-                       query_pop_outer(query);
                        e = exp_column(sql->sa, rel_name(r), TID, 
sql_bind_localtype("oid"), CARD_MULTI, 0, 1, 1);
                        e->nid = rel_base_nid(bt, NULL);
                        e->alias.label = e->nid;
@@ -1359,6 +1356,7 @@ delete_table(sql_query *query, dlist *qn
                        r = rel_delete(sql->sa, r, NULL);
                }
                if (opt_returning) {
+                       query_processed(query);
                        r->returning = 1;
                        list *pexps = sa_list(sql->sa);
                        sql_rel* inner = r->l;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to