diff options
author | Robert Haas <rhaas@postgresql.org> | 2016-10-21 11:27:32 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2016-10-21 11:29:33 -0400 |
commit | ad13a09d762f0c903a52ed0ec668a0ba51a61047 (patch) | |
tree | bbab132923f6edd55cd0eb379f817f627d84fcec /contrib/postgres_fdw/sql/postgres_fdw.sql | |
parent | 7aa2c10ac6785a2de683609b98da607e588a6d02 (diff) | |
download | postgresql-ad13a09d762f0c903a52ed0ec668a0ba51a61047.tar.gz postgresql-ad13a09d762f0c903a52ed0ec668a0ba51a61047.zip |
postgres_fdw: Attempt to stabilize regression results.
Set enable_hashagg to false for tests involving least_agg(), so that
we get the same plan regardless of local costing variances. Also,
remove a test involving sqrt(); it's there to test deparsing of
HAVING clauses containing expressions, but that's tested elsewhere
anyway, and sqrt(2) deparses with different amounts of precision on
different machines.
Per buildfarm.
Diffstat (limited to 'contrib/postgres_fdw/sql/postgres_fdw.sql')
-rw-r--r-- | contrib/postgres_fdw/sql/postgres_fdw.sql | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/contrib/postgres_fdw/sql/postgres_fdw.sql b/contrib/postgres_fdw/sql/postgres_fdw.sql index aeed8f62de4..bb9d41a1b33 100644 --- a/contrib/postgres_fdw/sql/postgres_fdw.sql +++ b/contrib/postgres_fdw/sql/postgres_fdw.sql @@ -593,11 +593,6 @@ explain (verbose, costs off) select c2, sum(c1) from ft2 group by c2 having avg(c1) < 500 and sum(c1) < 49800 order by c2; select c2, sum(c1) from ft2 group by c2 having avg(c1) < 500 and sum(c1) < 49800 order by c2; --- Using expressions in HAVING clause -explain (verbose, costs off) -select c5, count(c2) from ft1 group by c5, sqrt(c2) having sqrt(max(c2)) = sqrt(2) order by 1, 2; -select c5, count(c2) from ft1 group by c5, sqrt(c2) having sqrt(max(c2)) = sqrt(2) order by 1, 2; - -- Unshippable HAVING clause will be evaluated locally, and other qual in HAVING clause is pushed down explain (verbose, costs off) select count(*) from (select c5, count(c1) from ft1 group by c5, sqrt(c2) having (avg(c1) / avg(c1)) * random() <= 1 and avg(c1) < 500) x; @@ -677,6 +672,9 @@ create aggregate least_agg(variadic items anyarray) ( stype = anyelement, sfunc = least_accum ); +-- Disable hash aggregation for plan stability. +set enable_hashagg to false; + -- Not pushed down due to user defined aggregate explain (verbose, costs off) select c2, least_agg(c1) from ft1 group by c2 order by c2; @@ -701,6 +699,7 @@ explain (verbose, costs off) select c2, least_agg(c1) from ft1 group by c2 order by c2; -- Cleanup +reset enable_hashagg; drop aggregate least_agg(variadic items anyarray); drop function least_accum(anyelement, variadic anyarray); |