Thread: BUG #12088: pg_upgrade 9.3 -> 9.4rc1 - implicit cast not ported
BUG #12088: pg_upgrade 9.3 -> 9.4rc1 - implicit cast not ported
From
ing.marco.colombo@gmail.com
Date:
The following bug has been logged on the website: Bug reference: 12088 Logged by: Marco Colombo Email address: ing.marco.colombo@gmail.com PostgreSQL version: 9.4beta2 Operating system: Centos 7 64bit Description: Hi, we have defined some implicit cast in the schema. After pg_upgrade process, these have been dropped and we had to create them again. Cast are defined as: create cast (varchar as numeric) with inout as implicit; create cast (unknown as numeric) with inout as implicit; create cast (unknown as text) with inout as implicit; create cast (unknown as integer) with inout as implicit;
On Fri, Nov 28, 2014 at 08:28:16AM +0000, ing.marco.colombo@gmail.com wrote: > The following bug has been logged on the website: > > Bug reference: 12088 > Logged by: Marco Colombo > Email address: ing.marco.colombo@gmail.com > PostgreSQL version: 9.4beta2 > Operating system: Centos 7 64bit > Description: > > Hi, we have defined some implicit cast in the schema. After pg_upgrade > process, these have been dropped and we had to create them again. > > Cast are defined as: > > create cast (varchar as numeric) with inout as implicit; > > create cast (unknown as numeric) with inout as implicit; > > create cast (unknown as text) with inout as implicit; > > create cast (unknown as integer) with inout as implicit; Well, pg_ugprade uses pg_dump to restore objects so I suggest you look at the pg_dump output of 9.3 to see why they were not output. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + Everyone has their own god. +
Hi, I've tried to perform pg_dump with 9.3 binaries but I simply get no errors and cast are not part of the dump... So are not restored... How can I continue the investigation? 2014-12-05 13:19 GMT+01:00 Bruce Momjian <bruce@momjian.us>: > On Fri, Nov 28, 2014 at 08:28:16AM +0000, ing.marco.colombo@gmail.com > wrote: > > The following bug has been logged on the website: > > > > Bug reference: 12088 > > Logged by: Marco Colombo > > Email address: ing.marco.colombo@gmail.com > > PostgreSQL version: 9.4beta2 > > Operating system: Centos 7 64bit > > Description: > > > > Hi, we have defined some implicit cast in the schema. After pg_upgrade > > process, these have been dropped and we had to create them again. > > > > Cast are defined as: > > > > create cast (varchar as numeric) with inout as implicit; > > > > create cast (unknown as numeric) with inout as implicit; > > > > create cast (unknown as text) with inout as implicit; > > > > create cast (unknown as integer) with inout as implicit; > > Well, pg_ugprade uses pg_dump to restore objects so I suggest you look > at the pg_dump output of 9.3 to see why they were not output. > > -- > Bruce Momjian <bruce@momjian.us> http://momjian.us > EnterpriseDB http://enterprisedb.com > > + Everyone has their own god. + > -- Ing. Marco Colombo
On 11/28/14 3:28 AM, ing.marco.colombo@gmail.com wrote: > Hi, we have defined some implicit cast in the schema. After pg_upgrade > process, these have been dropped and we had to create them again. > > Cast are defined as: > > create cast (varchar as numeric) with inout as implicit; > > create cast (unknown as numeric) with inout as implicit; > > create cast (unknown as text) with inout as implicit; > > create cast (unknown as integer) with inout as implicit; pg_dump doesn't dump these casts. There is a source code comment that explains why: /* * As per discussion we dump casts if one or more of the underlying * objects (the conversion function and the two data types) are not * builtin AND if all of the non-builtin objects are included in the dump. * Builtin meaning, the namespace name does not start with "pg_". * * However, for a cast that belongs to an extension, we must not use this * heuristic, but just dump the cast iff we're told to (via dobj.dump). */ So recreating the casts manually after the upgrade is the best workaround at the moment.
Thanks for the explanation! Marco Colombo Il 13/gen/2015 19:41 "Peter Eisentraut" <peter_e@gmx.net> ha scritto: > On 11/28/14 3:28 AM, ing.marco.colombo@gmail.com wrote: > > Hi, we have defined some implicit cast in the schema. After pg_upgrade > > process, these have been dropped and we had to create them again. > > > > Cast are defined as: > > > > create cast (varchar as numeric) with inout as implicit; > > > > create cast (unknown as numeric) with inout as implicit; > > > > create cast (unknown as text) with inout as implicit; > > > > create cast (unknown as integer) with inout as implicit; > > pg_dump doesn't dump these casts. There is a source code comment that > explains why: > > /* > * As per discussion we dump casts if one or more of the underlying > * objects (the conversion function and the two data types) are not > * builtin AND if all of the non-builtin objects are included in the > dump. > * Builtin meaning, the namespace name does not start with "pg_". > * > * However, for a cast that belongs to an extension, we must not use > this > * heuristic, but just dump the cast iff we're told to (via dobj.dump). > */ > > So recreating the casts manually after the upgrade is the best > workaround at the moment. > >