Re: [HACKERS] MERGE SQL Statement for PG11

Simon Riggs <simon@2ndquadrant.com>

From: Simon Riggs <simon@2ndquadrant.com>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Robert Haas <robertmhaas@gmail.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-02-01T12:45:09Z
Lists: pgsql-hackers
On 30 January 2018 at 21:47, Peter Geoghegan <pg@bowt.ie> wrote:

> I'm glad that we all seem to agree that serialization failures as a
> way of dealing with concurrency issues in READ COMMITTED mode are a
> bad idea.

ERRORs are undesirable, yet safe and correct. Doing better is as yet
unclear if it can be done correctly in all cases, or whether a
practical subset exists.

> Unfortunately, I still think that we have a lot of work
> ahead of us when it comes to agreeing to the right semantics with READ
> COMMITTED conflict handling with multiple WHEN ... AND quals.

OK

> I see that your v14 still has the serialization error, even though
> it's now clear that nobody wants to go that way. So...where do we go
> from here? (For the avoidance of doubt, this is *not* a rhetorical
> question.)

This way forward is new. We're trying it, but it may not be possible.
I haven't made it work yet.

If we can find a way to do this, we will. If you want to propose some
code, please do.


I think it would be very helpful if we could discuss everything with
direct relevance to v14, so this becomes a patch review, not just a
debate.
i.e. which isolation test would we like to change from ERROR to
success? or which new test would you like to add?

Thanks

-- 
Simon Riggs                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Commits

  1. Add support for MERGE SQL command

  2. Add API of sorts for transition table handling in trigger.c

  3. Revert MERGE patch

  4. Fix several bugs related to ON CONFLICT's EXCLUDED pseudo relation.