Skip to content

v3.0.0

Choose a tag to compare

@gabotechs gabotechs released this 14 Aug 14:09
· 11 commits to main since this release
v3.0.0
518f25b

Highlights

  • Opt-in Adaptive Query Execution (AQE). Distributed planning can now sample runtime stage output and choose task counts dynamically, using a cost model and completion-based estimates. Enable it with with_distributed_dynamic_task_count(true). #432, #486, #552

  • New event-driven customization API for distributed planning. Register ordered handlers for the distinct planning decisions: choose a desired task count (including asynchronously, after consulting metadata), specialize a leaf into per-task work, and route tasks to workers. Handlers can defer to later handlers and the built-in defaults, so integrations only need to implement the events they own. Worker-side plan rewrites are likewise composable and run in registration order before task execution. This replaces the former TaskEstimator and worker plan-hook APIs. #564, #567, #568, #569

  • Native distributed EXPLAIN ANALYZE. Query plans now show distributed stages together with coordinator and worker metrics, making it easier to inspect execution, skew, and network costs. Distributed plan display is also more compact. #558, #527

  • Broadcast joins enabled by default. CollectLeft hash joins now broadcast their build side by default. This release also fixes unsafe multi-task join shapes—including certain outer, anti, nested-loop, and cross joins—and preserves build-side FETCH/limit semantics during broadcast rewriting. #574, #583, #618

  • Better local execution placement. When the coordinator is also a worker, applications can register a LocalWorkerContext so single-task dynamic stages execute locally instead of making unnecessary network hops. #559

  • Correct worker metrics after stream cancellation. Worker task metrics are now collected after the execution stream is dropped, so metrics finalized during early termination—such as a downstream LIMIT stopping a stream—are included. #503

Upgrade notes

3.0.0 includes source-breaking API changes. See the 3.0.0 upgrade guide for migrations from 2.0.0.

What's Changed

New Contributors

Full Changelog: v2.0.0...v3.0.0