shyjsarah opened a new pull request, #598: URL: https://github.com/apache/paimon-rust/pull/598
## Summary Add read-side support for partial-update field aggregation, following the sequence-group read support from #584. The reader now parses and validates `fields.<field>.aggregate-function`, `fields.default-aggregate-function`, and `fields.<field>.list-agg-delimiter`, then applies the configured aggregators while merging rows. Older sequence-group rows use Java-compatible reversed aggregation so order-sensitive functions produce the same result as Paimon Java. Fixes #596. ## Changes - validate aggregate fields, functions, types, sequence-group coverage, and supported options before reading; - support the aggregate functions already registered in Rust, including per-field/default precedence; - add reversed aggregation semantics for numeric, boolean, value-picking, and `listagg` aggregators; - preserve all-null and partial-null composite sequence behavior; - widen internal projections for sequence and residual-filter dependencies without leaking internal columns; - reset aggregation state between primary keys and keep the non-aggregation fast path; - fail closed for unsupported functions and advanced modifiers; - document partial-update field aggregation read behavior and limitations. This is read-side only. Writer/CREATE support and delete/retract aggregation remain out of scope. There are no public API changes. ## Testing - `cargo fmt --all -- --check` - `cargo clippy --locked --all-targets --workspace --features fulltext,vortex -- -D warnings` - `cargo test -p paimon --lib` - `cargo test --locked -p paimon-datafusion --test pk_tables` Added coverage for validation, normal/reversed aggregation order, equal sequences, all-null and partial-null composite sequences, projection/filter dependency widening, multiple primary keys, state reset, `listagg`, NaN tie behavior, and Decimal precision/backing-integer overflow recovery. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
