Changeset: 33a9046f8e24 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/33a9046f8e24 Modified Files: sql/server/rel_multiset.c Branch: nested Log Message:
check for complex_conversions diffs (33 lines): diff --git a/sql/server/rel_multiset.c b/sql/server/rel_multiset.c --- a/sql/server/rel_multiset.c +++ b/sql/server/rel_multiset.c @@ -389,12 +389,28 @@ fm_project_ms_bt(visitor *v, sql_exp *e, } } +static bool +exps_are_complex_convert(list *exps) +{ + if (list_empty(exps)) + return false; + for(node *n = exps->h; n; n = n->next) { + sql_exp *e = n->data; + if (e->type == e_convert) { + sql_subtype *t = exp_subtype(e); + if (t->multiset || t->type->composite) + return true; + } + } + return false; +} + static sql_rel * fm_project(visitor *v, sql_rel *rel) { sql_rel *l = rel->l; - if ((!l || (l && rel->card == CARD_ATOM && is_project(l->op))) && rel->exps) { /* check for type multiset */ + if ((!l || (l && (rel->card == CARD_ATOM || exps_are_complex_convert(rel->exps)) && is_project(l->op))) && rel->exps) { /* check for type multiset */ bool needed = false; for(node *n = rel->exps->h; n; n = n->next) { sql_exp *e = n->data; _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org