apache / apache/datafusion

Improve `AccumulatorArgs` after transition to all udafs

Open
#11,725 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
9.3k
Forks
2.4k
Avg merge
3d 7h
Merged PRs (30d)
344

Description

The end state in my mind now.
```rust
pub struct AccumulatorArgs<'a> {
/// Keep, this is return type, the name might be quite confusing.
pub data_type: &'a DataType,

/// We might only need one of `schema` or `dfschema`. It is likely we keep `dfschema`, since we can get `schema` from it.
pub schema: &'a Schema,

pub dfschema: &'a DFSchema,

/// Keep
pub ignore_nulls: bool,

/// Convert to physical sort exprs instead
pub sort_exprs: &'a [Expr],

/// Keep
pub is_reversed: bool,

/// We might able to get the name from expressions
pub name: &'a str,

/// Keep
pub is_distinct: bool,

/// Get the type from schema and expressions
pub input_type: &'a DataType,

/// Convert to physical expressions
pub input_exprs: &'a [Expr],
}
```

_Originally posted by @jayzhan211 in https://github.com/apache/datafusion/issues/11666#issuecomment-2256183484_

Contributor guide

Open the contributing guide

Research direction

Start by locating the AccumulatorArgs definition and the UDAF-related entry points that construct or consume it. Compare those uses with the proposed end-state fields, resolving which fields can be removed or derived. Done means the struct and its callers consistently reflect the agreed post-transition design.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
data-engineering
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.