wangzhigang1999 opened a new pull request, #10462: URL: https://github.com/apache/paimon/pull/10462
### Purpose Fixes #10460. The object RowKind support merged in #10451 and #10455 leaves a filtering gap in automatic postpone bucket planning. With `ignore-delete=true`, an ignored DELETE still reaches the partition/bucket planner before filtering; it can fail on routing values that should never be inspected. Filter object events before consulting the postpone bucket plan, matching the ordinary write path. Keep event columns in Arrow throughout the Python writer: reuse an existing `_VALUE_KIND` array instead of converting it to a Python list and back, use `pa.repeat` for constant events, and build batch filters with Arrow compute. Preserve configured `rowkind.field` precedence, default INSERT behavior, and invalid-event error ordering. Use `SpecialFields.VALUE_KIND` for the system column and add explicit types to `row_kinds`. Related work: #6735 and the closed, unmerged #6736 proposed earlier RowKind support. This PR builds on the object support now in master; native Blob handling, cross-partition events, and mixed-input normalization remain with the upstream implementation. The delete-count constant cleanup is a separate commit. ### Tests - Rebased onto master `ff2f1cec131542965c57e6808b8d5e8e95be8125`: 556 regression tests passed, with 394 native plans exercised. The suite includes object/configured events, batch/stream and mixed Arrow/Row writes, postpone routing, native cross-partition migration, Blob writes, input changelogs, and failure cleanup. - Ran the 36 object-event cases against unmodified master: 35 passed; the automatic-postpone pre-routing filter case failed. All 36 pass with this change. - Batch-filter boundaries cover combined ignore options, sliced chunks, repeated keys, null business values, empty/all-filtered checkpoints, and invalid-event error ordering. - Ruff formatting and E4/E7/E9/F lint checks pass within the diff. Flake8 passes for all 937 Python files. Pyright standard reports no new diagnostics against master; the same 79 existing diagnostics remain in the checked files. `git diff --check` passes. Validated with Python 3.10.16, PyArrow 19.0.1 and a source-built `pypaimon-rust` 0.5.0 wheel at `f99d526` on macOS arm64. -- 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]
