ThanoshanMV commented on a change in pull request #10117:
URL: https://github.com/apache/shardingsphere/pull/10117#discussion_r616339372
##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -998,3 +998,91 @@ supplementalLogGrpClause
supplementalIdKeyClause
: DATA LP_ (ALL | PRIMARY KEY | UNIQUE | FOREIGN KEY) (COMMA (ALL |
PRIMARY KEY | UNIQUE | FOREIGN KEY))* RP_ COLUMNS
;
+
+alterSession
+ : ALTER SESSION alterSessionOption
+ ;
+
+alterSessionOption
+ : adviseClause
+ | closeDatabaseLinkClause
+ | commitInProcedureClause
+ | securiyClause
+ | parallelExecutionClause
+ | resumableClause
+ | shardDdlClause
+ | SYNC WITH PRIMARY
+ | alterSessionSetClause
+ ;
+
+adviseClause
+ : ADVISE (COMMIT | ROLLBACK | NOTHING)
+ ;
+
+closeDatabaseLinkClause
+ : CLOSE DATABASE LINK dbLink
+ ;
+
+commitInProcedureClause
+ : (ENABLE | DISABLE) COMMIT IN PROCEDURE
+ ;
+
+securiyClause
+ : (ENABLE | DISABLE) GUARD
+ ;
+
+parallelExecutionClause
+ : (ENABLE | DISABLE | FORCE) PARALLEL (DML | DDL | QUERY) (PARALLEL
numberLiterals)?
+ ;
+
+resumableClause
+ : enableResumableClause | disableResumableClause
+ ;
+
+enableResumableClause
+ : ENABLE RESUMABLE (TIMEOUT numberLiterals)? (NAME stringLiterals)?
+ ;
+
+disableResumableClause
+ : DISABLE RESUMABLE
+ ;
+
+shardDdlClause
+ : (ENABLE | DISABLE) SHARD DDL
+ ;
+
+alterSessionSetClause
+ : SET alterSessionSetClauseOption
+ ;
+
+alterSessionSetClauseOption
+ : parameterClause
+ | editionClause
+ | containerClause
+ | rowArchivalVisibilityClause
+ | defaultCollationClause
+ ;
+
+parameterClause
+ : (parameterName EQ_ parameterValue)+
+ ;
+
+parameterValue
Review comment:
Okay @wgy8283335, I'll put `parameterValue` in BaseRule.g4.
Based on [ALTER SESSION
documentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ALTER-SESSION.html#GUID-27186B28-7EFC-4998-B1ED-2B905CC0211B),
we can set two types of parameters:
[initialization](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ALTER-SESSION.html#GUID-8DBA8659-413E-49B4-98D3-D9608C9C8026)
and [session
parameters](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ALTER-SESSION.html#GUID-DC7B8CDD-4F89-40CC-875F-F70F673711D4).
[Basic initialization
parameters](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/basic-initialization-parameters.html#GUID-D75F1A77-47E2-4F35-B145-44B3A10ED85C)
such as
[CLUSTER_DATABASE](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/CLUSTER_DATABASE.html#GUID-DA4B6C11-FFEA-46BE-82D7-13C1DBD36277)'s
parameter value is boolean,
[DB_BLOCK_SIZE](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/DB_BLOCK_SIZE.html#GUID-6DD6D804-D03D-4C57-A764-826EE0F3836B)'s
parameter value is an integer.
[Session
parameters](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ALTER-SESSION.html#GUID-DC7B8CDD-4F89-40CC-875F-F70F673711D4)
such as `INSTANCE`'s parameter value is an integer, `CURRENT_SCHEMA` is an
identifier, `TIME_ZONE` is having a string literal as the parameter value.
To include all of this, I specified the `parameterValue` as `literals |
identifier`. I just checked for which values they can contain. Please correct
me if I'm wrong.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]