BUG #12088: pg_upgrade 9.3 -> 9.4rc1 - implicit cast not ported

Started by Marco Colomboover 11 years ago5 messagesbugs
Jump to latest
#1Marco Colombo
ing.marco.colombo@gmail.com

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;

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#2Bruce Momjian
bruce@momjian.us
In reply to: Marco Colombo (#1)
Re: BUG #12088: pg_upgrade 9.3 -> 9.4rc1 - implicit cast not ported

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. +

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#3Marco Colombo
ing.marco.colombo@gmail.com
In reply to: Bruce Momjian (#2)
Re: BUG #12088: pg_upgrade 9.3 -> 9.4rc1 - implicit cast not ported

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

#4Peter Eisentraut
peter_e@gmx.net
In reply to: Marco Colombo (#1)
Re: BUG #12088: pg_upgrade 9.3 -> 9.4rc1 - implicit cast not ported

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.

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#5Marco Colombo
ing.marco.colombo@gmail.com
In reply to: Peter Eisentraut (#4)
Re: BUG #12088: pg_upgrade 9.3 -> 9.4rc1 - implicit cast not ported

Thanks for the explanation!

Marco Colombo
Il 13/gen/2015 19:41 "Peter Eisentraut" <peter_e@gmx.net> ha scritto:

Show quoted text

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.