Re: support for MERGE
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Pg Hackers <pgsql-hackers@lists.postgresql.org>
Cc: 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>, Japin Li <japinli@hotmail.com>, Erik Rijkers <er@xs4all.nl>, Jaime Casanova <jcasanov@systemguards.com.ec>
Date: 2022-01-28T20:27:37Z
Lists: pgsql-hackers
Attachments
- v10-0001-MERGE-SQL-Command-following-SQL-2016.patch (text/x-diff)
MERGE, v10. I am much more comfortable with this version; I have removed a bunch of temporary hacks and cleaned up the interactions with table AM and executor, which is something that had been bothering me for a while. The complete set of changes can be seen in github, https://github.com/alvherre/postgres/commits/merge-15 The most important one is probably https://github.com/alvherre/postgres/commit/1bc92bd3f5af8b0406c5a633a68b2f76ba5a2616 where I introduced a new struct used at executor time to pass to ExecUpdate et al where they can install the various bits of status info on its way out; this allowed cleanup of the function signatures, as well as TM_FailureData which was being modified in a somewhat strange way. I am not aware of anything of significance in terms of remaining work for this project. The one thing I'm a bit bothered about is the fact that we expose a lot of executor functions previously static. I am now wondering if it would be better to move the MERGE executor support functions into nodeModifyTable.c, which I think would mean we would not have to expose those function prototypes. -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
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