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.