Re: WIP: extensible enums
От | Magnus Hagander |
---|---|
Тема | Re: WIP: extensible enums |
Дата | |
Msg-id | AANLkTikNmQgOMShU9xsXuZ1X6hPPzd6K5UCPGUOA8Vqm@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: WIP: extensible enums (Thom Brown <thom@linux.com>) |
Ответы |
Re: WIP: extensible enums
|
Список | pgsql-hackers |
On Tue, Oct 19, 2010 at 10:19, Thom Brown <thom@linux.com> wrote: > On 19 October 2010 05:21, Andrew Dunstan <andrew@dunslane.net> wrote: >> >> >> On 10/18/2010 10:52 AM, Tom Lane wrote: >>> >>> We could possibly deal with enum types that follow the existing >>> convention if we made the cache entry hold a list of all the original, >>> known-to-be-sorted OIDs. (This could be reasonably compact and cheap to >>> probe if it were represented as a starting OID and a Bitmapset of delta >>> values, since we can assume that the initial set of OIDs is pretty close >>> together.) But we have to have that cache entry, and we have to consult >>> it on every single comparison, so it's definitely going to be slower >>> than before. >>> >>> So I'm thinking the comparison procedure goes like this: >>> >>> 1. Both OIDs even? >>> If so, just compare them numerically, and we're done. >>> >>> 2. Lookup cache entry for enum type. >>> >>> 3. Both OIDs in list of known-sorted OIDs? >>> If so, just compare them numerically, and we're done. >>> >>> 4. Search the part of the cache entry that lists sort positions. >>> If not both present, refresh the cache entry. >>> If still not present, throw error. >>> >>> 5. Compare by sort positions. >>> >>> Step 4 is the slowest part but would be avoided in most cases. >>> However, step 2 is none too speedy either, and would usually >>> be required when dealing with pre-existing enums. >> >> OK, I've made adjustments that I think do what you're suggesting. >> >> Patch is attached. >> >> Alternatively this can be pulled from >> <git@github.com:adunstan/postgresql-dev.git> > > Andrew, can't you get your own repo at git.postgresql.org? He certainly could, but github provides more features and a nicer look :-) And since it's git, it doesn't matter where the repo is. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
В списке pgsql-hackers по дате отправления: