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

Reply via email to