Обсуждение: Finding the correct type

Поиск
Список
Период
Сортировка

Finding the correct type

От
Thomas Hallgren
Дата:
I'm writing a UDT that takes a varchar argument that represents the name 
of a type. The caller may optionally qualify with a namespace, i.e. 
"pg_catalog.varchar", or "public.address". Is there a c-function 
somewhere that will return the pg_type that corresponds to the name 
(with respect to the current setting of search_path in case the name is 
unqualified)?

Regards,
Thomas Hallgren



Re: Finding the correct type

От
Martijn van Oosterhout
Дата:
On Sun, Apr 30, 2006 at 12:50:23PM +0200, Thomas Hallgren wrote:
> I'm writing a UDT that takes a varchar argument that represents the name
> of a type. The caller may optionally qualify with a namespace, i.e.
> "pg_catalog.varchar", or "public.address". Is there a c-function
> somewhere that will return the pg_type that corresponds to the name
> (with respect to the current setting of search_path in case the name is
> unqualified)?

If you want it as a C string, something like format_type_be() would
suffice. Not it's designed for use in error messages so it makes no
particular to clean up after itself.

Another possibility is the output function for the regtype type, ie
regtypeout.

Hope this helps,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to litigate.

Re: Finding the correct type

От
Thomas Hallgren
Дата:
Martijn van Oosterhout wrote:
> On Sun, Apr 30, 2006 at 12:50:23PM +0200, Thomas Hallgren wrote:
>> I'm writing a UDT that takes a varchar argument that represents the name 
>> of a type. The caller may optionally qualify with a namespace, i.e. 
>> "pg_catalog.varchar", or "public.address". Is there a c-function 
>> somewhere that will return the pg_type that corresponds to the name 
>> (with respect to the current setting of search_path in case the name is 
>> unqualified)?
> 
> If you want it as a C string, something like format_type_be() would
> suffice. Not it's designed for use in error messages so it makes no
> particular to clean up after itself.
> 
> Another possibility is the output function for the regtype type, ie
> regtypeout.
> 
> Hope this helps,
Well, regtypeout led me to regtypein which in turn led me to parseTypeString which seems to 
be exactly what I want.

Thanks,
Thomas Hallgren