BUG #15676: FOR UPDATE is not allowed with UNION ALL (and of course with UNION/INTERSECT/EXCEPT, DISTINCT?)

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: gunther(dot)schadow(at)gmail(dot)com
Subject: BUG #15676: FOR UPDATE is not allowed with UNION ALL (and of course with UNION/INTERSECT/EXCEPT, DISTINCT?)
Date: 2019-03-07 17:02:41
Message-ID: 15676-8248e6b0beac09c6@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 15676
Logged by: Gunther Schadow
Email address: gunther(dot)schadow(at)gmail(dot)com
PostgreSQL version: 11.2
Operating system: all
Description:

SELECT ... FOR UPDATE locks the roiw(s) being retrieved.

UNION ALL is a nice way to retrieving rows from two tables, and
implementation of UNION ALL is just a concatenation, each row returned comes
from either one of the base table, and thus could be locked.

Obviously the hard set semantics relational operators UNION (without ALL),
INTERSECT, EXCEPT, and really also DISTINCT, should justifiable have limits
in how you might to row locking. So it is justified not to support FOR
UPDATE on those concepts. But on a UNION ALL it is not justified, only that
it has not been done, and the error suggests that the UNION ALL case has not
bee considered as fundamentally different from the other set operators.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Julien Rouhaud 2019-03-07 18:14:29 Re: BUG #15669: Error with unnest in PG 11 (ERROR: 0A000)
Previous Message Tom Lane 2019-03-07 15:52:33 Re: BUG #15669: Error with unnest in PG 11 (ERROR: 0A000)