Changeset: d52f5216791d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d52f5216791d
Modified Files:
        sql/server/rel_unnest.c
Branch: Oct2020
Log Message:

not always set freevar only if already set in the subquery.


diffs (33 lines):

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
@@ -2004,14 +2004,17 @@ rel_union_exps(mvc *sql, sql_exp **l, li
 {
        sql_rel *u = NULL;
        list *exps = NULL;
+       int freevar = 0;
 
        for (node *n=vals->h; n; n = n->next) {
                sql_exp *ve = n->data, *r, *s;
                sql_rel *sq = NULL;
 
-               if (exp_has_rel(ve))
+               if (exp_has_rel(ve)) {
                        sq = exp_rel_get_rel(sql->sa, ve); /* get subquery */
-               else {
+                       if (sq)
+                               freevar = rel_has_freevar(sql,sq);
+               } else {
                        sq = rel_project(sql->sa, NULL, 
append(sa_list(sql->sa), ve));
                        set_processed(sq);
                }
@@ -2040,7 +2043,8 @@ rel_union_exps(mvc *sql, sql_exp **l, li
                                        sq = rel_project(sql->sa, sq, 
append(sa_list(sql->sa), ve));
                                        set_processed(sq);
                                }
-                               exp_set_freevar(sql, ve, sq);
+                               if (freevar)
+                                       exp_set_freevar(sql, ve, sq);
                        }
                }
                if (!u) {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to