github-actions[bot] commented on code in PR #67166:
URL: https://github.com/apache/doris/pull/67166#discussion_r3920379758
##########
fe/fe-type/src/main/java/org/apache/doris/catalog/StructType.java:
##########
@@ -122,15 +123,15 @@ public boolean supportSubType(Type subType) {
public void addField(StructField field) {
field.setPosition(fields.size());
fields.add(field);
- fieldMap.put(field.getName().toLowerCase(), field);
+ fieldMap.put(field.getName().toLowerCase(Locale.ROOT), field);
}
public ArrayList<StructField> getFields() {
return fields;
}
public StructField getField(String fieldName) {
- return fieldMap.get(fieldName.toLowerCase());
+ return fieldMap.get(fieldName.toLowerCase(Locale.ROOT));
Review Comment:
The exact-miss fallback still leaves a silent wrong-sibling case. A
pre-change FE under `tr-TR` could persist two source fields `I` and `i` as
distinct runtime/map keys `ı` and `i`. Before upgrade, lookup of selector `I`
lowercased to `ı` and selected the first field; on this head it ROOT-lowercases
to `i` and returns the second sibling as an exact hit, so the legacy fallback
is never reached. The added single-field replay test exercises only an exact
miss and does not cover this collision. Please handle or reject ambiguous
legacy sets before exact-hit precedence, and add a two-field pre-change replay
test through catalog lookup and Nereids analysis/pruning.
--
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]