airborne12 commented on code in PR #67918:
URL: https://github.com/apache/doris/pull/67918#discussion_r4052006856
##########
be/src/storage/index/inverted/inverted_index_parser.cpp:
##########
@@ -211,62 +216,90 @@ std::string get_analyzer_name_from_properties(
}
std::string normalize_analyzer_key(std::string_view analyzer) {
Review Comment:
Fixed in `6618a7099cb`.
I reproduced both rolling-upgrade metadata shapes through the real base-FE
`TMatchPredicate` → `VMatchPredicate` → policy manager → iterator path. The
exact old-reader case failed before the fix because the normalized request
selected no reader; the canonicalized-index case independently failed because
the bound `Foo` key could not find stored metadata `foo`.
The provider, canonical policy name, and optional lowercase metadata alias
are now resolved under the same policy lock. The alias is emitted only when it
resolves back to the identical policy and is not a built-in analyzer name.
Reader and scoring selection prefer the canonical key, then try only that
verified alias. This avoids both differently bound case collisions and
collisions such as custom `STANDARD` versus built-in `standard`.
The two discriminating tests were RED before their respective fixes and
GREEN afterward. Negative tests cover the different-policy and built-in
collisions, exact metadata takes precedence over the alias, and the final
related ASAN run passed 354/354 tests across 10 suites. The final native BE
build and all three analyzer regression suites also passed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]