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