Thread: BUG #18608: Assert in check_agglevels_and_constraints() fails on creating a rule with aggr(NEW) in subselect
BUG #18608: Assert in check_agglevels_and_constraints() fails on creating a rule with aggr(NEW) in subselect
From
PG Bug reporting form
Date:
The following bug has been logged on the website: Bug reference: 18608 Logged by: Alexander Lakhin Email address: exclusion@gmail.com PostgreSQL version: 17rc1 Operating system: Ubuntu 22.04 Description: The following script: CREATE TABLE t (a int); CREATE VIEW v AS SELECT 1; CREATE RULE v_ins AS ON INSERT TO v DO INSTEAD INSERT INTO t SELECT * FROM (SELECT count(NEW) FROM t); triggers an assertion failure: TRAP: failed Assert("pstate->p_lateral_active"), File: "parse_agg.c", Line: 385, PID: 2785906 Without asserts enabled, it fails with: ERROR: aggregate functions are not allowed in FROM clause of their own query level Reproduced on REL_9_3_STABLE .. master.
Re: BUG #18608: Assert in check_agglevels_and_constraints() fails on creating a rule with aggr(NEW) in subselect
From
Tom Lane
Date:
PG Bug reporting form <noreply@postgresql.org> writes: > [ NEW reference confuses check_agglevels_and_constraints ] > triggers an assertion failure: > TRAP: failed Assert("pstate->p_lateral_active"), File: "parse_agg.c", Line: > 385, PID: 2785906 > Without asserts enabled, it fails with: > ERROR: aggregate functions are not allowed in FROM clause of their own > query level Interesting. I'm inclined to just remove the Assert, since it's evidently wrong and the ensuing error seems sufficiently on-point. regards, tom lane