> *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.