Re: FDW: ForeignPlan and parameterized paths

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Ronan Dunklau <rdunklau(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: FDW: ForeignPlan and parameterized paths
Date: 2012-12-19 19:03:25
Message-ID: 20038.1355943805@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Ronan Dunklau <rdunklau(at)gmail(dot)com> writes:
> I've noticed that, when implementing a FDW, it is difficult to use a plan which
> best path is a parameterized path. This comes from the fact that the
> parameterized clause is not easily available at plan time.

> This is what I understood from how it works:

> - The clauses coming from the best path restrictinfo are not available in the
> scan_clauses argument to the GetForeignPlan function.

> - They are, however, directly available on the path, but at this point the
> clauses are of the form InnerVar OPERATOR OuterVar. The outer Var node is then
> replaced by a Param node, using the replace_nestloop_params function.

> It could be useful to make the "parameterized" version of the clause (in the
> form InnerVar OPERATOR Param) available to the fdw at plan time.

> Could this be possible ?

I intentionally did the nestloop_params substitution after calling
GetForeignPlan not before. It's not apparent to me why it would be
useful to do it before, because the FDW is going to have no idea what
those params represent. (Note that they represent values coming from
some other, probably local, relation; not from the foreign table.)

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kevin Grittner 2012-12-19 19:46:18 Re: Review of Row Level Security
Previous Message Simon Riggs 2012-12-19 18:58:37 Re: Review of Row Level Security