Changeset: b40e6c60a850 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b40e6c60a850
Modified Files:
        sql/server/rel_select.c
        sql/server/rel_unnest.c
        sql/test/SQLancer/Tests/sqlancer23.test
Branch: default
Log Message:

Use a cleaner way to set freevar


diffs (39 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -5333,7 +5333,7 @@ rel_value_exp(sql_query *query, sql_rel 
                                                        
query_outer_pop_last_used(query, fv-1);
                                                        reset_outer(outer);
                                                } else {
-                                                       e->freevar = 0;
+                                                       reset_freevar(e);
                                                }
                                        }
                                }
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
@@ -2946,7 +2946,7 @@ rewrite_anyequal(visitor *v, sql_rel *re
                                        return sql_error(sql, 02, 
SQLSTATE(42000) "Tuple matching at projections not implemented in the backend 
yet");
                                } else {
                                        sql_exp *inexp = 
exp_compare(v->sql->sa, le, re, is_anyequal(sf)?mark_in:mark_notin);
-                                       le->freevar = 1;
+                                       exp_set_freevar(sql, le, join);
                                        rel_bind_var(sql, join, inexp);
                                        append(join->exps, inexp);
                                        if (exp_has_freevar(v->sql, inexp) && 
is_join(rel->op))
diff --git a/sql/test/SQLancer/Tests/sqlancer23.test 
b/sql/test/SQLancer/Tests/sqlancer23.test
--- a/sql/test/SQLancer/Tests/sqlancer23.test
+++ b/sql/test/SQLancer/Tests/sqlancer23.test
@@ -140,6 +140,11 @@ x(x)) = TRUE AS INT) as count FROM (SELE
 ----
 1
 
+query I nosort
+SELECT 1 FROM t0 RIGHT OUTER JOIN (SELECT 1) x(x) ON x.x = ANY(SELECT c0 FROM 
t0) OR FALSE
+----
+1
+
 # Postgres doesn't give an error here, but we are confident it must
 statement error GDK reported error: mergejoin: more than one match
 SELECT 1 FROM t0 CROSS JOIN LATERAL (SELECT (VALUES (y.y), (y.y)) FROM (SELECT 
1) y(y) WHERE t0.c0 = 2) x(x)
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to