TheR1sing3un opened a new pull request, #340: URL: https://github.com/apache/paimon-rust/pull/340
### Purpose Add `merge-engine=aggregation` (basic mode) — Rust port of Java `AggregateMergeFunction`. ### Brief change log - `MergeEngine::Aggregation` + `AggregationConfig` (basic-mode option whitelist; rejects `ignore-retract`, `distinct`, `sequence-group`, `nested-key`, `count-limit`, `aggregation.remove-record-on-delete`, `ignore-delete`). - 12 aggregators: `sum` / `product` / `min` / `max` / `count` / `last_value` / `first_value` / `last_non_null_value` / `first_non_null_value` / `bool_and` / `bool_or` / `listagg`. - `AggregateMergeFunction` wired through `KeyValueFileReader`. Sequence fields forced to `last_value`; PK columns copied through. - `DELETE` / `UPDATE_BEFORE` rejected at runtime. `DECIMAL` `product` deferred (BigDecimal-style scale rebasing TBD). ### Tests - 53 unit tests under `aggregator/*` and `sort_merge`. - 9 DataFusion e2e tests in `pk_tables.rs` covering sum+listagg, default function, mixed aggregators, sequence-field forced `last_value`, DELETE rejection, missing-config error, unsupported-options rejection, all-NULL sum, and read-path routing. - `cargo fmt`, `cargo clippy --features fulltext,vortex -- -D warnings`, `cargo test -p paimon --features fulltext,vortex --lib`, `cargo test -p paimon-datafusion --test pk_tables` all green. ### API and Format No on-disk format change. All new types are `pub(crate)`. ### Documentation Inline module docs reference the Java counterparts. No user-facing doc update yet. -- 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]
