Re: Is _<typename> a supported way to create a column of array type?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Piotr Findeisen <piotr(dot)findeisen(at)starburstdata(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Is _<typename> a supported way to create a column of array type?
Date: 2019-04-25 21:03:43
Message-ID: 31659.1556226223@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Piotr Findeisen <piotr(dot)findeisen(at)starburstdata(dot)com> writes:
> Internally, array types get a name in the form of `_<typename>`.

Typically, yes.

> *Can a user use `_<typename>` to define a column of array type?*

Sure ... didn't you try it?

> *Is it supported?*

Not really, because it's not guaranteed that the name looks like that.
There are various corner cases where something else would be generated,
either to avoid a collision, or because truncation is needed.

However, if you've taken the trouble to check what name actually got
assigned to the array type, it's perfectly valid to use that name.

> The reason I am asking is that e.g. int4[] and _int4 behave differently.
> Although they look the same, the have different pg_attribute.attndims.

Yeah. Nothing really cares about attndims though ... it's vestigial.
Perhaps we should remove it someday.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Piotr Findeisen 2019-04-25 21:17:00 Re: Is _<typename> a supported way to create a column of array type?
Previous Message Martin Kováčik 2019-04-25 20:28:51 Re: analyze causes query planner to choose suboptimal plan for a select query in separate transaction