-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lookup logic refactor(indexScan bug) #2745
Comments
Seems like the index has not been fully built up when this query applied. |
|
This is a known bug because of data exceed index length. Forum has report before. This involves a recheck if index length is fully occupied. |
ACK. Take a look this test:
Truncation to build an index causes data that meets the criteria to be excluded. |
OK |
case Value::Type::STRING: {
if (!col.type.type_length_ref().has_value()) {
return Value::kNullBadType;
}
std::vector<unsigned char> bytes(v.getStr().begin(), v.getStr().end());
bytes.resize(*col.get_type().type_length_ref());
for (size_t i = bytes.size();; i--) {
if (i > 0) {
if (bytes[i - 1]++ != 255) break;
} else {
return Value(std::string(*col.get_type().type_length_ref(), '\377'));
}
}
return Value(std::string(bytes.begin(), bytes.end()));
} It's a logical error. String A |
a complex case
|
a float case
|
Truncation to build an index causes data that meets the criteria to be excluded. The design of the implementation layer needs to be reconsidered. |
Just the same thing. |
This issue has nothing to do with |
I don't quite agree.In fact, there are two bugs:
|
Technical Committee discuss it. It‘s modification is very complicated, so it will be fixed in the version at the end of the year. |
Lookup for string type leads to wrong result.
This is my test:
The text was updated successfully, but these errors were encountered: