Re: Push down more full joins in postgres_fdw

From: Etsuro Fujita <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp>
To: Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Push down more full joins in postgres_fdw
Date: 2016-09-26 10:36:02
Message-ID: ddca90d5-6fa9-b959-90ae-905ba8005ab9@lab.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2016/09/26 18:06, Ashutosh Bapat wrote:
> On Mon, Sep 26, 2016 at 1:05 PM, Etsuro Fujita
> <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp> wrote:

>> ISTM that the use of the same RTI for subqueries in multi-levels in a remote
>> SQL makes the SQL a bit difficult to read. How about using the position of
>> the join rel in join_rel_list, (more precisely, the position plus
>> list_length(root->parse->rtable)), instead?

> We switch to hash table to maintain the join RelOptInfos when the
> number of joins grows larger, where the position won't make much
> sense.

That's right, but we still store the joinrel into join_rel_list after
creating that hash table. That hash table is just for fast lookup. See
build_join_rel.

> We might differentiate between a base relation alias and
> subquery alias by using different prefixes like "r" and "s" resp.

Hmm. My concern about that would the recursive use of "s" with the same
RTI as subquery aliases for different level subqueries in a single
remote SQL. For example, if those subqueries include a base rel with
RTI=1, then "s1" would be used again and again within that SQL. That
would be logically correct, but seems confusing to me.

Best regards,
Etsuro Fujita

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Ashutosh Bapat 2016-09-26 11:20:27 Re: Push down more full joins in postgres_fdw
Previous Message Kuntal Ghosh 2016-09-26 10:30:36 Re: wal_segment size vs max_wal_size