Hi, While reviewing/testing one of the patches I found the following Assert: #0 0x000055c6312ba639 in pgstat_unlink_relation (rel=0x7fb73bcbac58) at pgstat_relation.c:161 #1 0x000055c6312bbb5a in pgstat_relation_delete_pending_cb (entry_ref=0x55c6335563a8) at pgstat_relation.c:839 #2 0x000055c6312b72bc in pgstat_delete_pending_entry (entry_ref=0x55c6335563a8) at pgstat.c:1124 #3 0x000055c6312be3f1 in pgstat_release_entry_ref (key=..., entry_ref=0x55c6335563a8, discard_pending=true) at pgstat_shmem.c:523 #4 0x000055c6312bee9a in pgstat_drop_entry (kind=PGSTAT_KIND_RELATION, dboid=5, objoid=40960) at pgstat_shmem.c:867 #5 0x000055c6312c034a in AtEOXact_PgStat_DroppedStats (xact_state=0x55c6334baac8, isCommit=false) at pgstat_xact.c:97 #6 0x000055c6312c0240 in AtEOXact_PgStat (isCommit=false, parallel=false) at pgstat_xact.c:55 #7 0x000055c630df8bee in AbortTransaction () at xact.c:2861 #8 0x000055c630df94fd in AbortCurrentTransaction () at xact.c:3352
I could reproduce this issue with the following steps: create table t1(c1 int); BEGIN; CREATE TABLE t (c1 int); CREATE RULE "_RETURN" AS ON SELECT TO t DO INSTEAD SELECT * FROM t1; CREATE RULE "_RETURN" AS ON SELECT TO t DO INSTEAD SELECT * FROM t1; Regards, Vignesh