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 b2d181a4cf6 add support of ALTER RESOURCE COST for Oracle (#21185)
b2d181a4cf6 is described below

commit b2d181a4cf6fedc9725e0cedd33284878208bf5f
Author: tianhao960 <[email protected]>
AuthorDate: Mon Sep 26 15:14:00 2022 +0800

    add support of ALTER RESOURCE COST for Oracle (#21185)
    
    * add support of ALTER RESOURCE COST
    
    * add support of ALTER RESOURCE COST #2
    
    * add support of ALTER RESOURCE COST #3
    
    * add support of ALTER RESOURCE COST for Oracle #4
---
 .../src/main/antlr4/imports/oracle/BaseRule.g4     |  2 +-
 .../imports/oracle/DALStatement.g4}                | 21 +++++-------------
 .../main/antlr4/imports/oracle/OracleKeyword.g4    | 18 +++++++++++++++-
 .../sql/parser/autogen/OracleStatement.g4          |  3 ++-
 .../impl/OracleDALStatementSQLVisitor.java         |  8 +++++++
 .../core/database/visitor/SQLVisitorRule.java      |  2 ++
 .../dal/OracleAlterResourceCostStatement.java}     | 25 +++++++++++-----------
 .../src/main/resources/case/dal/alter.xml          |  2 ++
 .../src/main/resources/sql/supported/dal/alter.xml |  2 ++
 9 files changed, 51 insertions(+), 32 deletions(-)

diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
index 9132adff4fb..71d4fed59b6 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
@@ -162,7 +162,7 @@ unreservedWord
     | ENFORCED | TRUSTED | ID | SYNCHRONOUS | ASYNCHRONOUS | REPEAT | FEATURE 
| STATEMENT | CLAUSE | UNPLUG
     | HOST | PORT | EVERY | MINUTES | HOURS | NORELOCATE | SAVE | DISCARD | 
APPLICATION | INSTALL
     | MINIMUM | VERSION | UNINSTALL | COMPATIBILITY | MATERIALIZE | SUBTYPE | 
RECORD | CONSTANT | CURSOR
-    | OTHERS | EXCEPTION
+    | OTHERS | EXCEPTION | CPU_PER_SESSION | CONNECT_TIME | 
LOGICAL_READS_PER_SESSION | PRIVATE_SGA
     ;
 
 schemaName
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDALStatementSQLVisitor.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DALStatement.g4
similarity index 57%
copy from 
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDALStatementSQLVisitor.java
copy to 
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DALStatement.g4
index 6c91f69c50f..682d7ea1673 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDALStatementSQLVisitor.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DALStatement.g4
@@ -15,21 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sql.parser.oracle.visitor.statement.impl;
+grammar DALStatement;
 
-import lombok.NoArgsConstructor;
-import 
org.apache.shardingsphere.sql.parser.api.visitor.operation.SQLStatementVisitor;
-import org.apache.shardingsphere.sql.parser.api.visitor.type.DALSQLVisitor;
+import BaseRule;
 
-import java.util.Properties;
-
-/**
- * DAL Statement SQL visitor for Oracle.
- */
-@NoArgsConstructor
-public final class OracleDALStatementSQLVisitor extends 
OracleStatementSQLVisitor implements DALSQLVisitor, SQLStatementVisitor {
-    
-    public OracleDALStatementSQLVisitor(final Properties props) {
-        super(props);
-    }
-}
+alterResourceCost
+    : ALTER RESOURCE COST ((CPU_PER_SESSION | CONNECT_TIME | 
LOGICAL_READS_PER_SESSION | PRIVATE_SGA) INTEGER_)+
+    ;
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
index 7489a37b0fd..2a7e0dc4238 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
@@ -3062,4 +3062,20 @@ OTHERS
 
 EXCEPTION
     : E X C E P T I O N
-    ;
\ No newline at end of file
+    ;
+
+CPU_PER_SESSION
+    : C P U UL_ P E R UL_ S E S S I O N
+    ;
+
+CONNECT_TIME
+    : C O N N E C T UL_ T I M E
+    ;
+
+LOGICAL_READS_PER_SESSION
+    : L O G I C A L UL_ R E A D S UL_ P E R UL_ S E S S I O N
+    ;
+
+PRIVATE_SGA
+    : P R I V A T E UL_ S G A
+    ;
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OracleStatement.g4
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OracleStatement.g4
index 0afe26ed8ce..0a6a3b1f0d3 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OracleStatement.g4
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OracleStatement.g4
@@ -17,7 +17,7 @@
 
 grammar OracleStatement;
 
-import DMLStatement, TCLStatement, DCLStatement, StoreProcedure;
+import DMLStatement, TCLStatement, DCLStatement, DALStatement, StoreProcedure;
 
 execute
     : (select
@@ -132,5 +132,6 @@ execute
     | dropMaterializedView
     | dropMaterializedViewLog
     | dropMaterializedZonemap
+    | alterResourceCost
     ) SEMI_?
     ;
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDALStatementSQLVisitor.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDALStatementSQLVisitor.java
index 6c91f69c50f..888b13027d8 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDALStatementSQLVisitor.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDALStatementSQLVisitor.java
@@ -18,8 +18,11 @@
 package org.apache.shardingsphere.sql.parser.oracle.visitor.statement.impl;
 
 import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.sql.parser.api.visitor.ASTNode;
 import 
org.apache.shardingsphere.sql.parser.api.visitor.operation.SQLStatementVisitor;
 import org.apache.shardingsphere.sql.parser.api.visitor.type.DALSQLVisitor;
+import 
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.AlterResourceCostContext;
+import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dal.OracleAlterResourceCostStatement;
 
 import java.util.Properties;
 
@@ -32,4 +35,9 @@ public final class OracleDALStatementSQLVisitor extends 
OracleStatementSQLVisito
     public OracleDALStatementSQLVisitor(final Properties props) {
         super(props);
     }
+    
+    @Override
+    public ASTNode visitAlterResourceCost(final AlterResourceCostContext ctx) {
+        return new OracleAlterResourceCostStatement();
+    }
 }
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
index bfd3cd6ff6d..36a049787c8 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
@@ -430,6 +430,8 @@ public enum SQLVisitorRule {
     
     CREATE_RESOURCE_GROUP("CreateResourceGroup", SQLStatementType.DAL),
     
+    ALTER_RESOURCE_COST("AlterResourceCost", SQLStatementType.DAL),
+    
     SET_RESOURCE_GROUP("SetResourceGroup", SQLStatementType.DAL),
     
     BINLOG("Binlog", SQLStatementType.DAL),
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDALStatementSQLVisitor.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/dal/OracleAlterResourceCostStatement.java
similarity index 56%
copy from 
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDALStatementSQLVisitor.java
copy to 
shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/dal/OracleAlterResourceCostStatement.java
index 6c91f69c50f..315b2d5af33 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDALStatementSQLVisitor.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/dal/OracleAlterResourceCostStatement.java
@@ -15,21 +15,20 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sql.parser.oracle.visitor.statement.impl;
+package org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dal;
 
-import lombok.NoArgsConstructor;
-import 
org.apache.shardingsphere.sql.parser.api.visitor.operation.SQLStatementVisitor;
-import org.apache.shardingsphere.sql.parser.api.visitor.type.DALSQLVisitor;
-
-import java.util.Properties;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import 
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
+import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dal.DALStatement;
+import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.OracleStatement;
 
 /**
- * DAL Statement SQL visitor for Oracle.
+ * Oracle alter resource cost statement.
  */
-@NoArgsConstructor
-public final class OracleDALStatementSQLVisitor extends 
OracleStatementSQLVisitor implements DALSQLVisitor, SQLStatementVisitor {
-    
-    public OracleDALStatementSQLVisitor(final Properties props) {
-        super(props);
-    }
+@Getter
+@Setter
+@ToString(callSuper = true)
+public final class OracleAlterResourceCostStatement extends 
AbstractSQLStatement implements DALStatement, OracleStatement {
 }
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dal/alter.xml
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dal/alter.xml
index f909e100e46..b7c04b90ccc 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dal/alter.xml
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dal/alter.xml
@@ -20,4 +20,6 @@
     <alter-resource-group sql-case-id="alter_resource_group">
         <group name="rg" start-index="21" stop-index="22" />
     </alter-resource-group>
+    <alter-resource 
sql-case-id="alter_resource_cost_cpu_time"></alter-resource>
+    <alter-resource sql-case-id="alter_resource_cost_cpu"></alter-resource>
 </sql-parser-test-cases>
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dal/alter.xml
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dal/alter.xml
index 3f2dec18610..2a15133ec14 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dal/alter.xml
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dal/alter.xml
@@ -18,4 +18,6 @@
 
 <sql-cases>
     <sql-case id="alter_resource_group" value="ALTER RESOURCE GROUP rg" 
db-types="MySQL" />
+    <sql-case id="alter_resource_cost_cpu_time" value="ALTER RESOURCE COST 
CPU_PER_SESSION 100 CONNECT_TIME 1" db-types="Oracle" />
+    <sql-case id="alter_resource_cost_cpu" value="ALTER RESOURCE COST 
CPU_PER_SESSION 100" db-types="Oracle" />
 </sql-cases>

Reply via email to