pgsql: Consider fractional paths in generate_orderedappend_paths

From: Tomas Vondra <tomas(dot)vondra(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Consider fractional paths in generate_orderedappend_paths
Date: 2022-01-12 21:48:28
Message-ID: E1n7lTo-0004Vp-SZ@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Consider fractional paths in generate_orderedappend_paths

When building append paths, we've been looking only at startup and total
costs for the paths. When building fractional paths that may eliminate
the cheapest one, because it may be dominated by two separate paths (one
for startup, one for total cost).

This extends generate_orderedappend_paths() to also consider which paths
have lowest fractional cost. Currently we only consider paths matching
pathkeys - in the future this may be improved by also considering paths
that are only partially sorted, with an incremental sort on top.

Original report of an issue by Arne Roland, patch by me (based on a
suggestion by Tom Lane).

Reviewed-by: Arne Roland, Zhihong Yu
Discussion: https://postgr.es/m/e8f9ec90-546d-e948-acce-0525f3e92773%40enterprisedb.com
Discussion: https://postgr.es/m/1581042da8044e71ada2d6e3a51bf7bb%40index.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/6b94e7a6da2f1c6df1a42efe64251f32a444d174

Modified Files
--------------
src/backend/optimizer/path/allpaths.c | 69 +++++++++++++++++++++++++++-
src/test/regress/expected/partition_join.out | 48 +++++++++++++++++++
src/test/regress/sql/partition_join.sql | 25 ++++++++++
3 files changed, 141 insertions(+), 1 deletion(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Geoghegan 2022-01-12 22:16:19 pgsql: vacuumlazy.c: fix "garbage tuples" reference.
Previous Message Alvaro Herrera 2022-01-12 19:24:57 pgsql: Add index on pg_publication_rel.prpubid