Conversation
- Generate dense group indices (0..N) via hash-table-style dedup in fuzz tests, matching real GroupedHashAggregateStream behavior. Previously sparse random indices caused SeenValues::All to mark never-appeared groups as "seen" on transition to Some mode. - Use build_single_null_buffer() instead of build(EmitTo::All) to avoid panic in blocked mode. - Replace deprecated gen_range with random_range. - Extract Fixture::new_fixed() from inline test setup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Refactor `maybe_enable_blocked_groups` into a pure predicate `can_enable_blocked_groups` that returns bool, moving `alter_block_size` calls to the caller. Adjust OOM mode selection to account for infinite memory pools explicitly, and add assertions before entering ProducingBlocks state. Minor rustfmt fixes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…-blocked-approach # Conflicts: # datafusion/functions-aggregate/src/first_last.rs # datafusion/physical-plan/src/aggregates/group_values/row.rs # datafusion/physical-plan/src/aggregates/group_values/single_group_by/primitive.rs # docs/source/user-guide/configs.md
|
run benchmarks |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing dandandan/intermeidate-result-blocked-approach (4b1affa) to 961c5fc (merge-base) diff using: clickbench_partitioned File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing dandandan/intermeidate-result-blocked-approach (4b1affa) to 961c5fc (merge-base) diff using: tpcds File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing dandandan/intermeidate-result-blocked-approach (4b1affa) to 961c5fc (merge-base) diff using: tpch File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: CPU Details (lscpu)Details
Resource Usagetpcds — base (merge-base)
tpcds — branch
File an issue against this benchmark runner |
…-offset pop Replace VecDeque with Vec in Blocks and GroupValuesPrimitive for direct pointer-offset indexing in the per-row accumulate hot path. Use a start offset in Blocks::pop_block to avoid O(n) element shifting. Add #[inline] to GroupIndexOperations impls, Blocks Index/IndexMut, and set_bit to ensure the full closure chain is inlineable. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
🤖 Benchmark completed (GKE) | trigger Instance: CPU Details (lscpu)Details
Resource Usageclickbench_partitioned — base (merge-base)
clickbench_partitioned — branch
File an issue against this benchmark runner |
|
run benchmarks |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing dandandan/intermeidate-result-blocked-approach (baa7755) to 961c5fc (merge-base) diff using: clickbench_partitioned File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing dandandan/intermeidate-result-blocked-approach (baa7755) to 961c5fc (merge-base) diff using: tpcds File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing dandandan/intermeidate-result-blocked-approach (baa7755) to 961c5fc (merge-base) diff using: tpch File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: CPU Details (lscpu)Details
Resource Usageclickbench_partitioned — base (merge-base)
clickbench_partitioned — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: CPU Details (lscpu)Details
Resource Usagetpcds — base (merge-base)
tpcds — branch
File an issue against this benchmark runner |
Summary
Details
This is a continuation of #15591 with upstream/main merged in and conflicts resolved.
Key conflict resolutions:
first_last.rs: Adopted upstream's refactoredstate::take_need,extreme_of_each_group_bufrename, andself.state.take()APIprimitive.rs: Integrated upstream's hash short-circuit optimization (hash == h &&) into the blocked group index access patternarray_agg.rs,state.rs,order/mod.rs: AddedEmitTo::NextBlockarms to new upstream match expressionsrow_hash.rs: Fixedblock_size->batch_sizereference, fixedBox<dyn GroupValues>coercionconfigs.md: Took upstream's restructured format and addedenable_aggregation_blocked_groupsentry🤖 Generated with Claude Code