JingsongLi opened a new pull request, #8654:
URL: https://github.com/apache/paimon/pull/8654
### Purpose
Follow up on managed BLOB support for primary-key tables by covering the
postpone-bucket write path and tightening resource and reference handling.
The postpone-bucket writer previously bypassed managed BLOB externalization,
so raw `BLOB` and `ARRAY<BLOB>` values could reach descriptor-backed data-file
writers. Pack finalization could also leave the underlying output stream open
when flush failed, while reference collection repeatedly parsed identical
descriptor URIs and created redundant deduplication containers.
### Changes
- Externalize managed BLOB values before both direct and buffered
postpone-bucket sinks, and reuse the transformed record when a buffered write
is retried.
- Finalize managed BLOB packs during postpone-bucket prepare-commit and
abort uncommitted packs on close.
- Delete data-file sidecars when postpone-bucket files are rewritten into
the buffered sink, without re-externalizing existing descriptors.
- Always close the managed BLOB pack stream when writer close or flush fails.
- Deduplicate descriptor URI strings before parsing and replace hash-based
sidecar normalization with one sortable list and adjacent duplicate removal.
- Add end-to-end coverage for postpone-bucket `ARRAY<BLOB>`,
direct-to-buffered rewrite, exact sidecar references, and pack-stream failure
handling.
The managed BLOB reference file remains at format version 1, and existing
public JVM method and constructor signatures are preserved.
### Validation
```text
mvn -pl paimon-core -am \
-DfailIfNoTests=false \
-DwildcardSuites=none \
-Dtest=PrimaryKeyBlobExternalizerTest,ManagedBlobReferenceCollectorTest,ManagedBlobReferenceFileTest,PrimaryKeyManagedBlobStoreTest
\
test
```
Result: 23 tests passed. Spotless, Checkstyle, and Maven Enforcer also
passed.
--
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]