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