Changeset: 23cb60d4aa9e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/23cb60d4aa9e
Modified Files:
        sql/server/rel_optimize_proj.c
        sql/server/rel_optimize_sel.c
Branch: balanced_union
Log Message:

dup instead of steal, fixes crash in name_find_column in tpcds tests


diffs (34 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -2020,8 +2020,8 @@ rel_push_aggr_down_n_arry(visitor *v, sq
 
        list *nl = sa_list(v->sql->sa);
        for (node *n = ((list*)u->l)->h; n; n = n->next) {
-               r = n->data;
-               n->data = NULL; /* clean list as we steal the relation r, 
stealing is needed else (with multiple references) double project cleanup fails 
*/
+               r = rel_dup(n->data);
+               //n->data = NULL; /* clean list as we steal the relation r, 
stealing is needed else (with multiple references) double project cleanup fails 
*/
                if (!is_project(r->op))
                        r = rel_project(v->sql->sa, r,
                                            rel_projections(v->sql, r, NULL, 1, 
1));
@@ -2047,6 +2047,7 @@ rel_push_aggr_down_n_arry(visitor *v, sq
                r->nrcols = list_length(r->exps);
                set_processed(r);
 
+               assert(r);
                append(nl, r);
        }
 
diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c
--- a/sql/server/rel_optimize_sel.c
+++ b/sql/server/rel_optimize_sel.c
@@ -3339,7 +3339,7 @@ rel_push_select_down(visitor *v, sql_rel
        node *n;
 
        if (rel_is_ref(rel)) {
-               if (is_select(rel->op) && rel->exps) {
+               if (is_select(rel->op) && !list_empty(rel->exps)) {
                        /* add inplace empty select */
                        sql_rel *l = rel_select(v->sql->sa, rel->l, NULL);
 
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to