Re: Re: [Pg-migrator-general] Composite types break pg_migrated tables

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Jeff <threshar(at)threshar(dot)is-a-geek(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Re: [Pg-migrator-general] Composite types break pg_migrated tables
Date: 2009-08-05 22:45:56
Message-ID: 200908052245.n75Mjuv25572@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Bruce Momjian wrote:
>
> I received the following pg_migrator bug report today and was able to
> reproduce the reported failure when using composite types:
>
> test=> SELECT * FROM breakmigrator;
> ERROR: cache lookup failed for type 27604
>
> test=> ANALYZE VERBOSE public.breakmigrator;
> INFO: analyzing "public.breakmigrator"
> INFO: "breakmigrator": scanned 1 of 1 pages, containing 3 live rows and
> 0 dead rows; 3 rows in sample, 3 estimated total rows
> ERROR: cache lookup failed for type 27604
>
> There is no pg_type row with oid 27604.
>
> Can anyone suggest the cause? Do we embed the object oid in the
> composite object? Did we change the composite object storage layout
> between 8.3 and 8.4? I am surprised the regression tests didn't show
> this error. (I just tried ANALYZE on the regression database and it
> succeeded.)

More info: I found 27604 in the old 8.3 database:

test=> SELECT * FROM pg_type WHERE oid = 27604;
-[ RECORD 1 ]-+------------
typname | footype
typnamespace | 2200
typowner | 10
typlen | -1
typbyval | f
typtype | c
typisdefined | t
typdelim | ,
typrelid | 27602
typelem | 0
typarray | 27603
typinput | record_in
typoutput | record_out
typreceive | record_recv
typsend | record_send
typmodin | -
typmodout | -
typanalyze | -
typalign | d
typstorage | x
typnotnull | f
typbasetype | 0
typtypmod | -1
typndims | 0
typdefaultbin |
typdefault |

'footype' has a different oid in the new 8.4 database:

test=> SELECT oid, * FROM pg_type WHERE typname = 'footype';
-[ RECORD 1 ]--+------------
oid | 17580
typname | footype
typnamespace | 2200
typowner | 10
typlen | -1
typbyval | f
typtype | c
typcategory | C
typispreferred | f
typisdefined | t
typdelim | ,
typrelid | 17578
typelem | 0
typarray | 17579
typinput | record_in
typoutput | record_out
typreceive | record_recv
typsend | record_send
typmodin | -
typmodout | -
typanalyze | -
typalign | d
typstorage | x
typnotnull | f
typbasetype | 0
typtypmod | -1
typndims | 0
typdefaultbin |
typdefault |

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Josh Berkus 2009-08-05 22:59:28 Re: Alpha Releases: Docs?
Previous Message Bruce Momjian 2009-08-05 22:32:42 Re: [Pg-migrator-general] Composite types break pg_migrated tables