types: check KindNull / KindMinNotNull / KindMaxValue when comparing datums (#19259) #19403
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.
cherry-pick #19259 to release-4.0
What problem does this PR solve?
Issue Number: close #19258
Problem Summary:
Different plans for select / update query.
What is changed and how it works?
What's Changed:
In
compareBinaryLiterals
,ToInt
raises an error since its length is 16, which is larger than 8. In select query,TruncateAsWarning
is settrue
, so the error is ignored and warnings are reported. In update query,TruncateAsWarning
isfalse
, soderiveStatsByFilter
would use defaultselectionFactor
, which is0.8
, as selectivity. Hence thepath.CountAfterAccess
is different for select / update query.How it Works:
Check
KindNull
/KindMaxValue
when comparing datums before callingToInt
, so there is no truncate error.Related changes
Check List
Tests
Side effects
N/A
Release note