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

Reply via email to