You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2021/09/02 08:13:41 UTC

[iotdb] 04/04: SingleInputSingleOutputIntermediateLayer & SingleInputMultiOutputIntermediateLayer

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 <ro...@apache.org>
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;
+  }
+}