| From: | Richard Guo <riguo(at)pivotal(dot)io> |
|---|---|
| To: | Arne Roland <A(dot)Roland(at)index(dot)de> |
| Cc: | "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Partial join |
| Date: | 2019-08-02 10:00:01 |
| Message-ID: | CAN_9JTwYzbHOttsZ0amun0whj5di1S+-Dec9VD3ykA+Odz4KXg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers pgsql-performance |
On Thu, Aug 1, 2019 at 7:46 PM Arne Roland <A(dot)Roland(at)index(dot)de> wrote:
> Hello Richard,
>
> thanks for your quick reply.
>
>
> > We need to fix this.
>
>
> Do you have a better idea than just keeping the old quals - possibly just
> the ones that get eliminated - in a separate data structure? Is the push
> down of quals the only case of elimination of quals, only counting the ones
> which happen before the restrict lists are generated?
>
In you case, the restriction 'sl = sl' is just not generated for the
join, because it forms an EC with const, which is not considered when
generating join clauses.
Please refer to the code snippet below:
@@ -1164,8 +1164,8 @@ generate_join_implied_equalities(PlannerInfo *root,
List *sublist = NIL;
/* ECs containing consts do not need any further
enforcement */
if (ec->ec_has_const)
continue;
Thanks
Richard
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Thomas Munro | 2019-08-02 10:36:18 | Re: Store FullTransactionId in TwoPhaseFileHeader/GlobalTransactionData |
| Previous Message | Richard Guo | 2019-08-02 09:33:39 | Re: Partial join |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Imre Samu | 2019-08-02 11:04:10 | Re: PSQL performance - TPS |
| Previous Message | Richard Guo | 2019-08-02 09:33:39 | Re: Partial join |