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 24df451faba Refactor PostgreSQLCheckpointStatement to DALStatement
(#35618)
24df451faba is described below
commit 24df451faba303a3dc3ed2b4945079b01a7ab6d6
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jun 7 07:26:22 2025 +0800
Refactor PostgreSQLCheckpointStatement to DALStatement (#35618)
* Refactor PostgreSQLCheckpointStatement to DALStatement
* Refactor PostgreSQLCheckpointStatement to DALStatement
* Refactor PostgreSQLCheckpointStatement to DALStatement
* Refactor PostgreSQLCheckpointStatement to DALStatement
---
.../opengauss/src/main/antlr4/imports/opengauss/DALStatement.g4 | 4 ++++
.../opengauss/src/main/antlr4/imports/opengauss/TCLStatement.g4 | 4 ----
.../apache/shardingsphere/sql/parser/autogen/OpenGaussStatement.g4 | 2 +-
.../visitor/statement/type/OpenGaussDALStatementVisitor.java | 7 +++++++
.../visitor/statement/type/OpenGaussTCLStatementVisitor.java | 7 -------
.../postgresql/src/main/antlr4/imports/postgresql/DALStatement.g4 | 4 ++++
.../postgresql/src/main/antlr4/imports/postgresql/TCLStatement.g4 | 3 ---
.../shardingsphere/sql/parser/autogen/PostgreSQLStatementParser.g4 | 2 +-
.../visitor/statement/type/PostgreSQLDALStatementVisitor.java | 7 +++++++
.../visitor/statement/type/PostgreSQLTCLStatementVisitor.java | 7 -------
.../sql/parser/core/database/visitor/SQLVisitorRule.java | 4 ++--
.../statement/postgresql/dal/PostgreSQLCheckpointStatement.java} | 7 ++++---
test/it/parser/src/main/resources/case/{dml => dal}/checkpoint.xml | 0
.../src/main/resources/sql/supported/{dml => dal}/checkpoint.xml | 0
14 files changed, 30 insertions(+), 28 deletions(-)
diff --git
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DALStatement.g4
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DALStatement.g4
index 17ddd22334e..7debded0de9 100644
---
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DALStatement.g4
+++
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DALStatement.g4
@@ -128,6 +128,10 @@ vacuum
: VACUUM ((FULL? FREEZE? VERBOSE? ANALYZE?) | (LP_ vacAnalyzeOptionList
RP_)) vacuumRelationList?
;
+checkpoint
+ : CHECKPOINT
+ ;
+
emptyStatement
:
;
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 540900c28b1..e998bf35261 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
@@ -88,10 +88,6 @@ constraintsSetList
: ALL | qualifiedNameList
;
-checkpoint
- : CHECKPOINT
- ;
-
lock
: LOCK TABLE? relationExprList (IN lockType MODE)? NOWAIT?
;
diff --git
a/parser/sql/dialect/opengauss/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OpenGaussStatement.g4
b/parser/sql/dialect/opengauss/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OpenGaussStatement.g4
index c494de2386f..a3d510c83df 100644
---
a/parser/sql/dialect/opengauss/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OpenGaussStatement.g4
+++
b/parser/sql/dialect/opengauss/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/OpenGaussStatement.g4
@@ -131,12 +131,12 @@ execute
| createCast
| dropCast
| alterRule
- | checkpoint
| alterType
| createPublication
| dropPublication
| createAggregate
| alterPackage
+ | checkpoint
| emptyStatement
) SEMI_? EOF
;
diff --git
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDALStatementVisitor.java
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDALStatementVisitor.java
index e222d6a5527..c5b5f696f36 100644
---
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDALStatementVisitor.java
+++
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDALStatementVisitor.java
@@ -20,6 +20,7 @@ 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.DALStatementVisitor;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.AnalyzeTableContext;
+import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.CheckpointContext;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.ColIdContext;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.ConfigurationParameterClauseContext;
import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.EmptyStatementContext;
@@ -46,6 +47,7 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ResetPa
import
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.VacuumStatement;
+import
org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLCheckpointStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.value.collection.CollectionValue;
import
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
@@ -172,6 +174,11 @@ public final class OpenGaussDALStatementVisitor extends
OpenGaussStatementVisito
return visit(ctx.refreshMatViewStmt());
}
+ @Override
+ public ASTNode visitCheckpoint(final CheckpointContext ctx) {
+ return new PostgreSQLCheckpointStatement();
+ }
+
@Override
public ASTNode visitEmptyStatement(final EmptyStatementContext ctx) {
return new EmptyStatement();
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 c09338db79d..62dd6f4b9c4 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,7 +21,6 @@ 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;
@@ -35,7 +34,6 @@ 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.statement.core.statement.tcl.BeginTransactionStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.CheckpointStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.CommitStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.ReleaseSavepointStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.RollbackStatement;
@@ -115,9 +113,4 @@ public final class OpenGaussTCLStatementVisitor extends
OpenGaussStatementVisito
public ASTNode visitRollbackPrepared(final RollbackPreparedContext ctx) {
return new XARollbackStatement(ctx.gid().getText());
}
-
- @Override
- public ASTNode visitCheckpoint(final CheckpointContext ctx) {
- return new CheckpointStatement();
- }
}
diff --git
a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DALStatement.g4
b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DALStatement.g4
index 3ad3e9b6fe0..88deadeb328 100644
---
a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DALStatement.g4
+++
b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DALStatement.g4
@@ -129,6 +129,10 @@ vacuum
: VACUUM ((FULL? FREEZE? VERBOSE? ANALYZE?) | (LP_ vacAnalyzeOptionList
RP_)) vacuumRelationList?
;
+checkpoint
+ : CHECKPOINT
+ ;
+
emptyStatement
:
;
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 e9345258167..5f1716f95c9 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
@@ -107,6 +107,3 @@ lockType
| ACCESS EXCLUSIVE
;
-checkpoint
- : CHECKPOINT
- ;
diff --git
a/parser/sql/dialect/postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatementParser.g4
b/parser/sql/dialect/postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatementParser.g4
index cd02b9e7361..e070e9c4dd6 100644
---
a/parser/sql/dialect/postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatementParser.g4
+++
b/parser/sql/dialect/postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatementParser.g4
@@ -149,7 +149,6 @@ execute
| dropAccessMethod
| dropServer
| alterPolicy
- | checkpoint
| fetch
| move
| close
@@ -180,6 +179,7 @@ execute
| alterType
| alterTrigger
| createPublication
+ | checkpoint
| emptyStatement
| open
) SEMI_? EOF
diff --git
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDALStatementVisitor.java
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDALStatementVisitor.java
index d073decf8c4..f607619ff2a 100644
---
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDALStatementVisitor.java
+++
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDALStatementVisitor.java
@@ -20,6 +20,7 @@ package
org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.type;
import org.apache.shardingsphere.sql.parser.api.ASTNode;
import
org.apache.shardingsphere.sql.parser.api.visitor.statement.type.DALStatementVisitor;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.AnalyzeTableContext;
+import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.CheckpointContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.ColIdContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.ConfigurationParameterClauseContext;
import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.EmptyStatementContext;
@@ -46,6 +47,7 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ResetPa
import
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.VacuumStatement;
+import
org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLCheckpointStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.value.collection.CollectionValue;
import
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
@@ -176,6 +178,11 @@ public final class PostgreSQLDALStatementVisitor extends
PostgreSQLStatementVisi
return visit(ctx.refreshMatViewStmt());
}
+ @Override
+ public ASTNode visitCheckpoint(final CheckpointContext ctx) {
+ return new PostgreSQLCheckpointStatement();
+ }
+
@Override
public ASTNode visitEmptyStatement(final EmptyStatementContext ctx) {
return new EmptyStatement();
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 7136961f5ca..cdfc17758f9 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,7 +21,6 @@ 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;
@@ -43,7 +42,6 @@ import
org.apache.shardingsphere.sql.parser.statement.core.enums.TransactionAcce
import
org.apache.shardingsphere.sql.parser.statement.core.enums.TransactionIsolationLevel;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.BeginTransactionStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.CheckpointStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.CommitStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.LockStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.ReleaseSavepointStatement;
@@ -181,9 +179,4 @@ public final class PostgreSQLTCLStatementVisitor extends
PostgreSQLStatementVisi
private Collection<SimpleTableSegment> getLockTables(final
Collection<RelationExprContext> relationExprContexts) {
return relationExprContexts.stream().map(each -> (SimpleTableSegment)
visit(each.qualifiedName())).collect(Collectors.toList());
}
-
- @Override
- public ASTNode visitCheckpoint(final CheckpointContext ctx) {
- return new CheckpointStatement();
- }
}
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 adc547a80e8..db76caec1c6 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
@@ -461,6 +461,8 @@ public enum SQLVisitorRule {
CHECKSUM_TABLE("ChecksumTable", SQLStatementType.DAL),
+ CHECKPOINT("Checkpoint", SQLStatementType.DAL),
+
DROP_RESOURCE_GROUP("DropResourceGroup", SQLStatementType.DAL),
ALTER_RESOURCE_GROUP("AlterResourceGroup", SQLStatementType.DAL),
@@ -649,8 +651,6 @@ public enum SQLVisitorRule {
DO("DoStatement", SQLStatementType.DML),
- CHECKPOINT("Checkpoint", SQLStatementType.TCL),
-
PREPARE_TRANSACTION("PrepareTransaction", SQLStatementType.TCL),
REASSIGN_OWNED("ReassignOwned", SQLStatementType.DCL),
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/tcl/CheckpointStatement.java
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dal/PostgreSQLCheckpointStatement.java
similarity index 75%
rename from
parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/tcl/CheckpointStatement.java
rename to
parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dal/PostgreSQLCheckpointStatement.java
index de761d1f630..54932ea915a 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/tcl/CheckpointStatement.java
+++
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dal/PostgreSQLCheckpointStatement.java
@@ -15,12 +15,13 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.statement.core.statement.tcl;
+package org.apache.shardingsphere.sql.parser.statement.postgresql.dal;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.AbstractSQLStatement;
+import
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
/**
- * Checkpoint statement.
+ * PostgreSQL checkpoint statement.
*/
-public final class CheckpointStatement extends AbstractSQLStatement implements
TCLStatement {
+public final class PostgreSQLCheckpointStatement extends AbstractSQLStatement
implements DALStatement {
}
diff --git a/test/it/parser/src/main/resources/case/dml/checkpoint.xml
b/test/it/parser/src/main/resources/case/dal/checkpoint.xml
similarity index 100%
rename from test/it/parser/src/main/resources/case/dml/checkpoint.xml
rename to test/it/parser/src/main/resources/case/dal/checkpoint.xml
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/checkpoint.xml
b/test/it/parser/src/main/resources/sql/supported/dal/checkpoint.xml
similarity index 100%
rename from test/it/parser/src/main/resources/sql/supported/dml/checkpoint.xml
rename to test/it/parser/src/main/resources/sql/supported/dal/checkpoint.xml