Thread: failed index creation: ERROR: index_formtuple

failed index creation: ERROR: index_formtuple

From
"Nate Teller"
Date:
Hello -

I've had a nonclustered index on a column of type "character varying(11)"
for many years.
I dropped it and went to recreate the exact same index, but it fails every
time.

create index edata_idx1 on edata (mbrnum);
mbrnum is character varying(11)
number of rows in table: 1326205
postgresql 7.3.4 on Linux 2.4.9-31

ERROR:  index_formtuple: data takes 28640 bytes, max is 8191

Any ideas?  Any work arounds?

Sincerely,

Nate Teller



Re: failed index creation: ERROR: index_formtuple

From
Tom Lane
Date:
"Nate Teller" <nate.teller@mindspring.com> writes:
> I've had a nonclustered index on a column of type "character varying(11)"
> for many years.
> I dropped it and went to recreate the exact same index, but it fails every
> time.

> ERROR:  index_formtuple: data takes 28640 bytes, max is 8191

Ugh :-(.  It's certainly not possible for a valid varchar(11) value to
need 28k bytes.  You have evidently got some corrupted data in your
table.  I'd suggest scanning the table for clearly-bogus rows and
getting rid of them.  Another approach is to pg_dump the table and
try to reload it.

            regards, tom lane