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.