fix bug with expression virtual column indexes on missing columns for expressions that turn null values into not null values #15959
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
Fixes a mistake in expression virtual column indexes introduced in #15585, which would incorrectly return
null
from the index supplier, which is a signal to downstream filters that the column is all nulls, even for expressions which translate null values into not null values. This affects filters on stuff likenvl
,coalesce
, 3 argumentlookup
, etc. when filtering for the replaced value, for example:... WHERE NVL(col, 'replaced') = 'replaced'
. The workaround I suppose is to just filter foris null
without nvl/coalesce/etc.The added test would incorrectly fail the 2nd case.
This PR has: