Re: A bug with ALTER TABLE SET WITHOUT OIDS in CVS HEAD

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: A bug with ALTER TABLE SET WITHOUT OIDS in CVS HEAD
Date: 2008-11-05 20:45:24
Message-ID: 491205E4.5020006@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Alvaro Herrera wrote:
> Heikki Linnakangas wrote:
>
>> made this test case crash:
>>
>> CREATE TABLE xtable (padding char(2000)) WITH OIDS;
>> INSERT INTO xtable VALUES('1');
>> ALTER TABLE xtable SET WITHOUT OIDS;
>> INSERT INTO xtable (SELECT * FROM xtable);
>>
>> with assertion failure:
>>
>> TRAP: FailedAssertion("!(!(tup->t_data->t_infomask & 0x0008))", File:
>> "heapam.c", Line: 1782)

That line number is wrong on CVS HEAD, BTW. I think I copy-pasted that
from an old checkout. It's really:

TRAP: FailedAssertion("!(!(tup->t_data->t_infomask & 0x0008))", File:
"heapam.c", Line: 1855)

> I think the fix is to just remove the Assert() ...

I don't think we want to insert tuples with OIDs to a table after SET
WITHOUT OIDS. It would be a waste of space. And bizarre.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2008-11-05 20:46:50 Re: Toast bug in CVS HEAD
Previous Message Tom Lane 2008-11-05 20:44:36 Re: [WIP] In-place upgrade