> It doesn't cost out the plan of pushing the DISTINCT ON down to the foreign side, which is probably the best way to
runthe 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