mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
Merge branch 'master' of github.com:AlibabaTech/druid
This commit is contained in:
@@ -353,10 +353,10 @@ public class OracleExprParser extends SQLExprParser {
|
||||
expr = dblink;
|
||||
}
|
||||
|
||||
if (lexer.token() == Token.DAY || lexer.token() == Token.YEAR) {
|
||||
if (identifierEquals("DAY") || identifierEquals("YEAR")) {
|
||||
lexer.mark();
|
||||
|
||||
String name = lexer.token().name;
|
||||
String name = lexer.stringVal();
|
||||
lexer.nextToken();
|
||||
|
||||
if (lexer.token() == Token.COMMA) {
|
||||
@@ -380,7 +380,7 @@ public class OracleExprParser extends SQLExprParser {
|
||||
}
|
||||
|
||||
accept(Token.TO);
|
||||
if (lexer.token() == Token.SECOND) {
|
||||
if (identifierEquals("SECOND")) {
|
||||
lexer.nextToken();
|
||||
interval.setToType(OracleIntervalType.SECOND);
|
||||
if (lexer.token() == Token.LPAREN) {
|
||||
@@ -677,7 +677,7 @@ public class OracleExprParser extends SQLExprParser {
|
||||
lexer.nextToken();
|
||||
|
||||
|
||||
OracleIntervalType type = OracleIntervalType.valueOf(lexer.token().name);
|
||||
OracleIntervalType type = OracleIntervalType.valueOf(lexer.stringVal());
|
||||
interval.setType(type);
|
||||
lexer.nextToken();
|
||||
|
||||
@@ -702,7 +702,7 @@ public class OracleExprParser extends SQLExprParser {
|
||||
|
||||
if (lexer.token() == Token.TO) {
|
||||
accept(Token.TO);
|
||||
if (lexer.token() == Token.SECOND) {
|
||||
if (identifierEquals("SECOND")) {
|
||||
lexer.nextToken();
|
||||
interval.setToType(OracleIntervalType.SECOND);
|
||||
if (lexer.token() == Token.LPAREN) {
|
||||
|
||||
@@ -100,12 +100,7 @@ public class OracleLexer extends Lexer {
|
||||
map.put("COLUMN", Token.COLUMN);
|
||||
|
||||
map.put("CURSOR", Token.CURSOR);
|
||||
|
||||
map.put("DAY", Token.DAY);
|
||||
map.put("YEAR", Token.YEAR);
|
||||
map.put("MONTH", Token.MONTH);
|
||||
map.put("MINUTE", Token.MINUTE);
|
||||
map.put("SECOND", Token.SECOND);
|
||||
|
||||
map.put("TO", Token.TO);
|
||||
map.put("MODEL", Token.MODEL);
|
||||
map.put("MERGE", Token.MERGE);
|
||||
|
||||
@@ -208,8 +208,6 @@ public class SQLExprParser extends SQLParser {
|
||||
case REFERENCE:
|
||||
case KEY:
|
||||
case DISTINCT:
|
||||
case YEAR:
|
||||
case MONTH:
|
||||
case TIME:
|
||||
case ZONE:
|
||||
case LOG:
|
||||
|
||||
@@ -69,8 +69,7 @@ public class SQLParser {
|
||||
return alias;
|
||||
}
|
||||
|
||||
if (lexer.token() == Token.YEAR || lexer.token() == Token.DAY || lexer.token() == Token.KEY
|
||||
|| lexer.token() == Token.CASE || lexer.token() == Token.TIMESTAMP) {
|
||||
if (lexer.token() == Token.KEY || lexer.token() == Token.CASE || lexer.token() == Token.TIMESTAMP) {
|
||||
alias = lexer.token.name();
|
||||
lexer.nextToken();
|
||||
return alias;
|
||||
@@ -97,8 +96,7 @@ public class SQLParser {
|
||||
} else if (lexer.token() == Token.LITERAL_CHARS) {
|
||||
alias = "'" + lexer.stringVal() + "'";
|
||||
lexer.nextToken();
|
||||
} else if (lexer.token() == Token.YEAR || lexer.token() == Token.DAY || lexer.token() == Token.TIME
|
||||
|| lexer.token() == Token.MONTH || lexer.token() == Token.CASE || lexer.token() == Token.AT
|
||||
} else if (lexer.token() == Token.TIME || lexer.token() == Token.CASE || lexer.token() == Token.AT
|
||||
|| lexer.token() == Token.TIMESTAMP || lexer.token() == Token.LOG) {
|
||||
alias = lexer.token.name();
|
||||
lexer.nextToken();
|
||||
|
||||
@@ -142,12 +142,7 @@ public enum Token {
|
||||
EXTRACT("EXTRACT"),
|
||||
TIMESTAMP("TIMESTAMP"),
|
||||
DATE("DATE"),
|
||||
CURSOR("SECOND"),
|
||||
DAY("DAY"),
|
||||
YEAR("YEAR"),
|
||||
MONTH("MONTH"),
|
||||
MINUTE("MINUTE"),
|
||||
SECOND("SECOND"),
|
||||
CURSOR("CURSOR"),
|
||||
TO("TO"),
|
||||
MODEL("MODEL"),
|
||||
MERGE("MERGE"),
|
||||
|
||||
@@ -34,7 +34,7 @@ public class OraclePivotClauseTest extends TestCase {
|
||||
+ "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n";
|
||||
|
||||
String expected = "SELECT *\n"
|
||||
+ "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS YEAR, order_mode, order_total\n"
|
||||
+ "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS year, order_mode, order_total\n"
|
||||
+ "\tFROM orders\n" + ")\n"
|
||||
+ "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n";
|
||||
|
||||
@@ -54,7 +54,7 @@ public class OraclePivotClauseTest extends TestCase {
|
||||
+ "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n";
|
||||
|
||||
String expected = "SELECT *\n"
|
||||
+ "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS YEAR, order_mode, order_total\n"
|
||||
+ "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS year, order_mode, order_total\n"
|
||||
+ "\tFROM orders\n" + ")\n"
|
||||
+ "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n";
|
||||
|
||||
@@ -73,7 +73,7 @@ public class OraclePivotClauseTest extends TestCase {
|
||||
+ "FROM (SELECT EXTRACT(YEAR FROM order_date) as day, order_mode, order_total FROM orders)\n"
|
||||
+ "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n";
|
||||
|
||||
String expected = "SELECT *\n" + "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS DAY, order_mode, order_total\n"
|
||||
String expected = "SELECT *\n" + "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS day, order_mode, order_total\n"
|
||||
+ "\tFROM orders\n" + ")\n"
|
||||
+ "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n";
|
||||
|
||||
@@ -93,7 +93,7 @@ public class OraclePivotClauseTest extends TestCase {
|
||||
+ "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n";
|
||||
|
||||
String expected = "SELECT *\n"
|
||||
+ "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS DAY, order_mode AS YEAR, order_total\n"
|
||||
+ "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS day, order_mode AS YEAR, order_total\n"
|
||||
+ "\tFROM orders\n" + ")\n"
|
||||
+ "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user