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]

Reply via email to