mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
Fix LATERAL references to target table of UPDATE/DELETE.
I failed to think much about UPDATE/DELETE when implementing LATERAL :-(. The implemented behavior ended up being that subqueries in the FROM or USING clause (respectively) could access the update/delete target table as though it were a lateral reference; which seems fine if they said LATERAL, but certainly ought to draw an error if they didn't. Fix it so you get a suitable error when you omit LATERAL. Per report from Emre Hasegeli.
This commit is contained in:
@ -207,6 +207,10 @@ setTargetTable(ParseState *pstate, RangeVar *relation,
|
||||
|
||||
/*
|
||||
* If UPDATE/DELETE, add table to joinlist and namespace.
|
||||
*
|
||||
* Note: some callers know that they can find the new ParseNamespaceItem
|
||||
* at the end of the pstate->p_namespace list. This is a bit ugly but not
|
||||
* worth complicating this function's signature for.
|
||||
*/
|
||||
if (alsoSource)
|
||||
addRTEtoQuery(pstate, rte, true, true, true);
|
||||
|
Reference in New Issue
Block a user