Andrew Dunstan <[EMAIL PROTECTED]> writes: > Gregory Stark wrote: >> BTW, why exactly do we need array types to have names at all?
Because typname is part of the primary key for pg_type ... >> The only >> user-visible way to refer to these types is always by foo[] isn't it? > I think you can use the _foo name, but it would certainly be an odd > thing to do. There is *tons* of legacy code that uses _foo, mainly because there was a time when we didn't support the [] notation in a lot of places where types can be named. There still are some places, in fact: regression=# alter type widget[] set schema public; ERROR: syntax error at or near "[" LINE 1: alter type widget[] set schema public; ^ regression=# alter type _widget set schema public; ERROR: cannot alter array type widget[] HINT: You can alter type widget, which will alter the array type as well. regression=# That particular one may not need fixed (anymore) but the real problem is the torches-and-pitchforks session that will ensue if we break legacy code for no reason beyond cosmetics. IIRC some of the contrib modules still have instances of _foo in their SQL scripts. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster