This is an automated email from the ASF dual-hosted git repository.
chengzhang 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 b528eea6249 Support Oracle Clusters Functions (#27522)
b528eea6249 is described below
commit b528eea62491f6d4e5c7b2ad1e0de2225de895be
Author: Zichao <[email protected]>
AuthorDate: Fri Jul 28 14:59:09 2023 +1200
Support Oracle Clusters Functions (#27522)
---
.../dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4 | 2 +-
.../oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4 | 8 ++++++++
.../parser/src/main/resources/case/dml/select-expression.xml | 11 +++++++++++
.../main/resources/sql/supported/dml/select-expression.xml | 1 +
4 files changed, 21 insertions(+), 1 deletion(-)
diff --git
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
index 46734580807..c079597573b 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
@@ -754,7 +754,7 @@ featureFunction
;
featureFunctionName
- : FEATURE_COMPARE | FEATURE_DETAILS | FEATURE_SET | FEATURE_ID |
FEATURE_VALUE
+ : FEATURE_COMPARE | FEATURE_DETAILS | FEATURE_SET | FEATURE_ID |
FEATURE_VALUE | CLUSTER_DETAILS | CLUSTER_DISTANCE | CLUSTER_ID |
CLUSTER_PROBABILITY | CLUSTER_SET
;
miningAttributeClause
diff --git
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
index 9e1d207b5c6..d3383343b19 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
@@ -7663,3 +7663,11 @@ FEATURE_COMPARE
FEATURE_DETAILS
: F E A T U R E UL_ D E T A I L S
;
+
+CLUSTER_DETAILS
+ : C L U S T E R UL_ D E T A I L S
+ ;
+
+CLUSTER_DISTANCE
+ : C L U S T E R UL_ D I S T A N C E
+ ;
diff --git a/test/it/parser/src/main/resources/case/dml/select-expression.xml
b/test/it/parser/src/main/resources/case/dml/select-expression.xml
index 004fed887cc..b05d066f90a 100644
--- a/test/it/parser/src/main/resources/case/dml/select-expression.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-expression.xml
@@ -2630,4 +2630,15 @@
<simple-table name="nmf_sh_sample_apply_prepared" start-index="52"
stop-index="79" />
</from>
</select>
+
+ <select sql-case-id="select_cluster_function">
+ <projections start-index="7" stop-index="55">
+ <expression-projection
text="CLUSTER_PROBABILITY(km_sh_clus_sample, 2 USING *)" start-index="7"
stop-index="55">
+ <function function-name="CLUSTER_PROBABILITY"
text="CLUSTER_PROBABILITY(km_sh_clus_sample, 2 USING *)" />
+ </expression-projection>
+ </projections>
+ <from>
+ <simple-table name="mining_data_apply_v" start-index="62"
stop-index="80" />
+ </from>
+ </select>
</sql-parser-test-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
b/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
index 26a3b77719d..870ef81a3f1 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
@@ -108,4 +108,5 @@
<sql-case id="select_dbms_logmnr_mine_value_regular_function"
value="SELECT DBMS_LOGMNR.MINE_VALUE(UNDO_VALUE, 'HR.EMPLOYEES.SALARY') FROM
V$LOGMNR_CONTENTS;" db-types="Oracle" />
<sql-case id="select_interval_day_to_second_expression" value="SELECT
(SYSTIMESTAMP - order_date) DAY(9) TO SECOND FROM orders" db-types="Oracle" />
<sql-case id="select_feature_function" value="SELECT
FEATURE_VALUE(nmf_sh_sample, 3 USING *) FROM nmf_sh_sample_apply_prepared"
db-types="Oracle" />
+ <sql-case id="select_cluster_function" value="SELECT
CLUSTER_PROBABILITY(km_sh_clus_sample, 2 USING *) FROM mining_data_apply_v"
db-types="Oracle" />
</sql-cases>