Re: pg_type.typname of array types.

From: Florian Pflug <fgp(at)phlo(dot)org>
To: Dmitriy Igrishin <dmitigr(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_type.typname of array types.
Date: 2010-12-08 13:02:36
Message-ID: 981AEB42-0CCB-43F9-AB0D-BC13728E6D5C@phlo.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Dec8, 2010, at 11:35 , Dmitriy Igrishin wrote:
> Is it guaranteed that name of array types in pg_type system
> catalog will always be prefixed by underscore or this convention
> can be changed in future ?

What's the advantage of letting your code depend on this?

Within SQL, I suggest you write <type>[] to denote <type>'s array type. In the catalog, each pg_type row contains a references the corresponding array type (by OID) in the field "typarray".

BTW, when querying pg_type, instead of adding another join to pg_type to get the array type's name, you can simply cast the "typarray" field to "regtype". That way, should the array type happen to lie in a schema not in your search_path, the name will even be correctly schema-qualified. (In fact, it's not the cast which does the translation but rather the implicit conversion from regtype to cstring that happens when the result is transferred to the client. For further information, you might want to check out the documentation of the various reg* types provided by postgres).

Hope that helps,
Florian Pflug

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dmitriy Igrishin 2010-12-08 13:32:10 Re: pg_type.typname of array types.
Previous Message Marko Tiikkaja 2010-12-08 11:23:59 Re: wCTE behaviour