Skip to content
Opensource internals
  • Posts

Posts

All posts published on this site.

Everything published here, newest first.

DataFusion's Symmetric Hash Join Builds a Hash Table on Both Sides and Prunes the Rest

Oct 21, 2026 13 min read Jay Hubbert

DataFusion’s symmetric hash join hashes both streams, lets each side probe the other’s table, and prunes rows that can no longer match using interval arithmetic — trading memory …

DatafusionJoinsPerformanceInternals

Read more →

NOT IN in a Hash Join: Why DataFusion Decides UNKNOWN Per Build Row

Oct 21, 2026 8 min read Jay Hubbert

DataFusion’s null-aware hash join tracks NOT IN’s three-valued logic with per-build-row bitmaps and a separate hash table of NULL-valued build rows, because the answer depends on …

DatafusionJoinsNullsNot inPerformanceInternals

Read more →

The ASOF Join as a Merge Scan: How DataFusion Finds the Closest Preceding Row Without a Hash Table

Oct 21, 2026 10 min read Jay Hubbert

DataFusion implements ASOF join as a forward-only merge over two sorted inputs, keeping exactly one candidate right row per equality group and replacing it as better matches …

DatafusionJoinsAsof joinPerformanceInternals

Read more →

Dictionary Columns Are a Hash Cache: How DataFusion Groups by Dictionary Index and What That Buys

Oct 21, 2026 17 min read Jay Hubbert

A dictionary column is a pre-built hash cache: DataFusion hashes each distinct dictionary value once, scatters those hashes to the keys, and memoizes value-index to group-slot so …

DatafusionArrowPerformanceInternals

Read more →

DataFusion folds constants at plan time: ConstEvaluator, the algebra rules, and the cast-unwrapping trick

Oct 21, 2026 11 min read Jay Hubbert

Constant folding happens in the logical optimizer via a dummy-batch evaluator, algebraic rules fire in a fixpoint loop, and casts are unwrapped into the literal when the conversion …

DatafusionOptimizerPerformanceInternals

Read more →

← Newer Page 25 of 70 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·