Re: [HACKERS] Namespace of array of user defined types is confused by the parser in insert? - Mailing list pgsql-general

From Krzysztof Nienartowicz
Subject Re: [HACKERS] Namespace of array of user defined types is confused by the parser in insert?
Date
Msg-id CABY7=+4snSUFUP42VbuWLafTCPf1x1fStFP_RRCHd1NQ0PKxtg@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] Namespace of array of user defined types is confused by the parser in insert?  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: [HACKERS] Namespace of array of user defined types is confused by the parser in insert?  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-general
> pgsql-general probably would be best. -hackers is for discussion of internals and development, not for usage
questions.

ok, thank you.

>
> [types have namespaces]
>
>
>> Is there any way of avoid this error different than having a single
>> type defined for all schemas?
>> Any hints appreciated..
>
>
>
> Probably your best bet is to put the types explicitly in the public
> namespace when they are created, instead of relying on the search path that
> happens to be in force at the time:
>
>   create type public.foo as ( ...);

Yes, I did it in the end, but such a solution makes things risky if
the types evolve and the namespaces might hold different schema
versions.
This error occurs when there is no search_path overlap, i.e. roles
have only their own namespace search_path, even without public path
set.

>
>
> Then, assuming that public is in your search path they will be picked up
> properly when used. Alternatively, you can namespace qualify them when used:
>
>   create type public.bar as (f1 public.foo[], ...);

These types are qualified when created - the error does not happen on
creation - there are two types in two different namespaces - it
happens only on insert where it is not possible to qualify the type's
namespace.
It looks like a bug in the planner to me.

Thanks,
Krzysztof

>
>
>
> cheers
>
> andrew

pgsql-general by date:

Previous
From: Abel Abraham Camarillo Ojeda
Date:
Subject: Re: how to make an SQL UPDATE from record returning function
Next
From: Rafal Pietrak
Date:
Subject: Re: how to make an SQL UPDATE from record returning function