Skip to content
Opensource internals
  • Posts

Posts

All posts published on this site.

Everything published here, newest first.

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 →

Embedded Projections: How DataFusion Removes a Whole Plan Node by Folding It Into the Join

Oct 21, 2026 6 min read Jay Hubbert

DataFusion can fold a projection into the operator below it, so a hash join only builds the output columns that are actually used — removing both a plan node and a per-column take.

DatafusionProjectionOptimizerPerformanceInternals

Read more →

Window frames over preserved sort order: how DataFusion evaluates PARTITION BY and ORDER BY

Oct 21, 2026 20 min read Jay Hubbert

WindowAggExec asks the planner for hash-partitioned, sorted input, then walks each partition’s frame with a sliding accumulator that adds rows entering the frame and retracts rows …

DatafusionExecutionPerformanceInternals

Read more →

← Newer Page 38 of 83 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·