You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Bulk skip in RunLengthBitPackingHybridDecoder / DictionaryValuesReader #3772
ValuesReader.skip(int n) ships with a naive default:
publicvoidskip(intn) {
for (inti = 0; i < n; i++) skip();
}
For dictionary-encoded columns (the common case), each skip() bottoms
out in RunLengthBitPackingHybridDecoder.readInt() — a mode switch,
array-index arithmetic, and a value the caller immediately discards.
Any filter-then-skip path (column-index row ranges, hash-join probe
filtering, runtime filters) pays this cost per skipped row.
Proposal
Add RunLengthBitPackingHybridDecoder.skipInts(int n) — re-use readNext() per run, then advance currentCount by min(n, currentCount) instead of walking every value through readInt().
Override skip(int) on DictionaryValuesReader and RunLengthBitPackingHybridValuesReader to call decoder.skipInts(n).
Activity
apacheGH-3772: Bulk skip in RunLengthBitPackingHybridDecoder / Dictio…
apacheGH-3772: Bulk skip in RunLengthBitPackingHybridDecoder / Dictio…
apacheGH-3772: Bulk skip in RunLengthBitPackingHybridDecoder / Dictio…
GH-3772: Bulk skip in RunLengthBitPackingHybridDecoder / DictionaryVa…