Re: Push down more full joins in postgres_fdw

Поиск
Список
Период
Сортировка
От Etsuro Fujita
Тема Re: Push down more full joins in postgres_fdw
Дата
Msg-id 41aef262-a700-0e52-19b1-54cb468e621e@lab.ntt.co.jp
обсуждение исходный текст
Ответ на Re: Push down more full joins in postgres_fdw  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
Ответы Re: Push down more full joins in postgres_fdw  (Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>)
Список pgsql-hackers
On 2016/09/13 14:17, Ashutosh Bapat wrote:

>     But another concern about the approach of generating an
>     subselect alias for a path, if needed, at the path creation time
>     would be that the path might be rejected by add_path, which would
>     result in totally wasting cycles for generating the subselect alias
>     for the path.

> A path may get rejected but the relation is not rejected. The alias
> applies to a relation and its targetlist, which will remain same for all
> paths created for that relation, esp when it's a base relation or join.
> So, AFAIU that work never gets wasted.

I think there is no guarantee that add_path won't reject foreign join 
paths.  The possibility would be very low, though.

>         However minimum overhead it might have, we will deparse the
>         query every
>         time we create a path involving that kind of relation i.e. for
>         different
>         pathkeys, different parameterization and different joins in
>         which that
>         relation participates in. This number can be significant. We want to
>         avoid this overhead if we can.

>     Exactly.  As I said above, I think the overhead would be negligible
>     compared to the overhead in explaining each remote query for costing
>     or the overhead in sending the final remote query for execution, though.

> It won't remain minimal as the number of paths created increases,
> increasing the number of times a query is deparsed. We deparse query
> every time time we cost a path for a relation with use_remote_estimates
> true. As we try to push down more and more stuff, we will create more
> paths and deparse the query more time.

> Also, that makes the interface better. Right now, in your patch, you
> have changed the order of deparsing in the existing code, so that the
> aliases are registered while deparsing FROM clause and before any Var
> nodes are deparsed. If we create aliases at the time of path creation,
> only once in GetForeignJoinPaths or GetForeignPaths as appropriate, that
> would require less code churn and would save some CPU cycles as well.

Agreed.  Will fix.

Best regards,
Etsuro Fujita





В списке pgsql-hackers по дате отправления:

Предыдущее
От: vinayak
Дата:
Сообщение: Re: Transactions involving multiple postgres foreign servers
Следующее
От: Etsuro Fujita
Дата:
Сообщение: Re: Push down more full joins in postgres_fdw