This is an automated email from the ASF dual-hosted git repository. rong pushed a commit to branch nested-operations in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit c8e960bcb190baf6b398475156bf938852bd2865 Author: Steve Yurong Su <[email protected]> AuthorDate: Thu Sep 2 16:12:44 2021 +0800 SingleInputSingleOutputIntermediateLayer & SingleInputMultiOutputIntermediateLayer --- .../query/expression/binary/BinaryExpression.java | 4 +-- .../query/expression/unary/NegationExpression.java | 4 +-- .../query/expression/unary/TimeSeriesOperand.java | 4 +-- ...> SingleInputMultiOutputIntermediateLayer.java} | 6 ++-- .../SingleInputSingleOutputIntermediateLayer.java | 36 ++++++++++++++++++++++ 5 files changed, 45 insertions(+), 9 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java index 69dd13c..e31496c 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java @@ -27,7 +27,7 @@ import org.apache.iotdb.db.qp.utils.WildcardsRemover; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.udf.core.layer.InputLayer; import org.apache.iotdb.db.query.udf.core.layer.IntermediateLayer; -import org.apache.iotdb.db.query.udf.core.layer.SingleInputIntermediateLayer; +import org.apache.iotdb.db.query.udf.core.layer.SingleInputMultiOutputIntermediateLayer; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticBinaryTransformer; @@ -126,7 +126,7 @@ public abstract class BinaryExpression extends Expression { expressionIntermediateLayerMap.put( this, - new SingleInputIntermediateLayer( + new SingleInputMultiOutputIntermediateLayer( constructTransformer( leftParentIntermediateLayer.constructPointReader(), rightParentIntermediateLayer.constructPointReader()), diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java index 813ee5f..8dcdc73 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java @@ -27,7 +27,7 @@ import org.apache.iotdb.db.qp.utils.WildcardsRemover; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.udf.core.layer.InputLayer; import org.apache.iotdb.db.query.udf.core.layer.IntermediateLayer; -import org.apache.iotdb.db.query.udf.core.layer.SingleInputIntermediateLayer; +import org.apache.iotdb.db.query.udf.core.layer.SingleInputMultiOutputIntermediateLayer; import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticNegationTransformer; import java.util.ArrayList; @@ -89,7 +89,7 @@ public class NegationExpression extends Expression { expressionIntermediateLayerMap.put( this, - new SingleInputIntermediateLayer( + new SingleInputMultiOutputIntermediateLayer( new ArithmeticNegationTransformer(parentIntermediateLayer.constructPointReader()), -1, -1)); diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java index c1e6eb8..9b17315 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java @@ -27,7 +27,7 @@ import org.apache.iotdb.db.qp.utils.WildcardsRemover; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.udf.core.layer.InputLayer; import org.apache.iotdb.db.query.udf.core.layer.IntermediateLayer; -import org.apache.iotdb.db.query.udf.core.layer.SingleInputIntermediateLayer; +import org.apache.iotdb.db.query.udf.core.layer.SingleInputMultiOutputIntermediateLayer; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import java.util.List; @@ -80,7 +80,7 @@ public class TimeSeriesOperand extends Expression { if (!expressionIntermediateLayerMap.containsKey(this)) { expressionIntermediateLayerMap.put( this, - new SingleInputIntermediateLayer( + new SingleInputMultiOutputIntermediateLayer( inputLayer.constructPointReader(udtfPlan.getReaderIndex(path.getFullPath())), -1, -1)); diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputIntermediateLayer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputMultiOutputIntermediateLayer.java similarity index 96% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputIntermediateLayer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputMultiOutputIntermediateLayer.java index 04697c9..a711ced 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputIntermediateLayer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputMultiOutputIntermediateLayer.java @@ -28,16 +28,16 @@ import org.apache.iotdb.tsfile.utils.Binary; import java.io.IOException; -public class SingleInputIntermediateLayer implements IntermediateLayer { +public class SingleInputMultiOutputIntermediateLayer implements IntermediateLayer { - private static final int CACHE_BLOCK_SIZE = 1; + private static final int CACHE_BLOCK_SIZE = 2; private final TSDataType dataType; private final LayerPointReader parentLayerPointReader; private final ElasticSerializableTVList tvList; private final SafetyLine safetyLine; - public SingleInputIntermediateLayer( + public SingleInputMultiOutputIntermediateLayer( LayerPointReader parentLayerPointReader, long queryId, float memoryBudgetInMB) throws QueryProcessException { this.parentLayerPointReader = parentLayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputSingleOutputIntermediateLayer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputSingleOutputIntermediateLayer.java new file mode 100644 index 0000000..131472a --- /dev/null +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputSingleOutputIntermediateLayer.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.db.query.udf.core.layer; + +import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; + +public class SingleInputSingleOutputIntermediateLayer implements IntermediateLayer { + + private final LayerPointReader parentLayerPointReader; + + public SingleInputSingleOutputIntermediateLayer(LayerPointReader parentLayerPointReader) { + this.parentLayerPointReader = parentLayerPointReader; + } + + @Override + public LayerPointReader constructPointReader() { + return parentLayerPointReader; + } +}
