From 635b84f2f0be5c584f3adf6309f63a90dbef6b4a Mon Sep 17 00:00:00 2001 From: SteNicholas Date: Wed, 18 Dec 2019 14:40:16 +0800 Subject: [PATCH] mysql statement function (#3753) --- .../resources/sql/sharding/dql/select.xml | 2 + .../src/main/antlr4/imports/mysql/BaseRule.g4 | 6 ++- .../main/antlr4/imports/mysql/MySQLKeyword.g4 | 44 +++++++++++++++++++ .../test/resources/sharding/dml/select.xml | 26 +++++++++++ 4 files changed, 76 insertions(+), 2 deletions(-) diff --git a/sharding-sql-test/src/main/resources/sql/sharding/dql/select.xml b/sharding-sql-test/src/main/resources/sql/sharding/dql/select.xml index 3d788dec54..3bbf91a9bb 100644 --- a/sharding-sql-test/src/main/resources/sql/sharding/dql/select.xml +++ b/sharding-sql-test/src/main/resources/sql/sharding/dql/select.xml @@ -52,4 +52,6 @@ + + diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4 b/shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4 index f856b0b7f5..70b33aea04 100644 --- a/shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4 +++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4 @@ -438,8 +438,10 @@ regularFunction_ ; regularFunctionName_ - : identifier_ | IF | CURRENT_TIMESTAMP | LOCALTIME | LOCALTIMESTAMP | NOW | REPLACE | INTERVAL | SUBSTRING | LEFT | RIGHT - | LOWER | UNIX_TIMESTAMP | UPPER | DATABASE | STR_TO_DATE | AES_DECRYPT | AES_ENCRYPT | FROM_BASE64 | TO_BASE64 + : identifier_ | IF | CURRENT_TIMESTAMP | UNIX_TIMESTAMP | LOCALTIME | LOCALTIMESTAMP | NOW | REPLACE | INTERVAL | SUBSTRING | MOD + | DATABASE | LEFT | RIGHT | LOWER | UPPER | DATE | DATEDIFF | DATE_FORMAT | DAY | DAYNAME | DAYOFMONTH | DAYOFWEEK | DAYOFYEAR + | STR_TO_DATE | TIME | TIMEDIFF | TIMESTAMP | TIMESTAMPADD | TIMESTAMPDIFF | TIME_FORMAT | TIME_TO_SEC | AES_DECRYPT | AES_ENCRYPT + | FROM_BASE64 | TO_BASE64 ; matchExpression_ diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/MySQLKeyword.g4 b/shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/MySQLKeyword.g4 index 235dd0e31f..e646f04c71 100644 --- a/shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/MySQLKeyword.g4 +++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/MySQLKeyword.g4 @@ -1516,10 +1516,54 @@ UPPER : U P P E R ; +DATEDIFF + : D A T E D I F F + ; + +DATE_FORMAT + : D A T E UL_ F O R M A T + ; + +DAYNAME + : D A Y N A M E + ; + +DAYOFMONTH + : D A Y O F M O N T H + ; + +DAYOFWEEK + : D A Y O F W E E K + ; + +DAYOFYEAR + : D A Y O F Y E A R + ; + STR_TO_DATE : S T R UL_ T O UL_ D A T E ; +TIMEDIFF + : T I M E D I F F + ; + +TIMESTAMPADD + : T I M E S T A M P A D D + ; + +TIMESTAMPDIFF + : T I M E S T A M P D I F F + ; + +TIME_FORMAT + : T I M E UL_ F O R M A T + ; + +TIME_TO_SEC + : T I M E UL_ T O UL_ S E C + ; + AES_DECRYPT : A E S UL_ D E C R Y P T ; diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sharding/dml/select.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sharding/dml/select.xml index e8a509fb0e..4cfb847427 100644 --- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sharding/dml/select.xml +++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sharding/dml/select.xml @@ -1169,4 +1169,30 @@ + + + + + + + + + + + + + + + +
+ + + + + + + + + + -- GitLab