Re: MERGE ... RETURNING
Dean Rasheed <dean.a.rasheed@gmail.com>
From: Dean Rasheed <dean.a.rasheed@gmail.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Vik Fearing <vik@postgresfriends.org>,
Isaac Morland <isaac.morland@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-07-01T11:07:42Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add RETURNING support to MERGE.
- c649fa24a42b 17.0 landed
-
doc: Improve a couple of places in the MERGE docs.
- 97d4262683ac 17.0 landed
- d4c573d8e81e 16.3 landed
- a875743ff402 15.7 landed
-
doc: improve description of privileges for MERGE and update glossary.
- 4bc8f29088f8 17.0 landed
- 3b6728910ace 16.2 landed
- ff772853d02e 15.6 landed
-
Fix RLS policy usage in MERGE.
- c2e08b04c9e7 17.0 cited
-
Fix leak of LLVM "fatal-on-oom" section counter.
- 4f4d73466d71 17.0 cited
-
Implement outer-level aggregates to conform to the SQL spec, with
- e649796f128b 7.4.1 cited
Attachments
- support-merge-returning-v7.patch (text/x-patch) patch v7
On Mon, 13 Mar 2023 at 13:36, Dean Rasheed <dean.a.rasheed@gmail.com> wrote: > > And another rebase. > I ran out of cycles to pursue the MERGE patches in v16, but hopefully I can make more progress in v17. Looking at this one with fresh eyes, it looks mostly in good shape. To recap, this adds support for the RETURNING clause in MERGE, together with new support functions pg_merge_action() and pg_merge_when_clause() that can be used in the RETURNING list of MERGE to retrieve the kind of action (INSERT/UPDATE/DELETE), and the index of the WHEN clause executed for each row merged. In addition, RETURNING support allows MERGE to be used as the source query in COPY TO and WITH queries. One minor annoyance is that, due to the way that pg_merge_action() and pg_merge_when_clause() require access to the MergeActionState, they only work if they appear directly in the RETURNING list. They can't, for example, appear in a subquery in the RETURNING list, and I don't see an easy way round that limitation. Attached is an updated patch with some cosmetic updates, plus updated ruleutils support. Regards, Dean