Re: estimation problems for DISTINCT ON with FDW
Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
To: Jeff Janes <jeff.janes@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-06-29T10:02:00Z
Lists: pgsql-hackers
> It doesn't cost out the plan of pushing the DISTINCT ON down to the foreign side, which is probably the best way to run the query. I guess it makes sense that FDW machinery in general doesn't want to try to push a PostgreSQL specific construct. I think you are right, the DISTINCT operation is not being pushed to remote(I may be wrong here. just for info - I looked at remote SQL from explain(verbose) on the query to find this out) and so is for estimates. There might be problems pushing DISTINCTs to remote servers with the usage of fdw for sharding configurations. But when fdw is used for non-sharded configurations such as just to get existing data from another remote postgres server, oracle, hadoop or some other remote database engines where DISTINCT operation is supported, it's good to push that to remote for both explains/estimates as well as in the actual queries itself, to reduce data transferred from remote database server to local postgres database server. With Regards, Bharath Rupireddy. EnterpriseDB: http://www.enterprisedb.com
Commits
-
Clamp total-tuples estimates for foreign tables to ensure planner sanity.
- d83d59e42d0c 9.5.23 landed
- 69a3fe6e639a 9.6.19 landed
- 5144a40f3fa7 10.14 landed
- ef799bdd04ee 11.9 landed
- ca5e93f769e1 14.0 landed
- 9233624b128b 13.0 landed
- 153c14cdd714 12.4 landed