Avoid calling SetFilterAlwaysTrue multiple times in RowGroup::CheckZonemap #16269
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.
During row group checks - we keep track of which filters are always true (and hence do not need to be checked during the actual scan). Due to a missing
else
statement, we could call this method twice for the same filter.Now this doesn't look problematic, but in
SetFilterAlwaysTrue
we also keep track of how many filters have been set as being always true - and if all filters are set as being always true, the filters are skipped entirely.This can cause problems when optional filters (as e.g. constructed due to a Top-N) are combined with non-optional filters (as e.g. constructed through a
WHERE
clause). The filter would not be correctly executed - leading to incorrect rows sneaking into the result.