This is an automated email from the ASF dual-hosted git repository. zhangliang 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 edc85e51cbd support alter diskgroup (#19126) edc85e51cbd is described below commit edc85e51cbd2daf2deef29561c6c6cb49c4bbd4e Author: Trydamere <304080...@qq.com> AuthorDate: Fri Jul 15 09:57:25 2022 +0800 support alter diskgroup (#19126) --- .../src/main/antlr4/imports/oracle/BaseRule.g4 | 119 ++++++++- .../src/main/antlr4/imports/oracle/DDLStatement.g4 | 266 ++++++++++++++++++++- .../main/antlr4/imports/oracle/OracleKeyword.g4 | 32 +++ .../sql/parser/autogen/OracleStatement.g4 | 1 + .../impl/OracleDDLStatementSQLVisitor.java | 7 + .../core/database/visitor/SQLVisitorRule.java | 2 + .../statement/ddl/AlterDiskgroupStatement.java | 26 ++ .../oracle/ddl/OracleAlterDiskgroupStatement.java | 29 +++ .../jaxb/cases/domain/SQLParserTestCases.java | 5 + .../ddl/AlterDiskgroupStatementTestCase.java | 26 ++ .../main/resources/case/ddl/alter-diskgroup.xml | 34 +++ .../sql/supported/ddl/alter-audit-policy.xml | 2 +- .../sql/supported/ddl/alter-diskgroup.xml | 34 +++ 13 files changed, 568 insertions(+), 15 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 fc93266f900..1cb8a719e6c 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 @@ -224,9 +224,6 @@ parameterValue : literals | identifier ; -directoryName - : identifier - ; dispatcherName : stringLiterals @@ -620,13 +617,105 @@ fileName ; asmFileName - : STRING_ + : fullyQualifiedFileName + | numericFileName + | incompleteFileName + | aliasFileName + ; + +fullyQualifiedFileName + : PLUS_ diskgroupName SLASH_ dbName SLASH_ fileType SLASH_ fileTypeTag DOT_ fileNumber DOT_ incarnationNumber + ; + +dbName + : identifier + ; + +fileType + : CONTROLFILE + | DATAFILE + | ONLINELOG + | ARCHIVELOG + | TEMPFILE + | BACKUPSET + | PARAMETERFILE + | DATAGUARDCONFIG + | FLASHBACK + | CHANGETRACKING + | DUMPSET + | XTRANSPORT + | AUTOBACKUP + ; + +fileTypeTag + : currentBackup + | tablespaceName + | groupGroup POUND_ + | threadThread POUND_ UL_ seqSequence POUND_ + | hasspfileTimestamp + | serverParameterFile + | dbName + | logLog POUND_ + | changeTrackingFile + | userObj POUND_ UL_ fileName POUND_ + ; + +currentBackup + : identifier + ; + +groupGroup + : identifier + ; + +threadThread + : identifier + ; + +seqSequence + : identifier + ; + +hasspfileTimestamp + : timestampValue + ; + +serverParameterFile + : identifier + ; + +logLog + : identifier + ; + +changeTrackingFile + : identifier + ; + +userObj + : identifier + ; + +numericFileName + : PLUS_ diskgroupName DOT_ fileNumber DOT_ incarnationNumber + ; + +incompleteFileName + : PLUS_ diskgroupName (LP_ templateName RP_)? + ; + +aliasFileName + : PLUS_ diskgroupName (LP_ templateName RP_)? SLASH_ aliasName ; fileNumber : INTEGER_ ; +incarnationNumber + : INTEGER_ + ; + instanceName : STRING_ ; @@ -668,7 +757,7 @@ templateName ; aliasName - : identifier + : pathString ; domain @@ -1325,3 +1414,23 @@ parameterType returnType : identifier ; + +failgroupName + : identifier + ; + +asmVolumeName + : identifier + ; + +mountpathName + : identifier + ; + +usageName + : identifier + ; + +usergroupName + : STRING_ + ; diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 index 178d74d1f0d..5bd2cc465b5 100644 --- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 +++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 @@ -2420,16 +2420,9 @@ dropFlashbackArchive ; createDiskgroup - : CREATE DISKGROUP diskgroupName (redundancyClause REDUNDANCY)? diskClause+ attribute? + : CREATE DISKGROUP diskgroupName ((HIGH | NORMAL | FLEX | EXTENDED (SITE siteName)? | EXTERNAL) REDUNDANCY)? diskClause+ attribute? ; -redundancyClause - : HIGH - | NORMAL - | FLEX - | EXTENDED (SITE siteName)? - | EXTERNAL - ; diskClause : (QUORUM | REGULAR)? (FAILGROUP diskgroupName)? DISK qualifieDiskClause (COMMA_ qualifieDiskClause)* @@ -2552,7 +2545,7 @@ resolveClause alterAuditPolicy : ALTER AUDIT POLICY policyName ((ADD | DROP) subAuditClause)? - (CONDITION (DROP | condition EVALUATE PER (STATEMENT | SESSION | INSTANCE)))? + (CONDITION (DROP | SQ_ condition SQ_ EVALUATE PER (STATEMENT | SESSION | INSTANCE)))? ; subAuditClause @@ -2781,3 +2774,258 @@ usingFunctionClause dropBindingClause : DROP BINDING LP_ parameterType (COMMA_ parameterType)* RP_ FORCE? ; + +alterDiskgroup + : ALTER DISKGROUP ((diskgroupName ((((addDiskClause | dropDiskClause) (COMMA_ (addDiskClause | dropDiskClause))* | resizeDiskClause) (rebalanceDiskgroupClause)?) + | replaceDiskClause + | renameDiskClause + | diskOnlineClause + | diskOfflineClause + | rebalanceDiskgroupClause + | checkDiskgroupClause + | diskgroupTemplateClauses + | diskgroupDirectoryClauses + | diskgroupAliasClauses + | diskgroupVolumeClauses + | diskgroupAttributes + | modifyDiskgroupFile + | dropDiskgroupFileClause + | convertRedundancyClause + | usergroupClauses + | userClauses + | filePermissionsClause + | fileOwnerClause + | scrubClause + | quotagroupClauses + | filegroupClauses)) + | (((diskgroupName (COMMA_ diskgroupName)*) | ALL) (undropDiskClause | diskgroupAvailability | enableDisableVolume))) + ; + +addDiskClause + : ADD ((SITE siteName)? (QUORUM | REGULAR)? (FAILGROUP failgroupName)? DISK qualifiedDiskClause (COMMA_ qualifiedDiskClause)*)+ + ; + +qualifiedDiskClause + : searchString (NAME diskName)? (SIZE sizeClause)? (FORCE | NOFORCE)? + ; + +dropDiskClause + : DROP ((QUORUM | REGULAR)? DISK diskName (FORCE | NOFORCE)? (COMMA diskName (FORCE | NOFORCE)?)* + | DISKS IN (QUORUM | REGULAR)? FAILGROUP failgroupName (FORCE | NOFORCE)? (COMMA_ failgroupName (FORCE | NOFORCE)?)*) + ; + +resizeDiskClause + : RESIZE ALL (SIZE sizeClause)? + ; + +rebalanceDiskgroupClause + : REBALANCE ((((WITH withPhases) | (WITHOUT withoutPhases))? (POWER INTEGER_)? (WAIT | NOWAIT)?) + | (MODIFY POWER (INTEGER_)?))? + ; + +withPhases + : withPhase (COMMA_ withPhase)* + ; + +withPhase + : RESTORE | BALANCE | PREPARE | COMPACT + ; + +withoutPhases + : withoutPhase (COMMA_ withoutPhase)* + ; + +withoutPhase + : BALANCE | PREPARE | COMPACT + ; + +replaceDiskClause + : REPLACE DISK diskName WITH pathString (FORCE | NOFORCE)? + (COMMA_ diskName WITH pathString (FORCE | NOFORCE)?)* + (POWER INTEGER_)? (WAIT | NOWAIT)? + ; + +renameDiskClause + : RENAME (DISK diskName TO diskName (COMMA_ diskName TO diskName)* | DISKS ALL) + ; + +diskOnlineClause + : ONLINE (((QUORUM | REGULAR)? DISK diskName (COMMA_ diskName)* + | DISKS IN (QUORUM | REGULAR)? FAILGROUP failgroupName (COMMA_ failgroupName)*)+ + | ALL) (POWER INTEGER_)? (WAIT | NOWAIT)? + ; + +diskOfflineClause + : OFFLINE ((QUORUM | REGULAR)? DISK diskName (COMMA_ diskName)* + | DISKS IN (QUORUM | REGULAR)? FAILGROUP failgroupName (COMMA_ failgroupName)*)+ (timeoutClause)? + ; + +timeoutClause + : DROP AFTER INTEGER_ (M | H) + ; + +checkDiskgroupClause + : CHECK (REPAIR | NOREPAIR)? + ; + +diskgroupTemplateClauses + : (((ADD | MODIFY) TEMPLATE templateName qualifiedTemplateClause (COMMA_ templateName qualifiedTemplateClause)*) + | (DROP TEMPLATE templateName (COMMA_ templateName)*)) + ; + +qualifiedTemplateClause + : ATTRIBUTE LP_ redundancyClause stripingClause diskRegionClause RP_ + ; + +redundancyClause + : (MIRROR | HIGH | UNPROTECTED | PARITY)? + ; + +stripingClause + : (FINE | COARSE)? + ; + +diskRegionClause + : (HOT | COLD)? (MIRRORHOT | MIRRORCOLD)? + ; + +diskgroupDirectoryClauses + : (ADD DIRECTORY fileName (COMMA_ fileName)* + | DROP DIRECTORY fileName (FORCE | NOFORCE)? (COMMA_ fileName (FORCE | NOFORCE)?)* + | RENAME DIRECTORY directoryName TO directoryName (COMMA_ directoryName TO directoryName)*) + ; + +diskgroupAliasClauses + : ((ADD ALIAS aliasName FOR fileName (COMMA_ aliasName FOR fileName)*) + | (DROP ALIAS aliasName (COMMA_ aliasName)*) + | (RENAME ALIAS aliasName TO aliasName (COMMA_ aliasName TO aliasName)*)) + ; + +diskgroupVolumeClauses + : (addVolumeClause + | modifyVolumeClause + | RESIZE VOLUME asmVolumeName SIZE sizeClause + | DROP VOLUME asmVolumeName) + ; + +addVolumeClause + : ADD VOLUME asmVolumeName SIZE sizeClause (redundancyClause)? (STRIPE_WIDTH INTEGER_ (K | M))? (STRIPE_COLUMNS INTEGER_)? (ATTRIBUTE (diskRegionClause))? + ; + +modifyVolumeClause + : MODIFY VOLUME asmVolumeName (ATTRIBUTE (diskRegionClause))? (MOUNTPATH mountpathName)? (USAGE usageName)? + ; + +diskgroupAttributes + : SET ATTRIBUTE attributeNameAndValue + ; + +modifyDiskgroupFile + : MODIFY FILE fileName ATTRIBUTE LP_ diskRegionClause RP_ (COMMA_ fileName ATTRIBUTE ( diskRegionClause ))* + ; + +dropDiskgroupFileClause + : DROP FILE fileName (COMMA_ fileName)* + ; + +convertRedundancyClause + : CONVERT REDUNDANCY TO FLEX + ; + +usergroupClauses + : (ADD USERGROUP SQ_ usergroupName SQ_ WITH MEMBER SQ_ username SQ_ (COMMA_ SQ_ username SQ_)* + | MODIFY USERGROUP SQ_ usergroupName SQ_ (ADD | DROP) MEMBER SQ_ username SQ_ (COMMA_ SQ_ username SQ_)* + | DROP USERGROUP SQ_ usergroupName SQ_) + ; + +userClauses + : (ADD USER SQ_ username SQ_ (COMMA_ SQ_ username SQ_)* + | DROP USER SQ_ username SQ_ (COMMA_ SQ_ username SQ_)* (CASCADE)? + | REPLACE USER SQ_ username SQ_ WITH SQ_ username SQ_ (COMMA_ SQ_ username SQ_ WITH SQ_ username SQ_)*) + ; + +filePermissionsClause + : SET PERMISSION (OWNER | GROUP | OTHER) EQ_ (NONE | READ ONLY | READ WRITE) (COMMA_ (OWNER | GROUP | OTHER | ALL) + EQ_ (NONE | READ ONLY | READ WRITE))* FOR FILE fileName (COMMA_ fileName)* + ; + +fileOwnerClause + : SET OWNERSHIP (setOwnerClause (COMMA_ setOwnerClause)*) FOR FILE fileName (COMMA_ fileName)* + ; + +setOwnerClause + :OWNER EQ_ SQ_ username SQ_ | GROUP EQ_ SQ_ usergroupName SQ_ + ; + +scrubClause + : SCRUB (FILE asmFileName | DISK diskName)? (REPAIR | NOREPAIR)? + (POWER (AUTO | LOW | HIGH | MAX))? (WAIT | NOWAIT)? (FORCE | NOFORCE)? (STOP)? + ; + +quotagroupClauses + : (ADD QUOTAGROUP quotagroupName (setPropertyClause)? + | MODIFY QUOTAGROUP quotagroupName setPropertyClause + | MOVE FILEGROUP filegroupName TO quotagroupName + | DROP QUOTAGROUP quotagroupName) + ; + +setPropertyClause + : SET propertyName EQ_ propertyValue + ; + +quotagroupName + : identifier + ; + +propertyName + : QUOTA + ; + +propertyValue + : sizeClause | UNLIMITED + ; + +filegroupName + : identifier + ; + +filegroupClauses + : (addFilegroupClause + | modifyFilegroupClause + | moveToFilegroupClause + | dropFilegroupClause) + ; + +addFilegroupClause + : ADD FILEGROUP filegroupName (DATABASE databaseName + | CLUSTER clusterName + | VOLUME asmVolumeName) (setFileTypePropertyclause)? + ; + +setFileTypePropertyclause + :SET SQ_ (fileType DOT_)? propertyName SQ_ EQ_ SQ_ propertyValue SQ_ + ; + +modifyFilegroupClause + : MODIFY FILEGROUP filegroupName setFileTypePropertyclause + ; + +moveToFilegroupClause + : MOVE FILE asmFileName TO FILEGROUP filegroupName + ; + +dropFilegroupClause + : DROP FILEGROUP filegroupName (CASCADE)? + ; + +undropDiskClause + : UNDROP DISKS + ; + +diskgroupAvailability + : ((MOUNT (RESTRICTED | NORMAL)? (FORCE | NOFORCE)?) | (DISMOUNT (FORCE | NOFORCE)?)) + ; + +enableDisableVolume + : (ENABLE | DISABLE) VOLUME (asmVolumeName (COMMA_ asmVolumeName)* | ALL) + ; 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 970231b175a..eb85a0c3b2c 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 @@ -2874,3 +2874,35 @@ SCAN COMPUTE : C O M P U T E ; + +UNDROP + : U N D R O P + ; + +DISKS + : D I S K S + ; + +COARSE + : C O A R S E + ; + +FINE + : F I N E + ; + +ALIAS + : A L I A S + ; + +SCRUB + : S C R U B + ; + +DISMOUNT + : D I S M O U N T + ; + +REBALANCE + : R E B A L A N C E + ; 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 10c8fbcf8c6..481f4879790 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 @@ -114,5 +114,6 @@ execute | alterAuditPolicy | alterCluster | alterOperator + | alterDiskgroup ) 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/OracleDDLStatementSQLVisitor.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/OracleDDLStatementSQLVisitor.java index bc3eb6d75d6..d8b9abcecea 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/OracleDDLStatementSQLVisitor.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/OracleDDLStatementSQLVisitor.java @@ -32,6 +32,7 @@ import org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.AlterD import org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.AlterDatabaseLinkContext; import org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.AlterDefinitionClauseContext; import org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.AlterDimensionContext; +import org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.AlterDiskgroupContext; import org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.AlterFlashbackArchiveContext; import org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.AlterIndexContext; import org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.AlterInmemoryJoinGroupContext; @@ -148,6 +149,7 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.Ora import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleAlterDatabaseLinkStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleAlterDatabaseStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleAlterDimensionStatement; +import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleAlterDiskgroupStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleAlterFlashbackArchiveStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleAlterIndexStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleAlterInmemoryJoinGroupStatement; @@ -920,4 +922,9 @@ public final class OracleDDLStatementSQLVisitor extends OracleStatementSQLVisito public ASTNode visitAlterCluster(final AlterClusterContext ctx) { return new OracleAlterClusterStatement(); } + + @Override + public ASTNode visitAlterDiskgroup(final AlterDiskgroupContext ctx) { + return new OracleAlterDiskgroupStatement(); + } } 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 4cabd5173f0..9ca49dc701a 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 @@ -588,6 +588,8 @@ public enum SQLVisitorRule { ALTER_CLUSTER("AlterCluster", SQLStatementType.DDL), + ALTER_DISKGROUP("AlterDiskgroup", SQLStatementType.DDL), + CURSOR("Cursor", SQLStatementType.DDL), CLOSE("Close", SQLStatementType.DDL), diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/ddl/AlterDiskgroupStatement.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/ddl/AlterDiskgroupStatement.java new file mode 100644 index 00000000000..001adfa4f13 --- /dev/null +++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/ddl/AlterDiskgroupStatement.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shardingsphere.sql.parser.sql.common.statement.ddl; + +import org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement; + +/** + * Alter diskgroup statement. + */ +public abstract class AlterDiskgroupStatement extends AbstractSQLStatement implements DDLStatement { +} diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAlterDiskgroupStatement.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAlterDiskgroupStatement.java new file mode 100644 index 00000000000..b7bac0f1525 --- /dev/null +++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAlterDiskgroupStatement.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl; + +import lombok.ToString; +import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterDiskgroupStatement; +import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.OracleStatement; + +/** + * Oracle alter diskgroup statement. + */ +@ToString +public final class OracleAlterDiskgroupStatement extends AlterDiskgroupStatement implements OracleStatement { +} diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java index db7e6ed9526..f934d6da3c3 100644 --- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java +++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java @@ -104,6 +104,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.AlterDefaultPrivilegesTestCase; import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.AlterDimensionStatementTestCase; import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.AlterDirectoryStatementTestCase; +import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.AlterDiskgroupStatementTestCase; import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.AlterDomainStatementTestCase; import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.AlterExtensionStatementTestCase; import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.AlterFlashbackArchiveStatementTestCase; @@ -1339,6 +1340,9 @@ public final class SQLParserTestCases { @XmlElement(name = "alter-cluster") private final List<AlterClusterStatementTestCase> alterClusterTestCases = new LinkedList<>(); + @XmlElement(name = "alter-diskgroup") + private final List<AlterDiskgroupStatementTestCase> alterDiskgroupTestCases = new LinkedList<>(); + @XmlElement(name = "alter-operator") private final List<AlterOperatorStatementTestCase> alterOperatorTestCases = new LinkedList<>(); @@ -1876,6 +1880,7 @@ public final class SQLParserTestCases { putAll(alterJavaTestCases, result); putAll(alterAuditPolicyTestCases, result); putAll(alterClusterTestCases, result); + putAll(alterDiskgroupTestCases, result); putAll(alterOperatorTestCases, result); putAll(createTextSearchTestCases, result); putAll(alterTextSearchTestCases, result); diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/AlterDiskgroupStatementTestCase.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/AlterDiskgroupStatementTestCase.java new file mode 100644 index 00000000000..b5c3add3506 --- /dev/null +++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/AlterDiskgroupStatementTestCase.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl; + +import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase; + +/** + * Alter diskgroup statement test case. + */ +public final class AlterDiskgroupStatementTestCase extends SQLParserTestCase { +} diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-diskgroup.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-diskgroup.xml new file mode 100644 index 00000000000..9a81317db1c --- /dev/null +++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-diskgroup.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one or more + ~ contributor license agreements. See the NOTICE file distributed with + ~ this work for additional information regarding copyright ownership. + ~ The ASF licenses this file to You under the Apache License, Version 2.0 + ~ (the "License"); you may not use this file except in compliance with + ~ the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> + +<sql-parser-test-cases> + <alter-diskgroup sql-case-id="alter_diskgroup_add_disk" /> + <alter-diskgroup sql-case-id="alter_diskgroup_drop_disk" /> + <alter-diskgroup sql-case-id="alter_diskgroup_undrop_disk" /> + <alter-diskgroup sql-case-id="alter_diskgroup_resize" /> + <alter-diskgroup sql-case-id="alter_diskgroup_rebalance" /> + <alter-diskgroup sql-case-id="alter_diskgroup_verify" /> + <alter-diskgroup sql-case-id="alter_diskgroup_add_template" /> + <alter-diskgroup sql-case-id="alter_diskgroup_change_template" /> + <alter-diskgroup sql-case-id="alter_diskgroup_drop_template" /> + <alter-diskgroup sql-case-id="alter_diskgroup_create_directory" /> + <alter-diskgroup sql-case-id="alter_diskgroup_create_alias" /> + <alter-diskgroup sql-case-id="alter_diskgroup_scrub" /> + <alter-diskgroup sql-case-id="alter_diskgroup_dismount" /> + <alter-diskgroup sql-case-id="alter_diskgroup_mount" /> +</sql-parser-test-cases> diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-audit-policy.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-audit-policy.xml index 88e472119bb..c12f056144d 100644 --- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-audit-policy.xml +++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-audit-policy.xml @@ -19,5 +19,5 @@ <sql-cases> <sql-case id="alter_audit_policy_add" value="ALTER AUDIT POLICY dml_pol ADD PRIVILEGES CREATE ANY TABLE, DROP ANY TABLE;" db-types="Oracle" /> <sql-case id="alter_audit_policy_drop" value="ALTER AUDIT POLICY table_pol DROP PRIVILEGES CREATE ANY TABLE;" db-types="Oracle" /> - <sql-case id="alter_audit_policy_modify" value="ALTER AUDIT POLICY emp_updates_pol CONDITION UID = 102 EVALUATE PER STATEMENT;" db-types="Oracle" /> + <sql-case id="alter_audit_policy_modify" value="ALTER AUDIT POLICY emp_updates_pol CONDITION 'UID = 102' EVALUATE PER STATEMENT;" db-types="Oracle" /> </sql-cases> diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-diskgroup.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-diskgroup.xml new file mode 100644 index 00000000000..349185dc49e --- /dev/null +++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-diskgroup.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one or more + ~ contributor license agreements. See the NOTICE file distributed with + ~ this work for additional information regarding copyright ownership. + ~ The ASF licenses this file to You under the Apache License, Version 2.0 + ~ (the "License"); you may not use this file except in compliance with + ~ the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> + +<sql-cases> + <sql-case id="alter_diskgroup_add_disk" value="ALTER DISKGROUP dgroup_01 ADD DISK '/devices/disks/d100';" db-types="Oracle" /> + <sql-case id="alter_diskgroup_drop_disk" value="ALTER DISKGROUP dgroup_01 DROP DISK dgroup_01_0000;" db-types="Oracle" /> + <sql-case id="alter_diskgroup_undrop_disk" value="ALTER DISKGROUP dgroup_01 UNDROP DISKS;" db-types="Oracle" /> + <sql-case id="alter_diskgroup_resize" value="ALTER DISKGROUP dgroup_01 RESIZE ALL SIZE 36G;" db-types="Oracle" /> + <sql-case id="alter_diskgroup_rebalance" value="ALTER DISKGROUP dgroup_01 REBALANCE POWER 11 WAIT;" db-types="Oracle" /> + <sql-case id="alter_diskgroup_verify" value="ALTER DISKGROUP dgroup_01 CHECK ALL REPAIR;" db-types="Oracle" /> + <sql-case id="alter_diskgroup_add_template" value="ALTER DISKGROUP dgroup_01 ADD TEMPLATE template_01 ATTRIBUTE (UNPROTECTED COARSE);" db-types="Oracle" /> + <sql-case id="alter_diskgroup_change_template" value="ALTER DISKGROUP dgroup_01 MODIFY TEMPLATE template_01 ATTRIBUTE (FINE);" db-types="Oracle" /> + <sql-case id="alter_diskgroup_drop_template" value="ALTER DISKGROUP dgroup_01 DROP TEMPLATE template_01;" db-types="Oracle" /> + <sql-case id="alter_diskgroup_create_directory" value="ALTER DISKGROUP dgroup_01 ADD DIRECTORY '+dgroup_01/alias_dir';" db-types="Oracle" /> + <sql-case id="alter_diskgroup_create_alias" value="ALTER DISKGROUP dgroup_01 ADD ALIAS '+dgroup_01/alias_dir/datafile.dbf' FOR '+dgroup_01.261.1';" db-types="Oracle" /> + <sql-case id="alter_diskgroup_scrub" value="ALTER DISKGROUP dgroup_01 SCRUB REPAIR WAIT;" db-types="Oracle" /> + <sql-case id="alter_diskgroup_dismount" value="ALTER DISKGROUP dgroup_01 DISMOUNT FORCE;" db-types="Oracle" /> + <sql-case id="alter_diskgroup_mount" value="ALTER DISKGROUP dgroup_01 MOUNT;" db-types="Oracle" /> +</sql-cases>