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]

Reply via email to