Allow SQL TypePlanner to plan SQL types as extension types#20676
Open
paleolimbot wants to merge 4 commits intoapache:mainfrom
Open
Allow SQL TypePlanner to plan SQL types as extension types#20676paleolimbot wants to merge 4 commits intoapache:mainfrom
TypePlanner to plan SQL types as extension types#20676paleolimbot wants to merge 4 commits intoapache:mainfrom
Conversation
paleolimbot
commented
Mar 3, 2026
e00cd32 to
e0c56f2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Which issue does this PR close?
TypePlannerto plan SQL types as extension types #20675Rationale for this change
The existing enum
SQLDataTypehas a number of existing members that have canonical Arrow extension type equivalents; however, theTypePlannertrait only supports returningDataType(which cannot represent an Arrow extension type).This will be substantially more useful after #18136, as the SQL planner inserts casts in a number of places (and currently the extension metadata of those casts is dropped when the logical cast is created).
What changes are included in this PR?
This PR adds a
fn plan_type_field()member to theTypePlannertrait. The only place that the previously existingplan_type()member was called was already wrapping it in aFieldRefand so few other changes were needed.Are these changes tested?
Yes
Are there any user-facing changes?
Existing
TypePlanners will continue to work and an example was added for supporting the UUID type.