Re: Ranges for well-ordered types
От | Michael Glaesemann |
---|---|
Тема | Re: Ranges for well-ordered types |
Дата | |
Msg-id | EB6C7C08-A436-4BC3-AF79-ECD76DCB14A1@seespotcode.net обсуждение исходный текст |
Ответ на | Re: Ranges for well-ordered types (Michael Glaesemann <grzm@seespotcode.net>) |
Список | pgsql-hackers |
On Jun 11, 2006, at 2:34 , Michael Glaesemann wrote: > > On Jun 11, 2006, at 0:54 , Ian Caulfield wrote: > >> I've done similar date range things by creating a composite type >> consisting of the lower and upper bounds, and then implementing a >> btree opclass where the comparator returns 0 if two ranges overlap >> - this allows a current btree index to enforce non-overlapping >> ranges, and allows indexed lookup of which range contains a >> particular value. > > As Tom already pointed out, this method leads to problems with > btree indexes. I haven't heavily tested my own implementation > (below), but it only returns 0 for equality, which is what btree > expects. All other possible relationships between two ranges have a > well-defined result of -1 or 1. I believe this should be enough to > prevent any transitivity issues with btree. Of course, this method doesn't provide the non-overlapping constraint. That still needs to be handled by a constraint trigger. Michael Glaesemann grzm seespotcode net
В списке pgsql-hackers по дате отправления: