postgres_fdw: another oddity in costing aggregate pushdown paths
Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
From: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2019-02-15T11:19:50Z
Lists: pgsql-hackers
Attachments
- another-fix-postgres-fdw-grouping-path-cost.patch (text/x-patch) patch
As mentioned in the near thread, I think there is another oversight in the cost estimation for aggregate pushdown paths in postgres_fdw, IIUC. When costing an aggregate pushdown path using local statistics, we re-use the estimated costs of implementing the underlying scan/join relation, cached in the relation's PgFdwRelationInfo (ie, rel_startup_cost and rel_total_cost). Since these costs wouldn't yet contain the costs of evaluating the final scan/join target, as tlist replacement by apply_scanjoin_target_to_paths() is performed afterwards. So I think we need to adjust these costs so that the tlist eval costs are included, but ISTM that estimate_path_cost_size() forgot to do so. Attached is a patch for fixing this issue. Best regards, Etsuro Fujita
Commits
-
postgres_fdw: Fix cost estimation for aggregate pushdown.
- edbcbe277d79 12.0 landed
-
Fix handling of targetlist SRFs when scan/join relation is known empty.
- 1d338584062b 12.0 cited