]> granicus.if.org Git - postgresql/commitdiff
Fix platform dependant regression output triggered by 69f4b9c85f16.
authorAndres Freund <andres@anarazel.de>
Thu, 19 Jan 2017 22:21:26 +0000 (14:21 -0800)
committerAndres Freund <andres@anarazel.de>
Thu, 19 Jan 2017 22:42:02 +0000 (14:42 -0800)
Due to the changed costing in that commit hash-aggregates started to
be used, which results in big-endian vs. little-endian output
differences.  Disable hash-aggs for those tests.

Author: Andres Freund, with input from Tom Lane
Discussion: https://postgr.es/m/22891.1484791792@sss.pgh.pa.us

src/test/regress/expected/tsrf.out
src/test/regress/sql/tsrf.sql

index 8c47f0f668cda37ad6c3513082db403c2f728ba4..dca51a842faab6c82df11ad2de69d5bcb93238e6 100644 (file)
@@ -115,6 +115,7 @@ SELECT few.id FROM few ORDER BY id, generate_series(1,3) DESC;
 (9 rows)
 
 -- SRFs are computed after aggregation
+SET enable_hashagg TO 0; -- stable output order
 SELECT few.dataa, count(*), min(id), max(id), unnest('{1,1,3}'::int[]) FROM few WHERE few.id = 1 GROUP BY few.dataa;
  dataa | count | min | max | unnest 
 -------+-------+-----+-----+--------
@@ -127,17 +128,18 @@ SELECT few.dataa, count(*), min(id), max(id), unnest('{1,1,3}'::int[]) FROM few
 SELECT few.dataa, count(*), min(id), max(id), unnest('{1,1,3}'::int[]) FROM few WHERE few.id = 1 GROUP BY few.dataa, unnest('{1,1,3}'::int[]);
  dataa | count | min | max | unnest 
 -------+-------+-----+-----+--------
- a     |     1 |   1 |   1 |      3
  a     |     2 |   1 |   1 |      1
+ a     |     1 |   1 |   1 |      3
 (2 rows)
 
 SELECT few.dataa, count(*), min(id), max(id), unnest('{1,1,3}'::int[]) FROM few WHERE few.id = 1 GROUP BY few.dataa, 5;
  dataa | count | min | max | unnest 
 -------+-------+-----+-----+--------
- a     |     1 |   1 |   1 |      3
  a     |     2 |   1 |   1 |      1
+ a     |     1 |   1 |   1 |      3
 (2 rows)
 
+RESET enable_hashagg;
 -- check HAVING works when GROUP BY does [not] reference SRF output
 SELECT dataa, generate_series(1,1), count(*) FROM few GROUP BY 1 HAVING count(*) > 1;
  dataa | generate_series | count 
index cf2fbe3e52f9de0749a1402c032eb725b2585dbe..ff2fa3eb9a97608b131d0f1e3bf0ecf8587eea13 100644 (file)
@@ -31,10 +31,12 @@ SELECT few.id, generate_series(1,3) g FROM few ORDER BY id, generate_series(1,3)
 SELECT few.id FROM few ORDER BY id, generate_series(1,3) DESC;
 
 -- SRFs are computed after aggregation
+SET enable_hashagg TO 0; -- stable output order
 SELECT few.dataa, count(*), min(id), max(id), unnest('{1,1,3}'::int[]) FROM few WHERE few.id = 1 GROUP BY few.dataa;
 -- unless referenced in GROUP BY clause
 SELECT few.dataa, count(*), min(id), max(id), unnest('{1,1,3}'::int[]) FROM few WHERE few.id = 1 GROUP BY few.dataa, unnest('{1,1,3}'::int[]);
 SELECT few.dataa, count(*), min(id), max(id), unnest('{1,1,3}'::int[]) FROM few WHERE few.id = 1 GROUP BY few.dataa, 5;
+RESET enable_hashagg;
 
 -- check HAVING works when GROUP BY does [not] reference SRF output
 SELECT dataa, generate_series(1,1), count(*) FROM few GROUP BY 1 HAVING count(*) > 1;