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]

Reply via email to