Re: postgres_fdw: support parameterized foreign joins - Mailing list pgsql-hackers

From Arthur Zakirov
Subject Re: postgres_fdw: support parameterized foreign joins
Date
Msg-id a1c0a167-3a18-0a8f-104d-b7b436915ecc@postgrespro.ru
Whole thread Raw
In response to Re: [HACKERS] postgres_fdw: support parameterized foreign joins  (Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>)
List pgsql-hackers
On 23.03.2017 15:45, Etsuro Fujita wrote:
>
> Done.  Also, I added regression tests and revised code and comments a
> bit.  (As for create_foreignscan_path(), I haven't done anything about
> that yet.)  Please find attached a new version created on top of [1].

Thank you!

I didn't notice that it is necessary to apply the patch 
"epqpath-for-foreignjoin".

I have a few comments.

>    * innersortkeys are the sort pathkeys for the inner side of the mergejoin
> +  * req_outer_list is a list of sensible parameterizations for the join rel
>    */

I think it would be better if the comment explained what type is stored 
in req_outer_list. So the following comment would be good:

"req_outer_list is a list of Relids of sensible parameterizations for 
the join rel"

>
> !             Assert(foreignrel->reloptkind == RELOPT_JOINREL);
> !

Here the new macro IS_JOIN_REL() can be used.

> !             /* Get the remote and local conditions */
> !             remote_conds = list_concat(list_copy(remote_param_join_conds),
> !                                        fpinfo->remote_conds);
> !             local_param_join_exprs =
> !                 get_actual_clauses(local_param_join_conds);
> !             local_exprs = list_concat(list_copy(local_param_join_exprs),
> !                                       fpinfo->local_conds);

Is this code correct? 'remote_conds' and 'local_exprs' are initialized 
above when 'scan_clauses' is separated. Maybe better to use 
'remote_conds' and 'local_exprs' instead of 'fpinfo->remote_conds' and 
'fpinfo->local_conds' respectively?

And the last. The patch needs rebasing because new macroses 
IS_JOIN_REL() and IS_UPPER_REL() were added. And the patch is applied 
with errors.

-- 
Arthur Zakirov
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company



pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: PATCH: Make pg_stop_backup() archive wait optional
Next
From: Claudio Freire
Date:
Subject: Re: Making clausesel.c Smarter