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/09/16 07:23:31 UTC
[iotdb] branch master updated: [IOTDB-4424] Specify error message when time value of insert sql can not be correctly parsed (#7343)
This is an automated email from the ASF dual-hosted git repository.
hui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 82cd0395bd [IOTDB-4424] Specify error message when time value of insert sql can not be correctly parsed (#7343)
82cd0395bd is described below
commit 82cd0395bde6fe6cdbf6caefbd228beed23071aa
Author: Liao Lanyu <14...@qq.com>
AuthorDate: Fri Sep 16 15:23:25 2022 +0800
[IOTDB-4424] Specify error message when time value of insert sql can not be correctly parsed (#7343)
---
.../java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java | 11 ++++++++---
.../main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 11 ++++++++---
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
index f6f5be5ee1..bb2c2d8aa1 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
@@ -2326,10 +2326,15 @@ public class ASTVisitor extends IoTDBSqlParserBaseVisitor<Statement> {
private long parseTimeValue(IoTDBSqlParser.TimeValueContext ctx, long currentTime) {
if (ctx.INTEGER_LITERAL() != null) {
- if (ctx.MINUS() != null) {
- return -Long.parseLong(ctx.INTEGER_LITERAL().getText());
+ try {
+ if (ctx.MINUS() != null) {
+ return -Long.parseLong(ctx.INTEGER_LITERAL().getText());
+ }
+ return Long.parseLong(ctx.INTEGER_LITERAL().getText());
+ } catch (NumberFormatException e) {
+ throw new SQLParserException(
+ String.format("Can not parse %s to long value", ctx.INTEGER_LITERAL().getText()));
}
- return Long.parseLong(ctx.INTEGER_LITERAL().getText());
} else if (ctx.dateExpression() != null) {
return parseDateExpression(ctx.dateExpression(), currentTime);
} else {
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
index 153ebb274d..f3765ed150 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
@@ -2795,10 +2795,15 @@ public class IoTDBSqlVisitor extends IoTDBSqlParserBaseVisitor<Operator> {
private long parseTimeValue(IoTDBSqlParser.TimeValueContext ctx, long currentTime) {
if (ctx.INTEGER_LITERAL() != null) {
- if (ctx.MINUS() != null) {
- return -Long.parseLong(ctx.INTEGER_LITERAL().getText());
+ try {
+ if (ctx.MINUS() != null) {
+ return -Long.parseLong(ctx.INTEGER_LITERAL().getText());
+ }
+ return Long.parseLong(ctx.INTEGER_LITERAL().getText());
+ } catch (NumberFormatException e) {
+ throw new SQLParserException(
+ String.format("Can not parse %s to long value", ctx.INTEGER_LITERAL().getText()));
}
- return Long.parseLong(ctx.INTEGER_LITERAL().getText());
} else if (ctx.dateExpression() != null) {
return parseDateExpression(ctx.dateExpression(), currentTime);
} else {