This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 a64caed487a support chinese whitespace for oracle (#29708)
a64caed487a is described below
commit a64caed487a656ac562977e7ccbaec6e3a15a610
Author: Chuxin Chen <[email protected]>
AuthorDate: Sat Jan 13 21:38:23 2024 +0800
support chinese whitespace for oracle (#29708)
---
.../oracle/src/main/antlr4/imports/oracle/Keyword.g4 | 2 +-
.../oracle/src/main/antlr4/imports/oracle/Literals.g4 | 2 +-
test/it/parser/src/main/resources/case/dml/select.xml | 13 ++++++++++++-
.../parser/src/main/resources/sql/supported/dml/select.xml | 1 +
4 files changed, 15 insertions(+), 3 deletions(-)
diff --git
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
index 377fbd3871f..fe8a0d6039c 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
@@ -20,7 +20,7 @@ lexer grammar Keyword;
import Alphabet, Number;
WS
- : [ \t\r\n] + ->skip
+ : [ \t\r\n\u3000] + ->skip
;
SELECT
diff --git
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Literals.g4
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Literals.g4
index 03936901a58..75521b48e6e 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Literals.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Literals.g4
@@ -24,7 +24,7 @@ TIME_UNIT
;
IDENTIFIER_
- :
[A-Za-z\u0080-\uFF0B\uFF0D-\uFFFF]+[A-Za-z_$#0-9\u0080-\uFF0B\uFF0D-\uFFFF]*
+ :
[A-Za-z\u0080-\u2FFF\u3001-\uFF0B\uFF0D-\uFFFF]+[A-Za-z_$#0-9\u0080-\u2FFF\u3001-\uFF0B\uFF0D-\uFFFF]*
;
STRING_
diff --git a/test/it/parser/src/main/resources/case/dml/select.xml
b/test/it/parser/src/main/resources/case/dml/select.xml
index bc074bb6594..9459e7d4a85 100644
--- a/test/it/parser/src/main/resources/case/dml/select.xml
+++ b/test/it/parser/src/main/resources/case/dml/select.xml
@@ -6185,7 +6185,18 @@
<simple-table name="DUAL" start-index="19" stop-index="22" />
</from>
</select>
-
+
+ <select sql-case-id="select_with_chinese_whitespace">
+ <projections start-index="7" stop-index="12" >
+ <expression-projection text="1" start-index="7" stop-index="7" />
+ <expression-projection text="2" start-index="10" stop-index="10" />
+ <expression-projection text="3" start-index="12" stop-index="12" />
+ </projections>
+ <from>
+ <simple-table name="DUAL" start-index="19" stop-index="22" />
+ </from>
+ </select>
+
<select sql-case-id="select_with_keyword_system" parameters="0">
<from>
<simple-table name="vtx_project" start-index="14" stop-index="24"
/>
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/select.xml
b/test/it/parser/src/main/resources/sql/supported/dml/select.xml
index 7f89d5c051d..977bc0e56a9 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select.xml
@@ -196,6 +196,7 @@
<sql-case id="select_constant_with_nested_type_cast" value="SELECT
CAST(MONEY '1' AS VARCHAR)::CHAR(10)::VARCHAR::CHAR(4)"
db-types="PostgreSQL,openGauss" />
<sql-case id="select_projection_with_parameter" value="SELECT 1 AS id, ?
AS status, SYSDATE AS create_time, TRUNC(SYSDATE) AS create_date FROM DUAL"
db-types="Oracle" />
<sql-case id="select_with_chinese_comma" value="SELECT 1, 2,3 FROM DUAL"
db-types="Oracle" />
+ <sql-case id="select_with_chinese_whitespace" value="SELECT 1, 2,3 FROM
DUAL" db-types="Oracle" />
<sql-case id="select_with_keyword_system" value="SELECT * FROM vtx_project
WHERE system = ?" />
<sql-case id="select_with_keyword_groups_and_rank" value="SELECT t.groups,
t.rank FROM t_order t" db-types="MySQL" />
<sql-case id="select_with_format_function" value="SELECT
wi.code.format(null,'PURE_IDENTITY') as PURE_IDENTITY FROM warehouse_info wi;"
db-types="Oracle" />