On 10/17/2010 01:20 PM, Tom Lane wrote:
I knew I shoulda read this patch ;-).  That seems a lot more invasive
than this feature justifies.  And I share your qualms about whether it's
race-condition-proof.  We don't have very much locking on pg_type
entries, so making a hard assumption about consistency between two
different catalogs seems pretty risky.

The way I'd be inclined to design this is that altering an enum doesn't
change its pg_type entry at all, just add another row to pg_enum.
When first needing to compare values of an enum, load up the typcache
entry for it.  This involves scanning all the entries for that type OID
in pg_enum, and determining from that whether you can compare the easy
way or not.  If not, build the array that tells you how to sort, and put
it in the typcache entry.


Perhaps mistakenly I wanted to avoid doing that as it would slow down a retail comparison quite a lot, especially in the case of an enum with a very large label set. That's why I put the sorted property and label count in pg_type.


cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to