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


The following commit(s) were added to refs/heads/nested-operations by this push:
     new 9c36928  add Expression field to IntermediateLayer
9c36928 is described below

commit 9c36928779b4381ab328840e1d8cf75e8be2af96
Author: Steve Yurong Su <[email protected]>
AuthorDate: Thu Sep 9 11:50:16 2021 +0800

    add Expression field to IntermediateLayer
---
 .../iotdb/db/query/expression/binary/BinaryExpression.java   |  4 ++--
 .../iotdb/db/query/expression/unary/FunctionExpression.java  |  5 +++--
 .../iotdb/db/query/expression/unary/NegationExpression.java  |  4 ++--
 .../iotdb/db/query/expression/unary/TimeSeriesOperand.java   |  4 ++--
 .../iotdb/db/query/udf/core/layer/IntermediateLayer.java     | 12 +++++++++++-
 .../udf/core/layer/MultiInputColumnIntermediateLayer.java    |  8 ++++++--
 .../SingleInputColumnMultiReferenceIntermediateLayer.java    |  8 ++++++--
 .../SingleInputColumnSingleReferenceIntermediateLayer.java   |  8 ++++++--
 .../iotdb/db/integration/IoTDBUDTFAlignByTimeQueryIT.java    |  6 +++---
 9 files changed, 41 insertions(+), 18 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 0591084..4b76daa 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
@@ -164,9 +164,9 @@ public abstract class BinaryExpression extends Expression {
           this,
           memoryAssigner.getReference(this) == 1
               ? new SingleInputColumnSingleReferenceIntermediateLayer(
-                  queryId, memoryBudgetInMB, transformer)
+                  this, queryId, memoryBudgetInMB, transformer)
               : new SingleInputColumnMultiReferenceIntermediateLayer(
-                  queryId, memoryBudgetInMB, transformer));
+                  this, queryId, memoryBudgetInMB, transformer));
     }
 
     return expressionIntermediateLayerMap.get(this);
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java
 
b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java
index da32a48..4fa6bbb 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java
@@ -206,9 +206,9 @@ public class FunctionExpression extends Expression {
           this,
           memoryAssigner.getReference(this) == 1
               ? new SingleInputColumnSingleReferenceIntermediateLayer(
-                  queryId, memoryBudgetInMB, transformer)
+                  this, queryId, memoryBudgetInMB, transformer)
               : new SingleInputColumnMultiReferenceIntermediateLayer(
-                  queryId, memoryBudgetInMB, transformer));
+                  this, queryId, memoryBudgetInMB, transformer));
     }
 
     return expressionIntermediateLayerMap.get(this);
@@ -234,6 +234,7 @@ public class FunctionExpression extends Expression {
     return intermediateLayers.size() == 1
         ? intermediateLayers.get(0)
         : new MultiInputColumnIntermediateLayer(
+            this,
             queryId,
             memoryAssigner.assign(),
             intermediateLayers.stream()
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 9e97677..a85b386 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
@@ -119,9 +119,9 @@ public class NegationExpression extends Expression {
           this,
           memoryAssigner.getReference(this) == 1
               ? new SingleInputColumnSingleReferenceIntermediateLayer(
-                  queryId, memoryBudgetInMB, transformer)
+                  this, queryId, memoryBudgetInMB, transformer)
               : new SingleInputColumnMultiReferenceIntermediateLayer(
-                  queryId, memoryBudgetInMB, transformer));
+                  this, queryId, memoryBudgetInMB, transformer));
     }
 
     return expressionIntermediateLayerMap.get(this);
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 2952453..ec33153 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
@@ -105,9 +105,9 @@ public class TimeSeriesOperand extends Expression {
           this,
           memoryAssigner.getReference(this) == 1
               ? new SingleInputColumnSingleReferenceIntermediateLayer(
-                  queryId, memoryBudgetInMB, parentLayerPointReader)
+                  this, queryId, memoryBudgetInMB, parentLayerPointReader)
               : new SingleInputColumnMultiReferenceIntermediateLayer(
-                  queryId, memoryBudgetInMB, parentLayerPointReader));
+                  this, queryId, memoryBudgetInMB, parentLayerPointReader));
     }
 
     return expressionIntermediateLayerMap.get(this);
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/IntermediateLayer.java
 
b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/IntermediateLayer.java
index 23f7f6b..890a6b4 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/IntermediateLayer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/IntermediateLayer.java
@@ -20,6 +20,7 @@
 package org.apache.iotdb.db.query.udf.core.layer;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.db.query.udf.api.customizer.strategy.AccessStrategy;
 import 
org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import 
org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
@@ -33,10 +34,14 @@ public abstract class IntermediateLayer {
 
   protected static final int CACHE_BLOCK_SIZE = 2;
 
+  // for debug
+  protected final Expression expression;
+
   protected final long queryId;
   protected final float memoryBudgetInMB;
 
-  protected IntermediateLayer(long queryId, float memoryBudgetInMB) {
+  protected IntermediateLayer(Expression expression, long queryId, float 
memoryBudgetInMB) {
+    this.expression = expression;
     this.queryId = queryId;
     this.memoryBudgetInMB = memoryBudgetInMB;
   }
@@ -67,4 +72,9 @@ public abstract class IntermediateLayer {
   protected abstract LayerRowWindowReader constructRowSlidingTimeWindowReader(
       SlidingTimeWindowAccessStrategy strategy, float memoryBudgetInMB)
       throws QueryProcessException, IOException;
+
+  @Override
+  public String toString() {
+    return expression.toString();
+  }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java
 
b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java
index 0a6686d..dc8ba01 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.query.udf.core.layer;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.query.dataset.UDFInputDataSet;
+import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.db.query.udf.api.access.Row;
 import org.apache.iotdb.db.query.udf.api.access.RowWindow;
 import 
org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
@@ -47,9 +48,12 @@ public class MultiInputColumnIntermediateLayer extends 
IntermediateLayer
   private final TimeSelector timeHeap;
 
   public MultiInputColumnIntermediateLayer(
-      long queryId, float memoryBudgetInMB, List<LayerPointReader> 
parentLayerPointReaders)
+      Expression expression,
+      long queryId,
+      float memoryBudgetInMB,
+      List<LayerPointReader> parentLayerPointReaders)
       throws QueryProcessException, IOException {
-    super(queryId, memoryBudgetInMB);
+    super(expression, queryId, memoryBudgetInMB);
 
     layerPointReaders = parentLayerPointReaders.toArray(new 
LayerPointReader[0]);
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java
 
b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java
index 7e81904..8e8b1f1 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java
@@ -20,6 +20,7 @@
 package org.apache.iotdb.db.query.udf.core.layer;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.db.query.udf.api.access.Row;
 import org.apache.iotdb.db.query.udf.api.access.RowWindow;
 import 
org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
@@ -44,9 +45,12 @@ public class 
SingleInputColumnMultiReferenceIntermediateLayer extends Intermedia
   private final SafetyLine safetyLine;
 
   public SingleInputColumnMultiReferenceIntermediateLayer(
-      long queryId, float memoryBudgetInMB, LayerPointReader 
parentLayerPointReader)
+      Expression expression,
+      long queryId,
+      float memoryBudgetInMB,
+      LayerPointReader parentLayerPointReader)
       throws QueryProcessException {
-    super(queryId, memoryBudgetInMB);
+    super(expression, queryId, memoryBudgetInMB);
     this.parentLayerPointReader = parentLayerPointReader;
 
     dataType = parentLayerPointReader.getDataType();
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java
 
b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java
index f935189..f3cefcb 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java
@@ -20,6 +20,7 @@
 package org.apache.iotdb.db.query.udf.core.layer;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.db.query.udf.api.access.Row;
 import org.apache.iotdb.db.query.udf.api.access.RowWindow;
 import 
org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
@@ -40,8 +41,11 @@ public class 
SingleInputColumnSingleReferenceIntermediateLayer extends Intermedi
   private final TSDataType dataType;
 
   public SingleInputColumnSingleReferenceIntermediateLayer(
-      long queryId, float memoryBudgetInMB, LayerPointReader 
parentLayerPointReader) {
-    super(queryId, memoryBudgetInMB);
+      Expression expression,
+      long queryId,
+      float memoryBudgetInMB,
+      LayerPointReader parentLayerPointReader) {
+    super(expression, queryId, memoryBudgetInMB);
     this.parentLayerPointReader = parentLayerPointReader;
     dataType = parentLayerPointReader.getDataType();
   }
diff --git 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBUDTFAlignByTimeQueryIT.java
 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBUDTFAlignByTimeQueryIT.java
index a573de6..a26eb56 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBUDTFAlignByTimeQueryIT.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBUDTFAlignByTimeQueryIT.java
@@ -62,9 +62,9 @@ public class IoTDBUDTFAlignByTimeQueryIT {
 
   @BeforeClass
   public static void setUp() throws Exception {
-    
IoTDBDescriptor.getInstance().getConfig().setUdfCollectorMemoryBudgetInMB(1);
-    
IoTDBDescriptor.getInstance().getConfig().setUdfTransformerMemoryBudgetInMB(1);
-    IoTDBDescriptor.getInstance().getConfig().setUdfReaderMemoryBudgetInMB(1);
+    
IoTDBDescriptor.getInstance().getConfig().setUdfCollectorMemoryBudgetInMB(100);
+    
IoTDBDescriptor.getInstance().getConfig().setUdfTransformerMemoryBudgetInMB(100);
+    
IoTDBDescriptor.getInstance().getConfig().setUdfReaderMemoryBudgetInMB(100);
     EnvironmentUtils.envSetUp();
     Class.forName(Config.JDBC_DRIVER_NAME);
     createTimeSeries();

Reply via email to