Changeset: a78bfb1b086d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/a78bfb1b086d Modified Files: sql/server/rel_unnest.c sql/test/SQLancer/Tests/sqlancer14.test Branch: default Log Message:
List of values with 1 element are redundant diffs (41 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 @@ -1843,6 +1843,12 @@ exp_reset_card_and_freevar_set_physical_ e->r = NULL; reset_freevar(e); /* unnesting is done, we can remove the freevar flag */ + if (is_values(e) && list_length(exp_get_values(e))==1) { /* list of values with 1 element are redundant */ + sql_exp *val = ((list*)e->f)->h->data; + if (exp_name(e)) + exp_prop_alias(v->sql->sa, val, e); + e = val; + } if (!(e = exp_physical_types(v, rel, e, depth))) /* for decimals and intervals we need to adjust the scale for some operations */ return NULL; if (!rel->l) diff --git a/sql/test/SQLancer/Tests/sqlancer14.test b/sql/test/SQLancer/Tests/sqlancer14.test --- a/sql/test/SQLancer/Tests/sqlancer14.test +++ b/sql/test/SQLancer/Tests/sqlancer14.test @@ -342,7 +342,20 @@ statement ok INSERT INTO "t0" VALUES (0.418),(0.000),(3.109),(9.000),(0.972),(1.000),(0.442),(4.141),(8.000) query T rowsort -SELECT (VALUES (FALSE = ALL((SELECT TRUE FROM t0) INTERSECT (SELECT TRUE FROM t0)))) FROM t0; +SELECT (VALUES (FALSE = ALL(SELECT TRUE FROM t0))) FROM t0 +---- +False +False +False +False +False +False +False +False +False + +query T rowsort +SELECT (VALUES (FALSE = ALL((SELECT TRUE FROM t0) INTERSECT (SELECT TRUE FROM t0)))) FROM t0 ---- False False _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list