Handle arbitrary types in bloom filter synopsis #1685
Merged
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
The meta index lookup would select type synopses based on the field name being looked up, without verifying that the right hand side of the query also has the corresponding type. This leads to undefined behavior for queries like
s == nil
ors == 123
(wheres
is a string field) and depending on the compiler settings also segfaults or other kinds of bad behavior.NOTE: I'm not completely sure if the same issue exists for "normal" synopsis and we just don't notice it because the invalid call to
caf::get<view<T>>()
was not using complex types likestd::string
, or if these were typechecked somewhere else beforehand.📝 Checklist
🎯 Review Instructions