Re: SQL:2011 Application Time Update & Delete
SATYANARAYANA NARLAPURAM <satyanarlapuram@gmail.com>
From: SATYANARAYANA NARLAPURAM <satyanarlapuram@gmail.com>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: Paul A Jungwirth <pj@illuminatedcomputing.com>,
Chao Li <li.evan.chao@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-09T19:42:23Z
Lists: pgsql-hackers
Attachments
- 0008-test-fpo-crash-instead-of-trigger-views.patch (application/octet-stream) patch 0008
- 0007-fix-fpo-crash-instead-of-trigger-views.patch (application/octet-stream) patch 0007
On Thu, Apr 9, 2026 at 12:35 PM SATYANARAYANA NARLAPURAM < satyanarlapuram@gmail.com> wrote: > Hi Paul, Peter, > > I found a Server crash when using UPDATE ... FOR PORTION OF or DELETE ... > FOR PORTION OF on a view that has INSTEAD OF triggers. > > Repro: > > CREATE TABLE t (id INT, valid_at daterange, val INT); > INSERT INTO t VALUES (1, '[2026-01-01,2026-12-31)', 100); > CREATE VIEW v AS SELECT * FROM t; > > CREATE FUNCTION v_trig() RETURNS trigger LANGUAGE plpgsql AS $$ > BEGIN > UPDATE t SET val = NEW.val WHERE id = OLD.id; > RETURN NEW; > END; > $$; > CREATE TRIGGER trg INSTEAD OF UPDATE ON v > FOR EACH ROW EXECUTE FUNCTION v_trig(); > > -- This crashes the server: > UPDATE v FOR PORTION OF valid_at FROM '2026-04-01' TO '2026-08-01' > SET val = 999 WHERE id = 1; > > I am thinking we should just reject this case. Attached a draft patch to > fix the issue. > Patches attached now.
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Make ExecForPortionOfLeftovers() obey SRF protocol.
- 207cb2abcba0 19 (unreleased) landed
-
Add isolation tests for UPDATE/DELETE FOR PORTION OF
- b6ccd30d8ff6 19 (unreleased) landed
-
Add UPDATE/DELETE FOR PORTION OF
- 8e72d914c528 19 (unreleased) landed
-
Record range constructor functions in pg_range
- c257ba839718 19 (unreleased) landed
-
Add range_minus_multi and multirange_minus_multi functions
- 5eed8ce50ce9 19 (unreleased) landed
-
doc: Add section for temporal tables
- e4d8a2af07f5 19 (unreleased) landed
-
Add assertion check for WAL receiver state during stream-archive transition
- 65f4976189b6 19 (unreleased) cited