Re: Building infrastructure for B-Tree deduplication that recognizeswhen opclass equality is also equivalence
От | Robert Haas |
---|---|
Тема | Re: Building infrastructure for B-Tree deduplication that recognizeswhen opclass equality is also equivalence |
Дата | |
Msg-id | CA+TgmoZB3oq7HuS+A-L5xxotLS6f7UZMOrNMHXnopDgyk2D=Og@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Building infrastructure for B-Tree deduplication that recognizeswhen opclass equality is also equivalence (Peter Geoghegan <pg@bowt.ie>) |
Ответы |
Re: Building infrastructure for B-Tree deduplication that recognizeswhen opclass equality is also equivalence
|
Список | pgsql-hackers |
On Mon, Dec 30, 2019 at 6:58 PM Peter Geoghegan <pg@bowt.ie> wrote: > I propose that we adopt the following definition: For an operator > class to be safe, its equality operator has to always agree with > datum_image_eq() (i.e. two datums must be bitwise equal after > detoasting). I suggested using datumIsEqual() as the canonical definition. (I wonder why datum_image_eq() does not reuse that function?) > Note: In theory this definition is stricter than truly necessary to > make deduplication safe, because we can imagine a contrived case in > which an operator class exists where datum_image_eq() does not always > agree with the equality operator, even though the equality operator > will reliably consider two datums to be equal only when they have > identical outputs from the underlying type's output function. This > could happen when an operator class author wasn't very careful about > zeroing padding -- this may not have mattered to the opclass author > because nobody relied on that padding anyway. I think that stuff like > this is not worth worrying about -- it can only happen because the > datatype/operator class author was very sloppy. +1. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: