Re: Can't delete Null value from a not null field - Mailing list pgsql-general

From Tom Lane
Subject Re: Can't delete Null value from a not null field
Date
Msg-id 4304.959119701@sss.pgh.pa.us
Whole thread Raw
In response to Can't delete Null value from a not null field  ("Bryan White" <bryan@arcamax.com>)
List pgsql-general
"Bryan White" <bryan@arcamax.com> writes:
> I get the output:
>     ERROR:  ExecutePlan: (junk) `ctid' is NULL!
> I get the same error if I try to update the null row.
> At this point I figured I would outsmart it and use the oid.  However it
> appears the oid is null as well.

Wow, that's bizarre.  It shouldn't be *possible* for oid or ctid to be
null --- AFAIK they don't have a null-value bit.  There must be
something really hosed up about that tuple's header.

> Any suggestions?  At this point the only thing I can see to do is dump the
> table and run the dump through a filter for the bad record and then reload
> it.

Slightly faster than a dump and reload:

RENAME broken table to something else;

CREATE TABLE new-table;

INSERT INTO new-table SELECT * FROM broken-table WHERE custid IS NOT NULL;

then recreate the indexes wanted on new-table...

            regards, tom lane

pgsql-general by date:

Previous
From: Marten Feldtmann
Date:
Subject: Re: Re: [HACKERS] Postgresql OO Patch
Next
From: Tom Lane
Date:
Subject: Re: Explain auth/access/priv system??