This is an automated email from the ASF dual-hosted git repository. rong pushed a commit to branch iotdb-2993-trasnformer in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit c9330cfdd92e5c1c1016c1bc10e6c55240a27427 Author: Steve Yurong Su <[email protected]> AuthorDate: Fri Apr 29 18:12:07 2022 +0800 refactor Transformer --- .../expression/binary/AdditionExpression.java | 4 +- .../query/expression/binary/BinaryExpression.java | 2 +- .../expression/binary/DivisionExpression.java | 4 +- .../query/expression/binary/EqualToExpression.java | 4 +- .../expression/binary/GreaterEqualExpression.java | 4 +- .../expression/binary/GreaterThanExpression.java | 4 +- .../expression/binary/LessEqualExpression.java | 4 +- .../expression/binary/LessThanExpression.java | 4 +- .../expression/binary/LogicAndExpression.java | 4 +- .../query/expression/binary/LogicOrExpression.java | 4 +- .../query/expression/binary/ModuloExpression.java | 4 +- .../binary/MultiplicationExpression.java | 4 +- .../expression/binary/NonEqualExpression.java | 4 +- .../expression/binary/SubtractionExpression.java | 4 +- .../query/expression/multi/FunctionExpression.java | 8 +- .../query/expression/unary/LogicNotExpression.java | 2 +- .../query/expression/unary/NegationExpression.java | 2 +- .../transformer/ArithmeticNegationTransformer.java | 80 ------------------- .../db/query/udf/core/transformer/Transformer.java | 2 +- .../core/transformer/TransparentTransformer.java | 93 ---------------------- .../ArithmeticAdditionTransformer.java | 2 +- .../{ => binary}/ArithmeticBinaryTransformer.java | 2 +- .../ArithmeticDivisionTransformer.java | 2 +- .../{ => binary}/ArithmeticModuloTransformer.java | 2 +- .../ArithmeticMultiplicationTransformer.java | 2 +- .../ArithmeticSubtractionTransformer.java | 2 +- .../{ => binary}/BinaryTransformer.java | 3 +- .../{ => binary}/CompareBinaryTransformer.java | 2 +- .../{ => binary}/CompareEqualToTransformer.java | 2 +- .../CompareGreaterEqualTransformer.java | 2 +- .../CompareGreaterThanTransformer.java | 2 +- .../{ => binary}/CompareLessEqualTransformer.java | 2 +- .../{ => binary}/CompareLessThanTransformer.java | 2 +- .../{ => binary}/CompareNonEqualTransformer.java | 2 +- .../{ => binary}/LogicAndTransformer.java | 2 +- .../{ => binary}/LogicBinaryTransformer.java | 2 +- .../{ => binary}/LogicOrTransformer.java | 2 +- .../{ => multi}/UDFQueryRowTransformer.java | 2 +- .../{ => multi}/UDFQueryRowWindowTransformer.java | 2 +- .../{ => multi}/UDFQueryTransformer.java | 3 +- .../ArithmeticNegationTransformer.java} | 36 ++++++--- .../LogicNotTransformer.java} | 25 +++--- .../transformer/unary/TransparentTransformer.java | 70 ++++++++++++++++ .../UnaryTransformer.java} | 34 +++----- 44 files changed, 182 insertions(+), 266 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/AdditionExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/AdditionExpression.java index a4ba44b3c7..6ec5ce8399 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/AdditionExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/AdditionExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticAdditionTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticAdditionTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticBinaryTransformer; import java.nio.ByteBuffer; 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 c535d97faa..d4765287b8 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 @@ -35,8 +35,8 @@ import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer; import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnMultiReferenceIntermediateLayer; import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnSingleReferenceIntermediateLayer; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.BinaryTransformer; import org.apache.iotdb.db.query.udf.core.transformer.Transformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.BinaryTransformer; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import java.io.IOException; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/DivisionExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/DivisionExpression.java index b73e156a07..5ba106f459 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/DivisionExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/DivisionExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticDivisionTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticDivisionTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/EqualToExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/EqualToExpression.java index 5edc7e8ae8..aa85becd07 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/EqualToExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/EqualToExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.CompareBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.CompareEqualToTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareEqualToTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterEqualExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterEqualExpression.java index 2e7594d403..0364212ac8 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterEqualExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterEqualExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.CompareBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.CompareGreaterEqualTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareGreaterEqualTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterThanExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterThanExpression.java index 14f2e4321d..56589b5e10 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterThanExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterThanExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.CompareBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.CompareGreaterThanTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareGreaterThanTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessEqualExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessEqualExpression.java index 0368c02290..599a05f67b 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessEqualExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessEqualExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.CompareBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.CompareLessEqualTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareLessEqualTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessThanExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessThanExpression.java index 2a05a80c4a..1852771e8e 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessThanExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessThanExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.CompareBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.CompareLessThanTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareLessThanTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicAndExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicAndExpression.java index a7f905ad1f..35f19c258b 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicAndExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicAndExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.LogicAndTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.LogicBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.LogicAndTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.LogicBinaryTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicOrExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicOrExpression.java index e0a7e1437d..ee0609ae16 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicOrExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicOrExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.LogicBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.LogicOrTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.LogicBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.LogicOrTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/ModuloExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/ModuloExpression.java index 44d7d01b02..e43f23f3c5 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/ModuloExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/ModuloExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticModuloTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticModuloTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/MultiplicationExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/MultiplicationExpression.java index 1a52b209c8..d5b15dc55d 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/MultiplicationExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/MultiplicationExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticMultiplicationTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticMultiplicationTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/NonEqualExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/NonEqualExpression.java index 3169ed1834..6c9337fa57 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/NonEqualExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/NonEqualExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.CompareBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.CompareNonEqualTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareNonEqualTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/SubtractionExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/SubtractionExpression.java index b2a0fd6151..3e31ad9039 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/SubtractionExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/SubtractionExpression.java @@ -22,8 +22,8 @@ package org.apache.iotdb.db.query.expression.binary; import org.apache.iotdb.db.query.expression.Expression; import org.apache.iotdb.db.query.expression.ExpressionType; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticBinaryTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticSubtractionTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticBinaryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticSubtractionTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/multi/FunctionExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/multi/FunctionExpression.java index 972260083d..64dd38df40 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/multi/FunctionExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/multi/FunctionExpression.java @@ -42,10 +42,10 @@ import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer; import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnMultiReferenceIntermediateLayer; import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnSingleReferenceIntermediateLayer; import org.apache.iotdb.db.query.udf.core.transformer.Transformer; -import org.apache.iotdb.db.query.udf.core.transformer.TransparentTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.UDFQueryRowTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.UDFQueryRowWindowTransformer; -import org.apache.iotdb.db.query.udf.core.transformer.UDFQueryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.multi.UDFQueryRowTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.multi.UDFQueryRowWindowTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.multi.UDFQueryTransformer; +import org.apache.iotdb.db.query.udf.core.transformer.unary.TransparentTransformer; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils; diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/LogicNotExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/LogicNotExpression.java index 97a7c5ceb7..2c22a52841 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/LogicNotExpression.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/LogicNotExpression.java @@ -25,8 +25,8 @@ import org.apache.iotdb.db.query.expression.leaf.ConstantOperand; import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.query.expression.multi.FunctionExpression; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.LogicNotTransformer; import org.apache.iotdb.db.query.udf.core.transformer.Transformer; +import org.apache.iotdb.db.query.udf.core.transformer.unary.LogicNotTransformer; import java.nio.ByteBuffer; 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 5aaed35f55..8e12a85a57 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 @@ -25,8 +25,8 @@ import org.apache.iotdb.db.query.expression.leaf.ConstantOperand; import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.query.expression.multi.FunctionExpression; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.db.query.udf.core.transformer.ArithmeticNegationTransformer; import org.apache.iotdb.db.query.udf.core.transformer.Transformer; +import org.apache.iotdb.db.query.udf.core.transformer.unary.ArithmeticNegationTransformer; import java.nio.ByteBuffer; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticNegationTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticNegationTransformer.java deleted file mode 100644 index 1fa710b208..0000000000 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticNegationTransformer.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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.transformer; - -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; - -import java.io.IOException; - -public class ArithmeticNegationTransformer extends Transformer { - - private final LayerPointReader layerPointReader; - - public ArithmeticNegationTransformer(LayerPointReader layerPointReader) { - this.layerPointReader = layerPointReader; - } - - @Override - public boolean isConstantPointReader() { - return layerPointReader.isConstantPointReader(); - } - - @Override - protected boolean cacheValue() throws QueryProcessException, IOException { - if (!layerPointReader.next()) { - return false; - } - // Constant doesn't have currentTime(), it will be determined by the other part in - // BinaryTransformer - if (!isConstantPointReader()) { - cachedTime = layerPointReader.currentTime(); - } - if (layerPointReader.isCurrentNull()) { - currentNull = true; - } else { - switch (layerPointReader.getDataType()) { - case INT32: - cachedInt = -layerPointReader.currentInt(); - break; - case INT64: - cachedLong = -layerPointReader.currentLong(); - break; - case FLOAT: - cachedFloat = -layerPointReader.currentFloat(); - break; - case DOUBLE: - cachedDouble = -layerPointReader.currentDouble(); - break; - default: - throw new QueryProcessException( - "Unsupported data type: " + layerPointReader.getDataType().toString()); - } - } - layerPointReader.readyForNext(); - return true; - } - - @Override - public TSDataType getDataType() { - return layerPointReader.getDataType(); - } -} diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/Transformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/Transformer.java index 258360973a..a666924a5c 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/Transformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/Transformer.java @@ -55,7 +55,7 @@ public abstract class Transformer implements LayerPointReader { protected abstract boolean cacheValue() throws QueryProcessException, IOException; @Override - public void readyForNext() { + public final void readyForNext() { hasCachedValue = false; currentNull = false; } diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/TransparentTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/TransparentTransformer.java deleted file mode 100644 index 650565de91..0000000000 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/TransparentTransformer.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * 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.transformer; - -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; - -import java.io.IOException; - -/** - * this is a special transformer which outputs data just as input without any modification. - * - * <p>i.e. it's just the function f(x) = x. - * - * <p>It's mainly used for a UDF with aggregation query as its parameters. - */ -public class TransparentTransformer extends Transformer { - - private final LayerPointReader reader; - - public TransparentTransformer(LayerPointReader reader) { - super(); - this.reader = reader; - } - - @Override - public boolean isConstantPointReader() { - return false; - } - - @Override - public TSDataType getDataType() { - return reader.getDataType(); - } - - @Override - protected boolean cacheValue() throws QueryProcessException, IOException { - if (!reader.next()) { - return false; - } - if (reader.isCurrentNull()) { - currentNull = true; - } else { - switch (reader.getDataType()) { - case BOOLEAN: - cachedBoolean = reader.currentBoolean(); - break; - case DOUBLE: - cachedDouble = reader.currentDouble(); - break; - case FLOAT: - cachedFloat = reader.currentFloat(); - break; - case INT32: - cachedInt = reader.currentInt(); - break; - case INT64: - cachedLong = reader.currentLong(); - break; - case TEXT: - cachedBinary = reader.currentBinary(); - break; - default: - throw new QueryProcessException("unsupported data type: " + reader.getDataType()); - } - } - cachedTime = reader.currentTime(); - return true; - } - - @Override - public void readyForNext() { - super.readyForNext(); - reader.readyForNext(); - } -} diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticAdditionTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticAdditionTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticAdditionTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticAdditionTransformer.java index a433ab55b1..4d9a2fbba5 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticAdditionTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticAdditionTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticBinaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticBinaryTransformer.java similarity index 95% copy from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticBinaryTransformer.java copy to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticBinaryTransformer.java index 0b22c8feae..4df0b51acf 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticBinaryTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticBinaryTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticDivisionTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticDivisionTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticDivisionTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticDivisionTransformer.java index b8d91d0a7f..03acdd89e8 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticDivisionTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticDivisionTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticModuloTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticModuloTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticModuloTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticModuloTransformer.java index 603d9941f3..bb6a2ccb17 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticModuloTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticModuloTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticMultiplicationTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticMultiplicationTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticMultiplicationTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticMultiplicationTransformer.java index 4153bbf1d6..33482f63c1 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticMultiplicationTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticMultiplicationTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticSubtractionTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticSubtractionTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticSubtractionTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticSubtractionTransformer.java index ddc6e60a6f..4472a40282 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticSubtractionTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticSubtractionTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/BinaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/BinaryTransformer.java similarity index 97% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/BinaryTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/BinaryTransformer.java index 658270e867..a7b6fc3700 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/BinaryTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/BinaryTransformer.java @@ -17,10 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; +import org.apache.iotdb.db.query.udf.core.transformer.Transformer; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import java.io.IOException; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareBinaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareBinaryTransformer.java similarity index 95% copy from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareBinaryTransformer.java copy to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareBinaryTransformer.java index 4b5c3fed21..c14e884a7d 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareBinaryTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareBinaryTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareEqualToTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareEqualToTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareEqualToTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareEqualToTransformer.java index 024d38cc69..4370db3f7d 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareEqualToTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareEqualToTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareGreaterEqualTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterEqualTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareGreaterEqualTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterEqualTransformer.java index 7fddac6665..e6fa1cdbe2 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareGreaterEqualTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterEqualTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareGreaterThanTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterThanTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareGreaterThanTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterThanTransformer.java index fadd835167..5cac5cb273 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareGreaterThanTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterThanTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareLessEqualTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessEqualTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareLessEqualTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessEqualTransformer.java index c5653dd7a7..6dde245ac9 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareLessEqualTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessEqualTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareLessThanTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessThanTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareLessThanTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessThanTransformer.java index 2082e13ded..d4e91e59ef 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareLessThanTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessThanTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareNonEqualTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareNonEqualTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareNonEqualTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareNonEqualTransformer.java index c5742def5e..203c113f26 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareNonEqualTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareNonEqualTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicAndTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicAndTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicAndTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicAndTransformer.java index 887d419cf0..dd44e29408 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicAndTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicAndTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicBinaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicBinaryTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicBinaryTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicBinaryTransformer.java index 3b12e2df5a..a18549dabb 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicBinaryTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicBinaryTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicOrTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicOrTransformer.java similarity index 95% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicOrTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicOrTransformer.java index 3786936f67..e9250ea53e 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicOrTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicOrTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.binary; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/UDFQueryRowTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowTransformer.java similarity index 96% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/UDFQueryRowTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowTransformer.java index 2b9250c11a..354a102736 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/UDFQueryRowTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.multi; import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/UDFQueryRowWindowTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowWindowTransformer.java similarity index 96% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/UDFQueryRowWindowTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowWindowTransformer.java index b06796d519..1f810694e2 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/UDFQueryRowWindowTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowWindowTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.multi; import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/UDFQueryTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryTransformer.java similarity index 96% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/UDFQueryTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryTransformer.java index f714a4e329..c48ec13cee 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/UDFQueryTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryTransformer.java @@ -17,11 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.multi; import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; +import org.apache.iotdb.db.query.udf.core.transformer.Transformer; import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticBinaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/ArithmeticNegationTransformer.java similarity index 50% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticBinaryTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/ArithmeticNegationTransformer.java index 0b22c8feae..983c8ab238 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/ArithmeticBinaryTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/ArithmeticNegationTransformer.java @@ -17,25 +17,43 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.unary; +import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; -public abstract class ArithmeticBinaryTransformer extends BinaryTransformer { +import java.io.IOException; - protected ArithmeticBinaryTransformer( - LayerPointReader leftPointReader, LayerPointReader rightPointReader) { - super(leftPointReader, rightPointReader); +public class ArithmeticNegationTransformer extends UnaryTransformer { + + public ArithmeticNegationTransformer(LayerPointReader layerPointReader) { + super(layerPointReader); } @Override - protected TransformerType getTransformerType() { - return TransformerType.Arithmetic; + public TSDataType getDataType() { + return layerPointReader.getDataType(); } @Override - public TSDataType getDataType() { - return TSDataType.DOUBLE; + protected void transformAndCache() throws QueryProcessException, IOException { + switch (layerPointReader.getDataType()) { + case INT32: + cachedInt = -layerPointReader.currentInt(); + break; + case INT64: + cachedLong = -layerPointReader.currentLong(); + break; + case FLOAT: + cachedFloat = -layerPointReader.currentFloat(); + break; + case DOUBLE: + cachedDouble = -layerPointReader.currentDouble(); + break; + default: + throw new QueryProcessException( + "Unsupported data type: " + layerPointReader.getDataType().toString()); + } } } diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareBinaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/LogicNotTransformer.java similarity index 61% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareBinaryTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/LogicNotTransformer.java index 4b5c3fed21..1aeb5fb85d 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/CompareBinaryTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/LogicNotTransformer.java @@ -17,25 +17,32 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.unary; +import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; -public abstract class CompareBinaryTransformer extends BinaryTransformer { +import java.io.IOException; - protected CompareBinaryTransformer( - LayerPointReader leftPointReader, LayerPointReader rightPointReader) { - super(leftPointReader, rightPointReader); - } +public class LogicNotTransformer extends UnaryTransformer { - @Override - protected TransformerType getTransformerType() { - return TransformerType.Comparative; + public LogicNotTransformer(LayerPointReader layerPointReader) { + super(layerPointReader); } @Override public TSDataType getDataType() { return TSDataType.BOOLEAN; } + + @Override + protected void transformAndCache() throws QueryProcessException, IOException { + if (layerPointReader.getDataType() == TSDataType.BOOLEAN) { + cachedBoolean = !layerPointReader.currentBoolean(); + } else { + throw new QueryProcessException( + "Unsupported data type: " + layerPointReader.getDataType().toString()); + } + } } diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/TransparentTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/TransparentTransformer.java new file mode 100644 index 0000000000..24cae21f52 --- /dev/null +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/TransparentTransformer.java @@ -0,0 +1,70 @@ +/* + * 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.transformer.unary; + +import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; +import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; + +import java.io.IOException; + +/** + * this is a special transformer which outputs data just as input without any modification. + * + * <p>i.e. it's just the function f(x) = x. + * + * <p>It's mainly used for a UDF with aggregation query as its parameters. + */ +public class TransparentTransformer extends UnaryTransformer { + + public TransparentTransformer(LayerPointReader layerPointReader) { + super(layerPointReader); + } + + @Override + public TSDataType getDataType() { + return layerPointReader.getDataType(); + } + + @Override + protected void transformAndCache() throws QueryProcessException, IOException { + switch (layerPointReader.getDataType()) { + case BOOLEAN: + cachedBoolean = layerPointReader.currentBoolean(); + break; + case DOUBLE: + cachedDouble = layerPointReader.currentDouble(); + break; + case FLOAT: + cachedFloat = layerPointReader.currentFloat(); + break; + case INT32: + cachedInt = layerPointReader.currentInt(); + break; + case INT64: + cachedLong = layerPointReader.currentLong(); + break; + case TEXT: + cachedBinary = layerPointReader.currentBinary(); + break; + default: + throw new QueryProcessException("unsupported data type: " + layerPointReader.getDataType()); + } + } +} diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicNotTransformer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/UnaryTransformer.java similarity index 60% rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicNotTransformer.java rename to server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/UnaryTransformer.java index c02c5ea2a6..5d3abf6931 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/LogicNotTransformer.java +++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/UnaryTransformer.java @@ -17,54 +17,46 @@ * under the License. */ -package org.apache.iotdb.db.query.udf.core.transformer; +package org.apache.iotdb.db.query.udf.core.transformer.unary; import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader; -import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; +import org.apache.iotdb.db.query.udf.core.transformer.Transformer; import java.io.IOException; -public class LogicNotTransformer extends Transformer { - private final LayerPointReader layerPointReader; +public abstract class UnaryTransformer extends Transformer { - public LogicNotTransformer(LayerPointReader layerPointReader) { + protected final LayerPointReader layerPointReader; + + public UnaryTransformer(LayerPointReader layerPointReader) { this.layerPointReader = layerPointReader; } @Override - public boolean isConstantPointReader() { + public final boolean isConstantPointReader() { return layerPointReader.isConstantPointReader(); } @Override - protected boolean cacheValue() throws QueryProcessException, IOException { + protected final boolean cacheValue() throws QueryProcessException, IOException { if (!layerPointReader.next()) { return false; } - // Constant doesn't have currentTime(), it will be determined by the other part in - // BinaryTransformer + if (!isConstantPointReader()) { cachedTime = layerPointReader.currentTime(); } + if (layerPointReader.isCurrentNull()) { currentNull = true; } else { - switch (layerPointReader.getDataType()) { - case BOOLEAN: - cachedBoolean = !layerPointReader.currentBoolean(); - break; - default: - throw new QueryProcessException( - "Unsupported data type: " + layerPointReader.getDataType().toString()); - } + transformAndCache(); } + layerPointReader.readyForNext(); return true; } - @Override - public TSDataType getDataType() { - return TSDataType.BOOLEAN; - } + protected abstract void transformAndCache() throws QueryProcessException, IOException; }
