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]
