Re: Adding skip scan (including MDAM style range skip scan) to nbtree
От | Peter Geoghegan |
---|---|
Тема | Re: Adding skip scan (including MDAM style range skip scan) to nbtree |
Дата | |
Msg-id | CAH2-Wzny9xh4Zw+gnf=TNjwXzVxEEQ24=murMM03h0a4+EMT+A@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Adding skip scan (including MDAM style range skip scan) to nbtree (Peter Geoghegan <pg@bowt.ie>) |
Ответы |
Re: Adding skip scan (including MDAM style range skip scan) to nbtree
|
Список | pgsql-hackers |
On Mon, Jul 15, 2024 at 2:34 PM Peter Geoghegan <pg@bowt.ie> wrote: > Attached is v3, which generalizes skip scan, allowing it to work with > opclasses/types that lack a skip support routine. In other words, v3 > makes skip scan work for all types, including continuous types, where > it's impractical or infeasible to add skip support. Attached is v4, which: * Fixes a previous FIXME item affecting range skip scans/skip arrays used in cross-type scenarios. * Refactors and simplifies the handling of range inequalities associated with skip arrays more generally. We now always use inequality scan keys during array advancement (and when descending the tree within _bt_first), rather than trying to use a datum taken from the range inequality as an array element directly. This gives us cleaner separation between scan keys/data types in cross-type scenarios: skip arrays will now only ever contain "elements" of opclass input type. Sentinel values such as -inf are expanded to represent "the lowest possible value that comes after the array's low_compare lower bound, if any". Opclasses that don't offer skip support took roughly this same approach within v3, but in v4 all opclasses do it the same way (so opclasses with skip support use the SK_BT_NEG_INF sentinel marking in their scan keys, though never the SK_BT_NEXTKEY sentinel marking). This is really just a refactoring revision. Nothing particularly exciting here compared to v3. -- Peter Geoghegan
Вложения
В списке pgsql-hackers по дате отправления: