Skip to content

Commit 97492f4

Browse files
committed
refactor
Signed-off-by: Kai Huang <ahkcs@amazon.com>
1 parent 3e493cc commit 97492f4

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

core/src/main/java/org/opensearch/sql/calcite/CalciteRelNodeVisitor.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -850,16 +850,7 @@ private void projectPlusOverriding(
850850
List<String> originalFieldNames = context.relBuilder.peek().getRowType().getFieldNames();
851851
List<RexNode> toOverrideList =
852852
originalFieldNames.stream()
853-
.filter(
854-
originalName ->
855-
newNames.stream()
856-
.anyMatch(
857-
newName ->
858-
// Match exact field names (e.g., "age" == "age")
859-
// OR nested paths (e.g., "resource.attributes..." starts with
860-
// "resource")
861-
newName.equals(originalName)
862-
|| newName.startsWith(originalName + ".")))
853+
.filter(originalName -> shouldOverrideField(originalName, newNames))
863854
.map(a -> (RexNode) context.relBuilder.field(a))
864855
.toList();
865856
// 1. add the new fields, For example "age0, country0"
@@ -879,6 +870,17 @@ private void projectPlusOverriding(
879870
context.relBuilder.rename(expectedRenameFields);
880871
}
881872

873+
private boolean shouldOverrideField(String originalName, List<String> newNames) {
874+
return newNames.stream()
875+
.anyMatch(
876+
newName ->
877+
// Match exact field names (e.g., "age" == "age") for flat fields
878+
newName.equals(originalName)
879+
// OR match nested paths (e.g., "resource.attributes..." starts with
880+
// "resource.")
881+
|| newName.startsWith(originalName + "."));
882+
}
883+
882884
private List<List<RexInputRef>> extractInputRefList(List<RelBuilder.AggCall> aggCalls) {
883885
return aggCalls.stream()
884886
.map(RelBuilder.AggCall::over)

0 commit comments

Comments
 (0)