Re: [BUG]: WHERE CURRENT OF cursor fail on tables that have virtual generated columns

Dean Rasheed <dean.a.rasheed@gmail.com>

From: Dean Rasheed <dean.a.rasheed@gmail.com>
To: SATYANARAYANA NARLAPURAM <satyanarlapuram@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-20T07:56:23Z
Lists: pgsql-hackers
On Mon, 20 Apr 2026 at 01:33, SATYANARAYANA NARLAPURAM
<satyanarlapuram@gmail.com> wrote:
>
> On Sun, Apr 19, 2026 at 3:42 AM Dean Rasheed <dean.a.rasheed@gmail.com> wrote:
>>
>> Hmm, it seems to me that a much simpler fix is to check for use of
>> WHERE CURRENT OF on a view at parse time, and throw the error there.
>
> This patch looks simple and neat, is there any reason why it was done differently earlier?
>

I'm not sure, but possibly because it used to be possible to turn a
table into a view by defining a SELECT rule on it, which could have
rendered a parse-time check insufficient. That's no longer the case
though, and we now have similar parse-time relkind tests elsewhere
(e.g., for MERGE).

> Updated the patch to include a test case to reject view update with WHERE CURRENT OF.
>

That's already tested in portals.sql, which seems like a better place
for that test, since it's not related to virtual generated columns. I
don't think another test is necessary -- admittedly portals.sql only
tests DELETE, but the UPDATE code is the same, so I think the existing
test is sufficient. We don't obsessively try to achieve 100% coverage
in our tests.

Regards,
Dean



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix UPDATE/DELETE ... WHERE CURRENT OF on a table with virtual columns.