perf(duckdb): remove numeric literal casts when compiling sql #9664
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.
Description of changes
This PR removes casting of numeric literals in the DuckDB compiler.
We should probably do this for most backends, as enforcing numeric literals be
a specific type without the full context of the expression can, as seen in
#9662, defeat certain kinds of optimization.
Longer term, I think we should probably support two kinds of literals:
ops.TypedLiteral
when a type is specified inibis.literal
, which will be cast to the specific typeops.Literal
would then be a literal that has type information but avoids casting. This is what op construction would use.Issues closed