I got this assertion failure today: TRAP: FailedAssertion("!(new_max_attr >= oldrel->max_attr)", File: "prepunion.c", Line: 1292)
>From running something like this: postgres=# create table foo (i integer); CREATE TABLE postgres=# alter table foo add j integer; ALTER TABLE postgres=# alter table foo drop j; ALTER TABLE postgres=# create table foo2 () inherits (foo); CREATE TABLE postgres=# explain analyze select * from foo; server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Succeeded. I think there isn't actually a bug here except that the assertions are incorrect. Everything else in the function looks ok. diff -u -r1.142 prepunion.c --- prepunion.c 11 Jun 2007 01:16:23 -0000 1.142 +++ prepunion.c 12 Jul 2007 14:13:11 -0000 @@ -1288,8 +1288,6 @@ ListCell *lm; /* Create empty result array */ - Assert(new_min_attr <= oldrel->min_attr); - Assert(new_max_attr >= oldrel->max_attr); new_attr_needed = (Relids *) palloc0((new_max_attr - new_min_attr + 1) * sizeof(Relids)); /* Process user attributes, with appropriate attno mapping */ -- Gregory Stark EnterpriseDB http://www.enterprisedb.com ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings