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 -- [email protected]
To unsubscribe send an email to [email protected]