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]

Reply via email to