Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions paimon-python/pypaimon/read/merge_engine_support.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,9 +212,8 @@ def check_supported(table) -> None:
"built-in aggregators ({}); retract opt-ins "
"(aggregation.remove-record-on-delete, "
"fields.<f>.ignore-retract) "
"and other aggregators (product / listagg / collect / "
"nested_update* / theta_sketch / "
"hll_sketch / roaring_bitmap_*) are not yet supported. "
"and other aggregators (hll_sketch / roaring_bitmap_*) "
"are not yet supported. "
"Open an issue to track support.".format(
", ".join(sorted(unsupported)),
", ".join(sorted(_AGGREGATION_SUPPORTED_AGG_FUNCS)),
Expand Down Expand Up @@ -264,8 +263,7 @@ def aggregation_unsupported_options(table) -> Set[str]:
``builtin_seq_comparator``).
3. Out-of-scope aggregator selections: ``fields.<f>.aggregate-
function`` and ``fields.default-aggregate-function`` set to an
identifier this engine doesn't support yet (e.g. ``collect``,
``nested_update``).
identifier this engine doesn't support yet (e.g. ``hll_sketch``).
"""
flagged: Set[str] = set()
raw = table.options.options.to_map()
Expand Down
9 changes: 5 additions & 4 deletions paimon-python/pypaimon/read/reader/aggregate/aggregators.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,13 @@
via :func:`register_aggregator`, so importing
``pypaimon.read.reader.aggregate`` makes all of them discoverable.

This module ships 10 aggregators — the primary-key placeholder plus
the 9 most commonly-used value aggregators: ``primary_key`` /
This module ships 18 aggregators — the primary-key placeholder plus
the 17 most commonly-used value aggregators: ``primary_key`` /
``last_value`` / ``last_non_null_value`` / ``first_value`` /
``first_non_null_value`` / ``sum`` / ``max`` / ``min`` / ``bool_or``
/ ``bool_and``. Other aggregators (``product`` / ``listagg`` /
``collect`` / ``merge_map`` / ``nested_update`` / ``theta_sketch`` /
/ ``bool_and`` / ``product`` / ``listagg`` / ``collect`` /
``merge_map`` / ``merge_map_with_keytime`` / ``nested_update`` /
``nested_partial_update`` / ``theta_sketch``. Other aggregators (
``hll_sketch`` / ``roaring_bitmap_*``) are intentionally deferred —
the registry will report them as unsupported so users see a clear
error rather than a silent fallback.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,9 @@

This is the **core merge semantics only**. Retract on DELETE /
UPDATE_BEFORE rows (with ``aggregation.remove-record-on-delete`` and
``fields.<field>.ignore-retract`` opt-ins) and ~14 additional
aggregators (``product`` / ``listagg`` / ``collect`` / ``merge_map`` /
``nested_update`` / ``theta_sketch`` / ``hll_sketch`` /
``roaring_bitmap_*``) are intentionally deferred. Non-INSERT row
``fields.<field>.ignore-retract`` opt-ins) and ~3 additional
aggregators (``hll_sketch`` / ``roaring_bitmap_*``)
are intentionally deferred. Non-INSERT row
kinds raise ``NotImplementedError`` at :meth:`add` time so we never
silently corrupt data with a half-implemented contract, and
out-of-scope aggregator identifiers / options are rejected up-front in
Expand Down
Loading