You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/08/12 11:25:00 UTC

[shardingsphere] branch master updated: #6604, support parse hex value (#6806)

This is an automated email from the ASF dual-hosted git repository.

panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new b810249  #6604, support parse hex value (#6806)
b810249 is described below

commit b810249de062a8273409968df73840f3627f1736
Author: Zhang Yonglun <zh...@apache.org>
AuthorDate: Wed Aug 12 19:24:45 2020 +0800

    #6604, support parse hex value (#6806)
---
 .../src/main/antlr4/imports/mysql/Literals.g4               |  2 +-
 .../src/test/resources/case/dml/insert.xml                  | 13 +++++++++++++
 .../src/test/resources/sql/supported/dml/insert.xml         |  1 +
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/Literals.g4 b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/Literals.g4
index 40f3773..0fcffab 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/Literals.g4
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/Literals.g4
@@ -35,7 +35,7 @@ NUMBER_
     ;
 
 HEX_DIGIT_
-    : '0x' HEX_+ | 'X' SQ_ HEX_+ SQ_
+    : '0x' HEX_+ | X SQ_ HEX_+ SQ_
     ;
 
 BIT_NUM_
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml
index d4562d2..4fbb00c 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml
@@ -1285,4 +1285,17 @@
         </values>
     </insert>
     
+    <insert sql-case-id="insert_with_digit_literals_value">
+        <table name="digit_literals_value_test" start-index="12" stop-index="36" />
+        <columns start-index="37" stop-index="42">
+            <column name="col1" start-index="38" stop-index="41" />
+        </columns>
+        <values>
+            <value>
+                <assignment-value>
+                    <literal-expression value="x'1234'" />
+                </assignment-value>
+            </value>
+        </values>
+    </insert>
 </sql-parser-test-cases>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/insert.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/insert.xml
index 747e379..3f73801 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/insert.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/insert.xml
@@ -62,4 +62,5 @@
     <sql-case id="insert_select_without_generate_key_column" value="INSERT INTO t_order_item(order_id, user_id, status, creation_date) SELECT order_id, user_id, 'insert', '2017-08-08' FROM t_order_item WHERE order_id = ?" db-types="MySQL" />
     <sql-case id="insert_select_on_duplicate_key_update" value="INSERT INTO t_order(order_id, user_id, status) SELECT order_id, user_id, status FROM t_order WHERE order_id = ? ON DUPLICATE KEY UPDATE status = VALUES(status)" db-types="MySQL" />
     <sql-case id="insert_with_emoji_value" value="INSERT INTO t_emoji_test(col1) VALUES('test😀')" db-types="MySQL" />
+    <sql-case id="insert_with_digit_literals_value" value="INSERT INTO digit_literals_value_test(col1) VALUES(x'1234')" db-types="MySQL" />
 </sql-cases>