BUG #18608: Assert in check_agglevels_and_constraints() fails on creating a rule with aggr(NEW) in subselect

The Post Office <noreply@postgresql.org>

From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: exclusion@gmail.com
Date: 2024-09-10T18:00:01Z
Lists: pgsql-bugs
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.

Commits

  1. Remove incorrect Assert.