Changeset: 8b593a439f62 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8b593a439f62
Modified Files:
sql/server/rel_unnest.c
sql/test/SQLancer/Tests/sqlancer22.test
Branch: default
Log Message:
Don't flat list of values if only one value is there
diffs (40 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
@@ -3831,10 +3831,13 @@ rewrite_values(visitor *v, sql_rel *rel)
}
sql_exp *e = rel->exps->h->data;
+ if (!is_values(e) || list_length(exp_get_values(e))<=1)
+ return rel;
+
if (is_values(e) && list_length(rel->exps) > 1 &&
exps_have_rel_exp(rel->exps))
return flatten_values(v->sql, rel);
- if (!is_values(e) || list_length(exp_get_values(e))<=1 ||
(!exp_has_freevar(v->sql, e) && !exp_has_rel(e)))
+ if (!exp_has_freevar(v->sql, e) && !exp_has_rel(e))
return rel;
list *exps = sa_list(v->sql->sa);
diff --git a/sql/test/SQLancer/Tests/sqlancer22.test
b/sql/test/SQLancer/Tests/sqlancer22.test
--- a/sql/test/SQLancer/Tests/sqlancer22.test
+++ b/sql/test/SQLancer/Tests/sqlancer22.test
@@ -662,7 +662,6 @@ SELECT EXISTS (VALUES (1, FALSE), (2, 1
----
1
-# this one is right
query I nosort
SELECT 1 FROM (values (1, 4), (3, 2)) x(x,y) WHERE greatest(FALSE, FALSE)
----
@@ -673,6 +672,10 @@ AND (SELECT TRUE FROM (SELECT 4) x(x) FU
----
1
+query I nosort
+SELECT 1 FROM t0 JOIN (VALUES (3, (SELECT 4))) AS x(x,y) ON x.x
+----
+
statement ok
ROLLBACK
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]