On 3/2/15 3:56 PM, Andres Freund wrote:
> On 2015-03-02 16:42:35 -0500, Robert Haas wrote:
>> >On Tue, Feb 3, 2015 at 10:12 AM, Tom Lane<tgl@sss.pgh.pa.us> wrote:
>>> > >Two reasons this isn't terribly compelling are (1) it's creating a
>>> > >join in a place where the planner can't possibly see it and optimize
>>> > >it, and (2) you risk MVCC anomalies because the reg* output routines
>>> > >would not be using the same snapshot as the calling query.
>>> > >
>>> > >We already have problem (2) with the existing reg* functions so I'm
>>> > >not that excited about doubling down on the concept.
>> >
>> >I think I agree. I mean, I agree that this notation is more
>> >convenient, but I don't really want to add a whole new slough of types
>> >--- these will certainly not be the only ones we want once we go down
>> >this path --- to the default install just for notational convenience.
>> >It's arguable, of course, but I guess I'm going to vote against this
>> >patch.
> That's a justifyable position. I don't think there are other catalogs
> referenced as pervasively in the catalog though.
>
> There's one additional point: Using reg* types in the catalog tables
> themselves can make them*much* easier to read. I personally do look at
> the catalogs a awful lot, and seing names instead of oids makes it much
> easier. And adding regtype/role would allow to cover nearly all types
> containing oids.
+1. Constantly joining catalog tables together is a royal PITA, and
regnamespace is the biggest missing part of this (I typically don't look
at roles too much, but I can certainly see it's importance).
If we had more user friendly views on the catalogs maybe this wouldn't
be an issue... but that's a much larger project.
BTW, I think the potential for MVCC issues should be mentioned in the
docs (http://www.postgresql.org/docs/devel/static/datatype-oid.html).
--
Jim Nasby, Data Architect, Blue Treble Consulting
Data in Trouble? Get it in Treble! http://BlueTreble.com