SELECTDISTINCTON (string4) string4, two, ten FROM onek ORDERBY string4 using <, two using >, ten using <;
-- this will fail due to conflict of ordering requirements SELECTDISTINCTON (string4, ten) string4, two, ten FROM onek ORDERBY string4 using <, two using <, ten using <;
SELECTDISTINCTON (string4, ten) string4, ten, two FROM onek ORDERBY string4 using <, ten using >, two using <;
-- bug #5049: early 8.4.x chokes on volatile DISTINCT ON clauses selectdistincton (1) floor(random()) as r, f1 from int4_tbl orderby1,2;
-- -- Test the planner's ability to use a LIMIT 1 instead of a Unique node when -- all of the distinct_pathkeys have been marked as redundant --
-- Ensure we also get a LIMIT plan with DISTINCT ON EXPLAIN (COSTS OFF) SELECTDISTINCTON (four) four,two FROM tenk1 WHERE four = 0ORDERBY1;
-- and check the result of the above query is correct SELECTDISTINCTON (four) four,two FROM tenk1 WHERE four = 0ORDERBY1;
-- Ensure a Sort -> Limit is used when the ORDER BY contains additional cols EXPLAIN (COSTS OFF) SELECTDISTINCTON (four) four,two FROM tenk1 WHERE four = 0ORDERBY1,2;
-- Same again but use a column that is indexed so that we get an index scan -- then a limit EXPLAIN (COSTS OFF) SELECTDISTINCTON (four) four,hundred FROM tenk1 WHERE four = 0ORDERBY1,2;
-- -- Test the planner's ability to reorder the distinctClause Pathkeys to match -- the input path's ordering --
CREATETABLE distinct_on_tbl (x int, y int, z int); INSERTINTO distinct_on_tbl SELECT i%10, i%10, i%10FROM generate_series(1, 1000) AS i; CREATEINDEX distinct_on_tbl_x_y_idx ON distinct_on_tbl (x, y); ANALYZE distinct_on_tbl;
-- Produce results with sorting. SET enable_hashagg TO OFF;
-- Ensure we avoid the need to re-sort by reordering the distinctClause -- Pathkeys to match the ordering of the input path EXPLAIN (COSTS OFF) SELECTDISTINCTON (y, x) x, y FROM distinct_on_tbl; SELECTDISTINCTON (y, x) x, y FROM distinct_on_tbl;
-- Ensure we leverage incremental-sort by reordering the distinctClause -- Pathkeys to partially match the ordering of the input path EXPLAIN (COSTS OFF) SELECTDISTINCTON (y, x) x, y FROM (SELECT * FROM distinct_on_tbl ORDERBY x) s; SELECTDISTINCTON (y, x) x, y FROM (SELECT * FROM distinct_on_tbl ORDERBY x) s;
-- Ensure we reorder the distinctClause Pathkeys to match the ordering of the -- input path even if there is ORDER BY clause EXPLAIN (COSTS OFF) SELECTDISTINCTON (y, x) x, y FROM distinct_on_tbl ORDERBY y; SELECTDISTINCTON (y, x) x, y FROM distinct_on_tbl ORDERBY y;
-- Ensure the resulting pathkey list matches the initial distinctClause Pathkeys EXPLAIN (COSTS OFF) SELECTDISTINCTON (y, x) x, y FROM (select * from distinct_on_tbl orderby x, z, y) s ORDERBY y, x, z; SELECTDISTINCTON (y, x) x, y FROM (select * from distinct_on_tbl orderby x, z, y) s ORDERBY y, x, z;
RESET enable_hashagg;
DROPTABLE distinct_on_tbl;
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet am 2026-08-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.