Re: extensible enum types
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: Robert Haas <robertmhaas@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-06-21T15:01:05Z
Lists: pgsql-hackers
Andrew Dunstan <andrew@dunslane.net> writes: > Tom Lane wrote: >> Well, having to do a cache lookup already makes it a couple orders of >> magnitude more expensive than an OID comparison. However, it's hard to >> say how much that matters in terms of total application performance. >> We really could do with a bit of performance testing here ... > I have done some. The performance hit is fairly horrible. Adding cache > lookups for the enum rows to the comarison routines made a REINDEX on a > 1m row table where the index is on an enum column (the enum has 500 > randomly ordered labels) jump from around 10s to around 70s. Hmmm... that's bad, but I bet it's still less than the cost of comparing NUMERICs. Also, did you make any attempt to avoid repetitive cache lookups by storing a pointer in fn_extra (cf array comparisons)? regards, tom lane