fix asof plan
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java index dc2d47b..90a5f5a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java
@@ -547,12 +547,16 @@ joins.put(NodeRef.of(node), criteria); } - public void setAsofJoinCriteria(Join node, List<LongLiteral> tolerance) { + public Expression getJoinCriteria(Join join) { + return joins.get(NodeRef.of(join)); + } + + public void setAsofJoinTolerance(Join node, List<LongLiteral> tolerance) { asofJoinTolerances.put(NodeRef.of(node), tolerance); } - public Expression getJoinCriteria(Join join) { - return joins.get(NodeRef.of(join)); + public List<LongLiteral> getAsofJoinTolerance(Join node) { + return asofJoinTolerances.get(NodeRef.of(node)); } public boolean hasJoinNode() {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java index 22b2ff0..62d47e5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java
@@ -2116,7 +2116,7 @@ analysis.recordSubqueries(node, expressionAnalysis); analysis.setJoinCriteria(node, expression); if (criteria instanceof AsofJoinOn) { - analysis.setAsofJoinCriteria(node, ((AsofJoinOn) criteria).getToleranceValue()); + analysis.setAsofJoinTolerance(node, ((AsofJoinOn) criteria).getToleranceValue()); } } else { throw new UnsupportedOperationException(
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java index cec65c2..8e45344 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
@@ -68,6 +68,7 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinUsing; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeEnriched; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; @@ -277,7 +278,8 @@ analysis.getScope(node), leftPlan, rightPlan, - analysis.getSubqueries(node)); + analysis.getSubqueries(node), + analysis.getAsofJoinTolerance(node)); } private RelationPlan planJoinUsing(Join node, RelationPlan left, RelationPlan right) { @@ -407,7 +409,8 @@ Scope scope, RelationPlan leftPlan, RelationPlan rightPlan, - Analysis.SubqueryAnalysis subqueries) { + Analysis.SubqueryAnalysis subqueries, + List<LongLiteral> asofJoinTolerance) { // NOTE: symbols must be in the same order as the outputDescriptor List<Symbol> outputSymbols = ImmutableList.<Symbol>builder()