RussellSpitzer opened a new pull request, #17821:
URL: https://github.com/apache/iceberg/pull/17821

   An alternative implementation of the `file` logical type from #17808 which 
treats File as a new non-primitive special type. This is a little similar to 
Variant in that all visitors now have special handling for File type and you 
can't write a "bad" visitor which treats a File like a struct when it shouldn'd.
   
   - **#17808 (design A):** `Types.FileType extends StructType`, `typeId() == 
STRUCT`.
   Visitors see a struct and behave correctly for free; the few places that must
   not expand or rewrite a file carry `isFileType()` guards.
   - This PR (design B): Types.FileType is a new Type with it's own typeId. 
Vistors either fall back to struct behavior with FileType.asStruct or have 
custom logic file()  
   
   
   ---
   
   **AI Disclosure**
   
   - Model: Claude Opus 5
   - Platform/Tool: Cursor
   - Human Oversight: partially reviewed
   - Prompt Summary: Implement the `file` logical type as a standalone 
`NestedType`
   with its own `TypeID` and per-visitor `file()` hooks, as an alternative to 
the
   `StructType`-subclass approach in #17808, and measure the difference in files
   touched, lines changed, engine breakage, and latent switch-statement risk.
   
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to