Re: [HACKERS] MERGE SQL Statement for PG11
Pavan Deolasee <pavan.deolasee@gmail.com>
From: Pavan Deolasee <pavan.deolasee@gmail.com>
To: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
Cc: Simon Riggs <simon@2ndquadrant.com>, Peter Geoghegan <pg@bowt.ie>, Robert Haas <robertmhaas@gmail.com>,
Tomas Vondra <tomas.vondra@2ndquadrant.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>,
Andrew Dunstan <andrew.dunstan@2ndquadrant.com>, Pavan Deolasee <pavan.deolasee@2ndquadrant.com>,
Stephen Frost <sfrost@snowman.net>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2018-03-26T14:39:38Z
Lists: pgsql-hackers
Attachments
- v25-0002-Add-support-for-CTE.patch (application/octet-stream) patch v25-0002
- v25-0001-Version-25-of-MERGE-patch-based-on-ON-CONFLICT-D.patch (application/octet-stream) patch v25-0001
On Fri, Mar 23, 2018 at 4:37 PM, Pavan Deolasee <pavan.deolasee@gmail.com> wrote: > > > On Fri, Mar 23, 2018 at 12:57 PM, Amit Langote < > Langote_Amit_f8@lab.ntt.co.jp> wrote: > >> >> Also, it seems that the delta patch I sent in the last email didn't >> contain all the changes I had to make. It didn't contain, for example, >> replacing adjust_and_expand_inherited_tlist() with >> adjust_partition_tlist(). I guess you'll know when you rebase anyway. >> > > Yes, I am planning to fix that once the ON CONFLICT patch is > ready/committed. > > Now that ON CONFLICT patch is in, here are rebased patches. The second patch is to add support for CTE (thanks Peter). Apart from rebase, the following things are fixed/improved: - Added test cases for column level privileges as suggested by Peter. One problem got discovered during the process. Since we expand and track source relation targetlist, the exiting code was demanding SELECT privileges on all attributes, even though MERGE is only referencing a few attributes on which the user has privilege. Fixed that by disassociating expansion from the actual referencing. - Added a test case for RLS where SELECT policy actually hides some rows, as suggested by Stephen in the past - Added check to compare result relation's and merge target relation's OIDs, as suggested by Robert. Simon thinks it's not necessary given that we now scan catalog using MVCC snapshot. So will leave it to his discretion when he takes it up for commit - Improved explanation regarding why we need a second RTE for merge target relation and general cleanup/improvements in that area I think it will be a good idea to send any further patches as add-on patches for reviewer/committer's sake. I will do that unless someone disagrees. Thanks, Pavan -- Pavan Deolasee http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Commits
-
Add support for MERGE SQL command
- 7103ebb7aae8 15.0 landed
-
Avoid repeated name lookups during table and index DDL.
- 5f173040e324 9.4.0 cited
-
Use an MVCC snapshot, rather than SnapshotNow, for catalog scans.
- 568d4138c646 9.4.0 cited