You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2022/07/02 03:44:01 UTC
[iotdb] 07/08: modify exception message
This is an automated email from the ASF dual-hosted git repository.
hui pushed a commit to branch lmh/fillCheckDebug
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 22ec8cbcf318c450d26ee4b2a0d6f7aa4ac2e6fd
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Sat Jul 2 11:23:23 2022 +0800
modify exception message
---
.../java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java | 13 ++++++++++---
.../iotdb/db/mpp/plan/statement/literal/BooleanLiteral.java | 5 +++++
.../iotdb/db/mpp/plan/statement/literal/DoubleLiteral.java | 5 +++++
.../apache/iotdb/db/mpp/plan/statement/literal/Literal.java | 2 ++
.../iotdb/db/mpp/plan/statement/literal/LongLiteral.java | 5 +++++
.../iotdb/db/mpp/plan/statement/literal/NullLiteral.java | 5 +++++
.../iotdb/db/mpp/plan/statement/literal/StringLiteral.java | 5 +++++
7 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java
index c29081c2a5..2dd7c55ff9 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java
@@ -416,13 +416,19 @@ public class Analyzer {
TSDataType checkedDataType = typeProvider.getType(fillColumn.getExpressionString());
if (!fillComponent.getFillValue().isDataTypeConsistency(checkedDataType)) {
throw new SemanticException(
- "FILL: the data type of the fill value should be the same as the output column");
+ String.format(
+ "Data type mismatch: column '%s' (dataType '%s') doesn't support fill with '%s' (dataType '%s').",
+ fillColumn.getExpressionString(),
+ checkedDataType,
+ fillComponent.getFillValue().getBinary(),
+ fillComponent.getFillValue().getDataTypeString()));
}
}
} else if (fillComponent.getFillPolicy() == FillPolicy.LINEAR) {
// TODO support linear fill in align by device query
if (queryStatement.isAlignByDevice()) {
- throw new SemanticException("Linear fill is not supported in align by device query.");
+ throw new SemanticException(
+ "Linear fill is not supported in align by device query yet.");
}
for (Expression fillColumn : fillColumnList) {
@@ -430,7 +436,8 @@ public class Analyzer {
if (!checkedDataType.isNumeric()) {
throw new SemanticException(
String.format(
- "FILL: dataType %s doesn't support linear fill.", checkedDataType));
+ "Data type mismatch: column '%s' (dataType '%s') doesn't support linear fill.",
+ fillColumn.getExpressionString(), checkedDataType));
}
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/BooleanLiteral.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/BooleanLiteral.java
index 203badb1de..8cbe5db20f 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/BooleanLiteral.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/BooleanLiteral.java
@@ -57,6 +57,11 @@ public class BooleanLiteral extends Literal {
return dataType == TSDataType.BOOLEAN || dataType == TSDataType.TEXT;
}
+ @Override
+ public String getDataTypeString() {
+ return TSDataType.BOOLEAN.toString();
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/DoubleLiteral.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/DoubleLiteral.java
index 3647f95b15..868d87276a 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/DoubleLiteral.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/DoubleLiteral.java
@@ -58,6 +58,11 @@ public class DoubleLiteral extends Literal {
|| dataType == TSDataType.TEXT;
}
+ @Override
+ public String getDataTypeString() {
+ return TSDataType.DOUBLE.toString();
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/Literal.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/Literal.java
index ec9c348f4c..710d9b9694 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/Literal.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/Literal.java
@@ -62,6 +62,8 @@ public abstract class Literal extends StatementNode {
public abstract boolean isDataTypeConsistency(TSDataType dataType);
+ public abstract String getDataTypeString();
+
public boolean getBoolean() {
throw new UnsupportedOperationException(getClass().getName());
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/LongLiteral.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/LongLiteral.java
index 16767f2210..6014f1c387 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/LongLiteral.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/LongLiteral.java
@@ -64,6 +64,11 @@ public class LongLiteral extends Literal {
|| dataType == TSDataType.TEXT;
}
+ @Override
+ public String getDataTypeString() {
+ return TSDataType.INT64.toString();
+ }
+
@Override
public int getInt() {
return Math.toIntExact(value);
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/NullLiteral.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/NullLiteral.java
index 67d0cfe818..51221a494a 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/NullLiteral.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/NullLiteral.java
@@ -44,6 +44,11 @@ public class NullLiteral extends Literal {
return false;
}
+ @Override
+ public String getDataTypeString() {
+ return "NULL";
+ }
+
@Override
public Binary getBinary() {
return new Binary("null");
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/StringLiteral.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/StringLiteral.java
index 6bfb05e561..118680ce47 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/StringLiteral.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/literal/StringLiteral.java
@@ -56,6 +56,11 @@ public class StringLiteral extends Literal {
return dataType == TSDataType.TEXT;
}
+ @Override
+ public String getDataTypeString() {
+ return TSDataType.TEXT.toString();
+ }
+
@Override
public Binary getBinary() {
return new Binary(value);