Re: select statement against pg_stats returns inconsistent data - Mailing list pgsql-general

From Shelby Cain
Subject Re: select statement against pg_stats returns inconsistent data
Date
Msg-id 20040226041859.97252.qmail@web41602.mail.yahoo.com
Whole thread Raw
In response to Re: select statement against pg_stats returns inconsistent data  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
--- Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Hoo, I'm surprised no one noticed this during 7.4
> development/testing.
> The problem applies for any datatype that requires
> double alignment,
> which includes int8, float8, and timestamp as well
> as most of the
> geometric types.  pg_statistic is declared as using
> type "anyarray",
> and this type really needs to be marked as requiring
> double alignment
> so that arrays of double-aligned datatypes will come
> out correctly.
>
> The correct source fix is a one-line change in
> pg_type.h, but this will
> not propagate into existing databases without an
> initdb.  It looks like
> what you'd need to do to fix an existing database is
>
> -- clear out broken data in pg_statistic
> DELETE FROM pg_statistic;
> -- this should update 1 row:
> UPDATE pg_type SET typalign = 'd' WHERE oid = 2277;
> -- this should update 6 rows:
> UPDATE pg_attribute SET attalign = 'd' WHERE
> atttypid = 2277;
> -- might be a good idea to start a fresh backend at
> this point
> -- repopulate pg_statistic
> ANALYZE;
>
> Ugh :-(
>
>             regards, tom lane


Works for me.  Thanks!

__________________________________
Do you Yahoo!?
Get better spam protection with Yahoo! Mail.
http://antispam.yahoo.com/tools

pgsql-general by date:

Previous
From: Eric B.Ridge
Date:
Subject: Re: key = currval('tab_key_seq') choses SEQSCAN?!
Next
From: Joe Conway
Date:
Subject: Re: key = currval('tab_key_seq') choses SEQSCAN?!