diff --git a/src/main/java/com/alibaba/druid/sql/parser/Keywords.java b/src/main/java/com/alibaba/druid/sql/parser/Keywords.java index d354bad190..5306329e49 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/Keywords.java +++ b/src/main/java/com/alibaba/druid/sql/parser/Keywords.java @@ -52,6 +52,7 @@ public class Keywords { map.put("BY", Token.BY); map.put("CASE", Token.CASE); map.put("CAST", Token.CAST); + map.put("TRY_CAST", Token.TRY_CAST); map.put("CHECK", Token.CHECK); map.put("CONSTRAINT", Token.CONSTRAINT); 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 ca6a2556d7..1d54fed74f 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java @@ -672,6 +672,7 @@ public class SQLExprParser extends SQLParser { sqlExpr = queryExpr; break; case CAST: + case TRY_CAST: lexer.nextToken(); accept(Token.LPAREN); SQLCastExpr cast = new SQLCastExpr(); diff --git a/src/main/java/com/alibaba/druid/sql/parser/Token.java b/src/main/java/com/alibaba/druid/sql/parser/Token.java index a3a28bee92..da6ac3ce01 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/Token.java +++ b/src/main/java/com/alibaba/druid/sql/parser/Token.java @@ -84,6 +84,7 @@ public enum Token { ON("ON"), SCHEMA("SCHEMA"), CAST("CAST"), + TRY_CAST("TRY_CAST"), COLUMN("COLUMN"), USE("USE"), DATABASE("DATABASE"),