Changeset: cdc9600ab3ca for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cdc9600ab3ca Modified Files: sql/server/rel_exp.c sql/server/rel_unnest.c Branch: Oct2020 Log Message:
use the exp_update_rel code instead of assuming projection diffs (37 lines): diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c --- a/sql/server/rel_exp.c +++ b/sql/server/rel_exp.c @@ -2040,6 +2040,8 @@ exp_rel_update_exps(mvc *sql, list *exps if (exp_has_rel(e)) n->data = exp_rel_update_exp(sql, e); + else if (!exp_is_atom(e)) + set_freevar(e,1); } list_hash_clear(exps); return exps; @@ -2276,7 +2278,7 @@ exps_bind_column(list *exps, const char *multiple = 1; if (!res) res = e; - + if (res && res != e && e->alias.rname && res->alias.rname && strcmp(e->alias.rname, res->alias.rname) != 0 ) { if (ambiguous) *ambiguous = 1; diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c --- a/sql/server/rel_unnest.c +++ b/sql/server/rel_unnest.c @@ -2326,10 +2326,8 @@ rewrite_compare(visitor *v, sql_rel *rel if (exp_has_rel(re)) rsq = exp_rel_get_rel(v->sql->sa, re); /* get subquery */ - if (rsq) { - re = rsq->exps->t->data; - re = exp_ref(v->sql, re); - } + if (rsq) + re = exp_rel_update_exp(v->sql, re); if (is_values(le)) /* exp_values */ is_tuple = 1; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list