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 2022/04/25 07:10:45 UTC
[iotdb] branch rel/0.13 updated: [IOTDB-2888] Unary expression can followed by a constant (#5580)
This is an automated email from the ASF dual-hosted git repository.
rong pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.13 by this push:
new 3d6af36ac8 [IOTDB-2888] Unary expression can followed by a constant (#5580)
3d6af36ac8 is described below
commit 3d6af36ac8815edf042f52e8f4f87d84f19e0970
Author: flashzxi <39...@users.noreply.github.com>
AuthorDate: Mon Apr 25 15:10:39 2022 +0800
[IOTDB-2888] Unary expression can followed by a constant (#5580)
---
.../apache/iotdb/db/integration/IoTDBSelectSchemaIT.java | 16 ++++++++++++----
.../core/transformer/ArithmeticNegationTransformer.java | 6 +++++-
2 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectSchemaIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectSchemaIT.java
index 91a7ce0c59..ee6c9412fc 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectSchemaIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectSchemaIT.java
@@ -77,22 +77,30 @@ public class IoTDBSelectSchemaIT {
@Test
public void testSchemaExpression() {
String[] expressions = {
- "s1+s2", "-s1+s2", "-(s1+s3)", "-(-(s1))", "((s1+s2)*s3)",
+ "s1+s2", "-s1+s2", "-(s1+s3)", "-(-(s1))", "((s1+s2)*s3)", "-2+s1", "-(-1)+s1"
};
String[] completeExpressions = {
"root.sg.d1.s1+root.sg.d1.s2",
"-root.sg.d1.s1+root.sg.d1.s2",
"-(root.sg.d1.s1+root.sg.d1.s3)",
"-(-root.sg.d1.s1)",
- "(root.sg.d1.s1+root.sg.d1.s2)*root.sg.d1.s3"
+ "(root.sg.d1.s1+root.sg.d1.s2)*root.sg.d1.s3",
+ "-2+root.sg.d1.s1",
+ "-(-1)+root.sg.d1.s1"
};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
ResultSet resultSet =
statement.executeQuery(
String.format(
- "select %s, %s, %s, %s, %s from root.sg.d1",
- expressions[0], expressions[1], expressions[2], expressions[3], expressions[4]));
+ "select %s, %s, %s, %s, %s, %s, %s from root.sg.d1",
+ expressions[0],
+ expressions[1],
+ expressions[2],
+ expressions[3],
+ expressions[4],
+ expressions[5],
+ expressions[6]));
int columnCount = resultSet.getMetaData().getColumnCount();
assertEquals(1 + expressions.length, columnCount);
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
index 27093ee44b..1fa710b208 100644
--- 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
@@ -43,7 +43,11 @@ public class ArithmeticNegationTransformer extends Transformer {
if (!layerPointReader.next()) {
return false;
}
- cachedTime = layerPointReader.currentTime();
+ // 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 {