|
|
|
@ -2873,7 +2873,6 @@ SELECT y,x,array_agg(distinct w) FROM btg WHERE y < 0 GROUP BY x,y; |
|
|
|
|
(6 rows) |
|
|
|
|
|
|
|
|
|
RESET enable_incremental_sort; |
|
|
|
|
DROP TABLE btg; |
|
|
|
|
-- Check we don't pick aggregate path key instead of grouping path key |
|
|
|
|
CREATE TABLE group_agg_pk AS SELECT |
|
|
|
|
i % 10 AS x, |
|
|
|
@ -2925,32 +2924,31 @@ DROP TABLE agg_sort_order CASCADE; |
|
|
|
|
SET enable_hashjoin = off; |
|
|
|
|
SET enable_nestloop = off; |
|
|
|
|
explain (COSTS OFF) |
|
|
|
|
SELECT c1.relname,c1.relpages |
|
|
|
|
FROM pg_class c1 JOIN pg_class c2 ON (c1.relname=c2.relname AND c1.relpages=c2.relpages) |
|
|
|
|
GROUP BY c1.reltuples,c1.relpages,c1.relname |
|
|
|
|
ORDER BY c1.relpages, c1.relname, c1.relpages*c1.relpages; |
|
|
|
|
QUERY PLAN |
|
|
|
|
--------------------------------------------------------------------------------------------- |
|
|
|
|
SELECT b1.x,b1.w FROM btg b1 JOIN btg b2 ON (b1.z=b2.z AND b1.w=b2.w) |
|
|
|
|
GROUP BY b1.x,b1.z,b1.w ORDER BY b1.z, b1.w, b1.x*b1.x; |
|
|
|
|
QUERY PLAN |
|
|
|
|
------------------------------------------------------------------- |
|
|
|
|
Incremental Sort |
|
|
|
|
Sort Key: c1.relpages, c1.relname, ((c1.relpages * c1.relpages)) |
|
|
|
|
Presorted Key: c1.relpages, c1.relname |
|
|
|
|
Sort Key: b1.z, b1.w, ((b1.x * b1.x)) |
|
|
|
|
Presorted Key: b1.z, b1.w |
|
|
|
|
-> Group |
|
|
|
|
Group Key: c1.relpages, c1.relname, c1.reltuples |
|
|
|
|
Group Key: b1.z, b1.w, b1.x |
|
|
|
|
-> Incremental Sort |
|
|
|
|
Sort Key: c1.relpages, c1.relname, c1.reltuples |
|
|
|
|
Presorted Key: c1.relpages, c1.relname |
|
|
|
|
Sort Key: b1.z, b1.w, b1.x |
|
|
|
|
Presorted Key: b1.z, b1.w |
|
|
|
|
-> Merge Join |
|
|
|
|
Merge Cond: ((c1.relpages = c2.relpages) AND (c1.relname = c2.relname)) |
|
|
|
|
Merge Cond: ((b1.z = b2.z) AND (b1.w = b2.w)) |
|
|
|
|
-> Sort |
|
|
|
|
Sort Key: c1.relpages, c1.relname |
|
|
|
|
-> Seq Scan on pg_class c1 |
|
|
|
|
Sort Key: b1.z, b1.w |
|
|
|
|
-> Seq Scan on btg b1 |
|
|
|
|
-> Sort |
|
|
|
|
Sort Key: c2.relpages, c2.relname |
|
|
|
|
-> Seq Scan on pg_class c2 |
|
|
|
|
Sort Key: b2.z, b2.w |
|
|
|
|
-> Seq Scan on btg b2 |
|
|
|
|
(16 rows) |
|
|
|
|
|
|
|
|
|
RESET enable_hashjoin; |
|
|
|
|
RESET enable_nestloop; |
|
|
|
|
DROP TABLE btg; |
|
|
|
|
RESET enable_hashagg; |
|
|
|
|
RESET max_parallel_workers; |
|
|
|
|
RESET max_parallel_workers_per_gather; |
|
|
|
|