Skip to content

Commit 533c2ae

Browse files
committed
fix IT with syntax 21
Signed-off-by: xinyual <xinyual@amazon.com>
1 parent 69763f6 commit 533c2ae

4 files changed

Lines changed: 16 additions & 12 deletions

File tree

core/src/main/java/org/opensearch/sql/ast/tree/Join.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,21 @@ public Join(
4848
public UnresolvedPlan attach(UnresolvedPlan child) {
4949
// attach child to left, meanwhile fill back side aliases if possible.
5050
if (leftAlias.isPresent()) {
51-
if (child instanceof SubqueryAlias alias) {
52-
this.left = new SubqueryAlias(leftAlias.get(), alias.getChild().getFirst());
51+
if (child instanceof SubqueryAlias) {
52+
SubqueryAlias alias = (SubqueryAlias) child;
53+
this.left = new SubqueryAlias(leftAlias.get(), alias.getChild().get(0));
5354
} else {
5455
this.left = new SubqueryAlias(leftAlias.get(), child);
5556
}
5657
} else {
57-
if (child instanceof SubqueryAlias alias) {
58+
if (child instanceof SubqueryAlias) {
59+
SubqueryAlias alias = (SubqueryAlias) child;
5860
leftAlias = Optional.of(alias.getAlias());
5961
}
6062
this.left = child;
6163
}
62-
if (rightAlias.isEmpty() && this.right instanceof SubqueryAlias alias) {
64+
if (rightAlias.isEmpty() && this.right instanceof SubqueryAlias) {
65+
SubqueryAlias alias = (SubqueryAlias) this.right;
6366
rightAlias = Optional.of(alias.getAlias());
6467
}
6568
return this;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,7 @@ public RelNode visitJoin(Join node, CalcitePlanContext context) {
671671
// If the plan convert to Spark plan, and there are two table1: database1.table1 and
672672
// database2.table1. The query with column `table1.id` can only be resolved in the namespace
673673
// of "database1". User should run `using database1` before the query which access `table1.id`
674-
String rightTableQualifiedName = rightTableName.getLast();
674+
String rightTableQualifiedName = rightTableName.get(rightTableName.size() - 1);
675675
// new columns with alias or table;
676676
List<String> rightColumnsWithAliasIfConflict =
677677
rightColumns.stream()
@@ -682,7 +682,7 @@ public RelNode visitJoin(Join node, CalcitePlanContext context) {
682682
.map(a -> a + "." + col)
683683
.orElse(rightTableQualifiedName + "." + col)
684684
: col)
685-
.toList();
685+
.collect(Collectors.toList());
686686
context.relBuilder.join(
687687
JoinAndLookupUtils.translateJoinType(node.getJoinType()), joinCondition);
688688
JoinAndLookupUtils.renameToExpectedFields(

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,8 +288,8 @@ public RexNode visitQualifiedName(QualifiedName node, CalcitePlanContext context
288288
// Similar to the step 2.3.
289289
List<String> candidates =
290290
context.relBuilder.peek(1).getRowType().getFieldNames().stream()
291-
.filter(col -> substringAfterLast(col, ".").equals(parts.getLast()))
292-
.toList();
291+
.filter(col -> substringAfterLast(col, ".").equals(parts.get(parts.size() - 1)))
292+
.collect(Collectors.toList());
293293
for (String candidate : candidates) {
294294
try {
295295
// field("nation2", "n2.n_name"); // pass
@@ -332,8 +332,8 @@ public RexNode visitQualifiedName(QualifiedName node, CalcitePlanContext context
332332
// Build the candidates which contains `n_name`: e.g. `(nation1.)n_name`, `n2.n_name`
333333
List<String> candidates =
334334
context.relBuilder.peek().getRowType().getFieldNames().stream()
335-
.filter(col -> substringAfterLast(col, ".").equals(parts.getLast()))
336-
.toList();
335+
.filter(col -> substringAfterLast(col, ".").equals(parts.get(parts.size() - 1)))
336+
.collect(Collectors.toList());
337337
for (String candidate : candidates) {
338338
try {
339339
// field("nation2", "n2.n_name"); // pass

ppl/src/main/java/org/opensearch/sql/ppl/parser/AstBuilder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -701,12 +701,13 @@ private String getTextInQuery(ParserRuleContext ctx) {
701701
private UnresolvedPlan projectExceptMeta(UnresolvedPlan plan) {
702702
if ((plan instanceof Project) && !((Project) plan).isExcluded()) {
703703
return plan;
704-
} else if (plan instanceof SubqueryAlias subqueryAlias) {
704+
} else if (plan instanceof SubqueryAlias) {
705+
SubqueryAlias subqueryAlias = (SubqueryAlias) plan;
705706
// don't wrap subquery alias with project, wrap its child
706707
return new SubqueryAlias(
707708
subqueryAlias.getAlias(),
708709
new Project(ImmutableList.of(AllFieldsExcludeMeta.of()))
709-
.attach(subqueryAlias.getChild().getFirst()));
710+
.attach(subqueryAlias.getChild().get(0)));
710711
} else {
711712
return new Project(ImmutableList.of(AllFieldsExcludeMeta.of())).attach(plan);
712713
}

0 commit comments

Comments
 (0)