agora inbox for pgsql-committers@postgresql.org
help / color / mirror / Atom feedFrom: Dean Rasheed <dean.a.rasheed@gmail.com>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Fix UPDATE/DELETE ... WHERE CURRENT OF on a table with virtual c
Date: Wed, 22 Apr 2026 10:54:06 +0000
Message-ID: <E1wFVDa-0028wt-04@gemulon.postgresql.org> (raw)
Fix UPDATE/DELETE ... WHERE CURRENT OF on a table with virtual columns.
Formerly, attempting to use WHERE CURRENT OF to update or delete from
a table with virtual generated columns would fail with the error
"WHERE CURRENT OF on a view is not implemented".
The reason was that the check preventing WHERE CURRENT OF from being
used on a view was in replace_rte_variables_mutator(), which presumed
that the only way it could get there was as part of rewriting a query
on a view. That is no longer the case, since replace_rte_variables()
is now also used to expand the virtual generated columns of a table.
Fix by doing the check for WHERE CURRENT OF on a view at parse time.
This is safe, since it is no longer possible for the relkind to change
after the query is parsed (as of b23cd185f).
Reported-by: Satyanarayana Narlapuram <satyanarlapuram@gmail.com>
Author: Satyanarayana Narlapuram <satyanarlapuram@gmail.com>
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
Discussion: https://postgr.es/m/CAHg+QDc_TwzSgb=B_QgNLt3mvZdmRK23rLb+RkanSQkDF40GjA@mail.gmail.com
Backpatch-through: 18
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/5548a969b65d4e0d5045d9db0bcac062a9a3e3c7
Modified Files
--------------
src/backend/parser/analyze.c | 16 +++++++++++++
src/backend/rewrite/rewriteManip.c | 19 ----------------
src/test/regress/expected/generated_virtual.out | 30 +++++++++++++++++++++++++
src/test/regress/expected/portals.out | 11 +++++++++
src/test/regress/sql/generated_virtual.sql | 15 +++++++++++++
src/test/regress/sql/portals.sql | 5 +++++
6 files changed, 77 insertions(+), 19 deletions(-)
view thread (2+ messages) latest in thread
Message-ID: <E1wFVDa-0028wt-04@gemulon.postgresql.org>
Permalink: ../E1wFVDa-0028wt-04@gemulon.postgresql.org/
Also on: postgresql.org/message-id/E1wFVDa-0028wt-04@gemulon.postgresql.org
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-committers@postgresql.org
Cc: dean.a.rasheed@gmail.com, pgsql-committers@lists.postgresql.org
Subject: Re: pgsql: Fix UPDATE/DELETE ... WHERE CURRENT OF on a table with virtual c
In-Reply-To: <E1wFVDa-0028wt-04@gemulon.postgresql.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox