This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new b1adb41ae79 Fix the preoblem when using select into with view path
which is same as base path.
b1adb41ae79 is described below
commit b1adb41ae79b4b84c317d02dd999f937033166d6
Author: Beyyes <[email protected]>
AuthorDate: Thu Jul 13 09:16:02 2023 +0800
Fix the preoblem when using select into with view path which is same as
base path.
---
.../iotdb/db/it/selectinto/IoTDBSelectInto2IT.java | 2 +-
.../iotdb/db/it/selectinto/IoTDBSelectInto3IT.java | 2 +-
.../iotdb/db/it/selectinto/IoTDBSelectIntoIT.java | 13 +++--
.../queryengine/plan/analyze/AnalyzeVisitor.java | 29 ++++++++--
.../plan/planner/OperatorTreeGenerator.java | 15 ++++-
.../planner/plan/parameter/IntoPathDescriptor.java | 30 +++++++++-
.../view/visitor/TransformToExpressionVisitor.java | 65 +++++++++++-----------
.../plan/optimization/TestPlanBuilder.java | 2 +-
.../plan/plan/node/process/IntoNodeSerdeTest.java | 8 +--
9 files changed, 113 insertions(+), 53 deletions(-)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectInto2IT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectInto2IT.java
index 5754700895f..e9b0bb02fc4 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectInto2IT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectInto2IT.java
@@ -44,7 +44,7 @@ public class IoTDBSelectInto2IT extends IoTDBSelectIntoIT {
.setMaxNumberOfPointsInPage(5)
.setQueryThreadCount(1);
EnvFactory.getEnv().initClusterEnvironment();
- prepareData(SQLs);
+ prepareData(SELECT_INTO_SQL_LIST);
}
@AfterClass
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectInto3IT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectInto3IT.java
index 12a385339bf..ae2bffd192b 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectInto3IT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectInto3IT.java
@@ -43,7 +43,7 @@ public class IoTDBSelectInto3IT extends IoTDBSelectIntoIT {
.setSelectIntoInsertTabletPlanRowLimit(5)
.setQueryThreadCount(1);
EnvFactory.getEnv().initClusterEnvironment();
- prepareData(SQLs);
+ prepareData(SELECT_INTO_SQL_LIST);
}
@AfterClass
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectIntoIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectIntoIT.java
index 3ba8e643eb1..16b0ca64fe0 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectIntoIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectIntoIT.java
@@ -49,7 +49,7 @@ import static org.junit.Assert.fail;
@Category({LocalStandaloneIT.class, ClusterIT.class})
public class IoTDBSelectIntoIT {
- protected static final List<String> SQLs =
+ public static final List<String> SELECT_INTO_SQL_LIST =
new ArrayList<>(
Arrays.asList(
"CREATE DATABASE root.sg",
@@ -86,11 +86,11 @@ public class IoTDBSelectIntoIT {
"CREATE TIMESERIES root.sg1.d1.s2 WITH DATATYPE=FLOAT,
ENCODING=RLE"));
static {
- SQLs.add("CREATE DATABASE root.sg_type");
+ SELECT_INTO_SQL_LIST.add("CREATE DATABASE root.sg_type");
for (int deviceId = 0; deviceId < 6; deviceId++) {
for (TSDataType dataType : TSDataType.values()) {
if (!dataType.equals(TSDataType.VECTOR)) {
- SQLs.add(
+ SELECT_INTO_SQL_LIST.add(
String.format(
"CREATE TIMESERIES root.sg_type.d_%d.s_%s %s",
deviceId, dataType.name().toLowerCase(), dataType));
@@ -98,9 +98,10 @@ public class IoTDBSelectIntoIT {
}
}
for (int time = 0; time < 12; time++) {
- SQLs.add(
+ SELECT_INTO_SQL_LIST.add(
String.format(
- "INSERT INTO root.sg_type.d_0(time, s_int32, s_int64, s_float,
s_double, s_boolean, s_text) VALUES (%d, %d, %d, %f, %f, %s, 'text%d')",
+ "INSERT INTO root.sg_type.d_0(time, s_int32, s_int64, s_float,
s_double, s_boolean, s_text) "
+ + "VALUES (%d, %d, %d, %f, %f, %s, 'text%d')",
time, time, time, (float) time, (double) time, time % 2 == 0,
time));
}
}
@@ -129,7 +130,7 @@ public class IoTDBSelectIntoIT {
public static void setUp() throws Exception {
EnvFactory.getEnv().getConfig().getCommonConfig().setQueryThreadCount(1);
EnvFactory.getEnv().initClusterEnvironment();
- prepareData(SQLs);
+ prepareData(SELECT_INTO_SQL_LIST);
}
@AfterClass
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
index be8cc8ae444..3dfbae4ddd8 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
@@ -1218,6 +1218,10 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
ExpressionAnalyzer.normalizeExpression(
analyzeWhereSplitByDevice(queryStatement, devicePath,
schemaTree));
} catch (MeasurementNotExistException e) {
+ logger.warn(
+ "Meets MeasurementNotExistException in analyzeDeviceToWhere when
executing align by device, "
+ + "error msg: {}",
+ e.getMessage());
deviceIterator.remove();
continue;
}
@@ -1933,25 +1937,39 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
IntoPathDescriptor intoPathDescriptor = new IntoPathDescriptor();
PathPatternTree targetPathTree = new PathPatternTree();
IntoComponent.IntoPathIterator intoPathIterator =
intoComponent.getIntoPathIterator();
- for (Expression sourceColumn : sourceColumns) {
+ for (Pair<Expression, String> pair : outputExpressions) {
+ Expression sourceExpression = pair.left;
+ String viewPath = pair.right;
PartialPath deviceTemplate = intoPathIterator.getDeviceTemplate();
String measurementTemplate = intoPathIterator.getMeasurementTemplate();
boolean isAlignedDevice = intoPathIterator.isAlignedDevice();
+ PartialPath sourcePath;
+ String sourceColumn = sourceExpression.getExpressionString();
PartialPath targetPath;
- if (sourceColumn instanceof TimeSeriesOperand) {
- PartialPath sourcePath = ((TimeSeriesOperand) sourceColumn).getPath();
+ if (sourceExpression instanceof TimeSeriesOperand) {
+ if (viewPath != null) {
+ try {
+ sourcePath = new PartialPath(viewPath);
+ } catch (IllegalPathException e) {
+ throw new SemanticException(
+ String.format(
+ "View path %s of source column %s is illegal path",
viewPath, sourceColumn));
+ }
+ } else {
+ sourcePath = ((TimeSeriesOperand) sourceExpression).getPath();
+ }
targetPath = constructTargetPath(sourcePath, deviceTemplate,
measurementTemplate);
} else {
targetPath = deviceTemplate.concatNode(measurementTemplate);
}
- intoPathDescriptor.specifyTargetPath(sourceColumn.getExpressionString(),
targetPath);
+ intoPathDescriptor.specifyTargetPath(sourceColumn, viewPath, targetPath);
intoPathDescriptor.specifyDeviceAlignment(
targetPath.getDevicePath().toString(), isAlignedDevice);
targetPathTree.appendFullPath(targetPath);
intoPathDescriptor.recordSourceColumnDataType(
- sourceColumn.getExpressionString(), analysis.getType(sourceColumn));
+ sourceColumn, analysis.getType(sourceExpression));
intoPathIterator.next();
}
@@ -2305,7 +2323,6 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
if (analysis.isFinishQueryAfterAnalyze()) {
return analysis;
}
-
analysis.setStatement(realInsertStatement);
if (realInsertStatement instanceof InsertRowStatement) {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java
index c28a08f889d..063a03358dd 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java
@@ -221,6 +221,7 @@ import org.apache.iotdb.tsfile.utils.Pair;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import java.io.File;
@@ -1630,6 +1631,18 @@ public class OperatorTreeGenerator extends
PlanVisitor<Operator, LocalExecutionP
context.getTimeSliceAllocator().recordExecutionWeight(operatorContext, 1);
+ List<Pair<String, PartialPath>> sourceTargetPathPairList =
+ intoPathDescriptor.getSourceTargetPathPairList();
+ List<String> sourceColumnToViewList =
intoPathDescriptor.getSourceColumnToViewList();
+ List<Pair<String, PartialPath>> sourceTargetPathPairWithViewList =
+ new ArrayList<>(sourceTargetPathPairList);
+ for (int i = 0; i < sourceColumnToViewList.size(); i++) {
+ String viewPath = sourceColumnToViewList.get(i);
+ if (StringUtils.isNotEmpty(viewPath)) {
+ sourceTargetPathPairWithViewList.get(i).setLeft(viewPath);
+ }
+ }
+
return new IntoOperator(
operatorContext,
child,
@@ -1637,7 +1650,7 @@ public class OperatorTreeGenerator extends
PlanVisitor<Operator, LocalExecutionP
targetPathToSourceInputLocationMap,
targetPathToDataTypeMap,
intoPathDescriptor.getTargetDeviceToAlignedMap(),
- intoPathDescriptor.getSourceTargetPathPairList(),
+ sourceTargetPathPairWithViewList,
sourceColumnToInputLocationMap,
FragmentInstanceManager.getInstance().getIntoOperationExecutor(),
statementSizePerLine);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/IntoPathDescriptor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/IntoPathDescriptor.java
index 8ff316cdf33..140b9fdd307 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/IntoPathDescriptor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/IntoPathDescriptor.java
@@ -28,6 +28,8 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.utils.Pair;
import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
+import org.apache.commons.lang3.StringUtils;
+
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -47,6 +49,10 @@ public class IntoPathDescriptor {
// List<(sourceColumn, targetPath)>
private List<Pair<String, PartialPath>> sourceTargetPathPairList;
+ // if the sourceColumn is transformed from a viewPath, then store the
viewPath in
+ // sourceColumnToViewList
+ private final List<String> sourceColumnToViewList;
+
// targetDevice -> isAlignedDevice
private final Map<String, Boolean> targetDeviceToAlignedMap;
@@ -55,19 +61,24 @@ public class IntoPathDescriptor {
public IntoPathDescriptor() {
this.sourceTargetPathPairList = new ArrayList<>();
+ this.sourceColumnToViewList = new ArrayList<>();
this.targetDeviceToAlignedMap = new HashMap<>();
this.sourceToDataTypeMap = new HashMap<>();
}
public IntoPathDescriptor(
List<Pair<String, PartialPath>> sourceTargetPathPairList,
+ List<String> sourceColumnToViewList,
Map<String, Boolean> targetDeviceToAlignedMap) {
this.sourceTargetPathPairList = sourceTargetPathPairList;
+ this.sourceColumnToViewList = sourceColumnToViewList;
this.targetDeviceToAlignedMap = targetDeviceToAlignedMap;
}
- public void specifyTargetPath(String sourceColumn, PartialPath targetPath) {
+ public void specifyTargetPath(
+ String sourceColumn, String sourceViewPath, PartialPath targetPath) {
sourceTargetPathPairList.add(new Pair<>(sourceColumn, targetPath));
+ sourceColumnToViewList.add(sourceViewPath == null ? "" : sourceViewPath);
}
public void specifyDeviceAlignment(String targetDevice, boolean isAligned) {
@@ -100,6 +111,10 @@ public class IntoPathDescriptor {
return sourceTargetPathPairList;
}
+ public List<String> getSourceColumnToViewList() {
+ return sourceColumnToViewList;
+ }
+
public Map<String, Boolean> getTargetDeviceToAlignedMap() {
return targetDeviceToAlignedMap;
}
@@ -146,6 +161,10 @@ public class IntoPathDescriptor {
sourceTargetPathPair.right.serialize(stream);
}
+ for (String sourceColumnToView : sourceColumnToViewList) {
+ ReadWriteIOUtils.write(sourceColumnToView, stream);
+ }
+
ReadWriteIOUtils.write(targetDeviceToAlignedMap.size(), stream);
for (Map.Entry<String, Boolean> entry :
targetDeviceToAlignedMap.entrySet()) {
ReadWriteIOUtils.write(entry.getKey(), stream);
@@ -162,13 +181,20 @@ public class IntoPathDescriptor {
sourceTargetPathPairList.add(new Pair<>(sourceColumn, targetPath));
}
+ List<String> sourceColumnToViewList = new ArrayList<>();
+ for (int i = 0; i < listSize; i++) {
+ String viewPath = ReadWriteIOUtils.readString(byteBuffer);
+ sourceColumnToViewList.add(StringUtils.isEmpty(viewPath) ? "" :
viewPath);
+ }
+
int mapSize = ReadWriteIOUtils.readInt(byteBuffer);
Map<String, Boolean> targetDeviceToAlignedMap = new HashMap<>(mapSize);
for (int i = 0; i < mapSize; i++) {
targetDeviceToAlignedMap.put(
ReadWriteIOUtils.readString(byteBuffer),
ReadWriteIOUtils.readBool(byteBuffer));
}
- return new IntoPathDescriptor(sourceTargetPathPairList,
targetDeviceToAlignedMap);
+ return new IntoPathDescriptor(
+ sourceTargetPathPairList, sourceColumnToViewList,
targetDeviceToAlignedMap);
}
@Override
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/view/visitor/TransformToExpressionVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/view/visitor/TransformToExpressionVisitor.java
index 6636cc466cc..ae4b13af8ff 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/view/visitor/TransformToExpressionVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/view/visitor/TransformToExpressionVisitor.java
@@ -56,6 +56,23 @@ import
org.apache.iotdb.commons.schema.view.viewExpression.unary.RegularViewExpr
import
org.apache.iotdb.commons.schema.view.viewExpression.unary.UnaryViewExpression;
import
org.apache.iotdb.commons.schema.view.viewExpression.visitor.ViewExpressionVisitor;
import org.apache.iotdb.db.queryengine.plan.expression.Expression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.AdditionExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.DivisionExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.EqualToExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.GreaterEqualExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.GreaterThanExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.LessEqualExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.LessThanExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.LogicAndExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.LogicOrExpression;
+import org.apache.iotdb.db.queryengine.plan.expression.binary.ModuloExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.MultiplicationExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.NonEqualExpression;
+import
org.apache.iotdb.db.queryengine.plan.expression.binary.SubtractionExpression;
+import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.queryengine.plan.expression.leaf.NullOperand;
+import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimestampOperand;
import org.apache.iotdb.tsfile.utils.Pair;
import javax.ws.rs.NotSupportedException;
@@ -85,20 +102,19 @@ public class TransformToExpressionVisitor extends
ViewExpressionVisitor<Expressi
@Override
public Expression visitConstantOperand(ConstantViewOperand constantOperand,
Void context) {
- return new
org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand(
- constantOperand.getDataType(), constantOperand.getValueString());
+ return new ConstantOperand(constantOperand.getDataType(),
constantOperand.getValueString());
}
@Override
public Expression visitNullOperand(NullViewOperand nullOperand, Void
context) {
- return new
org.apache.iotdb.db.queryengine.plan.expression.leaf.NullOperand();
+ return new NullOperand();
}
@Override
public Expression visitTimeSeriesOperand(TimeSeriesViewOperand
timeSeriesOperand, Void context) {
try {
PartialPath path = new PartialPath(timeSeriesOperand.getPathString());
- return new
org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand(path);
+ return new TimeSeriesOperand(path);
} catch (IllegalPathException e) {
throw new RuntimeException(e);
}
@@ -106,7 +122,7 @@ public class TransformToExpressionVisitor extends
ViewExpressionVisitor<Expressi
@Override
public Expression visitTimeStampOperand(TimestampViewOperand
timestampOperand, Void context) {
- return new
org.apache.iotdb.db.queryengine.plan.expression.leaf.TimestampOperand();
+ return new TimestampOperand();
}
// endregion
@@ -181,37 +197,32 @@ public class TransformToExpressionVisitor extends
ViewExpressionVisitor<Expressi
public Expression visitAdditionExpression(
AdditionViewExpression additionExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(additionExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.AdditionExpression(
- pair.left, pair.right);
+ return new AdditionExpression(pair.left, pair.right);
}
public Expression visitDivisionExpression(
DivisionViewExpression divisionExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(divisionExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.DivisionExpression(
- pair.left, pair.right);
+ return new DivisionExpression(pair.left, pair.right);
}
public Expression visitModuloExpression(ModuloViewExpression
moduloExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(moduloExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.ModuloExpression(
- pair.left, pair.right);
+ return new ModuloExpression(pair.left, pair.right);
}
public Expression visitMultiplicationExpression(
MultiplicationViewExpression multiplicationExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(multiplicationExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.MultiplicationExpression(
- pair.left, pair.right);
+ return new MultiplicationExpression(pair.left, pair.right);
}
public Expression visitSubtractionExpression(
SubtractionViewExpression subtractionExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(subtractionExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.SubtractionExpression(
- pair.left, pair.right);
+ return new SubtractionExpression(pair.left, pair.right);
}
// endregion
@@ -223,45 +234,39 @@ public class TransformToExpressionVisitor extends
ViewExpressionVisitor<Expressi
public Expression visitEqualToExpression(EqualToViewExpression
equalToExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(equalToExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.EqualToExpression(
- pair.left, pair.right);
+ return new EqualToExpression(pair.left, pair.right);
}
public Expression visitGreaterEqualExpression(
GreaterEqualViewExpression greaterEqualExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(greaterEqualExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.GreaterEqualExpression(
- pair.left, pair.right);
+ return new GreaterEqualExpression(pair.left, pair.right);
}
public Expression visitGreaterThanExpression(
GreaterThanViewExpression greaterThanExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(greaterThanExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.GreaterThanExpression(
- pair.left, pair.right);
+ return new GreaterThanExpression(pair.left, pair.right);
}
public Expression visitLessEqualExpression(
LessEqualViewExpression lessEqualExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(lessEqualExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.LessEqualExpression(
- pair.left, pair.right);
+ return new LessEqualExpression(pair.left, pair.right);
}
public Expression visitLessThanExpression(
LessThanViewExpression lessThanExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(lessThanExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.LessThanExpression(
- pair.left, pair.right);
+ return new LessThanExpression(pair.left, pair.right);
}
public Expression visitNonEqualExpression(
NonEqualViewExpression nonEqualExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(nonEqualExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.NonEqualExpression(
- pair.left, pair.right);
+ return new NonEqualExpression(pair.left, pair.right);
}
// endregion
@@ -274,14 +279,12 @@ public class TransformToExpressionVisitor extends
ViewExpressionVisitor<Expressi
public Expression visitLogicAndExpression(
LogicAndViewExpression logicAndExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(logicAndExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.LogicAndExpression(
- pair.left, pair.right);
+ return new LogicAndExpression(pair.left, pair.right);
}
public Expression visitLogicOrExpression(LogicOrViewExpression
logicOrExpression, Void context) {
Pair<Expression, Expression> pair =
this.getExpressionsForBinaryExpression(logicOrExpression);
- return new
org.apache.iotdb.db.queryengine.plan.expression.binary.LogicOrExpression(
- pair.left, pair.right);
+ return new LogicOrExpression(pair.left, pair.right);
}
// endregion
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/TestPlanBuilder.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/TestPlanBuilder.java
index c3ba9458a92..734cae7d89f 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/TestPlanBuilder.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/TestPlanBuilder.java
@@ -174,7 +174,7 @@ public class TestPlanBuilder {
public TestPlanBuilder into(String id, PartialPath sourcePath, PartialPath
intoPath) {
IntoPathDescriptor intoPathDescriptor = new IntoPathDescriptor();
- intoPathDescriptor.specifyTargetPath(sourcePath.toString(), intoPath);
+ intoPathDescriptor.specifyTargetPath(sourcePath.toString(), "", intoPath);
intoPathDescriptor.specifyDeviceAlignment(intoPath.getDevice(), false);
intoPathDescriptor.recordSourceColumnDataType(
sourcePath.toString(), sourcePath.getSeriesType());
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/plan/node/process/IntoNodeSerdeTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/plan/node/process/IntoNodeSerdeTest.java
index e779dbfe64d..6569d4f764d 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/plan/node/process/IntoNodeSerdeTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/plan/node/process/IntoNodeSerdeTest.java
@@ -41,10 +41,10 @@ public class IntoNodeSerdeTest {
@Test
public void testIntoSerde() throws IllegalPathException, IOException {
IntoPathDescriptor descriptor = new IntoPathDescriptor();
- descriptor.specifyTargetPath("root.sg1.d1.s1", new
PartialPath("root.sg1.new_d1.s1"));
- descriptor.specifyTargetPath("root.sg1.d1.s2", new
PartialPath("root.sg1.new_d1.s2"));
- descriptor.specifyTargetPath("root.sg1.d2.s1", new
PartialPath("root.sg1.new_d2.s1"));
- descriptor.specifyTargetPath("root.sg1.d2.s2", new
PartialPath("root.sg1.new_d2.s2"));
+ descriptor.specifyTargetPath("root.sg1.d1.s1", "", new
PartialPath("root.sg1.new_d1.s1"));
+ descriptor.specifyTargetPath("root.sg1.d1.s2", "", new
PartialPath("root.sg1.new_d1.s2"));
+ descriptor.specifyTargetPath("root.sg1.d2.s1", "", new
PartialPath("root.sg1.new_d2.s1"));
+ descriptor.specifyTargetPath("root.sg1.d2.s2", "", new
PartialPath("root.sg1.new_d2.s2"));
descriptor.specifyDeviceAlignment("root.sg1.new_d1", true);
descriptor.specifyDeviceAlignment("root.sg1.new_d2", false);
IntoNode expectedNode = new IntoNode(new PlanNodeId("TestIntoNode"),
descriptor);