On Thu, Apr 9, 2026 at 12:35 PM SATYANARAYANA NARLAPURAM < [email protected]> 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.
0008-test-fpo-crash-instead-of-trigger-views.patch
Description: Binary data
0007-fix-fpo-crash-instead-of-trigger-views.patch
Description: Binary data
