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 0fe03c16c0e Move CheckpointStatement to tcl package and visitor logic
to tcl visitor, remove LockTableStatement (#31758)
0fe03c16c0e is described below
commit 0fe03c16c0ed86219918c76fc262e7948cdb5c18
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Wed Jun 19 16:04:23 2024 +0800
Move CheckpointStatement to tcl package and visitor logic to tcl visitor,
remove LockTableStatement (#31758)
* Move CheckpointStatement to tcl package and visitor logic to tcl visitor,
remove LockTableStatement
* fix sql parser exception
* fix checkstyle
---
.../main/antlr4/imports/opengauss/DMLStatement.g4 | 19 ----------------
.../main/antlr4/imports/opengauss/TCLStatement.g4 | 18 +++++++++++++++
.../type/OpenGaussDMLStatementVisitor.java | 7 ------
.../type/OpenGaussTCLStatementVisitor.java | 7 ++++++
.../src/main/antlr4/imports/oracle/DMLStatement.g4 | 2 +-
.../oracle/src/main/antlr4/imports/oracle/PLSQL.g4 | 2 +-
.../sql/parser/autogen/OracleStatement.g4 | 2 +-
.../statement/type/OracleDDLStatementVisitor.java | 10 ++++-----
.../statement/type/OracleDMLStatementVisitor.java | 8 -------
.../statement/type/OracleTCLStatementVisitor.java | 7 ++++++
.../main/antlr4/imports/postgresql/DMLStatement.g4 | 4 ----
.../main/antlr4/imports/postgresql/TCLStatement.g4 | 4 ++++
.../type/PostgreSQLDMLStatementVisitor.java | 7 ------
.../type/PostgreSQLTCLStatementVisitor.java | 7 ++++++
.../core/database/visitor/SQLVisitorRule.java | 6 ++---
.../common/statement/dml/LockTableStatement.java | 26 ----------------------
.../{dml => tcl}/CheckpointStatement.java | 4 ++--
.../{dml => tcl}/OpenGaussCheckpointStatement.java | 4 ++--
...ableStatement.java => OracleLockStatement.java} | 6 ++---
.../dml/PostgreSQLCheckpointStatement.java | 2 +-
.../cases/parser/jaxb/RootSQLParserTestCases.java | 6 +----
.../statement/dml/LockTableStatementTestCase.java | 26 ----------------------
.../src/main/resources/case/dml/lock-table.xml | 4 ++--
23 files changed, 64 insertions(+), 124 deletions(-)
diff --git
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DMLStatement.g4
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DMLStatement.g4
index faa94011fac..a25a0658b4a 100644
---
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DMLStatement.g4
+++
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DMLStatement.g4
@@ -435,25 +435,6 @@ dostmtOptItem
: STRING_ | LANGUAGE nonReservedWordOrSconst
;
-lock
- : LOCK TABLE? relationExprList (IN lockType MODE)? NOWAIT?
- ;
-
-lockType
- : ACCESS SHARE
- | ROW SHARE
- | ROW EXCLUSIVE
- | SHARE UPDATE EXCLUSIVE
- | SHARE
- | SHARE ROW EXCLUSIVE
- | EXCLUSIVE
- | ACCESS EXCLUSIVE
- ;
-
-checkpoint
- : CHECKPOINT
- ;
-
copy
: COPY (BINARY)? qualifiedName (LP_ columnList RP_)? (FROM | TO) PROGRAM?
(STRING_ | STDIN | STDOUT) copyDelimiter? (WITH)? copyOptions
whereClause?
diff --git
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/TCLStatement.g4
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/TCLStatement.g4
index 9c95cb3baaa..74ac207f359 100644
---
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/TCLStatement.g4
+++
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/TCLStatement.g4
@@ -84,3 +84,21 @@ constraintsSetList
: ALL | qualifiedNameList
;
+checkpoint
+ : CHECKPOINT
+ ;
+
+lock
+ : LOCK TABLE? relationExprList (IN lockType MODE)? NOWAIT?
+ ;
+
+lockType
+ : ACCESS SHARE
+ | ROW SHARE
+ | ROW EXCLUSIVE
+ | SHARE UPDATE EXCLUSIVE
+ | SHARE
+ | SHARE ROW EXCLUSIVE
+ | EXCLUSIVE
+ | ACCESS EXCLUSIVE
+ ;
diff --git
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDMLStatementVisitor.java
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDMLStatementVisitor.java
index 133227cc5a6..f4532f21a56 100644
---
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDMLStatementVisitor.java
+++
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDMLStatementVisitor.java
@@ -20,7 +20,6 @@ package
org.apache.shardingsphere.sql.parser.opengauss.visitor.statement.type;
import org.apache.shardingsphere.sql.parser.api.ASTNode;
import
org.apache.shardingsphere.sql.parser.api.visitor.statement.type.DMLStatementVisitor;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.CallContext;
-import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.CheckpointContext;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.CopyContext;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.DoStatementContext;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.ReturningClauseContext;
@@ -29,7 +28,6 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.ReturningSegm
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussCallStatement;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussCheckpointStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussCopyStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussDoStatement;
@@ -57,11 +55,6 @@ public final class OpenGaussDMLStatementVisitor extends
OpenGaussStatementVisito
return result;
}
- @Override
- public ASTNode visitCheckpoint(final CheckpointContext ctx) {
- return new OpenGaussCheckpointStatement();
- }
-
@Override
public ASTNode visitReturningClause(final ReturningClauseContext ctx) {
return new ReturningSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(), (ProjectionsSegment) visit(ctx.targetList()));
diff --git
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussTCLStatementVisitor.java
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussTCLStatementVisitor.java
index c8a2e4a3eb7..c7c4d7515b9 100644
---
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussTCLStatementVisitor.java
+++
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussTCLStatementVisitor.java
@@ -21,6 +21,7 @@ import org.apache.shardingsphere.sql.parser.api.ASTNode;
import
org.apache.shardingsphere.sql.parser.api.visitor.statement.type.TCLStatementVisitor;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.AbortContext;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.BeginTransactionContext;
+import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.CheckpointContext;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.CommitContext;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.CommitPreparedContext;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.EndContext;
@@ -34,6 +35,7 @@ import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.Set
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.StartTransactionContext;
import
org.apache.shardingsphere.sql.parser.opengauss.visitor.statement.OpenGaussStatementVisitor;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.tcl.OpenGaussBeginTransactionStatement;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.tcl.OpenGaussCheckpointStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.tcl.OpenGaussCommitPreparedStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.tcl.OpenGaussCommitStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.tcl.OpenGaussReleaseSavepointStatement;
@@ -121,4 +123,9 @@ public final class OpenGaussTCLStatementVisitor extends
OpenGaussStatementVisito
public ASTNode visitRollbackPrepared(final RollbackPreparedContext ctx) {
return new OpenGaussRollbackPreparedStatement();
}
+
+ @Override
+ public ASTNode visitCheckpoint(final CheckpointContext ctx) {
+ return new OpenGaussCheckpointStatement();
+ }
}
diff --git
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DMLStatement.g4
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DMLStatement.g4
index 486c9aefd51..5a50d703001 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DMLStatement.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DMLStatement.g4
@@ -882,7 +882,7 @@ rowPatternAggregateFunc
: (RUNNING | FINAL)? aggregationFunction
;
-lockTable
+lock
: LOCK TABLE (tableName | viewName) (partitionExtensionClause | AT_
dbLink)? (COMMA_ (tableName | viewName) (partitionExtensionClause | AT_
dbLink)? )* IN lockmodeClause MODE ( NOWAIT | WAIT INTEGER_)?
;
diff --git a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/PLSQL.g4
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/PLSQL.g4
index 23ead1aba08..a04651cc7a1 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/PLSQL.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/PLSQL.g4
@@ -401,7 +401,7 @@ sqlStatementInPlsql
// TODO collection_method_call
| delete
| insert
- | lockTable
+ | lock
| merge
| rollback
| savepoint
diff --git
a/parser/sql/dialect/oracle/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OracleStatement.g4
b/parser/sql/dialect/oracle/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OracleStatement.g4
index bfb53379716..cc29a52f03e 100644
---
a/parser/sql/dialect/oracle/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OracleStatement.g4
+++
b/parser/sql/dialect/oracle/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OracleStatement.g4
@@ -29,7 +29,7 @@ execute
| alterTable
| dropTable
| truncateTable
- | lockTable
+ | lock
| createIndex
| dropIndex
| alterIndex
diff --git
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
index 34951f47fee..0552fcdc7c5 100644
---
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
+++
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
@@ -117,6 +117,7 @@ import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.DropCo
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.DropColumnSpecificationContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.DropConstraintClauseContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.DropContextContext;
+import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.DropDatabaseContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.DropDatabaseLinkContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.DropDimensionContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.DropDirectoryContext;
@@ -194,7 +195,6 @@ import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.Trunca
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.TypeNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.VariableNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.VarrayTypeSpecContext;
-import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.DropDatabaseContext;
import
org.apache.shardingsphere.sql.parser.oracle.visitor.statement.OracleStatementVisitor;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dal.VariableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.AlterDefinitionSegment;
@@ -308,6 +308,7 @@ import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.Ora
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDropClusterStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDropContextStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDropDatabaseLinkStatement;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDropDatabaseStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDropDimensionStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDropDirectoryStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDropDiskgroupStatement;
@@ -347,7 +348,6 @@ import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.Ora
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleSwitchStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleSystemActionStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleTruncateStatement;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDropDatabaseStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleSelectStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.plsql.CursorForLoopStatementSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.plsql.ProcedureBodyEndNameSegment;
@@ -1547,10 +1547,10 @@ public final class OracleDDLStatementVisitor extends
OracleStatementVisitor impl
getSqlStatementsInPlsql().add(new
SQLStatementSegment(ctx.insert().start.getStartIndex(),
ctx.insert().stop.getStopIndex(), result));
addToTempCursorForLoopStatements(result);
}
- if (null != ctx.lockTable()) {
+ if (null != ctx.lock()) {
OracleStatementVisitor visitor = createOracleDMLStatementVisitor();
- SQLStatement result = (SQLStatement)
visitor.visitLockTable(ctx.lockTable());
- getSqlStatementsInPlsql().add(new
SQLStatementSegment(ctx.lockTable().start.getStartIndex(),
ctx.lockTable().stop.getStopIndex(), result));
+ SQLStatement result = (SQLStatement) visitor.visitLock(ctx.lock());
+ getSqlStatementsInPlsql().add(new
SQLStatementSegment(ctx.lock().start.getStartIndex(),
ctx.lock().stop.getStopIndex(), result));
addToTempCursorForLoopStatements(result);
}
if (null != ctx.merge()) {
diff --git
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
index e07117d1635..4bba4c1abaf 100644
---
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
+++
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
@@ -60,7 +60,6 @@ import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.Insert
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.InsertValuesClauseContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.IntoClauseContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.JoinClauseContext;
-import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.LockTableContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.MergeAssignmentContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.MergeAssignmentValueContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.MergeColumnValueContext;
@@ -185,7 +184,6 @@ import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlSe
import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlTableFunctionSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleDeleteStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleInsertStatement;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleLockTableStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleMergeStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleSelectStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleUpdateStatement;
@@ -1452,10 +1450,4 @@ public final class OracleDMLStatementVisitor extends
OracleStatementVisitor impl
ASTNode segment = visit(ctx.whereClause().expr());
return new WhereSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), (ExpressionSegment) segment);
}
-
- @Override
- public ASTNode visitLockTable(final LockTableContext ctx) {
- return new OracleLockTableStatement();
- }
-
}
diff --git
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleTCLStatementVisitor.java
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleTCLStatementVisitor.java
index 07028d99be6..d6a80728ec7 100644
---
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleTCLStatementVisitor.java
+++
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleTCLStatementVisitor.java
@@ -20,12 +20,14 @@ package
org.apache.shardingsphere.sql.parser.oracle.visitor.statement.type;
import org.apache.shardingsphere.sql.parser.api.ASTNode;
import
org.apache.shardingsphere.sql.parser.api.visitor.statement.type.TCLStatementVisitor;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.CommitContext;
+import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.LockContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.RollbackContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.SavepointContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.SetConstraintsContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.SetTransactionContext;
import
org.apache.shardingsphere.sql.parser.oracle.visitor.statement.OracleStatementVisitor;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleLockStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.tcl.OracleCommitStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.tcl.OracleRollbackStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.tcl.OracleSavepointStatement;
@@ -67,4 +69,9 @@ public final class OracleTCLStatementVisitor extends
OracleStatementVisitor impl
public ASTNode visitSetConstraints(final SetConstraintsContext ctx) {
return new OracleSetConstraintsStatement();
}
+
+ @Override
+ public ASTNode visitLock(final LockContext ctx) {
+ return new OracleLockStatement();
+ }
}
diff --git
a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DMLStatement.g4
b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DMLStatement.g4
index 78e9c8620d7..1a10b345948 100644
---
a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DMLStatement.g4
+++
b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DMLStatement.g4
@@ -447,10 +447,6 @@ dostmtOptItem
: STRING_ | LANGUAGE nonReservedWordOrSconst
;
-checkpoint
- : CHECKPOINT
- ;
-
copy
: copyWithTableOrQuery | copyWithTableOrQueryBinaryCsv |
copyWithTableBinary
;
diff --git
a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/TCLStatement.g4
b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/TCLStatement.g4
index 8dd368fde12..5b4fac840ab 100644
---
a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/TCLStatement.g4
+++
b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/TCLStatement.g4
@@ -102,3 +102,7 @@ lockType
prepareTransaction
: PREPARE TRANSACTION STRING_
;
+
+checkpoint
+ : CHECKPOINT
+ ;
diff --git
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDMLStatementVisitor.java
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDMLStatementVisitor.java
index 7fe7a9cdd91..6ac71339395 100644
---
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDMLStatementVisitor.java
+++
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDMLStatementVisitor.java
@@ -22,7 +22,6 @@ import org.apache.shardingsphere.sql.parser.api.ASTNode;
import
org.apache.shardingsphere.sql.parser.api.visitor.statement.type.DMLStatementVisitor;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.CallArgumentContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.CallContext;
-import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.CheckpointContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.CopyContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.CopyWithTableBinaryContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.CopyWithTableOrQueryBinaryCsvContext;
@@ -45,7 +44,6 @@ import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.UpdateState
import
org.apache.shardingsphere.sql.parser.sql.common.value.collection.CollectionValue;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLCallStatement;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLCheckpointStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLCopyStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLDoStatement;
@@ -149,11 +147,6 @@ public final class PostgreSQLDMLStatementVisitor extends
PostgreSQLStatementVisi
return result;
}
- @Override
- public ASTNode visitCheckpoint(final CheckpointContext ctx) {
- return new PostgreSQLCheckpointStatement();
- }
-
@Override
public ASTNode visitReturningClause(final ReturningClauseContext ctx) {
return new ReturningSegment(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(), (ProjectionsSegment) visit(ctx.targetList()));
diff --git
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLTCLStatementVisitor.java
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLTCLStatementVisitor.java
index 33a039b3750..c3fdcd4c166 100644
---
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLTCLStatementVisitor.java
+++
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLTCLStatementVisitor.java
@@ -21,6 +21,7 @@ import org.apache.shardingsphere.sql.parser.api.ASTNode;
import
org.apache.shardingsphere.sql.parser.api.visitor.statement.type.TCLStatementVisitor;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.AbortContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.BeginTransactionContext;
+import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.CheckpointContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.CommitContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.CommitPreparedContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.EndContext;
@@ -40,6 +41,7 @@ import
org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.Postgre
import
org.apache.shardingsphere.sql.parser.sql.common.enums.TransactionAccessType;
import
org.apache.shardingsphere.sql.parser.sql.common.enums.TransactionIsolationLevel;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLCheckpointStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLBeginTransactionStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLCommitPreparedStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLCommitStatement;
@@ -193,4 +195,9 @@ public final class PostgreSQLTCLStatementVisitor extends
PostgreSQLStatementVisi
public ASTNode visitPrepareTransaction(final PrepareTransactionContext
ctx) {
return new PostgreSQLPrepareTransactionStatement();
}
+
+ @Override
+ public ASTNode visitCheckpoint(final CheckpointContext ctx) {
+ return new PostgreSQLCheckpointStatement();
+ }
}
diff --git
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
index 387cfb86215..11f44b5bc09 100644
---
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
+++
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
@@ -47,8 +47,6 @@ public enum SQLVisitorRule {
HANDLER_STATEMENT("HandlerStatement", SQLStatementType.DML),
- LOCKTABLE("LockTable", SQLStatementType.DML),
-
CREATE_TABLE("CreateTable", SQLStatementType.DDL),
CREATE_AGGREGATE("CreateAggregate", SQLStatementType.DDL),
@@ -645,14 +643,14 @@ public enum SQLVisitorRule {
FETCH("Fetch", SQLStatementType.DDL),
- CHECKPOINT("Checkpoint", SQLStatementType.DML),
-
CLUSTER("Cluster", SQLStatementType.DDL),
CREATE_ACCESS_METHOD("CreateAccessMethod", SQLStatementType.DDL),
DO("DoStatement", SQLStatementType.DML),
+ CHECKPOINT("Checkpoint", SQLStatementType.TCL),
+
PREPARE_TRANSACTION("PrepareTransaction", SQLStatementType.TCL),
REASSIGN_OWNED("ReassignOwned", SQLStatementType.DCL),
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/dml/LockTableStatement.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/dml/LockTableStatement.java
deleted file mode 100644
index 801c554472a..00000000000
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/dml/LockTableStatement.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.dml;
-
-import
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
-
-/**
- * Lock table statement.
- */
-public abstract class LockTableStatement extends AbstractSQLStatement
implements DMLStatement {
-}
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/dml/CheckpointStatement.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/tcl/CheckpointStatement.java
similarity index 96%
rename from
parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/dml/CheckpointStatement.java
rename to
parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/tcl/CheckpointStatement.java
index 6d2974f676b..8cedfd4c9d1 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/dml/CheckpointStatement.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/tcl/CheckpointStatement.java
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.sql.common.statement.dml;
+package org.apache.shardingsphere.sql.parser.sql.common.statement.tcl;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
/**
* Checkpoint statement.
*/
-public abstract class CheckpointStatement extends AbstractSQLStatement
implements DMLStatement {
+public abstract class CheckpointStatement extends AbstractSQLStatement
implements TCLStatement {
}
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/opengauss/dml/OpenGaussCheckpointStatement.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/opengauss/tcl/OpenGaussCheckpointStatement.java
similarity index 96%
rename from
parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/opengauss/dml/OpenGaussCheckpointStatement.java
rename to
parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/opengauss/tcl/OpenGaussCheckpointStatement.java
index 5caccd88526..be631952f31 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/opengauss/dml/OpenGaussCheckpointStatement.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/opengauss/tcl/OpenGaussCheckpointStatement.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml;
+package
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.tcl;
-import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.CheckpointStatement;
+import
org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.CheckpointStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.OpenGaussStatement;
/**
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/dml/OracleLockTableStatement.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/dml/OracleLockStatement.java
similarity index 86%
rename from
parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/dml/OracleLockTableStatement.java
rename to
parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/dml/OracleLockStatement.java
index 589abb262e3..0f0118e2db6 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/dml/OracleLockTableStatement.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/dml/OracleLockStatement.java
@@ -17,11 +17,11 @@
package org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml;
-import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.LockTableStatement;
+import
org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.LockStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.OracleStatement;
/**
- * Oracle lock table statement.
+ * Oracle lock statement.
*/
-public final class OracleLockTableStatement extends LockTableStatement
implements OracleStatement {
+public final class OracleLockStatement extends LockStatement implements
OracleStatement {
}
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/postgresql/dml/PostgreSQLCheckpointStatement.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/postgresql/dml/PostgreSQLCheckpointStatement.java
index c37a17ce92b..b0bbf13c42d 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/postgresql/dml/PostgreSQLCheckpointStatement.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/postgresql/dml/PostgreSQLCheckpointStatement.java
@@ -17,7 +17,7 @@
package
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml;
-import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.CheckpointStatement;
+import
org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.CheckpointStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.PostgreSQLStatement;
/**
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
index 17a8bc58e00..9bc8951d03a 100644
---
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
@@ -73,10 +73,10 @@ import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.s
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.ShowTriggersStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.ShowVariablesStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.ShutdownStatementTestCase;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.SpoolStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.UninstallComponentStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.UninstallPluginStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.UseStatementTestCase;
-import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.SpoolStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dcl.AlterLoginStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dcl.AlterRoleStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dcl.AlterUserStatementTestCase;
@@ -304,7 +304,6 @@ import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.s
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dml.InsertStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dml.LoadDataStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dml.LoadXMLStatementTestCase;
-import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dml.LockTableStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dml.MergeStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dml.SelectStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dml.UpdateStatementTestCase;
@@ -504,9 +503,6 @@ public final class RootSQLParserTestCases {
@XmlElement(name = "drop-table")
private final List<DropTableStatementTestCase> dropTableTestCases = new
LinkedList<>();
- @XmlElement(name = "lock-table")
- private final List<LockTableStatementTestCase> lockTableTestCases = new
LinkedList<>();
-
@XmlElement(name = "drop-text-search")
private final List<DropTextSearchStatementTestCase>
dropTextSearchTestCases = new LinkedList<>();
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dml/LockTableStatementTestCase.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dml/LockTableStatementTestCase.java
deleted file mode 100644
index 0b130652e83..00000000000
---
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dml/LockTableStatementTestCase.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.it.sql.parser.internal.cases.parser.jaxb.statement.dml;
-
-import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
-
-/**
- * Lock table statement test case.
- */
-public final class LockTableStatementTestCase extends SQLParserTestCase {
-}
diff --git a/test/it/parser/src/main/resources/case/dml/lock-table.xml
b/test/it/parser/src/main/resources/case/dml/lock-table.xml
index 9f447f81841..069fdf222dc 100644
--- a/test/it/parser/src/main/resources/case/dml/lock-table.xml
+++ b/test/it/parser/src/main/resources/case/dml/lock-table.xml
@@ -18,6 +18,6 @@
<sql-parser-test-cases>
- <lock-table sql-case-id="lock-table" />
- <lock-table sql-case-id="lock-table-remote" />
+ <lock sql-case-id="lock-table" />
+ <lock sql-case-id="lock-table-remote" />
</sql-parser-test-cases>