Re: support for MERGE
Japin Li <japinli@hotmail.com>
From: Japin Li <japinli@hotmail.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Pg Hackers <pgsql-hackers@lists.postgresql.org>, Simon Riggs
<simon.riggs@enterprisedb.com>, Tomas Vondra
<tomas.vondra@enterprisedb.com>, Zhihong Yu <zyu@yugabyte.com>, Daniel
Westermann <dwe@dbi-services.com>, Amit Langote <amitlangote09@gmail.com>,
Justin Pryzby <pryzby@telsasoft.com>, Erik Rijkers <er@xs4all.nl>, Jaime
Casanova <jcasanov@systemguards.com.ec>
Date: 2022-01-21T06:47:25Z
Lists: pgsql-hackers
On Fri, 21 Jan 2022 at 05:06, Alvaro Herrera <alvherre@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.
Commits
-
Doc fixes for MERGE statement
- 5dcebd10baa8 16.0 landed
- 5bb88967ed5c 15.0 landed
-
MERGE docs adjustments
- d6d1fbf353d1 15.0 landed
- 3d895bc846f2 16.0 landed
-
Link to MVCC docs in MERGE docs
- ffffeebf2447 15.0 landed
-
Fix EXPLAIN MERGE output when no tuples are processed
- 12e423e21d8e 15.0 landed
-
Make EXPLAIN MERGE output format more compact
- 598ac10be1c2 15.0 landed
-
Add support for MERGE SQL command
- 7103ebb7aae8 15.0 landed
-
Split ExecUpdate and ExecDelete into reusable pieces
- 25e777cf8e54 15.0 landed
-
Add API of sorts for transition table handling in trigger.c
- 3a46a45f6f00 15.0 landed
-
Represent Lists as expansible arrays, not chains of cons-cells.
- 1cff1b95ab6d 13.0 cited