From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Japin Li <japinli(at)hotmail(dot)com> |
Cc: | Erik Rijkers <er(at)xs4all(dot)nl>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Simon Riggs <simon(dot)riggs(at)enterprisedb(dot)com>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Zhihong Yu <zyu(at)yugabyte(dot)com>, Daniel Westermann <dwe(at)dbi-services(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, Pavan Deolasee <pavan(dot)deolasee(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: support for MERGE |
Date: | 2022-01-20 21:02:22 |
Message-ID: | 202201202102.ivimvlzzk4rv@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2022-Jan-17, Japin Li wrote:
> So for NOT MATCHED, we are expected not use the target table columns.
>
> The code comes from execMerge.c says:
>
> /*
> * Make source tuple available to ExecQual and ExecProject. We don't need
> * the target tuple, since the WHEN quals and the targetlist can't refer to
> * the target columns.
> */
> econtext->ecxt_scantuple = NULL;
> econtext->ecxt_innertuple = slot;
> econtext->ecxt_outertuple = NULL;
>
> It will set econtext->ecxt_scantuple to NULL, which leads the crash.
Right. So this was broken by the fact that I recently allowed MATCHED
actions to target DO NOTHING; previously, only NOT MATCHED actions could
do so. So the bug was present, but it wasn't accessible.
> Should we setNamespaceVisibilityForRTE() for CMD_NOTHING? I try to set it
> and it works as expected. OTOH, the system attributes from target table
> also cannot be accessible. I'm not sure the v6 patch how to implement this
> limitation.
I changed this block so that it depends on whether the clause is MATCHED
or NOT MATCHED, rather than the action. I think it was pretty
nonsensical for it to be keyed on action type, and it made the code
needlessly longer.
Thank you!
--
Álvaro Herrera Valdivia, Chile — https://www.EnterpriseDB.com/
"All rings of power are equal,
But some rings of power are more equal than others."
(George Orwell's The Lord of the Rings)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2022-01-20 21:02:43 | Re: support for MERGE |
Previous Message | James Coleman | 2022-01-20 20:43:37 | Re: Document atthasmissing default optimization avoids verification table scan |