Stephen0421 opened a new pull request, #9148:
URL: https://github.com/apache/paimon/pull/9148

   ## Summary
   
   First PR in the stacked series for #9099. Shared descriptor-byte parsing and 
read/write foundations for managed BLOB v1/v2 compatibility — no PK-specific 
logic.
   
   - **Parsing API (`blob.py`)**: `from_bytes` (v2 magic heuristic) vs 
`from_descriptor_bytes` (v1 strict + v2 deserialize with optional trailing 
padding)
   - **Batch read**: `BlobInlineConvertReader` uses `from_descriptor_bytes` for 
descriptor fields
   - **Row read**: `descriptor_field_indices` when `blob-as-descriptor=true` → 
`OffsetRow.get_blob()` uses `from_descriptor_bytes`
   - **Config**: legacy `blob.stored-descriptor-fields`; blank 
`blob-descriptor-field` treated as unset
   - **Write**: `blob_format_writer` rejects truncated copies (`EOFError`) when 
descriptor length is known
   - **URI lifecycle**: `UriReaderFactory` owned FileIO tracking; 
`clear_cache()` without LRU double-close; FileIO `close()` wiring
   
   ## Behavior changes (intentional)
   
   - Descriptor columns: malformed bytes → `ValueError` (was silent `BlobData` 
passthrough)
   - `blob-descriptor-field=""` + legacy set → now falls back to 
`blob.stored-descriptor-fields`
   - `from_bytes` on arbitrary inline payload → unchanged (`BlobData`; v2-only 
heuristic)
   
   ## Test plan
   
   - [x] `BlobTest`
   - [x] `UriReaderFactoryTest`
   - [ ] CI green
   
   ## Follow-ups
   
   - PR2: managed BLOB lifecycle + staged commit
   - PR3: PK managed BLOB write
   - PR4: PK managed BLOB read/view
   - PR5: dynamic bucket HASH callback
   
   Related: #9099
   


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