You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2024/07/26 15:57:41 UTC

(shardingsphere) branch master updated: Refactor parser.statement.core.enums (#32288)

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 8e4fcc8305b Refactor parser.statement.core.enums (#32288)
8e4fcc8305b is described below

commit 8e4fcc8305ba8a720ad93e2755daa203049cb908
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Jul 26 23:57:34 2024 +0800

    Refactor parser.statement.core.enums (#32288)
    
    * Refactor parser.statement.core.enums
    
    * Refactor parser.statement.core.enums
---
 .../EncryptProjectionTokenGenerator.java           | 10 ++++----
 .../statement/dml/InsertStatementContext.java      |  2 +-
 .../impl/SubqueryProjectionConverter.java          |  2 +-
 .../visitor/statement/DorisStatementVisitor.java   |  2 +-
 .../statement/type/DorisDCLStatementVisitor.java   | 30 ++++++++++++----------
 .../visitor/statement/MySQLStatementVisitor.java   |  2 +-
 .../statement/type/MySQLDCLStatementVisitor.java   | 28 ++++++++++----------
 .../statement/OpenGaussStatementVisitor.java       |  2 +-
 .../statement/PostgreSQLStatementVisitor.java      |  2 +-
 ...ACLAttributeEnum.java => ACLAttributeType.java} |  7 +++--
 .../statement/core/enums/AggregationType.java      |  2 +-
 .../statement/core/enums/AlgorithmOption.java      |  2 +-
 .../parser/statement/core/enums/DirectionType.java |  2 +-
 .../sql/parser/statement/core/enums/JoinType.java  |  2 +-
 .../statement/core/enums/LockTableOption.java      |  2 +-
 .../statement/core/enums/OperationScope.java       |  3 ++-
 .../statement/core/enums/ParameterMarkerType.java  |  2 +-
 .../core/enums/{SSLTypeEnum.java => SSLType.java}  | 19 ++++++++------
 .../sql/parser/statement/core/enums/ScanUnit.java  |  2 +-
 .../statement/core/enums/StatisticsDimension.java  |  2 +-
 .../parser/statement/core/enums/SubqueryType.java  |  4 +--
 .../core/enums/TransactionAccessType.java          | 12 +++------
 .../core/enums/TransactionIsolationLevel.java      |  7 ++++-
 .../segment/dcl/PasswordOrLockOptionSegment.java   |  4 +--
 .../core/segment/dcl/TLSOptionSegment.java         |  4 +--
 .../core/segment/dcl/UserResourceSegment.java      |  4 +--
 .../statement/core/util/SubqueryExtractUtils.java  | 10 ++++----
 27 files changed, 89 insertions(+), 81 deletions(-)

diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptProjectionTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptProjectionTokenGenerator.java
index bd317203ae2..beae37eed05 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptProjectionTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptProjectionTokenGenerator.java
@@ -168,16 +168,16 @@ public final class EncryptProjectionTokenGenerator {
     
     private Collection<Projection> generateProjections(final EncryptColumn encryptColumn, final ColumnProjection columnProjection,
                                                        final SubqueryType subqueryType, final boolean shorthandProjection) {
-        if (null == subqueryType || SubqueryType.PROJECTION_SUBQUERY == subqueryType) {
+        if (null == subqueryType || SubqueryType.PROJECTION == subqueryType) {
             return Collections.singleton(generateProjection(encryptColumn, columnProjection, shorthandProjection));
         }
-        if (SubqueryType.TABLE_SUBQUERY == subqueryType || SubqueryType.JOIN_SUBQUERY == subqueryType) {
+        if (SubqueryType.TABLE == subqueryType || SubqueryType.JOIN == subqueryType) {
             return generateProjectionsInTableSegmentSubquery(encryptColumn, columnProjection, shorthandProjection, subqueryType);
         }
-        if (SubqueryType.PREDICATE_SUBQUERY == subqueryType) {
+        if (SubqueryType.PREDICATE == subqueryType) {
             return Collections.singleton(generateProjectionInPredicateSubquery(encryptColumn, columnProjection, shorthandProjection));
         }
-        if (SubqueryType.INSERT_SELECT_SUBQUERY == subqueryType) {
+        if (SubqueryType.INSERT_SELECT == subqueryType) {
             return generateProjectionsInInsertSelectSubquery(encryptColumn, columnProjection, shorthandProjection);
         }
         throw new UnsupportedSQLOperationException(
@@ -197,7 +197,7 @@ public final class EncryptProjectionTokenGenerator {
         IdentifierValue encryptColumnOwner = shorthandProjection ? columnProjection.getOwner().orElse(null) : null;
         QuoteCharacter quoteCharacter = columnProjection.getName().getQuoteCharacter();
         IdentifierValue columnName = new IdentifierValue(encryptColumn.getCipher().getName(), quoteCharacter);
-        IdentifierValue alias = SubqueryType.JOIN_SUBQUERY == subqueryType ? null : columnProjection.getAlias().orElse(columnProjection.getName());
+        IdentifierValue alias = SubqueryType.JOIN == subqueryType ? null : columnProjection.getAlias().orElse(columnProjection.getName());
         result.add(new ColumnProjection(encryptColumnOwner, columnName, alias, databaseType));
         IdentifierValue assistedColumOwner = columnProjection.getOwner().orElse(null);
         encryptColumn.getAssistedQuery().ifPresent(optional -> result.add(new ColumnProjection(assistedColumOwner, new IdentifierValue(optional.getName(), quoteCharacter), null, databaseType)));
diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
index 2dff59524bf..1c286242341 100644
--- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
+++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
@@ -119,7 +119,7 @@ public final class InsertStatementContext extends CommonSQLStatementContext impl
         }
         SubquerySegment insertSelectSegment = getSqlStatement().getInsertSelect().get();
         SelectStatementContext selectStatementContext = new SelectStatementContext(metaData, params, insertSelectSegment.getSelect(), currentDatabaseName, Collections.emptyList());
-        selectStatementContext.setSubqueryType(SubqueryType.INSERT_SELECT_SUBQUERY);
+        selectStatementContext.setSubqueryType(SubqueryType.INSERT_SELECT);
         InsertSelectContext insertSelectContext = new InsertSelectContext(selectStatementContext, params, paramsOffset.get());
         paramsOffset.addAndGet(insertSelectContext.getParameterCount());
         return Optional.of(insertSelectContext);
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/projection/impl/SubqueryProjectionConverter.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/projection/impl/SubqueryProjectionConverter.java
index cc18f4420e7..231c4150bbf 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/projection/impl/SubqueryProjectionConverter.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/projection/impl/SubqueryProjectionConverter.java
@@ -54,7 +54,7 @@ public final class SubqueryProjectionConverter {
         if (segment.getAliasName().isPresent()) {
             sqlNode = convertWithAlias(sqlNode, segment.getAliasName().get());
         }
-        return SubqueryType.EXISTS_SUBQUERY == segment.getSubquery().getSubqueryType()
+        return SubqueryType.EXISTS == segment.getSubquery().getSubqueryType()
                 ? Optional.of(new SqlBasicCall(SqlStdOperatorTable.EXISTS, Collections.singletonList(sqlNode), SqlParserPos.ZERO))
                 : Optional.of(sqlNode);
     }
diff --git a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/DorisStatementVisitor.java b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/DorisStatementVisitor.java
index 1a937955263..bf2b281dc0d 100644
--- a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/DorisStatementVisitor.java
+++ b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/DorisStatementVisitor.java
@@ -604,7 +604,7 @@ public abstract class DorisStatementVisitor extends DorisStatementBaseVisitor<AS
             if (null == ctx.EXISTS()) {
                 return new SubqueryExpressionSegment(subquerySegment);
             }
-            subquerySegment.setSubqueryType(SubqueryType.EXISTS_SUBQUERY);
+            subquerySegment.setSubqueryType(SubqueryType.EXISTS);
             return new ExistsSubqueryExpression(startIndex, stopIndex, subquerySegment);
         }
         if (null != ctx.parameterMarker()) {
diff --git a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDCLStatementVisitor.java b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDCLStatementVisitor.java
index 69f01e1ccce..bd0fba0e14e 100644
--- a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDCLStatementVisitor.java
+++ b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDCLStatementVisitor.java
@@ -87,9 +87,9 @@ import org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.StaticP
 import org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.TlsOptionContext;
 import org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.UsernameContext;
 import org.apache.shardingsphere.sql.parser.doris.visitor.statement.DorisStatementVisitor;
-import org.apache.shardingsphere.sql.parser.statement.core.enums.ACLAttributeEnum;
-import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLTypeEnum;
-import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLTypeEnum.UserResourceSpecifiedLimitEnum;
+import org.apache.shardingsphere.sql.parser.statement.core.enums.ACLAttributeType;
+import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLType;
+import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLType.UserResourceSpecifiedLimitType;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.dcl.PasswordOrLockOptionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.dcl.PrivilegeSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.dcl.RoleOrPrivilegeSegment;
@@ -475,13 +475,13 @@ public final class DorisDCLStatementVisitor extends DorisStatementVisitor implem
     public ASTNode visitRequireClause(final RequireClauseContext ctx) {
         TLSOptionSegment result = new TLSOptionSegment();
         if (null != ctx.NONE()) {
-            result.setType(SSLTypeEnum.SSL_TYPE_NONE);
+            result.setType(SSLType.NONE);
         } else if (null != ctx.X509()) {
-            result.setType(SSLTypeEnum.SSL_TYPE_X509);
+            result.setType(SSLType.X509);
         } else if (null != ctx.SSL()) {
-            result.setType(SSLTypeEnum.SSL_TYPE_ANY);
+            result.setType(SSLType.ANY);
         } else {
-            result.setType(SSLTypeEnum.SSL_TYPE_SPECIFIED);
+            result.setType(SSLType.SPECIFIED);
             for (TlsOptionContext each : ctx.tlsOption()) {
                 if (null != each.SUBJECT()) {
                     result.setX509Subject(each.string_().getText());
@@ -502,19 +502,19 @@ public final class DorisDCLStatementVisitor extends DorisStatementVisitor implem
         result.setStopIndex(ctx.stop.getStopIndex());
         for (ConnectOptionContext each : ctx.connectOption()) {
             if (null != each.MAX_QUERIES_PER_HOUR()) {
-                result.setSpecifiedLimits(UserResourceSpecifiedLimitEnum.QUERIES_PER_HOUR);
+                result.setSpecifiedLimits(UserResourceSpecifiedLimitType.QUERIES_PER_HOUR);
                 result.setQuestions(new NumberLiteralValue(each.NUMBER_().getText()).getValue().intValue());
             }
             if (null != each.MAX_UPDATES_PER_HOUR()) {
-                result.setSpecifiedLimits(UserResourceSpecifiedLimitEnum.UPDATES_PER_HOUR);
+                result.setSpecifiedLimits(UserResourceSpecifiedLimitType.UPDATES_PER_HOUR);
                 result.setUpdates(new NumberLiteralValue(each.NUMBER_().getText()).getValue().intValue());
             }
             if (null != each.MAX_CONNECTIONS_PER_HOUR()) {
-                result.setSpecifiedLimits(UserResourceSpecifiedLimitEnum.CONNECTIONS_PER_HOUR);
+                result.setSpecifiedLimits(UserResourceSpecifiedLimitType.CONNECTIONS_PER_HOUR);
                 result.setConnPerHour(new NumberLiteralValue(each.NUMBER_().getText()).getValue().intValue());
             }
             if (null != each.MAX_USER_CONNECTIONS()) {
-                result.setSpecifiedLimits(UserResourceSpecifiedLimitEnum.USER_CONNECTIONS);
+                result.setSpecifiedLimits(UserResourceSpecifiedLimitType.USER_CONNECTIONS);
                 result.setUserConn(new NumberLiteralValue(each.NUMBER_().getText()).getValue().intValue());
             }
         }
@@ -680,13 +680,15 @@ public final class DorisDCLStatementVisitor extends DorisStatementVisitor implem
     }
     
     private void fillPasswordRequire(final PasswordOrLockOptionSegment segment, final AccountLockPasswordExpireOptionContext ctx) {
+        ACLAttributeType aclAttributeType;
         if (null != ctx.DEFAULT()) {
-            segment.setUpdatePasswordRequireCurrent(ACLAttributeEnum.DEFAULT);
+            aclAttributeType = ACLAttributeType.DEFAULT;
         } else if (null != ctx.OPTIONAL()) {
-            segment.setUpdatePasswordRequireCurrent(ACLAttributeEnum.NO);
+            aclAttributeType = ACLAttributeType.NO;
         } else {
-            segment.setUpdatePasswordRequireCurrent(ACLAttributeEnum.YES);
+            aclAttributeType = ACLAttributeType.YES;
         }
+        segment.setUpdatePasswordRequireCurrent(aclAttributeType);
     }
     
     @Override
diff --git a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
index 96edd78af5f..ced409d5982 100644
--- a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
+++ b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
@@ -602,7 +602,7 @@ public abstract class MySQLStatementVisitor extends MySQLStatementBaseVisitor<AS
             SubquerySegment subquerySegment = new SubquerySegment(
                     ctx.subquery().getStart().getStartIndex(), ctx.subquery().getStop().getStopIndex(), (MySQLSelectStatement) visit(ctx.subquery()), getOriginalText(ctx.subquery()));
             if (null != ctx.EXISTS()) {
-                subquerySegment.setSubqueryType(SubqueryType.EXISTS_SUBQUERY);
+                subquerySegment.setSubqueryType(SubqueryType.EXISTS);
                 return new ExistsSubqueryExpression(startIndex, stopIndex, subquerySegment);
             }
             return new SubqueryExpressionSegment(subquerySegment);
diff --git a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDCLStatementVisitor.java b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDCLStatementVisitor.java
index 576fc0fcb08..80d10541c8b 100644
--- a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDCLStatementVisitor.java
+++ b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDCLStatementVisitor.java
@@ -87,9 +87,9 @@ import org.apache.shardingsphere.sql.parser.autogen.MySQLStatementParser.StaticP
 import org.apache.shardingsphere.sql.parser.autogen.MySQLStatementParser.TlsOptionContext;
 import org.apache.shardingsphere.sql.parser.autogen.MySQLStatementParser.UsernameContext;
 import org.apache.shardingsphere.sql.parser.mysql.visitor.statement.MySQLStatementVisitor;
-import org.apache.shardingsphere.sql.parser.statement.core.enums.ACLAttributeEnum;
-import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLTypeEnum;
-import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLTypeEnum.UserResourceSpecifiedLimitEnum;
+import org.apache.shardingsphere.sql.parser.statement.core.enums.ACLAttributeType;
+import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLType;
+import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLType.UserResourceSpecifiedLimitType;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.dcl.PasswordOrLockOptionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.dcl.PrivilegeSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.dcl.RoleOrPrivilegeSegment;
@@ -474,13 +474,13 @@ public final class MySQLDCLStatementVisitor extends MySQLStatementVisitor implem
     public ASTNode visitRequireClause(final RequireClauseContext ctx) {
         TLSOptionSegment result = new TLSOptionSegment();
         if (null != ctx.NONE()) {
-            result.setType(SSLTypeEnum.SSL_TYPE_NONE);
+            result.setType(SSLType.NONE);
         } else if (null != ctx.X509()) {
-            result.setType(SSLTypeEnum.SSL_TYPE_X509);
+            result.setType(SSLType.X509);
         } else if (null != ctx.SSL()) {
-            result.setType(SSLTypeEnum.SSL_TYPE_ANY);
+            result.setType(SSLType.ANY);
         } else {
-            result.setType(SSLTypeEnum.SSL_TYPE_SPECIFIED);
+            result.setType(SSLType.SPECIFIED);
             for (TlsOptionContext each : ctx.tlsOption()) {
                 if (null != each.SUBJECT()) {
                     result.setX509Subject(each.string_().getText());
@@ -501,19 +501,19 @@ public final class MySQLDCLStatementVisitor extends MySQLStatementVisitor implem
         result.setStopIndex(ctx.stop.getStopIndex());
         for (ConnectOptionContext each : ctx.connectOption()) {
             if (null != each.MAX_QUERIES_PER_HOUR()) {
-                result.setSpecifiedLimits(UserResourceSpecifiedLimitEnum.QUERIES_PER_HOUR);
+                result.setSpecifiedLimits(UserResourceSpecifiedLimitType.QUERIES_PER_HOUR);
                 result.setQuestions(new NumberLiteralValue(each.NUMBER_().getText()).getValue().intValue());
             }
             if (null != each.MAX_UPDATES_PER_HOUR()) {
-                result.setSpecifiedLimits(UserResourceSpecifiedLimitEnum.UPDATES_PER_HOUR);
+                result.setSpecifiedLimits(UserResourceSpecifiedLimitType.UPDATES_PER_HOUR);
                 result.setUpdates(new NumberLiteralValue(each.NUMBER_().getText()).getValue().intValue());
             }
             if (null != each.MAX_CONNECTIONS_PER_HOUR()) {
-                result.setSpecifiedLimits(UserResourceSpecifiedLimitEnum.CONNECTIONS_PER_HOUR);
+                result.setSpecifiedLimits(UserResourceSpecifiedLimitType.CONNECTIONS_PER_HOUR);
                 result.setConnPerHour(new NumberLiteralValue(each.NUMBER_().getText()).getValue().intValue());
             }
             if (null != each.MAX_USER_CONNECTIONS()) {
-                result.setSpecifiedLimits(UserResourceSpecifiedLimitEnum.USER_CONNECTIONS);
+                result.setSpecifiedLimits(UserResourceSpecifiedLimitType.USER_CONNECTIONS);
                 result.setUserConn(new NumberLiteralValue(each.NUMBER_().getText()).getValue().intValue());
             }
         }
@@ -680,11 +680,11 @@ public final class MySQLDCLStatementVisitor extends MySQLStatementVisitor implem
     
     private void fillPasswordRequire(final PasswordOrLockOptionSegment segment, final AccountLockPasswordExpireOptionContext ctx) {
         if (null != ctx.DEFAULT()) {
-            segment.setUpdatePasswordRequireCurrent(ACLAttributeEnum.DEFAULT);
+            segment.setUpdatePasswordRequireCurrent(ACLAttributeType.DEFAULT);
         } else if (null != ctx.OPTIONAL()) {
-            segment.setUpdatePasswordRequireCurrent(ACLAttributeEnum.NO);
+            segment.setUpdatePasswordRequireCurrent(ACLAttributeType.NO);
         } else {
-            segment.setUpdatePasswordRequireCurrent(ACLAttributeEnum.YES);
+            segment.setUpdatePasswordRequireCurrent(ACLAttributeType.YES);
         }
     }
     
diff --git a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
index fd7a7fde224..a0a6c8b3577 100644
--- a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
+++ b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
@@ -416,7 +416,7 @@ public abstract class OpenGaussStatementVisitor extends OpenGaussStatementBaseVi
         SubquerySegment subquerySegment = new SubquerySegment(ctx.selectWithParens().getStart().getStartIndex(),
                 ctx.selectWithParens().getStop().getStopIndex(), (OpenGaussSelectStatement) visit(ctx.selectWithParens()), getOriginalText(ctx.selectWithParens()));
         if (null != ctx.EXISTS()) {
-            subquerySegment.setSubqueryType(SubqueryType.EXISTS_SUBQUERY);
+            subquerySegment.setSubqueryType(SubqueryType.EXISTS);
             return new ExistsSubqueryExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), subquerySegment);
         }
         return new SubqueryExpressionSegment(subquerySegment);
diff --git a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
index 7771d054f7b..f518ffa4c7a 100644
--- a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
+++ b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
@@ -417,7 +417,7 @@ public abstract class PostgreSQLStatementVisitor extends PostgreSQLStatementPars
         SubquerySegment subquerySegment = new SubquerySegment(ctx.selectWithParens().getStart().getStartIndex(),
                 ctx.selectWithParens().getStop().getStopIndex(), (PostgreSQLSelectStatement) visit(ctx.selectWithParens()), getOriginalText(ctx.selectWithParens()));
         if (null != ctx.EXISTS()) {
-            subquerySegment.setSubqueryType(SubqueryType.EXISTS_SUBQUERY);
+            subquerySegment.setSubqueryType(SubqueryType.EXISTS);
             return new ExistsSubqueryExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), subquerySegment);
         }
         return new SubqueryExpressionSegment(subquerySegment);
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ACLAttributeEnum.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ACLAttributeType.java
similarity index 91%
rename from parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ACLAttributeEnum.java
rename to parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ACLAttributeType.java
index 33d9356c427..d97d976a3f0 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ACLAttributeEnum.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ACLAttributeType.java
@@ -17,7 +17,10 @@
 
 package org.apache.shardingsphere.sql.parser.statement.core.enums;
 
-public enum ACLAttributeEnum {
+/**
+ * ACL attribute type.
+ */
+public enum ACLAttributeType {
     
-    DEFAULT, YES, NO
+    YES, NO, DEFAULT
 }
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/AggregationType.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/AggregationType.java
index 4795cfd9c72..c5ad21974c8 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/AggregationType.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/AggregationType.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.sql.parser.statement.core.enums;
 import java.util.Arrays;
 
 /**
- * Aggregation function enum.
+ * Aggregation type.
  */
 public enum AggregationType {
     
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/AlgorithmOption.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/AlgorithmOption.java
index 08250226e24..9112f729e0f 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/AlgorithmOption.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/AlgorithmOption.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.sql.parser.statement.core.enums;
 
 /**
- * Algorithm option enum.
+ * Algorithm option.
  */
 public enum AlgorithmOption {
     
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/DirectionType.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/DirectionType.java
index c5bfc7e4acd..ba95f994f8c 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/DirectionType.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/DirectionType.java
@@ -24,7 +24,7 @@ import java.util.Collection;
 import java.util.EnumSet;
 
 /**
- * Direction type enum.
+ * Direction type.
  */
 @RequiredArgsConstructor
 @Getter
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/JoinType.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/JoinType.java
index 1a52ca5b1a6..496696bd200 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/JoinType.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/JoinType.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.sql.parser.statement.core.enums;
 
 /**
- * Join type enum.
+ * Join type.
  */
 public enum JoinType {
     
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/LockTableOption.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/LockTableOption.java
index a01ca11712b..631776e23c3 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/LockTableOption.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/LockTableOption.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.sql.parser.statement.core.enums;
 
 /**
- * Lock table option enum.
+ * Lock table option.
  */
 public enum LockTableOption {
     
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/OperationScope.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/OperationScope.java
index 84385862917..b2a7fc96751 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/OperationScope.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/OperationScope.java
@@ -21,13 +21,14 @@ import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
 /**
- * OperationScope enum.
+ * Operation scope.
  */
 @RequiredArgsConstructor
 @Getter
 public enum OperationScope {
     
     GLOBAL("GLOBAL"),
+    
     SESSION("SESSION");
     
     private final String scope;
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ParameterMarkerType.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ParameterMarkerType.java
index 7f76d6978bb..3daa75f480c 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ParameterMarkerType.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ParameterMarkerType.java
@@ -21,7 +21,7 @@ import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
 /**
- * Parameter marker type enum.
+ * Parameter marker type.
  */
 @RequiredArgsConstructor
 @Getter
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/SSLTypeEnum.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/SSLType.java
similarity index 82%
rename from parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/SSLTypeEnum.java
rename to parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/SSLType.java
index 26a9ed27151..96a9555d740 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/SSLTypeEnum.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/SSLType.java
@@ -17,22 +17,25 @@
 
 package org.apache.shardingsphere.sql.parser.statement.core.enums;
 
-public enum SSLTypeEnum {
+/**
+ * SSL type.
+ */
+public enum SSLType {
     
-    SSL_TYPE_NOT_SPECIFIED,
+    SPECIFIED,
     
-    SSL_TYPE_NONE,
+    NOT_SPECIFIED,
     
-    SSL_TYPE_ANY,
+    NONE,
     
-    SSL_TYPE_X509,
+    ANY,
     
-    SSL_TYPE_SPECIFIED;
+    X509;
     
     /**
-     * User resource specified limit enum.
+     * User resource specified limit type.
      */
-    public enum UserResourceSpecifiedLimitEnum {
+    public enum UserResourceSpecifiedLimitType {
         
         QUERIES_PER_HOUR,
         
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ScanUnit.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ScanUnit.java
index 8dbf8b3bcda..43af3806fff 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ScanUnit.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/ScanUnit.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.sql.parser.statement.core.enums;
 
 /**
- * Update statistics scan unit enum.
+ * Update statistics scan unit.
  */
 public enum ScanUnit {
     
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/StatisticsDimension.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/StatisticsDimension.java
index 3f1fc339f55..4ae9dc92f5f 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/StatisticsDimension.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/StatisticsDimension.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.sql.parser.statement.core.enums;
 
 /**
- * Update statistics dimension enum.
+ * Update statistics dimension.
  */
 public enum StatisticsDimension {
     
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/SubqueryType.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/SubqueryType.java
index 37560975dad..87fe5163983 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/SubqueryType.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/SubqueryType.java
@@ -18,9 +18,9 @@
 package org.apache.shardingsphere.sql.parser.statement.core.enums;
 
 /**
- * Subquery type enum.
+ * Subquery type.
  */
 public enum SubqueryType {
     
-    PROJECTION_SUBQUERY, TABLE_SUBQUERY, JOIN_SUBQUERY, PREDICATE_SUBQUERY, INSERT_SELECT_SUBQUERY, EXISTS_SUBQUERY
+    PROJECTION, TABLE, JOIN, PREDICATE, INSERT_SELECT, EXISTS
 }
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/TransactionAccessType.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/TransactionAccessType.java
index ba983404351..6596a510005 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/TransactionAccessType.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/TransactionAccessType.java
@@ -17,18 +17,12 @@
 
 package org.apache.shardingsphere.sql.parser.statement.core.enums;
 
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-
 /**
- * Transaction access type enum.
+ * Transaction access type.
  */
-@RequiredArgsConstructor
-@Getter
 public enum TransactionAccessType {
     
-    READ_ONLY("READ_ONLY"),
-    READ_WRITE("READ_WRITE");
+    READ_ONLY,
     
-    private final String accessType;
+    READ_WRITE
 }
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/TransactionIsolationLevel.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/TransactionIsolationLevel.java
index a1759713c1b..f7d7700a8ff 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/TransactionIsolationLevel.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/enums/TransactionIsolationLevel.java
@@ -21,17 +21,22 @@ import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
 /**
- * Transaction isolation level enum.
+ * Transaction isolation level.
  */
 @RequiredArgsConstructor
 @Getter
 public enum TransactionIsolationLevel {
     
     NONE("NONE"),
+    
     READ_UNCOMMITTED("READ-UNCOMMITTED"),
+    
     READ_COMMITTED("READ-COMMITTED"),
+    
     REPEATABLE_READ("REPEATABLE-READ"),
+    
     SNAPSHOT("SNAPSHOT"),
+    
     SERIALIZABLE("SERIALIZABLE");
     
     private final String isolationLevel;
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/PasswordOrLockOptionSegment.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/PasswordOrLockOptionSegment.java
index b6fec4ed69d..2925a709a57 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/PasswordOrLockOptionSegment.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/PasswordOrLockOptionSegment.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.statement.core.segment.dcl;
 
 import lombok.Getter;
 import lombok.Setter;
-import org.apache.shardingsphere.sql.parser.statement.core.enums.ACLAttributeEnum;
+import org.apache.shardingsphere.sql.parser.statement.core.enums.ACLAttributeType;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.SQLSegment;
 
 /**
@@ -65,5 +65,5 @@ public final class PasswordOrLockOptionSegment implements SQLSegment {
     
     private boolean updatePasswordLockTime;
     
-    private ACLAttributeEnum updatePasswordRequireCurrent;
+    private ACLAttributeType updatePasswordRequireCurrent;
 }
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/TLSOptionSegment.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/TLSOptionSegment.java
index 82682bf53f2..5d74d71be59 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/TLSOptionSegment.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/TLSOptionSegment.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.sql.parser.statement.core.segment.dcl;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
-import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLTypeEnum;
+import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLType;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.SQLSegment;
 
 /**
@@ -35,7 +35,7 @@ public final class TLSOptionSegment implements SQLSegment {
     
     private int stopIndex;
     
-    private SSLTypeEnum type;
+    private SSLType type;
     
     private String x509Subject;
     
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/UserResourceSegment.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/UserResourceSegment.java
index 7e55472dd84..a313bdce822 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/UserResourceSegment.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dcl/UserResourceSegment.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.statement.core.segment.dcl;
 
 import lombok.Getter;
 import lombok.Setter;
-import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLTypeEnum;
+import org.apache.shardingsphere.sql.parser.statement.core.enums.SSLType.UserResourceSpecifiedLimitType;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.SQLSegment;
 
 /**
@@ -41,5 +41,5 @@ public final class UserResourceSegment implements SQLSegment {
     
     private int userConn;
     
-    private SSLTypeEnum.UserResourceSpecifiedLimitEnum specifiedLimits;
+    private UserResourceSpecifiedLimitType specifiedLimits;
 }
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SubqueryExtractUtils.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SubqueryExtractUtils.java
index 1ef04f74a2b..10cb4033871 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SubqueryExtractUtils.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SubqueryExtractUtils.java
@@ -91,11 +91,11 @@ public final class SubqueryExtractUtils {
         for (ProjectionSegment each : projections.getProjections()) {
             if (each instanceof SubqueryProjectionSegment) {
                 SubquerySegment subquery = ((SubqueryProjectionSegment) each).getSubquery();
-                subquery.setSubqueryType(SubqueryType.PROJECTION_SUBQUERY);
+                subquery.setSubqueryType(SubqueryType.PROJECTION);
                 result.add(subquery);
                 extractSubquerySegments(result, subquery.getSelect());
             } else if (each instanceof ExpressionProjectionSegment) {
-                extractSubquerySegmentsFromExpression(result, ((ExpressionProjectionSegment) each).getExpr(), SubqueryType.PROJECTION_SUBQUERY);
+                extractSubquerySegmentsFromExpression(result, ((ExpressionProjectionSegment) each).getExpr(), SubqueryType.PROJECTION);
             }
         }
     }
@@ -113,7 +113,7 @@ public final class SubqueryExtractUtils {
     private static void extractSubquerySegmentsFromJoinTableSegment(final List<SubquerySegment> result, final TableSegment tableSegment) {
         if (tableSegment instanceof SubqueryTableSegment) {
             SubquerySegment subquery = ((SubqueryTableSegment) tableSegment).getSubquery();
-            subquery.setSubqueryType(SubqueryType.JOIN_SUBQUERY);
+            subquery.setSubqueryType(SubqueryType.JOIN);
             result.add(subquery);
             extractSubquerySegments(result, subquery.getSelect());
         } else if (tableSegment instanceof JoinTableSegment) {
@@ -124,13 +124,13 @@ public final class SubqueryExtractUtils {
     
     private static void extractSubquerySegmentsFromSubqueryTableSegment(final List<SubquerySegment> result, final SubqueryTableSegment subqueryTableSegment) {
         SubquerySegment subquery = subqueryTableSegment.getSubquery();
-        subquery.setSubqueryType(SubqueryType.TABLE_SUBQUERY);
+        subquery.setSubqueryType(SubqueryType.TABLE);
         result.add(subquery);
         extractSubquerySegments(result, subquery.getSelect());
     }
     
     private static void extractSubquerySegmentsFromWhere(final List<SubquerySegment> result, final ExpressionSegment expressionSegment) {
-        extractSubquerySegmentsFromExpression(result, expressionSegment, SubqueryType.PREDICATE_SUBQUERY);
+        extractSubquerySegmentsFromExpression(result, expressionSegment, SubqueryType.PREDICATE);
     }
     
     private static void extractSubquerySegmentsFromExpression(final List<SubquerySegment> result, final ExpressionSegment expressionSegment, final SubqueryType subqueryType) {