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>

Reply via email to