Re: Odd system-column handling in postgres_fdw join pushdown patch - Mailing list pgsql-hackers

From Ashutosh Bapat
Subject Re: Odd system-column handling in postgres_fdw join pushdown patch
Date
Msg-id CAFjFpRfKZLjA+mDDanyskSxM2Hz8+JUqi5LrSr2Lkp5JPi1SYw@mail.gmail.com
Whole thread Raw
In response to Re: Odd system-column handling in postgres_fdw join pushdown patch  (Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>)
Responses Re: Odd system-column handling in postgres_fdw join pushdown patch  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
List pgsql-hackers


On Thu, Mar 24, 2016 at 9:31 AM, Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp> wrote:
On 2016/03/23 13:44, Ashutosh Bapat wrote:
An FDW can choose not to use those functions, so I don't see a
connection between scan list having simple Vars and existence of those
functions (actually a single one). But having those function would
minimize the code that each FDW has to write, in case they want those
functions. E.g. we have to translate Var::varno to tableoid in case
that's requested by pulling RTE and then getting oid out from there. If
that functionality is available in the core, 1. the code is not
duplicated 2. every FDW will get the same tableoid. Similarly for the
other columns.

OK.  Then, I'd like to propose a function that would create interger Lists of indexes of tableoids, xids and cids plus

Ok,
 
an OID List of these tableoids,

I didn't get this.
 
in a given fdw_scan_tlist, on the assumption that each expression in the fdw_scan_tlist is a simple Var. 

I guess this is Ok. In fact, at least for now an expression involving any of those columns is not pushable to the foreign server, as the expression can not be evaluated there. So, if we come across such a case in further pushdowns, we will need to have a different solution for pushing down such target lists.
 
I'd also like to propose another function that would fill system columns using these Lists when creating a scan tuple.

Ok.

I had imagined that the code to extract the above lists and filling the values in scan tuple will be in FDW. We only provide a function to supply those values. But what you propose might actually be much practical.

--
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company

pgsql-hackers by date:

Previous
From: Ashutosh Bapat
Date:
Subject: Re: Postgres_fdw join pushdown - getting server crash in left outer join of three table
Next
From: Fujii Masao
Date:
Subject: Re: Support for N synchronous standby servers - take 2