[Bug] Fix the bug of where condition a in ('A', 'B', 'V') and a in ('A') return error result (#5072)

And Refactor ColumnRangeValue and OlapScanNode

This patch mainly do the following:
- Fix issue #5071
- Change type_min in ColumnRangeValue as static
- Add Class of type_limit make code clear
- Refactor the function of normalize_in_and_eq_predicate
This commit is contained in:
HappenLee
2020-12-15 09:29:10 +08:00
committed by GitHub
parent 90e7f7005e
commit 0a0e46fd53
10 changed files with 398 additions and 267 deletions

View File

@ -39,4 +39,16 @@ std::size_t operator-(const StringValue& v1, const StringValue& v2) {
return 0;
}
constexpr char StringValue::MIN_CHAR = 0x00;
constexpr char StringValue::MAX_CHAR = 0xff;
StringValue StringValue::min_string_val() {
return StringValue((char*)(&StringValue::MIN_CHAR), 0);
}
StringValue StringValue::max_string_val() {
return StringValue((char*)(&StringValue::MAX_CHAR), 1);
}
} // namespace doris