Re: [HACKERS] Namespace of array of user defined types is confused by the parser in insert?
От | Krzysztof Nienartowicz |
---|---|
Тема | Re: [HACKERS] Namespace of array of user defined types is confused by the parser in insert? |
Дата | |
Msg-id | CABY7=+4snSUFUP42VbuWLafTCPf1x1fStFP_RRCHd1NQ0PKxtg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Namespace of array of user defined types is confused by the parser in insert? (Andrew Dunstan <andrew@dunslane.net>) |
Ответы |
Re: [HACKERS] Namespace of array of user defined types is confused
by the parser in insert?
|
Список | 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 по дате отправления: