You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by ji...@apache.org on 2015/03/11 02:22:06 UTC
[10/12] tajo git commit: TAJO-1386: CURRENT_DATE generates parsing
errors sometimes.
TAJO-1386: CURRENT_DATE generates parsing errors sometimes.
Closes #408
Signed-off-by: Hyunsik Choi <hy...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/3b9a2e5f
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/3b9a2e5f
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/3b9a2e5f
Branch: refs/heads/index_support
Commit: 3b9a2e5f287db3fcfdf6b0578c8184c47b8b3ebd
Parents: 13316bd
Author: navis.ryu <na...@apache.org>
Authored: Tue Mar 10 20:32:26 2015 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Tue Mar 10 14:09:22 2015 -0700
----------------------------------------------------------------------
CHANGES | 3 +++
.../org/apache/tajo/engine/parser/SQLParser.g4 | 1 +
.../org/apache/tajo/engine/parser/SQLAnalyzer.java | 4 +++-
.../apache/tajo/engine/parser/SQLSyntaxError.java | 17 +++++++----------
.../engine/function/TestDateTimeFunctions.java | 5 +++++
.../apache/tajo/plan/InvalidQueryException.java | 4 ++--
6 files changed, 21 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 630417f..dc1a5f7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -16,6 +16,9 @@ Release 0.11.0 - unreleased
BUG FIXES
+ TAJO-1386: CURRENT_DATE generates parsing errors sometimes.
+ (Contributed by navis, Committed by hyunsik)
+
TAJO-1387: Correct error message for EXISTS clause.
(Contributed by Dongjoon Hyun, Committed by hyunsik)
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 b/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
index 420bf46..a05a060 100644
--- a/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
+++ b/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
@@ -770,6 +770,7 @@ sign
numeric_value_function
: extract_expression
+ | datetime_value_function
;
extract_expression
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java b/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
index 5b4054f..869c0eb 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
@@ -1155,7 +1155,9 @@ public class SQLAnalyzer extends SQLParserBaseVisitor<Expr> {
if (checkIfExist(ctx.extract_expression())) {
return visitExtract_expression(ctx.extract_expression());
}
-
+ if (checkIfExist(ctx.datetime_value_function())) {
+ return visitDatetime_value_function(ctx.datetime_value_function());
+ }
return null;
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLSyntaxError.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLSyntaxError.java b/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLSyntaxError.java
index e4bfc7c..4c3b0fd 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLSyntaxError.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLSyntaxError.java
@@ -22,28 +22,25 @@ package org.apache.tajo.engine.parser;
import org.apache.tajo.plan.InvalidQueryException;
public class SQLSyntaxError extends InvalidQueryException {
- private static final long serialVersionUID = 5388279335175632066L;
+ private static final long serialVersionUID = 5388279335175632067L;
- private String errorMessage;
- private String detailedMessage;
- private SQLParseError parseError;
+ private transient String detailedMessage;
public SQLSyntaxError(String errorMessage) {
- this.errorMessage = errorMessage;
+ super(errorMessage);
}
public SQLSyntaxError(SQLParseError e) {
- this.errorMessage = e.getMessageHeader();
- this.parseError = e;
+ super(e.getMessageHeader(), e);
}
@Override
public String getMessage() {
if (detailedMessage == null) {
- if (parseError != null) {
- detailedMessage = parseError.getMessage();
+ if (getCause() != null) {
+ detailedMessage = getCause().getMessage();
} else {
- detailedMessage = String.format("ERROR: %s\n", errorMessage);
+ detailedMessage = String.format("ERROR: %s\n", super.getMessage());
}
}
return detailedMessage;
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java b/tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
index 6c708fb..25a10fd 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
@@ -443,6 +443,11 @@ public class TestDateTimeFunctions extends ExprTestBase {
new String[]{dateFormat(expectedDate, "yyyy-MM-dd")});
testSimpleEval(context, "select cast(extract(hour from current_time()) as INT4);",
new String[]{String.valueOf(Integer.parseInt(dateFormat(expectedDate, "HH")))});
+
+ expectedDate.setDate(expectedDate.getDate() + 1);
+
+ testSimpleEval(context, "select current_date() + 1;",
+ new String[]{dateFormat(expectedDate, "yyyy-MM-dd")});
} finally {
TimeZone.setDefault(originalTimezone);
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java b/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
index db986e1..a6b677f 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
@@ -29,7 +29,7 @@ public class InvalidQueryException extends RuntimeException {
super(message);
}
- public InvalidQueryException(Throwable t) {
- super(t);
+ public InvalidQueryException(String message, Throwable t) {
+ super(message, t);
}
}