From: | Richard Guo <guofenglinux(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Pg Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, "Finnerty, Jim" <jfinnert(at)amazon(dot)com> |
Subject: | Re: Making Vars outer-join aware |
Date: | 2022-07-13 07:48:41 |
Message-ID: | CAMbWs4_va6UWcaiPSZpeRPFzpA=UKU+4zKkxqdfrcKoKA5nKWA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jul 12, 2022 at 9:37 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Richard Guo <guofenglinux(at)gmail(dot)com> writes:
> > Note that the evaluation of expression 'b.j + 1' now occurs below the
> > outer join. Is this something we need to be concerned about?
>
> It seems more formally correct to me, but perhaps somebody would
> complain about possibly-useless expression evals. We could likely
> re-complicate the logic that inserts PHVs during pullup so that it
> looks for Vars it can apply the nullingrels to. Maybe there's an
> opportunity to share code with flatten_join_alias_vars?
Yeah, maybe we can extend and leverage the codes in
adjust_standard_join_alias_expression() to do that?
But I'm not sure which is better, to evaluate the expression below or
above the outer join. It seems to me that if the size of base rel is
large and somehow the size of the joinrel is small, evaluation above the
outer join would win. And in the opposite case evaluation below the
outer join would be better.
Thanks
Richard
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Langote | 2022-07-13 08:00:29 | Re: ExecRTCheckPerms() and many prunable partitions |
Previous Message | Peter Smith | 2022-07-13 07:47:59 | Re: Refactor to make use of a common function for GetSubscriptionRelations and GetSubscriptionNotReadyRelations. |