liangjie3138 opened a new pull request, #183:
URL: https://github.com/apache/paimon-cpp/pull/183

   ### Purpose
   
     Linked issue: close https://github.com/alibaba/paimon-cpp/issues/457
   
     Port the six practical field aggregators missing on the C++ side — 
`collect`,
     `merge_map`, `nested_update`, `rbm64`, `hll_sketch`, `theta_sketch` .
   
     Also adds `GenericArray` / `GenericMap`, the in-memory `InternalArray` /
     `InternalMap` implementations these aggregators need to build ARRAY and MAP
     results.
   
   
     ### Tests
   
     18 new unit test cases in `paimon-core-test`, covering each aggregator's
     aggregate / retract / null / type-validation paths.
   
     Three pin behaviour that is easy to "fix" incorrectly, and each was 
checked by
     reverting the corresponding production change and confirming it fails:
   
     - `BinaryAggMergeFunctionTest.OwnedAccumulatorSurvivesNullInput` — drives 
a real
       `AggregateMergeFunction` so the use-after-free is exercised through the
       production path.
     - `FieldNestedUpdateAggTest.CountLimitCountsNullElementsOfAccumulator` — 
count
       limit is measured against the raw element count, matching Java.
     - `FieldIgnoreRetractAggTest.ReversedAggBypassesWrappedOverride` — the 
wrapper
       does not preserve the wrapped aggregator's reversed-aggregation 
override, also
       matching Java.
   
     No integration tests added.
   
     ### API and Format
   
     Additive only, no signatures changed:
   
     - `include/paimon/defs.h`: four new `Options` constants — `NESTED_KEY`,
       `NESTED_KEY_NULL_STRATEGY`, `NESTED_SEQUENCE_FIELD`, `COUNT_LIMIT`.
     - `CoreOptions`: a `NestedKeyNullStrategy` enum plus accessors.
     - `FieldAggregator`: new virtuals default to the existing `Agg` / 
`AggReversed`.
   
     New dependency: Apache DataSketches 5.2.0 (Apache-2.0), resolved through
     `resolve_dependency()` like the other bundled dependencies.
   
     ### Documentation
   
     None.
   
     ### Generative AI tooling
   
     Generated-by: Claude Code 2.1.220 (Claude Opus 5)


-- 
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