On Mon, Jun 29, 2020 at 7:02 PM Bharath Rupireddy
<bharath.rupireddyforpostg...@gmail.com> wrote:
> > 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.

I think you are right.

> 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.

I think so too.  And I think we could do so using the upper-planner
pathification (ie, GetForeignUpperPaths() with UPPERREL_DISTINCT in
create_distinct_paths()).  It's on my long-term TODO list to implement
that in postgres_fdw.

Best regards,
Etsuro Fujita


Reply via email to