lance-format/lance

Allow dictionary encoding to support more fixed width types

Open

#5 004 ouverte le 20 oct. 2025

Voir sur GitHub
 (2 commentaires) (0 réactions) (0 assignés)Rust (695 forks)github user discovery
good first issue

Métriques du dépôt

Stars
 (6 582 stars)
Métriques de merge PR
 (Merge moyen 6j 1h) (219 PRs mergées en 30 j)

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.

Guide contributeur