Re: Problems with plan estimates in postgres_fdw
Antonin Houska <ah@cybertec.at>
From: Antonin Houska <ah@cybertec.at>
To: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Andrew Gierth <andrew@tao11.riddles.org.uk>,
pgsql-hackers@postgresql.org
Date: 2019-03-08T16:25:49Z
Lists: pgsql-hackers
Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp> wrote: > (2019/03/01 20:16), Antonin Houska wrote: > > Etsuro Fujita<fujita.etsuro@lab.ntt.co.jp> wrote: > > >> Conversely, it appears that add_foreign_ordered_paths() added by the patchset > >> would generate such pre-sorted paths *redundantly* when the input_rel is the > >> final scan/join relation. Will look into that. > > > > Currently I have no idea how to check the plan created by FDW at the > > UPPERREL_ORDERED stage, except for removing the sort from the > > UPPERREL_GROUP_AGG stage as I proposed here: > > > > https://www.postgresql.org/message-id/11807.1549564431%40localhost > > I don't understand your words "how to check the plan created by FDW". Could > you elaborate on that a bit more? I meant that I don't know how to verify that the plan that sends the ORDER BY clause to the remote server was created at the UPPERREL_ORDERED and not at UPPERREL_GROUP_AGG. However if the ORDER BY clause really should not be added at the UPPERREL_GROUP_AGG stage and if we ensure that it no longer happens, then mere presence of ORDER BY in the (remote) plan means that the UPPERREL_ORDERED stage works fine. -- Antonin Houska https://www.cybertec-postgresql.com
Commits
-
postgres_fdw: Perform the (FINAL, NULL) upperrel operations remotely.
- d50d172e517c 12.0 landed
-
Refactor create_limit_path() to share cost adjustment code with FDWs.
- aef65db6769e 12.0 landed
-
postgres_fdw: Modify regression tests for EPQ-related planning problems.
- 0269edefacb7 12.0 landed
-
postgres_fdw: Perform the (ORDERED, NULL) upperrel operations remotely.
- ffab494a4d46 12.0 landed
-
Save PathTargets for distinct/ordered relations in root->upper_targets[].
- 3fdc374b5d24 12.0 landed
-
Split create_foreignscan_path() into three functions.
- 34ea1ab7fd30 12.0 cited
-
Fix test case for 'outer pathkeys do not match mergeclauses' fix.
- 99f6a17dd62a 11.0 cited
-
postgres_fdw: Avoid 'outer pathkeys do not match mergeclauses' error.
- 4bbf6edfbd5d 11.0 cited