On Fri, 21 Jan 2022 at 05:06, Alvaro Herrera <alvhe...@alvh.no-ip.org> wrote: > Here's v8 of this patch. I have fixed the problems pointed out by Jaime > and Erik, as well as incorporated Zhihong, Erik and Justin's > documentation fixes (typos and otherwise). > > Not yet included: a fix for Peter's suggestion to raise a good error > when both tables use the same name. > > Individual changes can also be seen in > https://github.com/alvherre/postgres/commits/merge-15
+ /* + * NOT MATCHED actions can't see target relation, but they can see + * source relation. + */ + Assert(mergeWhenClause->commandType == CMD_INSERT || + mergeWhenClause->commandType == CMD_DELETE || + mergeWhenClause->commandType == CMD_NOTHING); + setNamespaceVisibilityForRTE(pstate->p_namespace, + targetRelRTE, false, false); + setNamespaceVisibilityForRTE(pstate->p_namespace, + sourceRelRTE, true, true); Should we remove the CMD_DELETE from Assert(), since it will not happened according to MERGE syntax? -- Regrads, Japin Li. ChengDu WenWu Information Technology Co.,Ltd.