diff --git a/pom.xml b/pom.xml index 80224114d0..328a02d5a3 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.alibaba druid - 1.0.13 + 1.0.14 jar druid diff --git a/src/main/java/com/alibaba/druid/VERSION.java b/src/main/java/com/alibaba/druid/VERSION.java index 33ea3c73a6..eba0312ffd 100644 --- a/src/main/java/com/alibaba/druid/VERSION.java +++ b/src/main/java/com/alibaba/druid/VERSION.java @@ -19,7 +19,7 @@ public final class VERSION { public final static int MajorVersion = 1; public final static int MinorVersion = 0; - public final static int RevisionVersion = 13; + public final static int RevisionVersion = 14; public static String getVersionNumber() { return VERSION.MajorVersion + "." + VERSION.MinorVersion + "." + VERSION.RevisionVersion; diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java index 27605810e4..4f48219327 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java @@ -458,6 +458,11 @@ public class SQLExprParser extends SQLParser { sqlExpr = new SQLNumberExpr(lexer.decimalValue()); lexer.nextToken(); break; + case IDENTIFIER: // 当+号后面为字段的情况 + sqlExpr = new SQLIdentifierExpr(lexer.stringVal()); + sqlExpr = new SQLUnaryExpr(SQLUnaryOperator.Plus, sqlExpr); + lexer.nextToken(); + break; case LPAREN: lexer.nextToken(); sqlExpr = expr(); diff --git a/src/main/resources/support/http/resources/js/doT.js b/src/main/resources/support/http/resources/js/doT.js index 029f807de9..9927e3711e 100644 --- a/src/main/resources/support/http/resources/js/doT.js +++ b/src/main/resources/support/http/resources/js/doT.js @@ -6,7 +6,7 @@ "use strict"; var doT = { - version: '1.0.9', + version: '1.0.14', templateSettings: { evaluate: /\{\{([\s\S]+?\}?)\}\}/g, interpolate: /\{\{=([\s\S]+?)\}\}/g, diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/DateAndTimeFunctionsTest.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/DateAndTimeFunctionsTest.java index 3311c2123a..bc2acf0c14 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/DateAndTimeFunctionsTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/DateAndTimeFunctionsTest.java @@ -621,6 +621,29 @@ public class DateAndTimeFunctionsTest extends TestCase { Assert.assertEquals("SELECT YEARWEEK('1987-01-01');", text); } + + + public void test_54() throws Exception { + String sql = "SELECT t.c1, DATE_ADD('2008-01-02', INTERVAL +t.c1 DAY) from t"; + + SQLStatementParser parser = new MySqlStatementParser(sql); + List stmtList = parser.parseStatementList(); + + String text = output(stmtList); + + Assert.assertEquals("SELECT t.c1, DATE_ADD('2008-01-02', INTERVAL +t.c1 DAY)\nFROM t;", text); + } + + public void test_55() throws Exception { + String sql = "SELECT t.c1, DATE_ADD('2008-01-02', INTERVAL -t.c1 DAY) from t"; + + SQLStatementParser parser = new MySqlStatementParser(sql); + List stmtList = parser.parseStatementList(); + + String text = output(stmtList); + + Assert.assertEquals("SELECT t.c1, DATE_ADD('2008-01-02', INTERVAL -t.c1 DAY)\nFROM t;", text); + } private String output(List stmtList) { StringBuilder out = new StringBuilder();