Re: [BUGS] vacuum analyze corrupts db with larger tuples (< 8k) - Mailing list pgsql-bugs

From Tom Lane
Subject Re: [BUGS] vacuum analyze corrupts db with larger tuples (< 8k)
Date
Msg-id 13309.947002358@sss.pgh.pa.us
Whole thread Raw
In response to vacuum analyze corrupts db with larger tuples (< 8k)  (Dirk Lutzebaeck <lutzeb@aeccom.com>)
Responses Re: [BUGS] vacuum analyze corrupts db with larger tuples (< 8k)  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: [BUGS] vacuum analyze corrupts db with larger tuples (< 8k)]  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-bugs
Dirk Lutzebaeck <lutzeb@aeccom.com> writes:
> ok, here is what I have found out on 6.5.3, Linux 2.2.10:
> [ make table with a bunch of almost-5K varchar fields ]
> # vacuumdb --analyze test
> ERROR:  Tuple is too big: size 9604
> vacuumdb: database vacuum failed on test.

Ohhh ... I know what's going on.  The oversize tuple is the one that
VACUUM is attempting to store in pg_statistic, containing the min and
max values for your varchar column.  In this example, both the min and
max are just shy of 5K characters, so the pg_statistic tuple is too
big to fit on a page.

I had already patched this in current sources, by the expedient of not
trying to store a pg_statistic tuple at all if it's too big.  (Then
you don't get stats for that particular column, but the stats probably
wouldn't be useful anyway.)

I suppose I should make up a back-patch for REL6_5 with this fix.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Andrzej Mazurkiewicz
Date:
Subject: inheritance of functions in postgres
Next
From: Tom Lane
Date:
Subject: Re: [BUGS] vacuum analyze corrupts db with larger tuples (< 8k)