On Thu, Mar 24, 2016 at 9:31 AM, Etsuro Fujita <fujita.ets...@lab.ntt.co.jp>
> 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
> 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
> I'd also like to propose another function that would fill system columns
> using these Lists when creating a scan tuple.
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.
The Postgres Database Company