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 -- [email protected]
To unsubscribe send an email to [email protected]