Tom Lane wrote:
> Bruce Momjian <bruce@momjian.us> writes:
> > Peter Eisentraut wrote:
> >> That might be a bit excessive. As I understand it, arrays of built-in types
> >> (e.g., int[]) should work fine. I suspect the majority of uses of arrays will
> >> be with built-in types, so allowing that would help a significant portion of
> >> installations.
>
> > Agreed. I realized that last night, and have modified pg_migrator to
> > test FirstNormalObjectId.
>
> That's really the wrong thing. It's safe to assume OIDs below 10000
> are portable across versions, because for them not to be would require
> someone to have changed a hand assignment. However, OIDs between 10000
> and 16K are assigned on-the-fly by initdb, and those are *not* likely
> to be portable across versions. As an example, the rowtype for
> pg_statistic has slightly different OIDs in 8.3 and 8.4. So if you
> allow someone to port a database that is using a system catalog's
> rowtype, it will fail. Admittedly that's not a real likely scenario,
> but if you're going to have a check it should be accurate.
Thanks, I changed FirstNormalObjectId to FirstBootstrapObjectId for the
array/enum/composite oid test, and added a C comment about it.
-- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB
http://enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +