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();