Re: Problems with plan estimates in postgres_fdw

Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>

From: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andrew Gierth <andrew@tao11.riddles.org.uk>, pgsql-hackers@postgresql.org
Date: 2018-12-28T06:50:29Z
Lists: pgsql-hackers

Attachments

(2018/12/26 16:35), Etsuro Fujita wrote:
> Attached is an updated version of the patch. Other changes:

While self-reviewing the patch I noticed a thinko in the patch 0001 for 
pushing down the final sort: I estimated the costs for that using 
estimate_path_cost_size that was modified so that it factored the 
limit_tuples limit (if any) into the costs, but I think that was wrong; 
that should not factor that because the remote query corresponding to 
the pushdown step won't have LIMIT.  So I fixed that.  Also, a new data 
structure I added to include/nodes/relation.h (ie, OrderedPathExtraData) 
is no longer needed, so I removed that.  Attached is a new version of 
the patch.

Best regards,
Etsuro Fujita

Commits

  1. postgres_fdw: Perform the (FINAL, NULL) upperrel operations remotely.

  2. Refactor create_limit_path() to share cost adjustment code with FDWs.

  3. postgres_fdw: Modify regression tests for EPQ-related planning problems.

  4. postgres_fdw: Perform the (ORDERED, NULL) upperrel operations remotely.

  5. Save PathTargets for distinct/ordered relations in root->upper_targets[].

  6. Split create_foreignscan_path() into three functions.

  7. Fix test case for 'outer pathkeys do not match mergeclauses' fix.

  8. postgres_fdw: Avoid 'outer pathkeys do not match mergeclauses' error.