lance-format/lance
View on GitHubAllow dictionary encoding to support more fixed width types
Open
#5,004 opened on Oct 20, 2025
good first issue
Repository metrics
- Stars
- (6,582 stars)
- PR merge metrics
- (Avg merge 6d 1h) (219 merged PRs in 30d)
Description
Currently the dictionary encoding in 2.1 only applies to some 128-bit fixed-width types. I think this was a combination of a few things:
- At the time, we were not bit-packing indices, and so applying dictionary encoding to smaller types was unlikely to be beneficial
- Estimating cardinality on all columns was expensive
- TPC-H data has a lot of 128-bit decimals that benefit from dictionary encoding so there was an outsized (and unrealistic) benchmarking gain to focusing on 128-bit types.
However, we should at least be considering dictionary encoding for 64-bit types and maybe even 32-bit types.