You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zi...@apache.org on 2023/05/20 21:16:58 UTC
[shardingsphere] branch master updated: Fix sonar issue on Remove usage of generic wildcard type. (#25810)
This is an automated email from the ASF dual-hosted git repository.
zichaowang 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 de12598a159 Fix sonar issue on Remove usage of generic wildcard type. (#25810)
de12598a159 is described below
commit de12598a159bc186cbd59b3fb61e0299575806f4
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun May 21 05:16:50 2023 +0800
Fix sonar issue on Remove usage of generic wildcard type. (#25810)
* Fix sonar issue on YamlPointcutConfigurationSwapper
* Fix sonar issue on CommandExecuteEngine
* Fix sonar issue on Remove usage of generic wildcard type.
* Fix sonar issue on Remove usage of generic wildcard type.
* Fix sonar issue on Remove usage of generic wildcard type.
* Fix sonar issue on Remove usage of generic wildcard type.
* Fix sonar issue on Remove usage of generic wildcard type.
* Fix sonar issue on Remove usage of generic wildcard type.
* Fix sonar issue on Remove usage of generic wildcard type.
* Fix sonar issue on Remove usage of generic wildcard type.
* Fix sonar issue on Remove usage of generic wildcard type.
* Fix sonar issue on Remove usage of generic wildcard type.
---
.../swapper/YamlPointcutConfigurationSwapper.java | 6 +-
.../handshake/PostgreSQLComStartupPacket.java | 2 +-
.../merge/EncryptResultDecoratorEngine.java | 3 +-
...stQueryAndPlainInsertColumnsTokenGenerator.java | 5 +-
.../generator/EncryptAssignmentTokenGenerator.java | 5 +-
.../EncryptInsertOnUpdateTokenGenerator.java | 5 +-
.../EncryptOrderByItemTokenGenerator.java | 5 +-
.../EncryptPredicateColumnTokenGenerator.java | 9 +--
.../generator/EncryptProjectionTokenGenerator.java | 6 +-
.../generator/InsertCipherNameTokenGenerator.java | 5 +-
.../impl/EncryptProjectionTokenGeneratorTest.java | 8 +--
...eryAndPlainInsertColumnsTokenGeneratorTest.java | 11 ++--
.../EncryptInsertOnUpdateTokenGeneratorTest.java | 9 +--
.../EncryptPredicateColumnTokenGeneratorTest.java | 5 +-
.../reviser/ShardingMetaDataReviseEntry.java | 2 +-
.../impl/AggregationDistinctTokenGenerator.java | 5 +-
.../generator/impl/ConstraintTokenGenerator.java | 5 +-
.../token/generator/impl/IndexTokenGenerator.java | 5 +-
.../impl/ShardingRemoveTokenGenerator.java | 2 +-
.../token/generator/impl/TableTokenGenerator.java | 7 ++-
.../AggregationDistinctTokenGeneratorTest.java | 6 +-
.../token/ConstraintTokenGeneratorTest.java | 11 +++-
.../rewrite/token/IndexTokenGeneratorTest.java | 6 +-
.../rewrite/token/TableTokenGeneratorTest.java | 3 +-
.../schema/reviser/MetaDataReviseEntry.java | 2 +-
.../generator/CollectionSQLTokenGenerator.java | 2 +-
.../generator/generic/RemoveTokenGenerator.java | 5 +-
.../CommonHeterogeneousSQLStatementChecker.java | 29 ++++-----
.../HeterogeneousDeleteStatementChecker.java | 6 +-
.../checker/HeterogeneousSQLStatementChecker.java | 1 +
.../HeterogeneousSelectStatementChecker.java | 36 +++++------
.../HeterogeneousUpdateStatementChecker.java | 5 +-
...CommonHeterogeneousSQLStatementCheckerTest.java | 17 ++---
.../HeterogeneousDeleteStatementCheckerTest.java | 12 ++--
.../HeterogeneousSelectStatementCheckerTest.java | 72 +++++++++++-----------
.../HeterogeneousUpdateStatementCheckerTest.java | 10 +--
.../DatabaseProtocolFrontendEngineFixture.java | 7 ++-
.../frontend/command/CommandExecuteEngine.java | 8 ++-
.../frontend/command/executor/CommandExecutor.java | 6 +-
.../command/executor/QueryCommandExecutor.java | 6 +-
.../spi/DatabaseProtocolFrontendEngine.java | 9 ++-
.../proxy/frontend/mysql/MySQLFrontendEngine.java | 5 +-
.../mysql/command/MySQLCommandExecuteEngine.java | 7 ++-
.../admin/MySQLComResetConnectionExecutor.java | 8 +--
.../command/admin/MySQLComSetOptionExecutor.java | 8 +--
.../admin/initdb/MySQLComInitDbExecutor.java | 8 +--
.../command/admin/ping/MySQLComPingExecutor.java | 8 +--
.../command/admin/quit/MySQLComQuitExecutor.java | 8 +--
.../generic/MySQLUnsupportedCommandExecutor.java | 6 +-
.../binary/MySQLComStmtSendLongDataExecutor.java | 6 +-
.../binary/close/MySQLComStmtCloseExecutor.java | 6 +-
.../execute/MySQLComStmtExecuteExecutor.java | 11 ++--
.../prepare/MySQLComStmtPrepareExecutor.java | 20 +++---
.../binary/reset/MySQLComStmtResetExecutor.java | 6 +-
.../query/builder/ResponsePacketBuilder.java | 10 +--
.../fieldlist/MySQLComFieldListPacketExecutor.java | 14 ++---
.../text/query/MySQLComQueryPacketExecutor.java | 17 +++--
.../admin/MySQLComResetConnectionExecutorTest.java | 4 +-
.../admin/MySQLComSetOptionExecutorTest.java | 4 +-
.../MySQLComStmtSendLongDataExecutorTest.java | 4 +-
.../execute/MySQLComStmtExecuteExecutorTest.java | 7 +--
.../prepare/MySQLComStmtPrepareExecutorTest.java | 9 +--
.../reset/MySQLComStmtResetExecutorTest.java | 6 +-
.../query/builder/ResponsePacketBuilderTest.java | 5 +-
.../query/MySQLComQueryPacketExecutorTest.java | 4 +-
.../opengauss/OpenGaussFrontendEngine.java | 3 +-
.../command/OpenGaussCommandExecuteEngine.java | 10 +--
.../command/OpenGaussCommandExecutorFactory.java | 17 ++---
.../bind/OpenGaussComBatchBindExecutor.java | 8 +--
.../query/simple/OpenGaussComQueryExecutor.java | 12 ++--
.../OpenGaussCommandExecutorFactoryTest.java | 17 ++---
.../bind/OpenGaussComBatchBindExecutorTest.java | 7 +--
.../simple/OpenGaussComQueryExecutorTest.java | 7 +--
.../postgresql/PostgreSQLFrontendEngine.java | 5 +-
.../command/PostgreSQLCommandExecuteEngine.java | 7 ++-
.../command/PostgreSQLCommandExecutorFactory.java | 18 +++---
.../generic/PostgreSQLComTerminationExecutor.java | 6 +-
.../PostgreSQLUnsupportedCommandExecutor.java | 10 +--
...AggregatedBatchedStatementsCommandExecutor.java | 8 +--
.../PostgreSQLAggregatedCommandExecutor.java | 11 ++--
.../extended/bind/PostgreSQLComBindExecutor.java | 10 +--
.../extended/close/PostgreSQLComCloseExecutor.java | 8 +--
.../describe/PostgreSQLComDescribeExecutor.java | 13 ++--
.../execute/PostgreSQLComExecuteExecutor.java | 6 +-
.../extended/flush/PostgreSQLComFlushExecutor.java | 6 +-
.../extended/parse/PostgreSQLComParseExecutor.java | 8 +--
.../extended/sync/PostgreSQLComSyncExecutor.java | 8 +--
.../query/simple/PostgreSQLComQueryExecutor.java | 12 ++--
.../PostgreSQLCommandExecutorFactoryTest.java | 21 ++++---
.../PostgreSQLUnsupportedCommandExecutorTest.java | 4 +-
.../PostgreSQLAggregatedCommandExecutorTest.java | 12 ++--
.../bind/PostgreSQLComBindExecutorTest.java | 4 +-
.../close/PostgreSQLComCloseExecutorTest.java | 6 +-
.../PostgreSQLComDescribeExecutorTest.java | 29 ++++-----
.../execute/PostgreSQLComExecuteExecutorTest.java | 3 +-
.../parse/PostgreSQLComParseExecutorTest.java | 8 +--
.../simple/PostgreSQLComQueryExecutorTest.java | 7 +--
97 files changed, 444 insertions(+), 427 deletions(-)
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlPointcutConfigurationSwapper.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlPointcutConfigurationSwapper.java
index 8192c0b048d..4620fe35333 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlPointcutConfigurationSwapper.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlPointcutConfigurationSwapper.java
@@ -40,7 +40,7 @@ public final class YamlPointcutConfigurationSwapper {
* @param yamlConfig YAML pointcut configuration
* @return method pointcut
*/
- public static Optional<ElementMatcher<? super MethodDescription>> swap(final YamlPointcutConfiguration yamlConfig) {
+ public static Optional<ElementMatcher<MethodDescription>> swap(final YamlPointcutConfiguration yamlConfig) {
if ("constructor".equals(yamlConfig.getType())) {
return Optional.of(appendParameters(yamlConfig, ElementMatchers.isConstructor()));
}
@@ -50,8 +50,8 @@ public final class YamlPointcutConfigurationSwapper {
return Optional.empty();
}
- private static ElementMatcher<? super MethodDescription> appendParameters(final YamlPointcutConfiguration yamlConfig, final Junction<? super MethodDescription> pointcut) {
- Junction<? super MethodDescription> result = pointcut;
+ private static ElementMatcher<MethodDescription> appendParameters(final YamlPointcutConfiguration yamlConfig, final Junction<MethodDescription> pointcut) {
+ Junction<MethodDescription> result = pointcut;
for (YamlPointcutParameterConfiguration each : yamlConfig.getParams()) {
result = result.and(ElementMatchers.takesArgument(each.getIndex(), ElementMatchers.named(each.getType())));
}
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/handshake/PostgreSQLComStartupPacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/handshake/PostgreSQLComStartupPacket.java
index 6f575c20148..413ae3ec0f6 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/handshake/PostgreSQLComStartupPacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/handshake/PostgreSQLComStartupPacket.java
@@ -58,7 +58,7 @@ public final class PostgreSQLComStartupPacket implements PostgreSQLPacket {
}
/**
- * Get user name.
+ * Get username.
*
* @return username
*/
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java
index d4695da3fa8..12cdc640ff4 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java
@@ -37,8 +37,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.DALStatemen
public final class EncryptResultDecoratorEngine implements ResultDecoratorEngine<EncryptRule> {
@Override
- public ResultDecorator<?> newInstance(final ShardingSphereDatabase database,
- final EncryptRule encryptRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext) {
+ public ResultDecorator<?> newInstance(final ShardingSphereDatabase database, final EncryptRule encryptRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext) {
if (sqlStatementContext instanceof SelectStatementContext) {
EncryptAlgorithmMetaData algorithmMetaData = new EncryptAlgorithmMetaData(database, encryptRule, (SelectStatementContext) sqlStatementContext);
return new EncryptDQLResultDecorator(algorithmMetaData);
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/AssistQueryAndPlainInsertColumnsTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/AssistQueryAndPlainInsertColumnsTokenGenerator.java
index 844a4fb6965..24b2d733d57 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/AssistQueryAndPlainInsertColumnsTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/AssistQueryAndPlainInsertColumnsTokenGenerator.java
@@ -25,6 +25,7 @@ import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.InsertColumnsToken;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
@@ -47,8 +48,8 @@ public final class AssistQueryAndPlainInsertColumnsTokenGenerator implements Col
}
@Override
- public Collection<InsertColumnsToken> generateSQLTokens(final InsertStatementContext insertStatementContext) {
- Collection<InsertColumnsToken> result = new LinkedList<>();
+ public Collection<SQLToken> generateSQLTokens(final InsertStatementContext insertStatementContext) {
+ Collection<SQLToken> result = new LinkedList<>();
Optional<EncryptTable> encryptTable = encryptRule.findEncryptTable(insertStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue());
Preconditions.checkState(encryptTable.isPresent());
for (ColumnSegment each : insertStatementContext.getSqlStatement().getColumns()) {
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
index 4e3e18cf521..3b322889b77 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
@@ -31,6 +31,7 @@ import org.apache.shardingsphere.infra.binder.statement.dml.UpdateStatementConte
import org.apache.shardingsphere.infra.binder.type.TableAvailable;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.LiteralExpressionSegment;
@@ -62,8 +63,8 @@ public final class EncryptAssignmentTokenGenerator implements CollectionSQLToken
}
@Override
- public Collection<EncryptAssignmentToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
- Collection<EncryptAssignmentToken> result = new LinkedList<>();
+ public Collection<SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
+ Collection<SQLToken> result = new LinkedList<>();
String tableName = ((TableAvailable) sqlStatementContext).getAllTables().iterator().next().getTableName().getIdentifier().getValue();
String schemaName = sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), databaseName));
for (AssignmentSegment each : getSetAssignmentSegment(sqlStatementContext.getSqlStatement()).getAssignments()) {
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java
index f78060ad58a..8eb6786eff5 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java
@@ -31,6 +31,7 @@ import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.OnDuplicateKeyColumnsSegment;
@@ -62,8 +63,8 @@ public final class EncryptInsertOnUpdateTokenGenerator implements CollectionSQLT
}
@Override
- public Collection<EncryptAssignmentToken> generateSQLTokens(final InsertStatementContext insertStatementContext) {
- Collection<EncryptAssignmentToken> result = new LinkedList<>();
+ public Collection<SQLToken> generateSQLTokens(final InsertStatementContext insertStatementContext) {
+ Collection<SQLToken> result = new LinkedList<>();
InsertStatement insertStatement = insertStatementContext.getSqlStatement();
Preconditions.checkState(InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement).isPresent());
OnDuplicateKeyColumnsSegment onDuplicateKeyColumnsSegment = InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement).get();
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
index 706974716ee..a6016f85e79 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
@@ -29,6 +29,7 @@ import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.SubstitutableColumnNameToken;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.ColumnOrderByItemSegment;
@@ -58,8 +59,8 @@ public final class EncryptOrderByItemTokenGenerator implements CollectionSQLToke
}
@Override
- public Collection<SubstitutableColumnNameToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
- Collection<SubstitutableColumnNameToken> result = new LinkedHashSet<>();
+ public Collection<SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
+ Collection<SQLToken> result = new LinkedHashSet<>();
String defaultSchema = DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), databaseName);
ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(() -> schemas.get(defaultSchema));
for (OrderByItem each : getOrderByItems(sqlStatementContext)) {
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
index 04844621534..295ec9d3cad 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
@@ -29,6 +29,7 @@ import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.SubstitutableColumnNameToken;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
@@ -62,7 +63,7 @@ public final class EncryptPredicateColumnTokenGenerator implements CollectionSQL
}
@Override
- public Collection<SubstitutableColumnNameToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
+ public Collection<SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
Collection<ColumnSegment> columnSegments = Collections.emptyList();
Collection<WhereSegment> whereSegments = Collections.emptyList();
if (sqlStatementContext instanceof WhereAvailable) {
@@ -75,9 +76,9 @@ public final class EncryptPredicateColumnTokenGenerator implements CollectionSQL
return generateSQLTokens(columnSegments, columnExpressionTableNames, whereSegments);
}
- private Collection<SubstitutableColumnNameToken> generateSQLTokens(final Collection<ColumnSegment> columnSegments, final Map<String, String> columnExpressionTableNames,
- final Collection<WhereSegment> whereSegments) {
- Collection<SubstitutableColumnNameToken> result = new LinkedHashSet<>();
+ private Collection<SQLToken> generateSQLTokens(final Collection<ColumnSegment> columnSegments,
+ final Map<String, String> columnExpressionTableNames, final Collection<WhereSegment> whereSegments) {
+ Collection<SQLToken> result = new LinkedHashSet<>();
for (ColumnSegment each : columnSegments) {
String tableName = Optional.ofNullable(columnExpressionTableNames.get(each.getExpression())).orElse("");
Optional<EncryptTable> encryptTable = encryptRule.findEncryptTable(tableName);
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
index d44bf8c2a48..05583e2fa78 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
@@ -67,9 +67,9 @@ public final class EncryptProjectionTokenGenerator implements CollectionSQLToken
}
@Override
- public Collection<SubstitutableColumnNameToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
+ public Collection<SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
Preconditions.checkState(sqlStatementContext instanceof SelectStatementContext);
- Collection<SubstitutableColumnNameToken> result = new LinkedHashSet<>();
+ Collection<SQLToken> result = new LinkedHashSet<>();
SelectStatementContext selectStatementContext = (SelectStatementContext) sqlStatementContext;
addGenerateSQLTokens(result, selectStatementContext);
for (SelectStatementContext each : selectStatementContext.getSubqueryContexts().values()) {
@@ -78,7 +78,7 @@ public final class EncryptProjectionTokenGenerator implements CollectionSQLToken
return result;
}
- private void addGenerateSQLTokens(final Collection<SubstitutableColumnNameToken> result, final SelectStatementContext selectStatementContext) {
+ private void addGenerateSQLTokens(final Collection<SQLToken> result, final SelectStatementContext selectStatementContext) {
Map<String, String> columnTableNames = getColumnTableNames(selectStatementContext);
for (ProjectionSegment projection : selectStatementContext.getSqlStatement().getProjections().getProjections()) {
SubqueryType subqueryType = selectStatementContext.getSubqueryType();
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/InsertCipherNameTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/InsertCipherNameTokenGenerator.java
index 767bada7925..09168492eb1 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/InsertCipherNameTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/InsertCipherNameTokenGenerator.java
@@ -25,6 +25,7 @@ import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.Col
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.SubstitutableColumnNameToken;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.InsertColumnsSegment;
@@ -53,11 +54,11 @@ public final class InsertCipherNameTokenGenerator implements CollectionSQLTokenG
}
@Override
- public Collection<SubstitutableColumnNameToken> generateSQLTokens(final InsertStatementContext insertStatementContext) {
+ public Collection<SQLToken> generateSQLTokens(final InsertStatementContext insertStatementContext) {
Optional<InsertColumnsSegment> sqlSegment = insertStatementContext.getSqlStatement().getInsertColumns();
Preconditions.checkState(sqlSegment.isPresent());
Map<String, String> logicAndCipherColumns = encryptRule.getLogicAndCipherColumns(insertStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue());
- Collection<SubstitutableColumnNameToken> result = new LinkedList<>();
+ Collection<SQLToken> result = new LinkedList<>();
for (ColumnSegment each : sqlSegment.get().getColumns()) {
if (logicAndCipherColumns.containsKey(each.getIdentifier().getValue())) {
Collection<ColumnProjection> projections = Collections.singletonList(new ColumnProjection(null, logicAndCipherColumns.get(each.getIdentifier().getValue()), null));
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptProjectionTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptProjectionTokenGeneratorTest.java
index 0bb6dda183c..be9a5a93044 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptProjectionTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptProjectionTokenGeneratorTest.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.infra.binder.segment.table.TablesContext;
import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.SubstitutableColumnNameToken;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ColumnProjectionSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
@@ -90,7 +90,7 @@ class EncryptProjectionTokenGeneratorTest {
SimpleTableSegment doctorOneTable = new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("doctor1")));
when(sqlStatementContext.getTablesContext()).thenReturn(new TablesContext(Arrays.asList(doctorTable, doctorOneTable), DatabaseTypeEngine.getDatabaseType("MySQL")));
when(sqlStatementContext.getProjectionsContext().getProjections()).thenReturn(Collections.singletonList(new ColumnProjection("a", "mobile", null)));
- Collection<SubstitutableColumnNameToken> actual = generator.generateSQLTokens(sqlStatementContext);
+ Collection<SQLToken> actual = generator.generateSQLTokens(sqlStatementContext);
assertThat(actual.size(), is(1));
}
@@ -108,7 +108,7 @@ class EncryptProjectionTokenGeneratorTest {
SimpleTableSegment sameDoctorTable = new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("doctor")));
when(sqlStatementContext.getTablesContext()).thenReturn(new TablesContext(Arrays.asList(doctorTable, sameDoctorTable), DatabaseTypeEngine.getDatabaseType("MySQL")));
when(sqlStatementContext.getProjectionsContext().getProjections()).thenReturn(Collections.singletonList(new ColumnProjection("a", "mobile", null)));
- Collection<SubstitutableColumnNameToken> actual = generator.generateSQLTokens(sqlStatementContext);
+ Collection<SQLToken> actual = generator.generateSQLTokens(sqlStatementContext);
assertThat(actual.size(), is(1));
}
@@ -125,7 +125,7 @@ class EncryptProjectionTokenGeneratorTest {
SimpleTableSegment doctorOneTable = new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("doctor1")));
when(sqlStatementContext.getTablesContext()).thenReturn(new TablesContext(Arrays.asList(doctorTable, doctorOneTable), DatabaseTypeEngine.getDatabaseType("MySQL")));
when(sqlStatementContext.getProjectionsContext().getProjections()).thenReturn(Collections.singletonList(new ColumnProjection("doctor", "mobile", null)));
- Collection<SubstitutableColumnNameToken> actual = generator.generateSQLTokens(sqlStatementContext);
+ Collection<SQLToken> actual = generator.generateSQLTokens(sqlStatementContext);
assertThat(actual.size(), is(1));
}
}
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/AssistQueryAndPlainInsertColumnsTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/AssistQueryAndPlainInsertColumnsTokenGeneratorTest.java
index 6087710cb08..30fd3511f3a 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/AssistQueryAndPlainInsertColumnsTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/AssistQueryAndPlainInsertColumnsTokenGeneratorTest.java
@@ -22,18 +22,17 @@ import org.apache.shardingsphere.encrypt.rule.EncryptRule;
import org.apache.shardingsphere.encrypt.rule.EncryptTable;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
-import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.InsertColumnsToken;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import org.junit.jupiter.api.Test;
import java.util.Collection;
import java.util.Collections;
-import java.util.Iterator;
import java.util.Optional;
import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
@@ -82,11 +81,9 @@ class AssistQueryAndPlainInsertColumnsTokenGeneratorTest {
void assertGenerateSQLTokensExistColumns() {
AssistQueryAndPlainInsertColumnsTokenGenerator tokenGenerator = new AssistQueryAndPlainInsertColumnsTokenGenerator();
tokenGenerator.setEncryptRule(mockEncryptRule());
- Collection<InsertColumnsToken> actual = tokenGenerator.generateSQLTokens(mockInsertStatementContext());
+ Collection<SQLToken> actual = tokenGenerator.generateSQLTokens(mockInsertStatementContext());
assertThat(actual.size(), is(1));
- Iterator<InsertColumnsToken> iterator = actual.iterator();
- InsertColumnsToken insertColumnsToken = iterator.next();
- assertThat(insertColumnsToken.getStartIndex(), is(1));
+ assertThat(actual.iterator().next().getStartIndex(), is(1));
}
private EncryptRule mockEncryptRule() {
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptInsertOnUpdateTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptInsertOnUpdateTokenGeneratorTest.java
index aab15c5b00e..caad90ae4e4 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptInsertOnUpdateTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptInsertOnUpdateTokenGeneratorTest.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptAssignmentTok
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
@@ -100,10 +101,10 @@ class EncryptInsertOnUpdateTokenGeneratorTest {
when(insertStatement.getOnDuplicateKeyColumns()).thenReturn(Optional.of(onDuplicateKeyColumnsSegment));
when(insertStatementContext.getSqlStatement()).thenReturn(insertStatement);
when(InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatementContext.getSqlStatement())).thenReturn(Optional.of(onDuplicateKeyColumnsSegment));
- Iterator<EncryptAssignmentToken> actual = generator.generateSQLTokens(insertStatementContext).iterator();
- assertEncryptAssignmentToken(actual.next(), "cipher_mobile = ?");
- assertEncryptAssignmentToken(actual.next(), "cipher_mobile = VALUES(cipher_mobile)");
- assertEncryptAssignmentToken(actual.next(), "cipher_mobile = 'encryptValue'");
+ Iterator<SQLToken> actual = generator.generateSQLTokens(insertStatementContext).iterator();
+ assertEncryptAssignmentToken((EncryptAssignmentToken) actual.next(), "cipher_mobile = ?");
+ assertEncryptAssignmentToken((EncryptAssignmentToken) actual.next(), "cipher_mobile = VALUES(cipher_mobile)");
+ assertEncryptAssignmentToken((EncryptAssignmentToken) actual.next(), "cipher_mobile = 'encryptValue'");
assertFalse(actual.hasNext());
}
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGeneratorTest.java
index a7cce7de49d..5683c67750a 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGeneratorTest.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.encrypt.rewrite.token.generator;
import org.apache.shardingsphere.encrypt.rewrite.token.generator.fixture.EncryptGeneratorFixtureBuilder;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.SubstitutableColumnNameToken;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -50,8 +51,8 @@ class EncryptPredicateColumnTokenGeneratorTest {
void assertGenerateSQLTokenFromGenerateNewSQLToken() {
generator.setDatabaseName(DefaultDatabase.LOGIC_NAME);
generator.setSchemas(Collections.emptyMap());
- Collection<SubstitutableColumnNameToken> substitutableColumnNameTokens = generator.generateSQLTokens(EncryptGeneratorFixtureBuilder.createUpdateStatementContext());
+ Collection<SQLToken> substitutableColumnNameTokens = generator.generateSQLTokens(EncryptGeneratorFixtureBuilder.createUpdateStatementContext());
assertThat(substitutableColumnNameTokens.size(), is(1));
- assertThat(substitutableColumnNameTokens.iterator().next().toString(null), is("pwd_assist"));
+ assertThat(((SubstitutableColumnNameToken) substitutableColumnNameTokens.iterator().next()).toString(null), is("pwd_assist"));
}
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/ShardingMetaDataReviseEntry.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/ShardingMetaDataReviseEntry.java
index 365a4d5bf4a..9db62691a3a 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/ShardingMetaDataReviseEntry.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/ShardingMetaDataReviseEntry.java
@@ -37,7 +37,7 @@ import java.util.Optional;
public final class ShardingMetaDataReviseEntry implements MetaDataReviseEntry<ShardingRule> {
@Override
- public Optional<? extends SchemaTableAggregationReviser<ShardingRule>> getSchemaTableAggregationReviser(final ConfigurationProperties props) {
+ public Optional<SchemaTableAggregationReviser<ShardingRule>> getSchemaTableAggregationReviser(final ConfigurationProperties props) {
return Optional.of(new ShardingSchemaTableAggregationReviser(props.getValue(ConfigurationPropertyKey.CHECK_TABLE_METADATA_ENABLED)));
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/AggregationDistinctTokenGenerator.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/AggregationDistinctTokenGenerator.java
index 7907a5914ec..356fc1483f7 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/AggregationDistinctTokenGenerator.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/AggregationDistinctTokenGenerator.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.Agg
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sharding.rewrite.token.generator.IgnoreForSingleRoute;
import org.apache.shardingsphere.sharding.rewrite.token.pojo.AggregationDistinctToken;
@@ -40,8 +41,8 @@ public final class AggregationDistinctTokenGenerator implements CollectionSQLTok
}
@Override
- public Collection<AggregationDistinctToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
- Collection<AggregationDistinctToken> result = new LinkedList<>();
+ public Collection<SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
+ Collection<SQLToken> result = new LinkedList<>();
for (AggregationDistinctProjection each : ((SelectStatementContext) sqlStatementContext).getProjectionsContext().getAggregationDistinctProjections()) {
result.add(generateSQLToken(each));
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ConstraintTokenGenerator.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ConstraintTokenGenerator.java
index f1969ef0958..10e5d001c40 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ConstraintTokenGenerator.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ConstraintTokenGenerator.java
@@ -21,6 +21,7 @@ import lombok.Setter;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.type.ConstraintAvailable;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sharding.rewrite.token.pojo.ConstraintToken;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sharding.rule.aware.ShardingRuleAware;
@@ -44,8 +45,8 @@ public final class ConstraintTokenGenerator implements CollectionSQLTokenGenerat
}
@Override
- public Collection<ConstraintToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
- Collection<ConstraintToken> result = new LinkedList<>();
+ public Collection<SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
+ Collection<SQLToken> result = new LinkedList<>();
if (sqlStatementContext instanceof ConstraintAvailable) {
for (ConstraintSegment each : ((ConstraintAvailable) sqlStatementContext).getConstraints()) {
IdentifierValue constraintIdentifier = each.getIdentifier();
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/IndexTokenGenerator.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/IndexTokenGenerator.java
index a606187609a..1873b80376b 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/IndexTokenGenerator.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/IndexTokenGenerator.java
@@ -24,6 +24,7 @@ import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sharding.rewrite.token.pojo.IndexToken;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sharding.rule.aware.ShardingRuleAware;
@@ -51,8 +52,8 @@ public final class IndexTokenGenerator implements CollectionSQLTokenGenerator<SQ
}
@Override
- public Collection<IndexToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
- Collection<IndexToken> result = new LinkedList<>();
+ public Collection<SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
+ Collection<SQLToken> result = new LinkedList<>();
String defaultSchemaName = DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), databaseName);
if (sqlStatementContext instanceof IndexAvailable) {
for (IndexSegment each : ((IndexAvailable) sqlStatementContext).getIndexes()) {
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingRemoveTokenGenerator.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingRemoveTokenGenerator.java
index b1931edb507..49550962b9a 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingRemoveTokenGenerator.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingRemoveTokenGenerator.java
@@ -42,7 +42,7 @@ public final class ShardingRemoveTokenGenerator implements CollectionSQLTokenGen
}
@Override
- public Collection<? extends SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
+ public Collection<SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
Collection<SQLToken> result = new LinkedList<>();
if (isContainsAggregationDistinctProjection(sqlStatementContext)) {
((SelectStatementContext) sqlStatementContext).getSqlStatement().getGroupBy().ifPresent(optional -> result.add(new RemoveToken(optional.getStartIndex(), optional.getStopIndex())));
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/TableTokenGenerator.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/TableTokenGenerator.java
index 85eaf35e5c6..94c70969844 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/TableTokenGenerator.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/TableTokenGenerator.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.type.TableAvailable;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.RouteContextAware;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.infra.route.context.RouteContext;
import org.apache.shardingsphere.sharding.rewrite.token.pojo.TableToken;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
@@ -54,12 +55,12 @@ public final class TableTokenGenerator implements CollectionSQLTokenGenerator<SQ
}
@Override
- public Collection<TableToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
+ public Collection<SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
return sqlStatementContext instanceof TableAvailable ? generateSQLTokens((TableAvailable) sqlStatementContext) : Collections.emptyList();
}
- private Collection<TableToken> generateSQLTokens(final TableAvailable sqlStatementContext) {
- Collection<TableToken> result = new LinkedList<>();
+ private Collection<SQLToken> generateSQLTokens(final TableAvailable sqlStatementContext) {
+ Collection<SQLToken> result = new LinkedList<>();
for (SimpleTableSegment each : sqlStatementContext.getAllTables()) {
TableNameSegment tableName = each.getTableName();
if (shardingRule.findTableRule(tableName.getIdentifier().getValue()).isPresent()) {
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/AggregationDistinctTokenGeneratorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/AggregationDistinctTokenGeneratorTest.java
index 0c86c1d7388..9d6bf17a125 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/AggregationDistinctTokenGeneratorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/AggregationDistinctTokenGeneratorTest.java
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.sharding.rewrite.token;
import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.AggregationDistinctProjection;
import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sharding.rewrite.token.generator.impl.AggregationDistinctTokenGenerator;
-import org.apache.shardingsphere.sharding.rewrite.token.pojo.AggregationDistinctToken;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
@@ -30,8 +30,8 @@ import java.util.List;
import java.util.Optional;
import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
@@ -60,7 +60,7 @@ class AggregationDistinctTokenGeneratorTest {
SelectStatementContext selectStatementContext = mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
when(selectStatementContext.getProjectionsContext().getAggregationDistinctProjections()).thenReturn(Collections.singletonList(aggregationDistinctProjection));
AggregationDistinctTokenGenerator aggregationDistinctTokenGenerator = new AggregationDistinctTokenGenerator();
- List<AggregationDistinctToken> generateSQLTokensResult = new ArrayList<>(aggregationDistinctTokenGenerator.generateSQLTokens(selectStatementContext));
+ List<SQLToken> generateSQLTokensResult = new ArrayList<>(aggregationDistinctTokenGenerator.generateSQLTokens(selectStatementContext));
assertThat(generateSQLTokensResult.get(0).toString(), is(testDistinctInnerExpression + " AS " + testAlias));
when(aggregationDistinctProjection.getAlias()).thenReturn(Optional.of("TEST_ERROR_ALIAS"));
generateSQLTokensResult = new ArrayList<>(aggregationDistinctTokenGenerator.generateSQLTokens(selectStatementContext));
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ConstraintTokenGeneratorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ConstraintTokenGeneratorTest.java
index 61f42bb25c2..e76b16b0637 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ConstraintTokenGeneratorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ConstraintTokenGeneratorTest.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.sharding.rewrite.token;
import org.apache.shardingsphere.infra.binder.statement.ddl.AlterTableStatementContext;
import org.apache.shardingsphere.infra.binder.statement.ddl.CreateDatabaseStatementContext;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ConstraintTokenGenerator;
import org.apache.shardingsphere.sharding.rewrite.token.pojo.ConstraintToken;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
@@ -62,9 +63,13 @@ class ConstraintTokenGeneratorTest {
when(alterTableStatementContext.getConstraints()).thenReturn(Collections.singleton(constraintSegment));
ConstraintTokenGenerator generator = new ConstraintTokenGenerator();
generator.setShardingRule(mock(ShardingRule.class));
- Collection<ConstraintToken> actual = generator.generateSQLTokens(alterTableStatementContext);
+ Collection<SQLToken> actual = generator.generateSQLTokens(alterTableStatementContext);
assertThat(actual.size(), is(1));
- assertThat((new LinkedList<>(actual)).get(0).getStartIndex(), is(1));
- assertThat((new LinkedList<>(actual)).get(0).getStopIndex(), is(3));
+ assertConstraintToken((ConstraintToken) actual.iterator().next());
+ }
+
+ private static void assertConstraintToken(final ConstraintToken actual) {
+ assertThat(actual.getStartIndex(), is(1));
+ assertThat(actual.getStopIndex(), is(3));
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/IndexTokenGeneratorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/IndexTokenGeneratorTest.java
index 3e42ef2a041..6996c43a9c3 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/IndexTokenGeneratorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/IndexTokenGeneratorTest.java
@@ -21,8 +21,8 @@ import org.apache.shardingsphere.infra.binder.statement.ddl.AlterIndexStatementC
import org.apache.shardingsphere.infra.binder.statement.ddl.CreateDatabaseStatementContext;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.sharding.rewrite.token.generator.impl.IndexTokenGenerator;
-import org.apache.shardingsphere.sharding.rewrite.token.pojo.IndexToken;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexNameSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
@@ -35,8 +35,8 @@ import java.util.LinkedList;
import java.util.Optional;
import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
@@ -71,7 +71,7 @@ class IndexTokenGeneratorTest {
generator.setShardingRule(mock(ShardingRule.class));
generator.setSchemas(Collections.singletonMap("test", mock(ShardingSphereSchema.class)));
generator.setDatabaseName("test");
- Collection<IndexToken> actual = generator.generateSQLTokens(alterIndexStatementContext);
+ Collection<SQLToken> actual = generator.generateSQLTokens(alterIndexStatementContext);
assertThat(actual.size(), is(1));
assertThat((new LinkedList<>(actual)).get(0).getStartIndex(), is(1));
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/TableTokenGeneratorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/TableTokenGeneratorTest.java
index d3e329e8e63..64c65a0d879 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/TableTokenGeneratorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/TableTokenGeneratorTest.java
@@ -21,6 +21,7 @@ import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.statement.ddl.CreateDatabaseStatementContext;
import org.apache.shardingsphere.infra.binder.statement.ddl.CreateTableStatementContext;
import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.infra.route.context.RouteContext;
import org.apache.shardingsphere.sharding.rewrite.token.generator.impl.TableTokenGenerator;
import org.apache.shardingsphere.sharding.rewrite.token.pojo.TableToken;
@@ -79,7 +80,7 @@ class TableTokenGeneratorTest {
generator.setShardingRule(shardingRule);
CreateTableStatementContext sqlStatementContext = mock(CreateTableStatementContext.class);
when(sqlStatementContext.getAllTables()).thenReturn(Collections.singletonList(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))));
- Collection<TableToken> actual = generator.generateSQLTokens(sqlStatementContext);
+ Collection<SQLToken> actual = generator.generateSQLTokens(sqlStatementContext);
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), instanceOf(TableToken.class));
}
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEntry.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEntry.java
index 1c2cdfa57a6..30773c40aa0 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEntry.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEntry.java
@@ -46,7 +46,7 @@ public interface MetaDataReviseEntry<T extends ShardingSphereRule> extends Order
* @param props configuration properties
* @return schema table aggregation reviser
*/
- default Optional<? extends SchemaTableAggregationReviser<T>> getSchemaTableAggregationReviser(final ConfigurationProperties props) {
+ default Optional<SchemaTableAggregationReviser<T>> getSchemaTableAggregationReviser(final ConfigurationProperties props) {
return Optional.empty();
}
diff --git a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/CollectionSQLTokenGenerator.java b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/CollectionSQLTokenGenerator.java
index 9e854127da9..67dd8c59257 100644
--- a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/CollectionSQLTokenGenerator.java
+++ b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/CollectionSQLTokenGenerator.java
@@ -35,5 +35,5 @@ public interface CollectionSQLTokenGenerator<T extends SQLStatementContext> exte
* @param sqlStatementContext SQL statement context
* @return SQL tokens
*/
- Collection<? extends SQLToken> generateSQLTokens(T sqlStatementContext);
+ Collection<SQLToken> generateSQLTokens(T sqlStatementContext);
}
diff --git a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/generic/RemoveTokenGenerator.java b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/generic/RemoveTokenGenerator.java
index 61e109a5a7f..fbb9bc81cef 100644
--- a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/generic/RemoveTokenGenerator.java
+++ b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/generic/RemoveTokenGenerator.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.infra.binder.type.IndexAvailable;
import org.apache.shardingsphere.infra.binder.type.RemoveAvailable;
import org.apache.shardingsphere.infra.binder.type.TableAvailable;
import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
+import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.RemoveToken;
import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
@@ -55,8 +56,8 @@ public final class RemoveTokenGenerator implements CollectionSQLTokenGenerator<S
}
@Override
- public Collection<RemoveToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
- Collection<RemoveToken> result = new LinkedList<>();
+ public Collection<SQLToken> generateSQLTokens(final SQLStatementContext sqlStatementContext) {
+ Collection<SQLToken> result = new LinkedList<>();
if (sqlStatementContext instanceof RemoveAvailable && !((RemoveAvailable) sqlStatementContext).getRemoveSegments().isEmpty()) {
result.addAll(generateRemoveAvailableSQLTokens(((RemoveAvailable) sqlStatementContext).getRemoveSegments()));
}
diff --git a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementChecker.java b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementChecker.java
index 125c42705e9..96d81470c2d 100644
--- a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementChecker.java
+++ b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementChecker.java
@@ -28,9 +28,9 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.L
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.WhereSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
+
import java.util.Arrays;
import java.util.List;
-import java.util.Optional;
/**
* Abstract checker.
@@ -50,30 +50,27 @@ public class CommonHeterogeneousSQLStatementChecker<T extends SQLStatement> impl
@Override
public void execute() {
-
}
- protected void checkIsSinglePointQuery(final Optional<WhereSegment> whereSegment) {
- Preconditions.checkArgument(whereSegment.isPresent(), "Must Have Where Segment");
- ExpressionSegment whereExpr = whereSegment.get().getExpr();
- Preconditions.checkArgument(whereExpr instanceof BinaryOperationExpression, "Only Support BinaryOperationExpression");
+ protected final void checkIsSinglePointQuery(final WhereSegment whereSegment) {
+ ExpressionSegment whereExpr = whereSegment.getExpr();
+ Preconditions.checkArgument(whereExpr instanceof BinaryOperationExpression, "Only support binary operation expression.");
BinaryOperationExpression expression = (BinaryOperationExpression) whereExpr;
- Preconditions.checkArgument(!(expression.getLeft() instanceof BinaryOperationExpression), "Do not supported Multiple expressions");
- Preconditions.checkArgument(expression.getLeft() instanceof ColumnSegment, "left segment must is ColumnSegment");
- Preconditions.checkArgument("=".equals(expression.getOperator()), "Only Supported `=` operator");
+ Preconditions.checkArgument(!(expression.getLeft() instanceof BinaryOperationExpression), "Do not supported multiple expressions.");
+ Preconditions.checkArgument(expression.getLeft() instanceof ColumnSegment, "Left segment must column segment.");
+ Preconditions.checkArgument("=".equals(expression.getOperator()), "Only Supported `=` operator.");
String rowKey = ((ColumnSegment) expression.getLeft()).getIdentifier().getValue();
boolean isAllowKey = ALLOW_KEYS.stream().anyMatch(each -> each.equalsIgnoreCase(rowKey));
- Preconditions.checkArgument(isAllowKey, String.format("%s is not a allowed key", rowKey));
+ Preconditions.checkArgument(isAllowKey, String.format("%s is not a allowed key.", rowKey));
}
/**
* Check value is literal or parameter marker.
*
* @param expressionSegment value segment
- *
* @return is supported
*/
- protected boolean isAllowExpressionSegment(final ExpressionSegment expressionSegment) {
+ protected final boolean isAllowExpressionSegment(final ExpressionSegment expressionSegment) {
return expressionSegment instanceof LiteralExpressionSegment || expressionSegment instanceof ParameterMarkerExpressionSegment;
}
@@ -84,11 +81,11 @@ public class CommonHeterogeneousSQLStatementChecker<T extends SQLStatement> impl
*/
protected void checkInExpressionIsExpected(final ExpressionSegment whereExpr) {
InExpression expression = (InExpression) whereExpr;
- Preconditions.checkArgument(expression.getLeft() instanceof ColumnSegment, "left segment must is ColumnSegment");
+ Preconditions.checkArgument(expression.getLeft() instanceof ColumnSegment, "Left segment must column segment.");
String rowKey = ((ColumnSegment) expression.getLeft()).getIdentifier().getValue();
boolean isAllowKey = ALLOW_KEYS.stream().anyMatch(each -> each.equalsIgnoreCase(rowKey));
- Preconditions.checkArgument(isAllowKey, String.format("%s is not a allowed key", rowKey));
- Preconditions.checkArgument(!expression.isNot(), "Do not supported `not in`");
- Preconditions.checkArgument(expression.getRight() instanceof ListExpression, "Only supported ListExpression");
+ Preconditions.checkArgument(isAllowKey, String.format("%s is not a allowed key.", rowKey));
+ Preconditions.checkArgument(!expression.isNot(), "Do not supported `not in`.");
+ Preconditions.checkArgument(expression.getRight() instanceof ListExpression, "Only supported list expression.");
}
}
diff --git a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementChecker.java b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementChecker.java
index 47fc493f355..7900c85030e 100644
--- a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementChecker.java
+++ b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementChecker.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.proxy.backend.hbase.checker;
+import com.google.common.base.Preconditions;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.InExpression;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.WhereSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.DeleteStatement;
@@ -34,10 +35,11 @@ public class HeterogeneousDeleteStatementChecker extends CommonHeterogeneousSQLS
@Override
public void execute() {
Optional<WhereSegment> whereSegment = getSqlStatement().getWhere();
- if (whereSegment.isPresent() && whereSegment.get().getExpr() instanceof InExpression) {
+ Preconditions.checkArgument(whereSegment.isPresent(), "Must contain where segment.");
+ if (whereSegment.get().getExpr() instanceof InExpression) {
checkInExpressionIsExpected(whereSegment.get().getExpr());
} else {
- checkIsSinglePointQuery(whereSegment);
+ checkIsSinglePointQuery(whereSegment.get());
}
}
}
diff --git a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSQLStatementChecker.java b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSQLStatementChecker.java
index 7301cc33769..6e04ba0070d 100644
--- a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSQLStatementChecker.java
+++ b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSQLStatementChecker.java
@@ -21,6 +21,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
/**
* Check where clause.
+ *
* @param <T> SQL statement
*/
public interface HeterogeneousSQLStatementChecker<T extends SQLStatement> {
diff --git a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementChecker.java b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementChecker.java
index a2d38b97e25..1a0980751fd 100644
--- a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementChecker.java
+++ b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementChecker.java
@@ -43,7 +43,7 @@ import java.util.Optional;
/**
* Checker for select statement.
*/
-public class HeterogeneousSelectStatementChecker extends CommonHeterogeneousSQLStatementChecker<SelectStatement> {
+public final class HeterogeneousSelectStatementChecker extends CommonHeterogeneousSQLStatementChecker<SelectStatement> {
public HeterogeneousSelectStatementChecker(final SelectStatement sqlStatement) {
super(sqlStatement);
@@ -58,19 +58,18 @@ public class HeterogeneousSelectStatementChecker extends CommonHeterogeneousSQLS
}
private void checkDoNotSupportedSegment() {
- Preconditions.checkArgument(getSqlStatement().getFrom() instanceof SimpleTableSegment, "Only supported SimpleTableSegment");
- Preconditions.checkArgument(!getSqlStatement().getHaving().isPresent(), "Do not supported having segment");
- Preconditions.checkArgument(!getSqlStatement().getGroupBy().isPresent(), "Do not supported group by segment");
-
+ Preconditions.checkArgument(getSqlStatement().getFrom() instanceof SimpleTableSegment, "Only supported simple table segment.");
+ Preconditions.checkArgument(!getSqlStatement().getHaving().isPresent(), "Do not supported having segment.");
+ Preconditions.checkArgument(!getSqlStatement().getGroupBy().isPresent(), "Do not supported group by segment.");
MySQLSelectStatement selectStatement = (MySQLSelectStatement) getSqlStatement();
- Preconditions.checkArgument(!selectStatement.getWindow().isPresent(), "Do not supported window segment");
- Preconditions.checkArgument(!selectStatement.getLock().isPresent(), "Do not supported lock segment");
+ Preconditions.checkArgument(!selectStatement.getWindow().isPresent(), "Do not supported window segment.");
+ Preconditions.checkArgument(!selectStatement.getLock().isPresent(), "Do not supported lock segment.");
Optional<LimitSegment> limitSegment = selectStatement.getLimit();
if (limitSegment.isPresent()) {
- Preconditions.checkArgument(!selectStatement.getLimit().get().getOffset().isPresent(), "Do not supported offset segment");
+ Preconditions.checkArgument(!limitSegment.get().getOffset().isPresent(), "Do not supported offset segment.");
Optional<PaginationValueSegment> paginationSegment = selectStatement.getLimit().flatMap(LimitSegment::getRowCount);
Long maxScanLimitSize = HBaseContext.getInstance().getProps().<Long>getValue(HBasePropertyKey.MAX_SCAN_LIMIT_SIZE);
- paginationSegment.ifPresent(valueSegment -> Preconditions.checkArgument(((NumberLiteralLimitValueSegment) valueSegment).getValue() <= maxScanLimitSize, "row count must less than 5000"));
+ paginationSegment.ifPresent(valueSegment -> Preconditions.checkArgument(((NumberLiteralLimitValueSegment) valueSegment).getValue() <= maxScanLimitSize, "Row count must less than 5000."));
}
}
@@ -78,7 +77,7 @@ public class HeterogeneousSelectStatementChecker extends CommonHeterogeneousSQLS
for (ProjectionSegment projectionSegment : getSqlStatement().getProjections().getProjections()) {
if (!(projectionSegment instanceof ShorthandProjectionSegment || projectionSegment instanceof ColumnProjectionSegment || HBaseHeterogeneousUtils.isCrcProjectionSegment(
projectionSegment))) {
- throw new IllegalArgumentException("Only supported ShorthandProjection and ColumnProjection and crc32ExpressionProjection");
+ throw new IllegalArgumentException("Only supported shorthand, column and crc32 expression projections.");
}
}
}
@@ -90,7 +89,7 @@ public class HeterogeneousSelectStatementChecker extends CommonHeterogeneousSQLS
}
ExpressionSegment whereExpr = whereSegment.get().getExpr();
if (whereExpr instanceof BinaryOperationExpression) {
- checkIsSinglePointQuery(whereSegment);
+ checkIsSinglePointQuery(whereSegment.get());
} else if (whereExpr instanceof InExpression) {
checkInExpressionIsExpected(whereExpr);
} else if (whereExpr instanceof BetweenExpression) {
@@ -102,15 +101,13 @@ public class HeterogeneousSelectStatementChecker extends CommonHeterogeneousSQLS
private void checkBetweenExpressionIsExpected(final ExpressionSegment whereExpr) {
BetweenExpression expression = (BetweenExpression) whereExpr;
-
- Preconditions.checkArgument(expression.getLeft() instanceof ColumnSegment, "left segment must is ColumnSegment");
+ Preconditions.checkArgument(expression.getLeft() instanceof ColumnSegment, "Left segment must column segment.");
String rowKey = ((ColumnSegment) expression.getLeft()).getIdentifier().getValue();
boolean isAllowKey = ALLOW_KEYS.stream().anyMatch(each -> each.equalsIgnoreCase(rowKey));
- Preconditions.checkArgument(isAllowKey, String.format("%s is not a allowed key", rowKey));
-
+ Preconditions.checkArgument(isAllowKey, String.format("%s is not a allowed key.", rowKey));
Preconditions.checkArgument(!expression.isNot(), "Do not supported `not between...and...`");
- Preconditions.checkArgument(isAllowExpressionSegment(expression.getBetweenExpr()), "between expr must is literal or parameter marker");
- Preconditions.checkArgument(isAllowExpressionSegment(expression.getAndExpr()), "between expr must is literal or parameter marker");
+ Preconditions.checkArgument(isAllowExpressionSegment(expression.getBetweenExpr()), "Between expr must literal or parameter marker.");
+ Preconditions.checkArgument(isAllowExpressionSegment(expression.getAndExpr()), "Between expr must literal or parameter marker.");
}
private void checkSupportedOrderBySegment() {
@@ -119,12 +116,11 @@ public class HeterogeneousSelectStatementChecker extends CommonHeterogeneousSQLS
}
for (OrderByItemSegment orderByItemSegment : getSqlStatement().getOrderBy().get().getOrderByItems()) {
if (!(orderByItemSegment instanceof ColumnOrderByItemSegment)) {
- throw new IllegalArgumentException("Only simple rowKey order by");
+ throw new IllegalArgumentException("Only simple row key order by.");
}
if (!"rowKey".equalsIgnoreCase(((ColumnOrderByItemSegment) orderByItemSegment).getColumn().getIdentifier().getValue())) {
- throw new IllegalArgumentException("Only simple rowKey order by");
+ throw new IllegalArgumentException("Only simple row key order by.");
}
}
}
-
}
diff --git a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementChecker.java b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementChecker.java
index 91289c9a41e..8dd361d48f7 100644
--- a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementChecker.java
+++ b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementChecker.java
@@ -37,10 +37,11 @@ public class HeterogeneousUpdateStatementChecker extends CommonHeterogeneousSQLS
@Override
public void execute() {
Optional<WhereSegment> whereSegment = getSqlStatement().getWhere();
- if (whereSegment.isPresent() && whereSegment.get().getExpr() instanceof InExpression) {
+ Preconditions.checkArgument(whereSegment.isPresent(), "Must contain where segment.");
+ if (whereSegment.get().getExpr() instanceof InExpression) {
checkInExpressionIsExpected(whereSegment.get().getExpr());
} else {
- checkIsSinglePointQuery(whereSegment);
+ checkIsSinglePointQuery(whereSegment.get());
}
checkAssignmentIsOk();
}
diff --git a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementCheckerTest.java b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementCheckerTest.java
index a1c2e35697d..1775a147daa 100644
--- a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementCheckerTest.java
+++ b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementCheckerTest.java
@@ -37,21 +37,24 @@ class CommonHeterogeneousSQLStatementCheckerTest {
@Test
void assertIsSinglePoint() {
SelectStatement sqlStatement = (SelectStatement) HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from t_order where rowKey = '1'");
- new CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkIsSinglePointQuery(sqlStatement.getWhere());
+ assertTrue(sqlStatement.getWhere().isPresent());
+ new CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkIsSinglePointQuery(sqlStatement.getWhere().get());
}
@Test
void assertIsSinglePointWithErrorKey() {
SelectStatement sqlStatement = (SelectStatement) HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from t_order where a = '1'");
- Exception ex = assertThrows(IllegalArgumentException.class, () -> new CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkIsSinglePointQuery(sqlStatement.getWhere()));
- assertThat(ex.getMessage(), is("a is not a allowed key"));
+ assertTrue(sqlStatement.getWhere().isPresent());
+ Exception ex = assertThrows(IllegalArgumentException.class, () -> new CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkIsSinglePointQuery(sqlStatement.getWhere().get()));
+ assertThat(ex.getMessage(), is("a is not a allowed key."));
}
@Test
void assertIsSinglePointWithErrorOperation() {
SelectStatement sqlStatement = (SelectStatement) HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from t_order where rowKey between '1' and '2' ");
- Exception ex = assertThrows(IllegalArgumentException.class, () -> new CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkIsSinglePointQuery(sqlStatement.getWhere()));
- assertThat(ex.getMessage(), is("Only Support BinaryOperationExpression"));
+ assertTrue(sqlStatement.getWhere().isPresent());
+ Exception ex = assertThrows(IllegalArgumentException.class, () -> new CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkIsSinglePointQuery(sqlStatement.getWhere().get()));
+ assertThat(ex.getMessage(), is("Only support binary operation expression."));
}
@Test
@@ -68,7 +71,7 @@ class CommonHeterogeneousSQLStatementCheckerTest {
Optional<WhereSegment> whereSegment = sqlStatement.getWhere();
assertTrue(whereSegment.isPresent());
Exception ex = assertThrows(IllegalArgumentException.class, () -> new CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkInExpressionIsExpected(whereSegment.get().getExpr()));
- assertThat(ex.getMessage(), is("Do not supported `not in`"));
+ assertThat(ex.getMessage(), is("Do not supported `not in`."));
}
@Test
@@ -77,7 +80,7 @@ class CommonHeterogeneousSQLStatementCheckerTest {
Optional<WhereSegment> whereSegment = sqlStatement.getWhere();
assertTrue(whereSegment.isPresent());
Exception ex = assertThrows(IllegalArgumentException.class, () -> new CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkInExpressionIsExpected(whereSegment.get().getExpr()));
- assertThat(ex.getMessage(), is("a is not a allowed key"));
+ assertThat(ex.getMessage(), is("a is not a allowed key."));
}
@Test
diff --git a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementCheckerTest.java b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementCheckerTest.java
index 944d1e2825e..c2cb3768546 100644
--- a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementCheckerTest.java
+++ b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementCheckerTest.java
@@ -39,7 +39,7 @@ class HeterogeneousDeleteStatementCheckerTest {
String sql = "delete /*+ hbase */ from t_test_order where rowKey > 1";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Only Supported `=` operator"));
+ assertThat(ex.getMessage(), is("Only Supported `=` operator."));
}
@Test
@@ -47,7 +47,7 @@ class HeterogeneousDeleteStatementCheckerTest {
String sql = "delete /*+ hbase */ from t_test_order where age = 1";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("age is not a allowed key"));
+ assertThat(ex.getMessage(), is("age is not a allowed key."));
}
@Test
@@ -55,7 +55,7 @@ class HeterogeneousDeleteStatementCheckerTest {
String sql = "delete /*+ hbase */ from t_test_order where 1 = 1";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("left segment must is ColumnSegment"));
+ assertThat(ex.getMessage(), is("Left segment must column segment."));
}
@Test
@@ -63,7 +63,7 @@ class HeterogeneousDeleteStatementCheckerTest {
String sql = "DELETE /*+ hbase */ FROM t_order WHERE order_id = ? AND user_id = ? AND status=?";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Do not supported Multiple expressions"));
+ assertThat(ex.getMessage(), is("Do not supported multiple expressions."));
}
@Test
@@ -71,7 +71,7 @@ class HeterogeneousDeleteStatementCheckerTest {
String sql = "DELETE /*+ hbase */ FROM t_order WHERE rowKey between 1 and 5";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Only Support BinaryOperationExpression"));
+ assertThat(ex.getMessage(), is("Only support binary operation expression."));
}
@Test
@@ -79,6 +79,6 @@ class HeterogeneousDeleteStatementCheckerTest {
String sql = "DELETE /*+ hbase */ FROM t_order";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Must Have Where Segment"));
+ assertThat(ex.getMessage(), is("Must contain where segment."));
}
}
diff --git a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementCheckerTest.java b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementCheckerTest.java
index 45267d63d54..771e44959b2 100644
--- a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementCheckerTest.java
+++ b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementCheckerTest.java
@@ -49,23 +49,23 @@ class HeterogeneousSelectStatementCheckerTest {
@Test
void assertSelectStatementWithLargeRowCount() {
- SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from t_order where id = 1 limit 5001");
+ SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement("SELECT /*+ hbase */ * FROM t_order WHERE id = 1 LIMIT 5001");
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("row count must less than 5000"));
+ assertThat(ex.getMessage(), is("Row count must less than 5000."));
}
@Test
void assertSelectStatementWithLimitSegment() {
- SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from t_order where id = 1 limit 5 offset 3");
+ SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement("SELECT /*+ hbase */ * FROM t_order WHERE id = 1 LIMIT 5 OFFSET 3");
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Do not supported offset segment"));
+ assertThat(ex.getMessage(), is("Do not supported offset segment."));
}
@Test
void assertSelectStatementWithLockSegment() {
- SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from t_order where id = 1 lock in share mode");
+ SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement("SELECT /*+ hbase */ * FROM t_order WHERE id = 1 lock in share mode");
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Do not supported lock segment"));
+ assertThat(ex.getMessage(), is("Do not supported lock segment."));
}
@Test
@@ -73,7 +73,7 @@ class HeterogeneousSelectStatementCheckerTest {
String sql = "SELECT /*+ HBase */ sum(score) FROM person";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Only supported ShorthandProjection and ColumnProjection and crc32ExpressionProjection"));
+ assertThat(ex.getMessage(), is("Only supported shorthand, column and crc32 expression projections."));
}
@Test
@@ -81,7 +81,7 @@ class HeterogeneousSelectStatementCheckerTest {
String sql = "SELECT /*+ HBase */ * FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Only supported SimpleTableSegment"));
+ assertThat(ex.getMessage(), is("Only supported simple table segment."));
}
@Test
@@ -89,64 +89,64 @@ class HeterogeneousSelectStatementCheckerTest {
String sql = "SELECT /*+ HBase */ * FROM t_order WHERE rowKey IN (?, ?) AND id IN (?, ?)";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("left segment must is ColumnSegment"));
+ assertThat(ex.getMessage(), is("Left segment must column segment."));
}
@Test
void assertSelectStatementWithInExpression() {
- String sql = "SELECT /*+ HBase */ * from t_order where rowKey in (1, 2, 3)";
+ String sql = "SELECT /*+ HBase */ * FROM t_order WHERE rowKey IN (1, 2, 3)";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
assertDoesNotThrow(() -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
}
@Test
void assertSelectStatementWithErrorKey() {
- String sql = "SELECT /*+ HBase */ * from t_order where age in (1, 2, 3)";
+ String sql = "SELECT /*+ HBase */ * FROM t_order WHERE age IN (1, 2, 3)";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("age is not a allowed key"));
+ assertThat(ex.getMessage(), is("age is not a allowed key."));
}
@Test
void assertExecuteSelectWithNotIn() {
- String sql = "SELECT /*+ HBase */ * from t_order where rowKey not in (1, 2, 3)";
+ String sql = "SELECT /*+ HBase */ * FROM t_order WHERE rowKey NOT IN (1, 2, 3)";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Do not supported `not in`"));
+ assertThat(ex.getMessage(), is("Do not supported `not in`."));
}
@Test
void assertExecuteSelectWithParameterMarker() {
- String sql = "SELECT /*+ HBase */ * from t_order where rowKey in (?, ?, ?)";
+ String sql = "SELECT /*+ HBase */ * FROM t_order WHERE rowKey IN (?, ?, ?)";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
assertDoesNotThrow(() -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
}
@Test
void assertSelectStatementUseCrc32() {
- String sql = "SELECT /*+ HBase */ crc32(concat_ws('#',rowKey)) from t_order where rowKey in (1, 2, 3)";
+ String sql = "SELECT /*+ HBase */ crc32(concat_ws('#',rowKey)) FROM t_order WHERE rowKey IN (1, 2, 3)";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
assertDoesNotThrow(() -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
}
@Test
void assertExecuteSelectWithErrorInExpression() {
- String sql = "SELECT /*+ HBase */ * from t_order where rowKey in (select rowKey from t_order_item)";
+ String sql = "SELECT /*+ HBase */ * FROM t_order WHERE rowKey IN (SELECT rowKey FROM t_order_item)";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Only supported ListExpression"));
+ assertThat(ex.getMessage(), is("Only supported list expression."));
}
@Test
void assertExecuteSelectWithBetween() {
- String sql = "SELECT /*+ HBase */ * from t_order where rowKey between 1 and 2";
+ String sql = "SELECT /*+ HBase */ * FROM t_order WHERE rowKey BETWEEN 1 AND 2";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
assertDoesNotThrow(() -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
}
@Test
void assertExecuteSelectWithNotBetween() {
- String sql = "SELECT /*+ HBase */ * from t_order where rowKey not between 1 and 2";
+ String sql = "SELECT /*+ HBase */ * FROM t_order WHERE rowKey not BETWEEN 1 AND 2";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
assertThat(ex.getMessage(), is("Do not supported `not between...and...`"));
@@ -154,65 +154,65 @@ class HeterogeneousSelectStatementCheckerTest {
@Test
void assertExecuteSelectWithBetweenErrorKey() {
- String sql = "SELECT /*+ HBase */ * from t_order where age between 1 and 2";
+ String sql = "SELECT /*+ HBase */ * FROM t_order WHERE age BETWEEN 1 AND 2";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("age is not a allowed key"));
+ assertThat(ex.getMessage(), is("age is not a allowed key."));
}
@Test
void assertExecuteSelectWithErrorBetweenExpr() {
- String sql = "SELECT /*+ HBase */ * from t_order where rowKey between 1 and now()";
+ String sql = "SELECT /*+ HBase */ * FROM t_order WHERE rowKey BETWEEN 1 AND now()";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("between expr must is literal or parameter marker"));
+ assertThat(ex.getMessage(), is("Between expr must literal or parameter marker."));
}
@Test
void assertSelectWithGroupBy() {
- String sql = "SELECT /*+ HBase */ * from t_order group by order_id";
+ String sql = "SELECT /*+ HBase */ * FROM t_order GROUP BY order_id";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Do not supported group by segment"));
+ assertThat(ex.getMessage(), is("Do not supported group by segment."));
}
@Test
void assertSelectWithNotAllowOperator() {
- String sql = "select /*+ hbase */ * from t_order where rowKey != 1";
+ String sql = "SELECT /*+ hbase */ * FROM t_order WHERE rowKey != 1";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Only Supported `=` operator"));
+ assertThat(ex.getMessage(), is("Only Supported `=` operator."));
}
@Test
void assertSelectWithNotAllowColumn() {
- String sql = "select /*+ hbase */ * from t_order where age = 1";
+ String sql = "SELECT /*+ hbase */ * FROM t_order WHERE age = 1";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("age is not a allowed key"));
+ assertThat(ex.getMessage(), is("age is not a allowed key."));
}
@Test
void assertSelectWithMultipleExpression() {
- String sql = "select /*+ hbase */ * from t_order where rowKey = 1 and age = 2";
+ String sql = "SELECT /*+ hbase */ * FROM t_order WHERE rowKey = 1 AND age = 2";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Do not supported Multiple expressions"));
+ assertThat(ex.getMessage(), is("Do not supported multiple expressions."));
}
@Test
void assertSelectWithNotColumnExpression() {
- String sql = "select /*+ hbase */ * from t_order where 1 = 1";
+ String sql = "SELECT /*+ hbase */ * FROM t_order WHERE 1 = 1";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("left segment must is ColumnSegment"));
+ assertThat(ex.getMessage(), is("Left segment must column segment."));
}
@Test
void assertSelectWithParameterMarker() {
- String sql = "select /*+ hbase */ rowKey, name, ? from t_order where rowKey = 'kid'";
+ String sql = "SELECT /*+ hbase */ rowKey, name, ? FROM t_order WHERE rowKey = 'kid'";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Only supported ShorthandProjection and ColumnProjection and crc32ExpressionProjection"));
+ assertThat(ex.getMessage(), is("Only supported shorthand, column and crc32 expression projections."));
}
}
diff --git a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementCheckerTest.java b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementCheckerTest.java
index ecc058a108c..0398b3c2049 100644
--- a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementCheckerTest.java
+++ b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementCheckerTest.java
@@ -47,7 +47,7 @@ class HeterogeneousUpdateStatementCheckerTest {
String sql = "update /*+ hbase */ t_test_order set age = 10 where rowKey > 1";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Only Supported `=` operator"));
+ assertThat(ex.getMessage(), is("Only Supported `=` operator."));
}
@Test
@@ -55,7 +55,7 @@ class HeterogeneousUpdateStatementCheckerTest {
String sql = "update /*+ hbase */ t_test_order set age = 10 where age = 1";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("age is not a allowed key"));
+ assertThat(ex.getMessage(), is("age is not a allowed key."));
}
@Test
@@ -63,7 +63,7 @@ class HeterogeneousUpdateStatementCheckerTest {
String sql = "update /*+ hbase */ t_test_order set age = 10 where 1 = 1";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("left segment must is ColumnSegment"));
+ assertThat(ex.getMessage(), is("Left segment must column segment."));
}
@Test
@@ -71,7 +71,7 @@ class HeterogeneousUpdateStatementCheckerTest {
String sql = "update /*+ hbase */ t_test_order set age = 10 WHERE order_id = ? AND user_id = ? AND status=?";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Do not supported Multiple expressions"));
+ assertThat(ex.getMessage(), is("Do not supported multiple expressions."));
}
@Test
@@ -79,7 +79,7 @@ class HeterogeneousUpdateStatementCheckerTest {
String sql = "update /*+ hbase */ t_test_order set age = 10 ";
SQLStatement sqlStatement = HBaseSupportedSQLStatement.parseSQLStatement(sql);
Exception ex = assertThrows(IllegalArgumentException.class, () -> HBaseCheckerFactory.newInstance(sqlStatement).execute());
- assertThat(ex.getMessage(), is("Must Have Where Segment"));
+ assertThat(ex.getMessage(), is("Must contain where segment."));
}
@Test
diff --git a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/fixture/DatabaseProtocolFrontendEngineFixture.java b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/fixture/DatabaseProtocolFrontendEngineFixture.java
index 49ce7be91e7..9a7f3276582 100644
--- a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/fixture/DatabaseProtocolFrontendEngineFixture.java
+++ b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/fixture/DatabaseProtocolFrontendEngineFixture.java
@@ -18,16 +18,17 @@
package org.apache.shardingsphere.proxy.frontend.fixture;
import org.apache.shardingsphere.db.protocol.codec.DatabasePacketCodecEngine;
+import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.authentication.AuthenticationEngine;
import org.apache.shardingsphere.proxy.frontend.command.CommandExecuteEngine;
import org.apache.shardingsphere.proxy.frontend.spi.DatabaseProtocolFrontendEngine;
import org.apache.shardingsphere.test.fixture.infra.database.type.MockedDatabaseType;
-public final class DatabaseProtocolFrontendEngineFixture implements DatabaseProtocolFrontendEngine {
+public final class DatabaseProtocolFrontendEngineFixture implements DatabaseProtocolFrontendEngine<DatabasePacket<?>> {
@Override
- public DatabasePacketCodecEngine<?> getCodecEngine() {
+ public DatabasePacketCodecEngine<DatabasePacket<?>> getCodecEngine() {
return null;
}
@@ -37,7 +38,7 @@ public final class DatabaseProtocolFrontendEngineFixture implements DatabaseProt
}
@Override
- public CommandExecuteEngine getCommandExecuteEngine() {
+ public CommandExecuteEngine<DatabasePacket<?>> getCommandExecuteEngine() {
return null;
}
diff --git a/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecuteEngine.java b/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecuteEngine.java
index f296c327f25..f3d50cd82b4 100644
--- a/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecuteEngine.java
+++ b/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecuteEngine.java
@@ -32,8 +32,10 @@ import java.util.Optional;
/**
* Command execute engine.
+ *
+ * @param <T> type of database packet
*/
-public interface CommandExecuteEngine {
+public interface CommandExecuteEngine<T extends DatabasePacket<?>> {
/**
* Get command packet type.
@@ -70,7 +72,7 @@ public interface CommandExecuteEngine {
* @param cause cause of error
* @return error packet
*/
- DatabasePacket<?> getErrorPacket(Exception cause);
+ T getErrorPacket(Exception cause);
/**
* Get other packet.
@@ -78,7 +80,7 @@ public interface CommandExecuteEngine {
* @param connectionSession connection session
* @return other packet
*/
- Optional<DatabasePacket<?>> getOtherPacket(ConnectionSession connectionSession);
+ Optional<T> getOtherPacket(ConnectionSession connectionSession);
/**
* Write query data.
diff --git a/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/executor/CommandExecutor.java b/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/executor/CommandExecutor.java
index cc94e313f49..804a6652dff 100644
--- a/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/executor/CommandExecutor.java
+++ b/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/executor/CommandExecutor.java
@@ -24,8 +24,10 @@ import java.util.Collection;
/**
* Command executor.
+ *
+ * @param <T> type of database packet
*/
-public interface CommandExecutor {
+public interface CommandExecutor<T extends DatabasePacket<?>> {
/**
* Execute command.
@@ -33,7 +35,7 @@ public interface CommandExecutor {
* @return database packets to be sent
* @throws SQLException SQL exception
*/
- Collection<DatabasePacket<?>> execute() throws SQLException;
+ Collection<T> execute() throws SQLException;
/**
* Close command executor.
diff --git a/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/executor/QueryCommandExecutor.java b/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/executor/QueryCommandExecutor.java
index c2ee2ce0c24..3ddbebf4fc3 100644
--- a/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/executor/QueryCommandExecutor.java
+++ b/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/command/executor/QueryCommandExecutor.java
@@ -23,8 +23,10 @@ import java.sql.SQLException;
/**
* Query command executor.
+ *
+ * @param <T> type of database packet
*/
-public interface QueryCommandExecutor extends CommandExecutor {
+public interface QueryCommandExecutor<T extends DatabasePacket<?>> extends CommandExecutor<T> {
/**
* Get response type.
@@ -47,5 +49,5 @@ public interface QueryCommandExecutor extends CommandExecutor {
* @return database packet of query row
* @throws SQLException SQL exception
*/
- DatabasePacket<?> getQueryRowPacket() throws SQLException;
+ T getQueryRowPacket() throws SQLException;
}
diff --git a/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/spi/DatabaseProtocolFrontendEngine.java b/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/spi/DatabaseProtocolFrontendEngine.java
index 22c370e1f30..4829a8adb15 100644
--- a/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/spi/DatabaseProtocolFrontendEngine.java
+++ b/proxy/frontend/spi/src/main/java/org/apache/shardingsphere/proxy/frontend/spi/DatabaseProtocolFrontendEngine.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.proxy.frontend.spi;
import io.netty.channel.Channel;
import org.apache.shardingsphere.db.protocol.codec.DatabasePacketCodecEngine;
+import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.authentication.AuthenticationEngine;
import org.apache.shardingsphere.proxy.frontend.command.CommandExecuteEngine;
@@ -26,8 +27,10 @@ import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
/**
* Database protocol frontend engine.
+ *
+ * @param <T> type of database packet
*/
-public interface DatabaseProtocolFrontendEngine extends TypedSPI {
+public interface DatabaseProtocolFrontendEngine<T extends DatabasePacket<?>> extends TypedSPI {
/**
* Initialize channel.
@@ -42,7 +45,7 @@ public interface DatabaseProtocolFrontendEngine extends TypedSPI {
*
* @return database packet codec engine
*/
- DatabasePacketCodecEngine<?> getCodecEngine();
+ DatabasePacketCodecEngine<T> getCodecEngine();
/**
* Get authentication engine.
@@ -56,7 +59,7 @@ public interface DatabaseProtocolFrontendEngine extends TypedSPI {
*
* @return command execute engine
*/
- CommandExecuteEngine getCommandExecuteEngine();
+ CommandExecuteEngine<T> getCommandExecuteEngine();
/**
* Release resource.
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngine.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngine.java
index 039ce5c2443..d338aeb01aa 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngine.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngine.java
@@ -26,7 +26,6 @@ import org.apache.shardingsphere.db.protocol.mysql.netty.MySQLSequenceIdInboundH
import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.authentication.AuthenticationEngine;
-import org.apache.shardingsphere.proxy.frontend.command.CommandExecuteEngine;
import org.apache.shardingsphere.proxy.frontend.mysql.authentication.MySQLAuthenticationEngine;
import org.apache.shardingsphere.proxy.frontend.mysql.command.MySQLCommandExecuteEngine;
import org.apache.shardingsphere.proxy.frontend.mysql.command.query.binary.MySQLStatementIdGenerator;
@@ -39,11 +38,11 @@ import java.util.concurrent.atomic.AtomicInteger;
* Frontend engine for MySQL.
*/
@Getter
-public final class MySQLFrontendEngine implements DatabaseProtocolFrontendEngine {
+public final class MySQLFrontendEngine implements DatabaseProtocolFrontendEngine<MySQLPacket> {
private final AuthenticationEngine authenticationEngine = new MySQLAuthenticationEngine();
- private final CommandExecuteEngine commandExecuteEngine = new MySQLCommandExecuteEngine();
+ private final MySQLCommandExecuteEngine commandExecuteEngine = new MySQLCommandExecuteEngine();
private final DatabasePacketCodecEngine<MySQLPacket> codecEngine = new MySQLPacketCodecEngine();
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecuteEngine.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecuteEngine.java
index 2a337ca473c..617a0d4d9cf 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecuteEngine.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecuteEngine.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command;
import io.netty.channel.ChannelHandlerContext;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.MySQLCommandPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.MySQLCommandPacketTypeLoader;
@@ -45,7 +46,7 @@ import java.util.Optional;
/**
* Command execute engine for MySQL.
*/
-public final class MySQLCommandExecuteEngine implements CommandExecuteEngine {
+public final class MySQLCommandExecuteEngine implements CommandExecuteEngine<MySQLPacket> {
@Override
public MySQLCommandPacketType getCommandPacketType(final PacketPayload payload) {
@@ -65,12 +66,12 @@ public final class MySQLCommandExecuteEngine implements CommandExecuteEngine {
}
@Override
- public DatabasePacket<?> getErrorPacket(final Exception cause) {
+ public MySQLPacket getErrorPacket(final Exception cause) {
return MySQLErrPacketFactory.newInstance(cause);
}
@Override
- public Optional<DatabasePacket<?>> getOtherPacket(final ConnectionSession connectionSession) {
+ public Optional<MySQLPacket> getOtherPacket(final ConnectionSession connectionSession) {
return Optional.empty();
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComResetConnectionExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComResetConnectionExecutor.java
index c1a450fa90b..9de4824a0d0 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComResetConnectionExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComResetConnectionExecutor.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.admin;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.connector.jdbc.transaction.BackendTransactionManager;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
@@ -33,17 +33,17 @@ import java.util.Collections;
* COM_RESET_CONNECTION command executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLComResetConnectionExecutor implements CommandExecutor {
+public final class MySQLComResetConnectionExecutor implements CommandExecutor<MySQLPacket> {
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<MySQLPacket> execute() throws SQLException {
new BackendTransactionManager(connectionSession.getDatabaseConnectionManager()).rollback();
connectionSession.setAutoCommit(true);
connectionSession.setDefaultIsolationLevel(null);
connectionSession.setIsolationLevel(null);
connectionSession.getServerPreparedStatementRegistry().clear();
- return Collections.singletonList(new MySQLOKPacket(ServerStatusFlagCalculator.calculateFor(connectionSession)));
+ return Collections.singleton(new MySQLOKPacket(ServerStatusFlagCalculator.calculateFor(connectionSession)));
}
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComSetOptionExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComSetOptionExecutor.java
index d5bef2707c8..256d435052a 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComSetOptionExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComSetOptionExecutor.java
@@ -19,9 +19,9 @@ package org.apache.shardingsphere.proxy.frontend.mysql.command.admin;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLConstants;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.admin.MySQLComSetOptionPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import org.apache.shardingsphere.proxy.frontend.mysql.command.ServerStatusFlagCalculator;
@@ -33,15 +33,15 @@ import java.util.Collections;
* COM_SET_OPTION command executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLComSetOptionExecutor implements CommandExecutor {
+public final class MySQLComSetOptionExecutor implements CommandExecutor<MySQLPacket> {
private final MySQLComSetOptionPacket packet;
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() {
+ public Collection<MySQLPacket> execute() {
connectionSession.getAttributeMap().attr(MySQLConstants.MYSQL_OPTION_MULTI_STATEMENTS).set(packet.getValue());
- return Collections.singletonList(new MySQLOKPacket(ServerStatusFlagCalculator.calculateFor(connectionSession)));
+ return Collections.singleton(new MySQLOKPacket(ServerStatusFlagCalculator.calculateFor(connectionSession)));
}
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java
index 49b409e5eb0..752d288bfc3 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.proxy.frontend.mysql.command.admin.initdb;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.authority.checker.AuthorityChecker;
import org.apache.shardingsphere.authority.rule.AuthorityRule;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.admin.initdb.MySQLComInitDbPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.dialect.exception.syntax.database.UnknownDatabaseException;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
@@ -38,20 +38,20 @@ import java.util.Collections;
* COM_INIT_DB command executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLComInitDbExecutor implements CommandExecutor {
+public final class MySQLComInitDbExecutor implements CommandExecutor<MySQLPacket> {
private final MySQLComInitDbPacket packet;
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() {
+ public Collection<MySQLPacket> execute() {
String databaseName = SQLUtils.getExactlyValue(packet.getSchema());
AuthorityRule authorityRule = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getSingleRule(AuthorityRule.class);
AuthorityChecker authorityChecker = new AuthorityChecker(authorityRule, connectionSession.getGrantee());
ShardingSpherePreconditions.checkState(ProxyContext.getInstance().databaseExists(databaseName) && authorityChecker.isAuthorized(databaseName),
() -> new UnknownDatabaseException(packet.getSchema()));
connectionSession.setCurrentDatabase(packet.getSchema());
- return Collections.singletonList(new MySQLOKPacket(ServerStatusFlagCalculator.calculateFor(connectionSession)));
+ return Collections.singleton(new MySQLOKPacket(ServerStatusFlagCalculator.calculateFor(connectionSession)));
}
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/ping/MySQLComPingExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/ping/MySQLComPingExecutor.java
index eac7912a147..0c243cc2955 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/ping/MySQLComPingExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/ping/MySQLComPingExecutor.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.admin.ping;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import org.apache.shardingsphere.proxy.frontend.mysql.command.ServerStatusFlagCalculator;
@@ -31,12 +31,12 @@ import java.util.Collections;
* COM_PING executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLComPingExecutor implements CommandExecutor {
+public final class MySQLComPingExecutor implements CommandExecutor<MySQLPacket> {
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() {
- return Collections.singletonList(new MySQLOKPacket(ServerStatusFlagCalculator.calculateFor(connectionSession)));
+ public Collection<MySQLPacket> execute() {
+ return Collections.singleton(new MySQLOKPacket(ServerStatusFlagCalculator.calculateFor(connectionSession)));
}
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/quit/MySQLComQuitExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/quit/MySQLComQuitExecutor.java
index 004605d83a4..ed2105b72d2 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/quit/MySQLComQuitExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/quit/MySQLComQuitExecutor.java
@@ -17,8 +17,8 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.admin.quit;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import java.util.Collection;
@@ -27,10 +27,10 @@ import java.util.Collections;
/**
* COM_QUIT executor for MySQL.
*/
-public final class MySQLComQuitExecutor implements CommandExecutor {
+public final class MySQLComQuitExecutor implements CommandExecutor<MySQLPacket> {
@Override
- public Collection<DatabasePacket<?>> execute() {
- return Collections.singletonList(new MySQLOKPacket(0));
+ public Collection<MySQLPacket> execute() {
+ return Collections.singleton(new MySQLOKPacket(0));
}
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/generic/MySQLUnsupportedCommandExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/generic/MySQLUnsupportedCommandExecutor.java
index 69efbcece67..256e3e5ef62 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/generic/MySQLUnsupportedCommandExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/generic/MySQLUnsupportedCommandExecutor.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.generic;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.MySQLCommandPacketType;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import org.apache.shardingsphere.proxy.frontend.exception.UnsupportedCommandException;
@@ -29,12 +29,12 @@ import java.util.Collection;
* Unsupported command packet executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLUnsupportedCommandExecutor implements CommandExecutor {
+public final class MySQLUnsupportedCommandExecutor implements CommandExecutor<MySQLPacket> {
private final MySQLCommandPacketType type;
@Override
- public Collection<DatabasePacket<?>> execute() {
+ public Collection<MySQLPacket> execute() {
throw new UnsupportedCommandException(type.toString());
}
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/MySQLComStmtSendLongDataExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/MySQLComStmtSendLongDataExecutor.java
index a76cb2222b3..34a63b7a50c 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/MySQLComStmtSendLongDataExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/MySQLComStmtSendLongDataExecutor.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.query.binary;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.MySQLComStmtSendLongDataPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
@@ -30,14 +30,14 @@ import java.util.Collections;
* COM_STMT_SEND_LONG_DATA command executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLComStmtSendLongDataExecutor implements CommandExecutor {
+public final class MySQLComStmtSendLongDataExecutor implements CommandExecutor<MySQLPacket> {
private final MySQLComStmtSendLongDataPacket packet;
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() {
+ public Collection<MySQLPacket> execute() {
MySQLServerPreparedStatement preparedStatement = connectionSession.getServerPreparedStatementRegistry().getPreparedStatement(packet.getStatementId());
preparedStatement.getLongData().put(packet.getParamId(), packet.getData());
return Collections.emptyList();
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/close/MySQLComStmtCloseExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/close/MySQLComStmtCloseExecutor.java
index 1a7cdd9c22a..a5626ef499f 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/close/MySQLComStmtCloseExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/close/MySQLComStmtCloseExecutor.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.query.binary.close;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.close.MySQLComStmtClosePacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
@@ -30,14 +30,14 @@ import java.util.Collections;
* COM_STMT_CLOSE command executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLComStmtCloseExecutor implements CommandExecutor {
+public final class MySQLComStmtCloseExecutor implements CommandExecutor<MySQLPacket> {
private final MySQLComStmtClosePacket packet;
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() {
+ public Collection<MySQLPacket> execute() {
connectionSession.getServerPreparedStatementRegistry().removePreparedStatement(packet.getStatementId());
return Collections.emptyList();
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
index 0ac35bcfcce..24fdfcc0279 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
@@ -27,12 +27,11 @@ import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLNewParametersBo
import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.execute.MySQLBinaryResultSetRowPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.execute.MySQLComStmtExecutePacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
-import org.apache.shardingsphere.infra.session.query.QueryContext;
import org.apache.shardingsphere.infra.binder.aware.ParameterAware;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.hint.HintValueContext;
+import org.apache.shardingsphere.infra.session.query.QueryContext;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandlerFactory;
@@ -57,7 +56,7 @@ import java.util.List;
* COM_STMT_EXECUTE command executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLComStmtExecuteExecutor implements QueryCommandExecutor {
+public final class MySQLComStmtExecuteExecutor implements QueryCommandExecutor<MySQLPacket> {
private final MySQLComStmtExecutePacket packet;
@@ -69,7 +68,7 @@ public final class MySQLComStmtExecuteExecutor implements QueryCommandExecutor {
private ResponseType responseType;
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<MySQLPacket> execute() throws SQLException {
MySQLServerPreparedStatement preparedStatement = updateAndGetPreparedStatement();
List<Object> params = packet.readParameters(preparedStatement.getParameterTypes(), preparedStatement.getLongData().keySet(), preparedStatement.getParameterColumnDefinitionFlags());
preparedStatement.getLongData().forEach(params::set);
@@ -93,13 +92,13 @@ public final class MySQLComStmtExecuteExecutor implements QueryCommandExecutor {
return result;
}
- private Collection<DatabasePacket<?>> processQuery(final QueryResponseHeader queryResponseHeader) {
+ private Collection<MySQLPacket> processQuery(final QueryResponseHeader queryResponseHeader) {
responseType = ResponseType.QUERY;
int characterSet = connectionSession.getAttributeMap().attr(MySQLConstants.MYSQL_CHARACTER_SET_ATTRIBUTE_KEY).get().getId();
return ResponsePacketBuilder.buildQueryResponsePackets(queryResponseHeader, characterSet, ServerStatusFlagCalculator.calculateFor(connectionSession));
}
- private Collection<DatabasePacket<?>> processUpdate(final UpdateResponseHeader updateResponseHeader) {
+ private Collection<MySQLPacket> processUpdate(final UpdateResponseHeader updateResponseHeader) {
responseType = ResponseType.UPDATE;
return ResponsePacketBuilder.buildUpdateResponsePackets(updateResponseHeader, ServerStatusFlagCalculator.calculateFor(connectionSession));
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
index 89be752b0cc..c88dcb5b5e1 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
@@ -20,13 +20,13 @@ package org.apache.shardingsphere.proxy.frontend.mysql.command.query.binary.prep
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLBinaryColumnType;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLConstants;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.admin.MySQLComSetOptionPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.MySQLColumnDefinitionFlag;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.prepare.MySQLComStmtPrepareOKPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.prepare.MySQLComStmtPreparePacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLEofPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.dialect.mysql.exception.UnsupportedPreparedStatementException;
import org.apache.shardingsphere.infra.binder.SQLStatementContextFactory;
import org.apache.shardingsphere.infra.binder.segment.select.projection.Projection;
@@ -65,14 +65,14 @@ import java.util.stream.Collectors;
* COM_STMT_PREPARE command executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLComStmtPrepareExecutor implements CommandExecutor {
+public final class MySQLComStmtPrepareExecutor implements CommandExecutor<MySQLPacket> {
private final MySQLComStmtPreparePacket packet;
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() {
+ public Collection<MySQLPacket> execute() {
failedIfContainsMultiStatements();
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
SQLParserRule sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().getSingleRule(SQLParserRule.class);
@@ -97,8 +97,8 @@ public final class MySQLComStmtPrepareExecutor implements CommandExecutor {
}
}
- private Collection<DatabasePacket<?>> createPackets(final SQLStatementContext sqlStatementContext, final int statementId, final MySQLServerPreparedStatement serverPreparedStatement) {
- Collection<DatabasePacket<?>> result = new LinkedList<>();
+ private Collection<MySQLPacket> createPackets(final SQLStatementContext sqlStatementContext, final int statementId, final MySQLServerPreparedStatement serverPreparedStatement) {
+ Collection<MySQLPacket> result = new LinkedList<>();
List<Projection> projections = getProjections(sqlStatementContext);
int parameterCount = sqlStatementContext.getSqlStatement().getParameterCount();
result.add(new MySQLComStmtPrepareOKPacket(statementId, projections.size(), parameterCount, 0));
@@ -119,12 +119,12 @@ public final class MySQLComStmtPrepareExecutor implements CommandExecutor {
return sqlStatementContext instanceof SelectStatementContext ? ((SelectStatementContext) sqlStatementContext).getProjectionsContext().getExpandProjections() : Collections.emptyList();
}
- private Collection<DatabasePacket<?>> createParameterColumnDefinition41Packets(final SQLStatementContext sqlStatementContext, final int characterSet,
- final MySQLServerPreparedStatement serverPreparedStatement) {
+ private Collection<MySQLPacket> createParameterColumnDefinition41Packets(final SQLStatementContext sqlStatementContext, final int characterSet,
+ final MySQLServerPreparedStatement serverPreparedStatement) {
Map<ParameterMarkerSegment, ShardingSphereColumn> columnsOfParameterMarkers =
MySQLComStmtPrepareParameterMarkerExtractor.findColumnsOfParameterMarkers(sqlStatementContext.getSqlStatement(), getSchema(sqlStatementContext));
Collection<ParameterMarkerSegment> parameterMarkerSegments = ((AbstractSQLStatement) sqlStatementContext.getSqlStatement()).getParameterMarkerSegments();
- Collection<DatabasePacket<?>> result = new ArrayList<>(parameterMarkerSegments.size());
+ Collection<MySQLPacket> result = new ArrayList<>(parameterMarkerSegments.size());
for (ParameterMarkerSegment each : parameterMarkerSegments) {
ShardingSphereColumn column = columnsOfParameterMarkers.get(each);
if (null != column) {
@@ -139,12 +139,12 @@ public final class MySQLComStmtPrepareExecutor implements CommandExecutor {
return result;
}
- private Collection<DatabasePacket<?>> createProjectionColumnDefinition41Packets(final SelectStatementContext selectStatementContext, final int characterSet) {
+ private Collection<MySQLPacket> createProjectionColumnDefinition41Packets(final SelectStatementContext selectStatementContext, final int characterSet) {
Collection<Projection> projections = selectStatementContext.getProjectionsContext().getExpandProjections();
ShardingSphereSchema schema = getSchema(selectStatementContext);
Map<String, String> columnToTableMap = selectStatementContext.getTablesContext()
.findTableNamesByColumnProjection(projections.stream().filter(ColumnProjection.class::isInstance).map(ColumnProjection.class::cast).collect(Collectors.toList()), schema);
- Collection<DatabasePacket<?>> result = new ArrayList<>(projections.size());
+ Collection<MySQLPacket> result = new ArrayList<>(projections.size());
for (Projection each : projections) {
// TODO Calculate column definition flag for other projection types
if (each instanceof ColumnProjection) {
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutor.java
index 6635b0c700e..c8270482fd0 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutor.java
@@ -18,9 +18,9 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.query.binary.reset;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.reset.MySQLComStmtResetPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import org.apache.shardingsphere.proxy.frontend.mysql.command.ServerStatusFlagCalculator;
@@ -33,14 +33,14 @@ import java.util.Collections;
* COM_STMT_RESET command executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLComStmtResetExecutor implements CommandExecutor {
+public final class MySQLComStmtResetExecutor implements CommandExecutor<MySQLPacket> {
private final MySQLComStmtResetPacket packet;
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() {
+ public Collection<MySQLPacket> execute() {
connectionSession.getServerPreparedStatementRegistry().<MySQLServerPreparedStatement>getPreparedStatement(packet.getStatementId()).getLongData().clear();
return Collections.singleton(new MySQLOKPacket(ServerStatusFlagCalculator.calculateFor(connectionSession)));
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/builder/ResponsePacketBuilder.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/builder/ResponsePacketBuilder.java
index 6f69315b3fd..a1f538ac726 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/builder/ResponsePacketBuilder.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/builder/ResponsePacketBuilder.java
@@ -20,12 +20,12 @@ package org.apache.shardingsphere.proxy.frontend.mysql.command.query.builder;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLBinaryColumnType;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.MySQLColumnDefinitionFlag;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.MySQLFieldCountPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLEofPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
@@ -53,8 +53,8 @@ public final class ResponsePacketBuilder {
* @param statusFlags server status flags
* @return query response packets
*/
- public static Collection<DatabasePacket<?>> buildQueryResponsePackets(final QueryResponseHeader queryResponseHeader, final int characterSet, final int statusFlags) {
- Collection<DatabasePacket<?>> result = new LinkedList<>();
+ public static Collection<MySQLPacket> buildQueryResponsePackets(final QueryResponseHeader queryResponseHeader, final int characterSet, final int statusFlags) {
+ Collection<MySQLPacket> result = new LinkedList<>();
List<QueryHeader> queryHeaders = queryResponseHeader.getQueryHeaders();
result.add(new MySQLFieldCountPacket(queryHeaders.size()));
for (QueryHeader each : queryHeaders) {
@@ -92,7 +92,7 @@ public final class ResponsePacketBuilder {
* @param serverStatusFlag server status flag
* @return update response packets
*/
- public static Collection<DatabasePacket<?>> buildUpdateResponsePackets(final UpdateResponseHeader updateResponseHeader, final int serverStatusFlag) {
- return Collections.singletonList(new MySQLOKPacket(updateResponseHeader.getUpdateCount(), updateResponseHeader.getLastInsertId(), serverStatusFlag));
+ public static Collection<MySQLPacket> buildUpdateResponsePackets(final UpdateResponseHeader updateResponseHeader, final int serverStatusFlag) {
+ return Collections.singleton(new MySQLOKPacket(updateResponseHeader.getUpdateCount(), updateResponseHeader.getLastInsertId(), serverStatusFlag));
}
}
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java
index 9504e9333bc..e5e2eb8b67a 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java
@@ -20,20 +20,20 @@ package org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.fieldl
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLBinaryColumnType;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLConstants;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.text.fieldlist.MySQLComFieldListPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLEofPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
-import org.apache.shardingsphere.infra.session.query.QueryContext;
import org.apache.shardingsphere.infra.binder.SQLStatementContextFactory;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.session.query.QueryContext;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.parser.rule.SQLParserRule;
-import org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
import org.apache.shardingsphere.proxy.backend.connector.DatabaseConnector;
import org.apache.shardingsphere.proxy.backend.connector.DatabaseConnectorFactory;
+import org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
@@ -49,7 +49,7 @@ import java.util.LinkedList;
* COM_FIELD_LIST packet executor for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLComFieldListPacketExecutor implements CommandExecutor {
+public final class MySQLComFieldListPacketExecutor implements CommandExecutor<MySQLPacket> {
private static final String SQL = "SHOW COLUMNS FROM %s FROM %s";
@@ -60,7 +60,7 @@ public final class MySQLComFieldListPacketExecutor implements CommandExecutor {
private DatabaseConnector databaseConnector;
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<MySQLPacket> execute() throws SQLException {
String databaseName = connectionSession.getDefaultDatabaseName();
String sql = String.format(SQL, packet.getTable(), databaseName);
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
@@ -74,8 +74,8 @@ public final class MySQLComFieldListPacketExecutor implements CommandExecutor {
return createColumnDefinition41Packets(databaseName);
}
- private Collection<DatabasePacket<?>> createColumnDefinition41Packets(final String databaseName) throws SQLException {
- Collection<DatabasePacket<?>> result = new LinkedList<>();
+ private Collection<MySQLPacket> createColumnDefinition41Packets(final String databaseName) throws SQLException {
+ Collection<MySQLPacket> result = new LinkedList<>();
int characterSet = connectionSession.getAttributeMap().attr(MySQLConstants.MYSQL_CHARACTER_SET_ATTRIBUTE_KEY).get().getId();
while (databaseConnector.next()) {
String columnName = databaseConnector.getRowData().getCells().iterator().next().getData().toString();
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutor.java
index 7f6e0ebccc8..c029f18ea34 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutor.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutor.java
@@ -23,7 +23,6 @@ import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.admin.MySQLComSetOptionPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.text.MySQLTextResultSetRowPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.text.query.MySQLComQueryPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
@@ -51,7 +50,7 @@ import java.util.Collection;
/**
* COM_QUERY command packet executor for MySQL.
*/
-public final class MySQLComQueryPacketExecutor implements QueryCommandExecutor {
+public final class MySQLComQueryPacketExecutor implements QueryCommandExecutor<MySQLPacket> {
private final ConnectionSession connectionSession;
@@ -65,19 +64,19 @@ public final class MySQLComQueryPacketExecutor implements QueryCommandExecutor {
public MySQLComQueryPacketExecutor(final MySQLComQueryPacket packet, final ConnectionSession connectionSession) throws SQLException {
this.connectionSession = connectionSession;
DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL");
- SQLStatement sqlStatement = parseSql(packet.getSql(), databaseType);
+ SQLStatement sqlStatement = parseSQL(packet.getSql(), databaseType);
proxyBackendHandler = areMultiStatements(connectionSession, sqlStatement, packet.getSql()) ? new MySQLMultiStatementsHandler(connectionSession, sqlStatement, packet.getSql())
: ProxyBackendHandlerFactory.newInstance(databaseType, packet.getSql(), sqlStatement, connectionSession, packet.getHintValueContext());
characterSet = connectionSession.getAttributeMap().attr(MySQLConstants.MYSQL_CHARACTER_SET_ATTRIBUTE_KEY).get().getId();
}
- private SQLStatement parseSql(final String sql, final DatabaseType databaseType) {
+ private SQLStatement parseSQL(final String sql, final DatabaseType databaseType) {
if (SQLUtils.trimComment(sql).isEmpty()) {
return new EmptyStatement();
}
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- SQLParserRule sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().getSingleRule(SQLParserRule.class);
- return sqlParserRule.getSQLParserEngine(databaseType.getType()).parse(sql, false);
+ SQLParserRule rule = metaDataContexts.getMetaData().getGlobalRuleMetaData().getSingleRule(SQLParserRule.class);
+ return rule.getSQLParserEngine(databaseType.getType()).parse(sql, false);
}
private boolean areMultiStatements(final ConnectionSession connectionSession, final SQLStatement sqlStatement, final String sql) {
@@ -88,7 +87,7 @@ public final class MySQLComQueryPacketExecutor implements QueryCommandExecutor {
}
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<MySQLPacket> execute() throws SQLException {
ResponseHeader responseHeader = proxyBackendHandler.execute();
if (responseHeader instanceof QueryResponseHeader) {
return processQuery((QueryResponseHeader) responseHeader);
@@ -97,12 +96,12 @@ public final class MySQLComQueryPacketExecutor implements QueryCommandExecutor {
return processUpdate((UpdateResponseHeader) responseHeader);
}
- private Collection<DatabasePacket<?>> processQuery(final QueryResponseHeader queryResponseHeader) {
+ private Collection<MySQLPacket> processQuery(final QueryResponseHeader queryResponseHeader) {
responseType = ResponseType.QUERY;
return ResponsePacketBuilder.buildQueryResponsePackets(queryResponseHeader, characterSet, ServerStatusFlagCalculator.calculateFor(connectionSession));
}
- private Collection<DatabasePacket<?>> processUpdate(final UpdateResponseHeader updateResponseHeader) {
+ private Collection<MySQLPacket> processUpdate(final UpdateResponseHeader updateResponseHeader) {
return ResponsePacketBuilder.buildUpdateResponsePackets(updateResponseHeader, ServerStatusFlagCalculator.calculateFor(connectionSession));
}
diff --git a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComResetConnectionExecutorTest.java b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComResetConnectionExecutorTest.java
index 8d982db486c..1ac16955b18 100644
--- a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComResetConnectionExecutorTest.java
+++ b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComResetConnectionExecutorTest.java
@@ -17,8 +17,8 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.admin;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
import org.apache.shardingsphere.proxy.backend.connector.jdbc.transaction.BackendTransactionManager;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -56,7 +56,7 @@ class MySQLComResetConnectionExecutorTest {
when(connectionSession.getServerPreparedStatementRegistry()).thenReturn(new ServerPreparedStatementRegistry());
int statementId = 1;
connectionSession.getServerPreparedStatementRegistry().addPreparedStatement(statementId, new MySQLServerPreparedStatement("", null, Collections.emptyList()));
- Collection<DatabasePacket<?>> actual = new MySQLComResetConnectionExecutor(connectionSession).execute();
+ Collection<MySQLPacket> actual = new MySQLComResetConnectionExecutor(connectionSession).execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), instanceOf(MySQLOKPacket.class));
verify(connectionSession).setAutoCommit(true);
diff --git a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComSetOptionExecutorTest.java b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComSetOptionExecutorTest.java
index 7dc9cf34ab0..1d5ba1da1da 100644
--- a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComSetOptionExecutorTest.java
+++ b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/MySQLComSetOptionExecutorTest.java
@@ -19,9 +19,9 @@ package org.apache.shardingsphere.proxy.frontend.mysql.command.admin;
import io.netty.util.Attribute;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLConstants;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.admin.MySQLComSetOptionPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -57,7 +57,7 @@ class MySQLComSetOptionExecutorTest {
void assertExecute() {
when(packet.getValue()).thenReturn(MySQLComSetOptionPacket.MYSQL_OPTION_MULTI_STATEMENTS_ON);
when(connectionSession.getAttributeMap().attr(MySQLConstants.MYSQL_OPTION_MULTI_STATEMENTS)).thenReturn(attribute);
- Collection<DatabasePacket<?>> actual = executor.execute();
+ Collection<MySQLPacket> actual = executor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), instanceOf(MySQLOKPacket.class));
verify(attribute).set(MySQLComSetOptionPacket.MYSQL_OPTION_MULTI_STATEMENTS_ON);
diff --git a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/MySQLComStmtSendLongDataExecutorTest.java b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/MySQLComStmtSendLongDataExecutorTest.java
index 6559f1078f5..a60ea203bf7 100644
--- a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/MySQLComStmtSendLongDataExecutorTest.java
+++ b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/MySQLComStmtSendLongDataExecutorTest.java
@@ -17,8 +17,8 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.query.binary;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.MySQLComStmtSendLongDataPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.session.ServerPreparedStatementRegistry;
@@ -47,7 +47,7 @@ class MySQLComStmtSendLongDataExecutorTest {
MySQLServerPreparedStatement preparedStatement = new MySQLServerPreparedStatement("insert into t (b) values (?)", mock(SQLStatementContext.class), Collections.emptyList());
connectionSession.getServerPreparedStatementRegistry().addPreparedStatement(1, preparedStatement);
MySQLComStmtSendLongDataExecutor executor = new MySQLComStmtSendLongDataExecutor(packet, connectionSession);
- Collection<DatabasePacket<?>> actual = executor.execute();
+ Collection<MySQLPacket> actual = executor.execute();
assertThat(actual, is(Collections.emptyList()));
assertThat(preparedStatement.getLongData(), is(Collections.singletonMap(0, data)));
}
diff --git a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
index c5a90a0f111..82fc5bd9741 100644
--- a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
+++ b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
@@ -27,7 +27,6 @@ import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.e
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.execute.MySQLComStmtExecutePacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLEofPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.statement.UnknownSQLStatementContext;
import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
@@ -144,7 +143,7 @@ class MySQLComStmtExecuteExecutorTest {
when(proxyBackendHandler.next()).thenReturn(true, false);
when(proxyBackendHandler.getRowData()).thenReturn(new QueryResponseRow(Collections.singletonList(new QueryResponseCell(Types.INTEGER, 1))));
when(ProxyBackendHandlerFactory.newInstance(any(MySQLDatabaseType.class), any(QueryContext.class), eq(connectionSession), anyBoolean())).thenReturn(proxyBackendHandler);
- Iterator<DatabasePacket<?>> actual = executor.execute().iterator();
+ Iterator<MySQLPacket> actual = executor.execute().iterator();
assertThat(executor.getResponseType(), is(ResponseType.QUERY));
assertThat(actual.next(), instanceOf(MySQLFieldCountPacket.class));
assertThat(actual.next(), instanceOf(MySQLColumnDefinition41Packet.class));
@@ -165,7 +164,7 @@ class MySQLComStmtExecuteExecutorTest {
MySQLComStmtExecuteExecutor executor = new MySQLComStmtExecuteExecutor(packet, connectionSession);
when(proxyBackendHandler.execute()).thenReturn(new UpdateResponseHeader(new MySQLUpdateStatement()));
when(ProxyBackendHandlerFactory.newInstance(any(MySQLDatabaseType.class), any(QueryContext.class), eq(connectionSession), anyBoolean())).thenReturn(proxyBackendHandler);
- Iterator<DatabasePacket<?>> actual = executor.execute().iterator();
+ Iterator<MySQLPacket> actual = executor.execute().iterator();
assertThat(executor.getResponseType(), is(ResponseType.UPDATE));
assertThat(actual.next(), instanceOf(MySQLOKPacket.class));
assertFalse(actual.hasNext());
@@ -179,7 +178,7 @@ class MySQLComStmtExecuteExecutorTest {
ProxyBackendHandler proxyBackendHandler = mock(ProxyBackendHandler.class);
when(proxyBackendHandler.execute()).thenReturn(new UpdateResponseHeader(new MySQLCommitStatement()));
when(ProxyBackendHandlerFactory.newInstance(any(MySQLDatabaseType.class), any(QueryContext.class), eq(connectionSession), eq(true))).thenReturn(proxyBackendHandler);
- Iterator<DatabasePacket<?>> actual = executor.execute().iterator();
+ Iterator<MySQLPacket> actual = executor.execute().iterator();
assertThat(executor.getResponseType(), is(ResponseType.UPDATE));
assertThat(actual.next(), instanceOf(MySQLOKPacket.class));
assertFalse(actual.hasNext());
diff --git a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutorTest.java b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutorTest.java
index 20c5795ebbf..f44fd090e86 100644
--- a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutorTest.java
+++ b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutorTest.java
@@ -21,6 +21,7 @@ import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLCharacterSet;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLConstants;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.MySQLColumnDefinitionFlag;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.prepare.MySQLComStmtPrepareOKPacket;
@@ -108,7 +109,7 @@ class MySQLComStmtPrepareExecutorTest {
MySQLStatementIdGenerator.getInstance().registerConnection(1);
ContextManager contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- Iterator<DatabasePacket<?>> actualIterator = new MySQLComStmtPrepareExecutor(packet, connectionSession).execute().iterator();
+ Iterator<MySQLPacket> actualIterator = new MySQLComStmtPrepareExecutor(packet, connectionSession).execute().iterator();
assertThat(actualIterator.next(), instanceOf(MySQLComStmtPrepareOKPacket.class));
assertThat(actualIterator.next(), instanceOf(MySQLColumnDefinition41Packet.class));
assertThat(actualIterator.next(), instanceOf(MySQLEofPacket.class));
@@ -131,7 +132,7 @@ class MySQLComStmtPrepareExecutorTest {
MySQLStatementIdGenerator.getInstance().registerConnection(connectionId);
ContextManager contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- Iterator<DatabasePacket<?>> actualIterator = new MySQLComStmtPrepareExecutor(packet, connectionSession).execute().iterator();
+ Iterator<MySQLPacket> actualIterator = new MySQLComStmtPrepareExecutor(packet, connectionSession).execute().iterator();
assertThat(actualIterator.next(), instanceOf(MySQLComStmtPrepareOKPacket.class));
assertThat(actualIterator.next(), instanceOf(MySQLColumnDefinition41Packet.class));
assertThat(actualIterator.next(), instanceOf(MySQLEofPacket.class));
@@ -163,7 +164,7 @@ class MySQLComStmtPrepareExecutorTest {
MySQLStatementIdGenerator.getInstance().registerConnection(connectionId);
ContextManager contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- Iterator<DatabasePacket<?>> actualIterator = new MySQLComStmtPrepareExecutor(packet, connectionSession).execute().iterator();
+ Iterator<MySQLPacket> actualIterator = new MySQLComStmtPrepareExecutor(packet, connectionSession).execute().iterator();
assertThat(actualIterator.next(), instanceOf(MySQLComStmtPrepareOKPacket.class));
assertThat(actualIterator.next(), instanceOf(MySQLColumnDefinition41Packet.class));
DatabasePacket<?> firstAgeColumnDefinitionPacket = actualIterator.next();
@@ -200,7 +201,7 @@ class MySQLComStmtPrepareExecutorTest {
MySQLStatementIdGenerator.getInstance().registerConnection(1);
ContextManager contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- Iterator<DatabasePacket<?>> actualIterator = new MySQLComStmtPrepareExecutor(packet, connectionSession).execute().iterator();
+ Iterator<MySQLPacket> actualIterator = new MySQLComStmtPrepareExecutor(packet, connectionSession).execute().iterator();
assertThat(actualIterator.next(), instanceOf(MySQLComStmtPrepareOKPacket.class));
assertThat(actualIterator.next(), instanceOf(MySQLColumnDefinition41Packet.class));
assertThat(actualIterator.next(), instanceOf(MySQLColumnDefinition41Packet.class));
diff --git a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutorTest.java b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutorTest.java
index 0c25ea52d7b..e0548379544 100644
--- a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutorTest.java
+++ b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutorTest.java
@@ -17,9 +17,9 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.query.binary.reset;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.reset.MySQLComStmtResetPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.session.ServerPreparedStatementRegistry;
@@ -50,8 +50,8 @@ class MySQLComStmtResetExecutorTest {
connectionSession.getServerPreparedStatementRegistry().addPreparedStatement(1, preparedStatement);
MySQLComStmtResetPacket packet = mock(MySQLComStmtResetPacket.class);
when(packet.getStatementId()).thenReturn(1);
- MySQLComStmtResetExecutor mysqlComStmtResetExecutor = new MySQLComStmtResetExecutor(packet, connectionSession);
- Collection<DatabasePacket<?>> actual = mysqlComStmtResetExecutor.execute();
+ MySQLComStmtResetExecutor executor = new MySQLComStmtResetExecutor(packet, connectionSession);
+ Collection<MySQLPacket> actual = executor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), instanceOf(MySQLOKPacket.class));
assertTrue(preparedStatement.getLongData().isEmpty());
diff --git a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/builder/ResponsePacketBuilderTest.java b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/builder/ResponsePacketBuilderTest.java
index 56d59b7306e..557d358511e 100644
--- a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/builder/ResponsePacketBuilderTest.java
+++ b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/builder/ResponsePacketBuilderTest.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.proxy.frontend.mysql.command.query.builder;
import io.netty.buffer.Unpooled;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.MySQLFieldCountPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLEofPacket;
@@ -51,7 +52,7 @@ class ResponsePacketBuilderTest {
QueryHeader queryHeader2 = new QueryHeader("schema2", "table2", "columnLabel2", "columnName2", 8, "VARCHAR", 7, 9, false, true, true, true);
List<QueryHeader> queryHeaders = Arrays.asList(queryHeader1, queryHeader2);
QueryResponseHeader queryResponseHeader = new QueryResponseHeader(queryHeaders);
- Collection<DatabasePacket<?>> actual = ResponsePacketBuilder.buildQueryResponsePackets(queryResponseHeader, 255, 0);
+ Collection<MySQLPacket> actual = ResponsePacketBuilder.buildQueryResponsePackets(queryResponseHeader, 255, 0);
assertTrue(actual.stream().findAny().isPresent());
assertThat(actual.stream().findAny().get(), anyOf(instanceOf(MySQLFieldCountPacket.class), instanceOf(MySQLColumnDefinition41Packet.class), instanceOf(MySQLEofPacket.class)));
}
@@ -61,7 +62,7 @@ class ResponsePacketBuilderTest {
UpdateResponseHeader updateResponseHeader = mock(UpdateResponseHeader.class);
when(updateResponseHeader.getUpdateCount()).thenReturn(10L);
when(updateResponseHeader.getLastInsertId()).thenReturn(100L);
- Collection<DatabasePacket<?>> actual = ResponsePacketBuilder.buildUpdateResponsePackets(updateResponseHeader, 0);
+ Collection<MySQLPacket> actual = ResponsePacketBuilder.buildUpdateResponsePackets(updateResponseHeader, 0);
assertTrue(actual.stream().findAny().isPresent());
MySQLOKPacket actualItem = (MySQLOKPacket) actual.stream().findAny().get();
assertThat(actualItem, instanceOf(MySQLOKPacket.class));
diff --git a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
index e14e1f8e1f7..7fcb2611c12 100644
--- a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
+++ b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
@@ -19,10 +19,10 @@ package org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLCharacterSet;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLConstants;
+import org.apache.shardingsphere.db.protocol.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.text.MySQLTextResultSetRowPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.command.query.text.query.MySQLComQueryPacket;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -126,7 +126,7 @@ class MySQLComQueryPacketExecutorTest {
MemberAccessor accessor = Plugins.getMemberAccessor();
accessor.set(MySQLComQueryPacketExecutor.class.getDeclaredField("proxyBackendHandler"), actual, proxyBackendHandler);
when(proxyBackendHandler.execute()).thenReturn(new UpdateResponseHeader(mock(SQLStatement.class)));
- Collection<DatabasePacket<?>> actualPackets = actual.execute();
+ Collection<MySQLPacket> actualPackets = actual.execute();
assertThat(actualPackets.size(), is(1));
assertThat(actualPackets.iterator().next(), instanceOf(MySQLOKPacket.class));
}
diff --git a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/OpenGaussFrontendEngine.java b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/OpenGaussFrontendEngine.java
index 27fb277cfc6..2296eedd540 100644
--- a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/OpenGaussFrontendEngine.java
+++ b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/OpenGaussFrontendEngine.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.proxy.frontend.opengauss;
import lombok.AccessLevel;
import lombok.Getter;
import org.apache.shardingsphere.db.protocol.opengauss.codec.OpenGaussPacketCodecEngine;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.dialect.exception.transaction.InTransactionException;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.opengauss.authentication.OpenGaussAuthenticationEngine;
@@ -31,7 +32,7 @@ import org.apache.shardingsphere.proxy.frontend.spi.DatabaseProtocolFrontendEngi
* Frontend engine for openGauss.
*/
@Getter
-public final class OpenGaussFrontendEngine implements DatabaseProtocolFrontendEngine {
+public final class OpenGaussFrontendEngine implements DatabaseProtocolFrontendEngine<PostgreSQLPacket> {
@Getter(AccessLevel.NONE)
private final PostgreSQLFrontendEngine postgreSQLFrontendEngine = new PostgreSQLFrontendEngine();
diff --git a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecuteEngine.java b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecuteEngine.java
index 95890e4d5bc..0885be8ec32 100644
--- a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecuteEngine.java
+++ b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecuteEngine.java
@@ -22,8 +22,8 @@ import org.apache.shardingsphere.db.protocol.opengauss.packet.command.OpenGaussC
import org.apache.shardingsphere.db.protocol.opengauss.packet.command.OpenGaussCommandPacketType;
import org.apache.shardingsphere.db.protocol.packet.CommandPacket;
import org.apache.shardingsphere.db.protocol.packet.CommandPacketType;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.db.protocol.payload.PacketPayload;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacket;
import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacketPayload;
import org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
@@ -32,8 +32,8 @@ import org.apache.shardingsphere.proxy.frontend.command.CommandExecuteEngine;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import org.apache.shardingsphere.proxy.frontend.command.executor.QueryCommandExecutor;
import org.apache.shardingsphere.proxy.frontend.opengauss.err.OpenGaussErrorPacketFactory;
-import org.apache.shardingsphere.proxy.frontend.postgresql.command.PostgreSQLCommandExecuteEngine;
import org.apache.shardingsphere.proxy.frontend.postgresql.command.PortalContext;
+import org.apache.shardingsphere.proxy.frontend.postgresql.command.PostgreSQLCommandExecuteEngine;
import org.apache.shardingsphere.proxy.frontend.postgresql.command.PostgreSQLPortalContextRegistry;
import java.sql.SQLException;
@@ -42,7 +42,7 @@ import java.util.Optional;
/**
* Command execute engine for openGauss.
*/
-public final class OpenGaussCommandExecuteEngine implements CommandExecuteEngine {
+public final class OpenGaussCommandExecuteEngine implements CommandExecuteEngine<PostgreSQLPacket> {
private final PostgreSQLCommandExecuteEngine postgreSQLCommandExecuteEngine = new PostgreSQLCommandExecuteEngine();
@@ -63,12 +63,12 @@ public final class OpenGaussCommandExecuteEngine implements CommandExecuteEngine
}
@Override
- public DatabasePacket<?> getErrorPacket(final Exception cause) {
+ public PostgreSQLPacket getErrorPacket(final Exception cause) {
return OpenGaussErrorPacketFactory.newInstance(cause);
}
@Override
- public Optional<DatabasePacket<?>> getOtherPacket(final ConnectionSession connectionSession) {
+ public Optional<PostgreSQLPacket> getOtherPacket(final ConnectionSession connectionSession) {
return postgreSQLCommandExecuteEngine.getOtherPacket(connectionSession);
}
diff --git a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecutorFactory.java b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecutorFactory.java
index 1d5d1410c53..3e9b5e9eb9c 100644
--- a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecutorFactory.java
+++ b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecutorFactory.java
@@ -23,6 +23,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.db.protocol.opengauss.packet.command.OpenGaussCommandPacketType;
import org.apache.shardingsphere.db.protocol.opengauss.packet.command.query.extended.bind.OpenGaussComBatchBindPacket;
import org.apache.shardingsphere.db.protocol.packet.CommandPacketType;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacketType;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLAggregatedCommandPacket;
@@ -70,8 +71,8 @@ public final class OpenGaussCommandExecutorFactory {
* @return created instance
* @throws SQLException SQL exception
*/
- public static CommandExecutor newInstance(final CommandPacketType commandPacketType, final PostgreSQLCommandPacket commandPacket,
- final ConnectionSession connectionSession, final PortalContext portalContext) throws SQLException {
+ public static CommandExecutor<PostgreSQLPacket> newInstance(final CommandPacketType commandPacketType, final PostgreSQLCommandPacket commandPacket,
+ final ConnectionSession connectionSession, final PortalContext portalContext) throws SQLException {
log.debug("Execute packet type: {}, value: {}", commandPacketType, commandPacket);
if (!(commandPacket instanceof PostgreSQLAggregatedCommandPacket)) {
return getCommandExecutor(commandPacketType, commandPacket, connectionSession, portalContext);
@@ -80,19 +81,19 @@ public final class OpenGaussCommandExecutorFactory {
if (aggregatedCommandPacket.isContainsBatchedStatements() && aggregatedCommandPacket.getPackets().stream().noneMatch(OpenGaussComBatchBindPacket.class::isInstance)) {
return new PostgreSQLAggregatedCommandExecutor(getExecutorsOfAggregatedBatchedStatements(aggregatedCommandPacket, connectionSession, portalContext));
}
- List<CommandExecutor> result = new ArrayList<>(aggregatedCommandPacket.getPackets().size());
+ List<CommandExecutor<PostgreSQLPacket>> result = new ArrayList<>(aggregatedCommandPacket.getPackets().size());
for (PostgreSQLCommandPacket each : aggregatedCommandPacket.getPackets()) {
result.add(getCommandExecutor((CommandPacketType) each.getIdentifier(), each, connectionSession, portalContext));
}
return new PostgreSQLAggregatedCommandExecutor(result);
}
- private static List<CommandExecutor> getExecutorsOfAggregatedBatchedStatements(final PostgreSQLAggregatedCommandPacket aggregatedCommandPacket,
- final ConnectionSession connectionSession, final PortalContext portalContext) throws SQLException {
+ private static List<CommandExecutor<PostgreSQLPacket>> getExecutorsOfAggregatedBatchedStatements(final PostgreSQLAggregatedCommandPacket aggregatedCommandPacket,
+ final ConnectionSession connectionSession, final PortalContext portalContext) throws SQLException {
List<PostgreSQLCommandPacket> packets = aggregatedCommandPacket.getPackets();
int firstBindIndex = aggregatedCommandPacket.getFirstBindIndex();
int lastExecuteIndex = aggregatedCommandPacket.getLastExecuteIndex();
- List<CommandExecutor> result = new ArrayList<>(firstBindIndex + packets.size() - lastExecuteIndex);
+ List<CommandExecutor<PostgreSQLPacket>> result = new ArrayList<>(firstBindIndex + packets.size() - lastExecuteIndex);
for (int i = 0; i < firstBindIndex; i++) {
PostgreSQLCommandPacket each = packets.get(i);
result.add(getCommandExecutor((CommandPacketType) each.getIdentifier(), each, connectionSession, portalContext));
@@ -105,8 +106,8 @@ public final class OpenGaussCommandExecutorFactory {
return result;
}
- private static CommandExecutor getCommandExecutor(final CommandPacketType commandPacketType, final PostgreSQLCommandPacket commandPacket, final ConnectionSession connectionSession,
- final PortalContext portalContext) throws SQLException {
+ private static CommandExecutor<PostgreSQLPacket> getCommandExecutor(final CommandPacketType commandPacketType, final PostgreSQLCommandPacket commandPacket,
+ final ConnectionSession connectionSession, final PortalContext portalContext) throws SQLException {
if (OpenGaussCommandPacketType.BATCH_BIND_COMMAND == commandPacketType) {
return new OpenGaussComBatchBindExecutor((OpenGaussComBatchBindPacket) commandPacket, connectionSession);
}
diff --git a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutor.java b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutor.java
index e320232162f..5bdb305fddd 100644
--- a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutor.java
+++ b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutor.java
@@ -19,14 +19,14 @@ package org.apache.shardingsphere.proxy.frontend.opengauss.command.query.extende
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.db.protocol.opengauss.packet.command.query.extended.bind.OpenGaussComBatchBindPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
-import org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.PostgreSQLServerPreparedStatement;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.bind.PostgreSQLBindCompletePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.generic.PostgreSQLCommandCompletePacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import org.apache.shardingsphere.proxy.frontend.postgresql.command.query.PostgreSQLCommand;
import org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.PostgreSQLBatchedStatementsExecutor;
+import org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.PostgreSQLServerPreparedStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import java.sql.SQLException;
@@ -37,14 +37,14 @@ import java.util.Collection;
* Command batch bind executor for openGauss.
*/
@RequiredArgsConstructor
-public final class OpenGaussComBatchBindExecutor implements CommandExecutor {
+public final class OpenGaussComBatchBindExecutor implements CommandExecutor<PostgreSQLPacket> {
private final OpenGaussComBatchBindPacket packet;
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<PostgreSQLPacket> execute() throws SQLException {
connectionSession.getDatabaseConnectionManager().handleAutoCommit();
PostgreSQLServerPreparedStatement preparedStatement = connectionSession.getServerPreparedStatementRegistry().getPreparedStatement(packet.getStatementId());
int updateCount = new PostgreSQLBatchedStatementsExecutor(connectionSession, preparedStatement, packet.readParameterSets(preparedStatement.getParameterTypes())).executeBatch();
diff --git a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/simple/OpenGaussComQueryExecutor.java b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/simple/OpenGaussComQueryExecutor.java
index 3e1cb94d74b..8d2158814f7 100644
--- a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/simple/OpenGaussComQueryExecutor.java
+++ b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/simple/OpenGaussComQueryExecutor.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.proxy.frontend.opengauss.command.query.simple;
import lombok.Getter;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLColumnDescription;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLDataRowPacket;
@@ -53,12 +52,11 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
-import java.util.List;
/**
* Command query executor for openGauss.
*/
-public final class OpenGaussComQueryExecutor implements QueryCommandExecutor {
+public final class OpenGaussComQueryExecutor implements QueryCommandExecutor<PostgreSQLPacket> {
private final PortalContext portalContext;
@@ -73,7 +71,7 @@ public final class OpenGaussComQueryExecutor implements QueryCommandExecutor {
}
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<PostgreSQLPacket> execute() throws SQLException {
ResponseHeader responseHeader = proxyBackendHandler.execute();
if (responseHeader instanceof QueryResponseHeader) {
return Collections.singleton(createRowDescriptionPacket((QueryResponseHeader) responseHeader));
@@ -96,7 +94,7 @@ public final class OpenGaussComQueryExecutor implements QueryCommandExecutor {
return result;
}
- private List<DatabasePacket<?>> createUpdatePacket(final UpdateResponseHeader updateResponseHeader) throws SQLException {
+ private Collection<PostgreSQLPacket> createUpdatePacket(final UpdateResponseHeader updateResponseHeader) throws SQLException {
SQLStatement sqlStatement = updateResponseHeader.getSqlStatement();
if (sqlStatement instanceof CommitStatement || sqlStatement instanceof RollbackStatement) {
portalContext.closeAll();
@@ -108,8 +106,8 @@ public final class OpenGaussComQueryExecutor implements QueryCommandExecutor {
: new PostgreSQLCommandCompletePacket(PostgreSQLCommand.valueOf(sqlStatement.getClass()).map(PostgreSQLCommand::getTag).orElse(""), updateResponseHeader.getUpdateCount()));
}
- private List<DatabasePacket<?>> createParameterStatusResponse(final SetStatement sqlStatement) {
- List<DatabasePacket<?>> result = new ArrayList<>(2);
+ private Collection<PostgreSQLPacket> createParameterStatusResponse(final SetStatement sqlStatement) {
+ Collection<PostgreSQLPacket> result = new ArrayList<>(2);
result.add(new PostgreSQLCommandCompletePacket("SET", 0));
for (VariableAssignSegment each : sqlStatement.getVariableAssigns()) {
result.add(new PostgreSQLParameterStatusPacket(each.getVariable().getVariable(), IdentifierValue.getQuotedContent(each.getAssignValue())));
diff --git a/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecutorFactoryTest.java b/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecutorFactoryTest.java
index e35609497e3..a5e74d0b12a 100644
--- a/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecutorFactoryTest.java
+++ b/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecutorFactoryTest.java
@@ -21,6 +21,7 @@ import io.netty.buffer.Unpooled;
import lombok.SneakyThrows;
import org.apache.shardingsphere.db.protocol.opengauss.packet.command.OpenGaussCommandPacketType;
import org.apache.shardingsphere.db.protocol.opengauss.packet.command.query.extended.bind.OpenGaussComBatchBindPacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacketType;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLAggregatedCommandPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.bind.PostgreSQLComBindPacket;
@@ -78,7 +79,7 @@ class OpenGaussCommandExecutorFactoryTest {
@Test
void assertNewOpenGaussBatchBindExecutor() throws SQLException {
OpenGaussComBatchBindPacket batchBindPacket = mock(OpenGaussComBatchBindPacket.class);
- CommandExecutor actual = OpenGaussCommandExecutorFactory.newInstance(OpenGaussCommandPacketType.BATCH_BIND_COMMAND, batchBindPacket, connectionSession, portalContext);
+ CommandExecutor<PostgreSQLPacket> actual = OpenGaussCommandExecutorFactory.newInstance(OpenGaussCommandPacketType.BATCH_BIND_COMMAND, batchBindPacket, connectionSession, portalContext);
assertThat(actual, instanceOf(OpenGaussComBatchBindExecutor.class));
}
@@ -86,7 +87,7 @@ class OpenGaussCommandExecutorFactoryTest {
void assertNewPostgreSQLSimpleQueryExecutor() throws SQLException {
PostgreSQLComQueryPacket queryPacket = mock(PostgreSQLComQueryPacket.class);
when(queryPacket.getSql()).thenReturn("");
- CommandExecutor actual = OpenGaussCommandExecutorFactory.newInstance(PostgreSQLCommandPacketType.SIMPLE_QUERY, queryPacket, connectionSession, portalContext);
+ CommandExecutor<PostgreSQLPacket> actual = OpenGaussCommandExecutorFactory.newInstance(PostgreSQLCommandPacketType.SIMPLE_QUERY, queryPacket, connectionSession, portalContext);
assertThat(actual, instanceOf(OpenGaussComQueryExecutor.class));
}
@@ -106,9 +107,9 @@ class OpenGaussCommandExecutorFactoryTest {
PostgreSQLAggregatedCommandPacket packet = mock(PostgreSQLAggregatedCommandPacket.class);
when(packet.isContainsBatchedStatements()).thenReturn(false);
when(packet.getPackets()).thenReturn(Arrays.asList(parsePacket, flushPacket, bindPacket, describePacket, executePacket, syncPacket));
- CommandExecutor actual = OpenGaussCommandExecutorFactory.newInstance(null, packet, connectionSession, portalContext);
+ CommandExecutor<PostgreSQLPacket> actual = OpenGaussCommandExecutorFactory.newInstance(null, packet, connectionSession, portalContext);
assertThat(actual, instanceOf(PostgreSQLAggregatedCommandExecutor.class));
- Iterator<CommandExecutor> actualPacketsIterator = getExecutorsFromAggregatedCommandExecutor((PostgreSQLAggregatedCommandExecutor) actual).iterator();
+ Iterator<CommandExecutor<PostgreSQLPacket>> actualPacketsIterator = getExecutorsFromAggregatedCommandExecutor((PostgreSQLAggregatedCommandExecutor) actual).iterator();
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComParseExecutor.class));
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComFlushExecutor.class));
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComBindExecutor.class));
@@ -137,9 +138,9 @@ class OpenGaussCommandExecutorFactoryTest {
Arrays.asList(parsePacket, bindPacket, describePacket, executePacket, bindPacket, describePacket, executePacket, closePacket, syncPacket, terminationPacket));
when(packet.getFirstBindIndex()).thenReturn(1);
when(packet.getLastExecuteIndex()).thenReturn(6);
- CommandExecutor actual = OpenGaussCommandExecutorFactory.newInstance(null, packet, connectionSession, portalContext);
+ CommandExecutor<PostgreSQLPacket> actual = OpenGaussCommandExecutorFactory.newInstance(null, packet, connectionSession, portalContext);
assertThat(actual, instanceOf(PostgreSQLAggregatedCommandExecutor.class));
- Iterator<CommandExecutor> actualPacketsIterator = getExecutorsFromAggregatedCommandExecutor((PostgreSQLAggregatedCommandExecutor) actual).iterator();
+ Iterator<CommandExecutor<PostgreSQLPacket>> actualPacketsIterator = getExecutorsFromAggregatedCommandExecutor((PostgreSQLAggregatedCommandExecutor) actual).iterator();
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComParseExecutor.class));
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLAggregatedBatchedStatementsCommandExecutor.class));
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComCloseExecutor.class));
@@ -150,7 +151,7 @@ class OpenGaussCommandExecutorFactoryTest {
@SuppressWarnings("unchecked")
@SneakyThrows(ReflectiveOperationException.class)
- private List<CommandExecutor> getExecutorsFromAggregatedCommandExecutor(final PostgreSQLAggregatedCommandExecutor executor) {
- return (List<CommandExecutor>) Plugins.getMemberAccessor().get(PostgreSQLAggregatedCommandExecutor.class.getDeclaredField("executors"), executor);
+ private List<CommandExecutor<PostgreSQLPacket>> getExecutorsFromAggregatedCommandExecutor(final PostgreSQLAggregatedCommandExecutor executor) {
+ return (List<CommandExecutor<PostgreSQLPacket>>) Plugins.getMemberAccessor().get(PostgreSQLAggregatedCommandExecutor.class.getDeclaredField("executors"), executor);
}
}
diff --git a/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java b/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java
index 90305e367dd..4272cf81c8b 100644
--- a/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java
+++ b/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java
@@ -18,13 +18,12 @@
package org.apache.shardingsphere.proxy.frontend.opengauss.command.query.extended.bind;
import org.apache.shardingsphere.db.protocol.opengauss.packet.command.query.extended.bind.OpenGaussComBatchBindPacket;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.bind.PostgreSQLBindCompletePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.generic.PostgreSQLCommandCompletePacket;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
-import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.dialect.OpenGaussDatabaseType;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
@@ -33,6 +32,7 @@ import org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.Statemen
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine;
+import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
import org.apache.shardingsphere.logging.rule.LoggingRule;
import org.apache.shardingsphere.logging.rule.builder.DefaultLoggingRuleConfigurationBuilder;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -76,7 +76,6 @@ class OpenGaussComBatchBindExecutorTest {
private final ShardingSphereSQLParserEngine parserEngine = new ShardingSphereSQLParserEngine("openGauss", new CacheOption(2000, 65535L), new CacheOption(128, 1024L), false);
- @SuppressWarnings("rawtypes")
@Test
void assertExecute() throws SQLException {
String statement = "S_1";
@@ -88,7 +87,7 @@ class OpenGaussComBatchBindExecutorTest {
connectionSession.getServerPreparedStatementRegistry().addPreparedStatement(statement, new PostgreSQLServerPreparedStatement(sql, sqlStatementContext, Collections.emptyList()));
ContextManager contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- Iterator<DatabasePacket<?>> actualPacketsIterator = new OpenGaussComBatchBindExecutor(mockComBatchBindPacket(), connectionSession).execute().iterator();
+ Iterator<PostgreSQLPacket> actualPacketsIterator = new OpenGaussComBatchBindExecutor(mockComBatchBindPacket(), connectionSession).execute().iterator();
assertThat(actualPacketsIterator.next(), is(PostgreSQLBindCompletePacket.getInstance()));
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLCommandCompletePacket.class));
assertFalse(actualPacketsIterator.hasNext());
diff --git a/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/simple/OpenGaussComQueryExecutorTest.java b/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/simple/OpenGaussComQueryExecutorTest.java
index f6404a71c96..914eb06a9ed 100644
--- a/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/simple/OpenGaussComQueryExecutorTest.java
+++ b/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/simple/OpenGaussComQueryExecutorTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.proxy.frontend.opengauss.command.query.simple;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLDataRowPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLRowDescriptionPacket;
@@ -82,7 +81,7 @@ class OpenGaussComQueryExecutorTest {
void assertExecuteQueryAndReturnEmptyResult() throws SQLException {
QueryResponseHeader queryResponseHeader = mock(QueryResponseHeader.class);
when(proxyBackendHandler.execute()).thenReturn(queryResponseHeader);
- Collection<DatabasePacket<?>> actual = queryExecutor.execute();
+ Collection<PostgreSQLPacket> actual = queryExecutor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(instanceOf(PostgreSQLRowDescriptionPacket.class)));
assertThat(queryExecutor.getResponseType(), is(ResponseType.QUERY));
@@ -94,7 +93,7 @@ class OpenGaussComQueryExecutorTest {
QueryResponseHeader queryResponseHeader = mock(QueryResponseHeader.class);
when(queryResponseHeader.getQueryHeaders()).thenReturn(Collections.singletonList(new QueryHeader("schema", "table", "label", "column", 1, "type", 2, 3, true, true, true, true)));
when(proxyBackendHandler.execute()).thenReturn(queryResponseHeader);
- Collection<DatabasePacket<?>> actual = queryExecutor.execute();
+ Collection<PostgreSQLPacket> actual = queryExecutor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(instanceOf(PostgreSQLRowDescriptionPacket.class)));
assertThat(queryExecutor.getResponseType(), is(ResponseType.QUERY));
@@ -104,7 +103,7 @@ class OpenGaussComQueryExecutorTest {
@Test
void assertExecuteUpdate() throws SQLException {
when(proxyBackendHandler.execute()).thenReturn(new UpdateResponseHeader(mock(InsertStatement.class)));
- Collection<DatabasePacket<?>> actual = queryExecutor.execute();
+ Collection<PostgreSQLPacket> actual = queryExecutor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(instanceOf(PostgreSQLCommandCompletePacket.class)));
assertThat(queryExecutor.getResponseType(), is(ResponseType.UPDATE));
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/PostgreSQLFrontendEngine.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/PostgreSQLFrontendEngine.java
index b8ed22ad311..39e521bcaeb 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/PostgreSQLFrontendEngine.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/PostgreSQLFrontendEngine.java
@@ -24,7 +24,6 @@ import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.dialect.exception.transaction.InTransactionException;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.authentication.AuthenticationEngine;
-import org.apache.shardingsphere.proxy.frontend.command.CommandExecuteEngine;
import org.apache.shardingsphere.proxy.frontend.postgresql.authentication.PostgreSQLAuthenticationEngine;
import org.apache.shardingsphere.proxy.frontend.postgresql.command.PostgreSQLCommandExecuteEngine;
import org.apache.shardingsphere.proxy.frontend.postgresql.command.PostgreSQLPortalContextRegistry;
@@ -34,11 +33,11 @@ import org.apache.shardingsphere.proxy.frontend.spi.DatabaseProtocolFrontendEngi
* Frontend engine for PostgreSQL.
*/
@Getter
-public final class PostgreSQLFrontendEngine implements DatabaseProtocolFrontendEngine {
+public final class PostgreSQLFrontendEngine implements DatabaseProtocolFrontendEngine<PostgreSQLPacket> {
private final AuthenticationEngine authenticationEngine = new PostgreSQLAuthenticationEngine();
- private final CommandExecuteEngine commandExecuteEngine = new PostgreSQLCommandExecuteEngine();
+ private final PostgreSQLCommandExecuteEngine commandExecuteEngine = new PostgreSQLCommandExecuteEngine();
private final DatabasePacketCodecEngine<PostgreSQLPacket> codecEngine = new PostgreSQLPacketCodecEngine();
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngine.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngine.java
index a0480196fcc..ff854dba74f 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngine.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngine.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.db.protocol.packet.CommandPacket;
import org.apache.shardingsphere.db.protocol.packet.CommandPacketType;
import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.db.protocol.payload.PacketPayload;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacketFactory;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacketType;
@@ -47,7 +48,7 @@ import java.util.Optional;
/**
* Command execute engine for PostgreSQL.
*/
-public final class PostgreSQLCommandExecuteEngine implements CommandExecuteEngine {
+public final class PostgreSQLCommandExecuteEngine implements CommandExecuteEngine<PostgreSQLPacket> {
@Override
public PostgreSQLCommandPacketType getCommandPacketType(final PacketPayload payload) {
@@ -66,12 +67,12 @@ public final class PostgreSQLCommandExecuteEngine implements CommandExecuteEngin
}
@Override
- public DatabasePacket<?> getErrorPacket(final Exception cause) {
+ public PostgreSQLPacket getErrorPacket(final Exception cause) {
return PostgreSQLErrPacketFactory.newInstance(cause);
}
@Override
- public Optional<DatabasePacket<?>> getOtherPacket(final ConnectionSession connectionSession) {
+ public Optional<PostgreSQLPacket> getOtherPacket(final ConnectionSession connectionSession) {
return Optional.of(connectionSession.getTransactionStatus().isInTransaction() ? PostgreSQLReadyForQueryPacket.TRANSACTION_FAILED : PostgreSQLReadyForQueryPacket.NOT_IN_TRANSACTION);
}
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecutorFactory.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecutorFactory.java
index 2fcd86cb734..1321412f633 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecutorFactory.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecutorFactory.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.proxy.frontend.postgresql.command;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacketType;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLAggregatedCommandPacket;
@@ -65,8 +66,8 @@ public final class PostgreSQLCommandExecutorFactory {
* @return created instance
* @throws SQLException SQL exception
*/
- public static CommandExecutor newInstance(final PostgreSQLCommandPacketType commandPacketType, final PostgreSQLCommandPacket commandPacket,
- final ConnectionSession connectionSession, final PortalContext portalContext) throws SQLException {
+ public static CommandExecutor<PostgreSQLPacket> newInstance(final PostgreSQLCommandPacketType commandPacketType, final PostgreSQLCommandPacket commandPacket,
+ final ConnectionSession connectionSession, final PortalContext portalContext) throws SQLException {
log.debug("Execute packet type: {}, value: {}", commandPacketType, commandPacket);
if (!(commandPacket instanceof PostgreSQLAggregatedCommandPacket)) {
return getCommandExecutor(commandPacketType, commandPacket, connectionSession, portalContext);
@@ -75,19 +76,20 @@ public final class PostgreSQLCommandExecutorFactory {
if (aggregatedCommandPacket.isContainsBatchedStatements()) {
return new PostgreSQLAggregatedCommandExecutor(getExecutorsOfAggregatedBatchedStatements(aggregatedCommandPacket, connectionSession, portalContext));
}
- List<CommandExecutor> result = new ArrayList<>(aggregatedCommandPacket.getPackets().size());
+ List<CommandExecutor<PostgreSQLPacket>> result = new ArrayList<>(aggregatedCommandPacket.getPackets().size());
for (PostgreSQLCommandPacket each : aggregatedCommandPacket.getPackets()) {
result.add(getCommandExecutor((PostgreSQLCommandPacketType) each.getIdentifier(), each, connectionSession, portalContext));
}
return new PostgreSQLAggregatedCommandExecutor(result);
}
- private static List<CommandExecutor> getExecutorsOfAggregatedBatchedStatements(final PostgreSQLAggregatedCommandPacket aggregatedCommandPacket, final ConnectionSession connectionSession,
- final PortalContext portalContext) throws SQLException {
+ private static List<CommandExecutor<PostgreSQLPacket>> getExecutorsOfAggregatedBatchedStatements(final PostgreSQLAggregatedCommandPacket aggregatedCommandPacket,
+ final ConnectionSession connectionSession,
+ final PortalContext portalContext) throws SQLException {
List<PostgreSQLCommandPacket> packets = aggregatedCommandPacket.getPackets();
int firstBindIndex = aggregatedCommandPacket.getFirstBindIndex();
int lastExecuteIndex = aggregatedCommandPacket.getLastExecuteIndex();
- List<CommandExecutor> result = new ArrayList<>(firstBindIndex + packets.size() - lastExecuteIndex);
+ List<CommandExecutor<PostgreSQLPacket>> result = new ArrayList<>(firstBindIndex + packets.size() - lastExecuteIndex);
for (int i = 0; i < firstBindIndex; i++) {
PostgreSQLCommandPacket each = packets.get(i);
result.add(getCommandExecutor((PostgreSQLCommandPacketType) each.getIdentifier(), each, connectionSession, portalContext));
@@ -100,8 +102,8 @@ public final class PostgreSQLCommandExecutorFactory {
return result;
}
- private static CommandExecutor getCommandExecutor(final PostgreSQLCommandPacketType commandPacketType, final PostgreSQLCommandPacket commandPacket, final ConnectionSession connectionSession,
- final PortalContext portalContext) throws SQLException {
+ private static CommandExecutor<PostgreSQLPacket> getCommandExecutor(final PostgreSQLCommandPacketType commandPacketType, final PostgreSQLCommandPacket commandPacket,
+ final ConnectionSession connectionSession, final PortalContext portalContext) throws SQLException {
switch (commandPacketType) {
case SIMPLE_QUERY:
return new PostgreSQLComQueryExecutor(portalContext, (PostgreSQLComQueryPacket) commandPacket, connectionSession);
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLComTerminationExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLComTerminationExecutor.java
index 8f2e87e2b32..ba727b76714 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLComTerminationExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLComTerminationExecutor.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.generic;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import java.util.Collection;
@@ -26,10 +26,10 @@ import java.util.Collections;
/**
* Command termination executor for PostgreSQL.
*/
-public final class PostgreSQLComTerminationExecutor implements CommandExecutor {
+public final class PostgreSQLComTerminationExecutor implements CommandExecutor<PostgreSQLPacket> {
@Override
- public Collection<DatabasePacket<?>> execute() {
+ public Collection<PostgreSQLPacket> execute() {
return Collections.emptyList();
}
}
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutor.java
index 3570dfb867b..deaa68baf4e 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutor.java
@@ -18,10 +18,10 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.generic;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
-import org.apache.shardingsphere.dialect.postgresql.vendor.PostgreSQLVendorError;
import org.apache.shardingsphere.db.protocol.postgresql.constant.PostgreSQLMessageSeverityLevel;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.generic.PostgreSQLErrorResponsePacket;
+import org.apache.shardingsphere.dialect.postgresql.vendor.PostgreSQLVendorError;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import java.util.Collection;
@@ -31,13 +31,13 @@ import java.util.Collections;
* Unsupported command executor for PostgreSQL.
*/
@RequiredArgsConstructor
-public final class PostgreSQLUnsupportedCommandExecutor implements CommandExecutor {
+public final class PostgreSQLUnsupportedCommandExecutor implements CommandExecutor<PostgreSQLPacket> {
@Override
- public Collection<DatabasePacket<?>> execute() {
+ public Collection<PostgreSQLPacket> execute() {
// TODO consider what severity and error code to use
PostgreSQLErrorResponsePacket packet = PostgreSQLErrorResponsePacket.newBuilder(PostgreSQLMessageSeverityLevel.ERROR, PostgreSQLVendorError.FEATURE_NOT_SUPPORTED,
PostgreSQLVendorError.FEATURE_NOT_SUPPORTED.getReason()).build();
- return Collections.singletonList(packet);
+ return Collections.singleton(packet);
}
}
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedBatchedStatementsCommandExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedBatchedStatementsCommandExecutor.java
index e6ed7d0a449..d1c2af8c5ef 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedBatchedStatementsCommandExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedBatchedStatementsCommandExecutor.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLNoDataPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLColumnType;
@@ -41,17 +41,17 @@ import java.util.List;
* Aggregated batched statements command executor for PostgreSQL.
*/
@RequiredArgsConstructor
-public final class PostgreSQLAggregatedBatchedStatementsCommandExecutor implements CommandExecutor {
+public final class PostgreSQLAggregatedBatchedStatementsCommandExecutor implements CommandExecutor<PostgreSQLPacket> {
private final ConnectionSession connectionSession;
private final List<PostgreSQLCommandPacket> packets;
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<PostgreSQLPacket> execute() throws SQLException {
PostgreSQLServerPreparedStatement preparedStatement = getPreparedStatement();
PostgreSQLBatchedStatementsExecutor executor = new PostgreSQLBatchedStatementsExecutor(connectionSession, preparedStatement, readParameterSets(preparedStatement.getParameterTypes()));
- List<DatabasePacket<?>> result = new ArrayList<>(packets.size());
+ Collection<PostgreSQLPacket> result = new ArrayList<>(packets.size());
int totalInserted = executor.executeBatch();
int executePacketCount = executePacketCount();
for (PostgreSQLCommandPacket each : packets) {
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedCommandExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedCommandExecutor.java
index 0a2bc24bdf8..4165f0e3b91 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedCommandExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedCommandExecutor.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extend
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLAggregatedResponsesPacket;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
@@ -29,20 +30,20 @@ import java.util.LinkedList;
import java.util.List;
@RequiredArgsConstructor
-public final class PostgreSQLAggregatedCommandExecutor implements CommandExecutor {
+public final class PostgreSQLAggregatedCommandExecutor implements CommandExecutor<PostgreSQLPacket> {
- private final List<CommandExecutor> executors;
+ private final List<CommandExecutor<PostgreSQLPacket>> executors;
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<PostgreSQLPacket> execute() throws SQLException {
List<DatabasePacket<?>> result = new LinkedList<>();
- for (CommandExecutor each : executors) {
+ for (CommandExecutor<?> each : executors) {
try {
result.addAll(each.execute());
} finally {
each.close();
}
}
- return Collections.singletonList(new PostgreSQLAggregatedResponsesPacket(result));
+ return Collections.singleton(new PostgreSQLAggregatedResponsesPacket(result));
}
}
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/bind/PostgreSQLComBindExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/bind/PostgreSQLComBindExecutor.java
index 4a308774cfe..964cd299b3c 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/bind/PostgreSQLComBindExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/bind/PostgreSQLComBindExecutor.java
@@ -18,8 +18,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.bind;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
-import org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.PostgreSQLServerPreparedStatement;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.bind.PostgreSQLBindCompletePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.bind.PostgreSQLComBindPacket;
import org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
@@ -27,6 +26,7 @@ import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import org.apache.shardingsphere.proxy.frontend.postgresql.command.PortalContext;
import org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal;
+import org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.PostgreSQLServerPreparedStatement;
import java.sql.SQLException;
import java.util.Collection;
@@ -36,7 +36,7 @@ import java.util.Collections;
* Command bind executor for PostgreSQL.
*/
@RequiredArgsConstructor
-public final class PostgreSQLComBindExecutor implements CommandExecutor {
+public final class PostgreSQLComBindExecutor implements CommandExecutor<PostgreSQLPacket> {
private final PortalContext portalContext;
@@ -45,12 +45,12 @@ public final class PostgreSQLComBindExecutor implements CommandExecutor {
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<PostgreSQLPacket> execute() throws SQLException {
PostgreSQLServerPreparedStatement preparedStatement = connectionSession.getServerPreparedStatementRegistry().getPreparedStatement(packet.getStatementId());
ProxyDatabaseConnectionManager databaseConnectionManager = connectionSession.getDatabaseConnectionManager();
Portal portal = new Portal(packet.getPortal(), preparedStatement, packet.readParameters(preparedStatement.getParameterTypes()), packet.readResultFormats(), databaseConnectionManager);
portalContext.add(portal);
portal.bind();
- return Collections.singletonList(PostgreSQLBindCompletePacket.getInstance());
+ return Collections.singleton(PostgreSQLBindCompletePacket.getInstance());
}
}
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/close/PostgreSQLComCloseExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/close/PostgreSQLComCloseExecutor.java
index 95c54c1feb0..9399eb81150 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/close/PostgreSQLComCloseExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/close/PostgreSQLComCloseExecutor.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.close;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.close.PostgreSQLCloseCompletePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.close.PostgreSQLComClosePacket;
import org.apache.shardingsphere.infra.util.exception.external.sql.type.generic.UnsupportedSQLOperationException;
@@ -34,7 +34,7 @@ import java.util.Collections;
* Command close executor for PostgreSQL.
*/
@RequiredArgsConstructor
-public final class PostgreSQLComCloseExecutor implements CommandExecutor {
+public final class PostgreSQLComCloseExecutor implements CommandExecutor<PostgreSQLPacket> {
private final PortalContext portalContext;
@@ -43,7 +43,7 @@ public final class PostgreSQLComCloseExecutor implements CommandExecutor {
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<PostgreSQLPacket> execute() throws SQLException {
switch (packet.getType()) {
case PREPARED_STATEMENT:
connectionSession.getServerPreparedStatementRegistry().removePreparedStatement(packet.getName());
@@ -54,6 +54,6 @@ public final class PostgreSQLComCloseExecutor implements CommandExecutor {
default:
throw new UnsupportedSQLOperationException(packet.getType().name());
}
- return Collections.singletonList(new PostgreSQLCloseCompletePacket());
+ return Collections.singleton(new PostgreSQLCloseCompletePacket());
}
}
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java
index 5248a20c803..d2c2c862de8 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.describe;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLColumnDescription;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLNoDataPacket;
@@ -26,7 +25,6 @@ import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.Pos
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLColumnType;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.describe.PostgreSQLComDescribePacket;
import org.apache.shardingsphere.dialect.postgresql.exception.metadata.ColumnNotFoundException;
-import org.apache.shardingsphere.infra.session.query.QueryContext;
import org.apache.shardingsphere.infra.binder.SQLStatementContextFactory;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.connection.kernel.KernelProcessor;
@@ -37,6 +35,7 @@ import org.apache.shardingsphere.infra.executor.sql.execute.engine.ConnectionMod
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
+import org.apache.shardingsphere.infra.session.query.QueryContext;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.util.exception.external.sql.type.generic.UnsupportedSQLOperationException;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
@@ -78,7 +77,7 @@ import java.util.stream.Collectors;
* Command describe for PostgreSQL.
*/
@RequiredArgsConstructor
-public final class PostgreSQLComDescribeExecutor implements CommandExecutor {
+public final class PostgreSQLComDescribeExecutor implements CommandExecutor<PostgreSQLPacket> {
private static final String ANONYMOUS_COLUMN_NAME = "?column?";
@@ -89,19 +88,19 @@ public final class PostgreSQLComDescribeExecutor implements CommandExecutor {
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<PostgreSQLPacket> execute() throws SQLException {
switch (packet.getType()) {
case 'S':
return describePreparedStatement();
case 'P':
- return Collections.singletonList(portalContext.get(packet.getName()).describe());
+ return Collections.singleton(portalContext.get(packet.getName()).describe());
default:
throw new UnsupportedSQLOperationException("Unsupported describe type: " + packet.getType());
}
}
- private List<DatabasePacket<?>> describePreparedStatement() throws SQLException {
- List<DatabasePacket<?>> result = new ArrayList<>(2);
+ private List<PostgreSQLPacket> describePreparedStatement() throws SQLException {
+ List<PostgreSQLPacket> result = new ArrayList<>(2);
PostgreSQLServerPreparedStatement preparedStatement = connectionSession.getServerPreparedStatementRegistry().getPreparedStatement(packet.getName());
result.add(preparedStatement.describeParameters());
Optional<PostgreSQLPacket> rowDescription = preparedStatement.describeRows();
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/execute/PostgreSQLComExecuteExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/execute/PostgreSQLComExecuteExecutor.java
index 1ebadb0ad01..01d794501ce 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/execute/PostgreSQLComExecuteExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/execute/PostgreSQLComExecuteExecutor.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.execute;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.execute.PostgreSQLComExecutePacket;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import org.apache.shardingsphere.proxy.frontend.postgresql.command.PortalContext;
@@ -32,15 +33,14 @@ import java.util.List;
* Command execute executor for PostgreSQL.
*/
@RequiredArgsConstructor
-public final class PostgreSQLComExecuteExecutor implements CommandExecutor {
+public final class PostgreSQLComExecuteExecutor implements CommandExecutor<PostgreSQLPacket> {
private final PortalContext portalContext;
private final PostgreSQLComExecutePacket packet;
- @SuppressWarnings({"rawtypes", "unchecked"})
@Override
- public List execute() throws SQLException {
+ public List<PostgreSQLPacket> execute() throws SQLException {
return portalContext.get(packet.getPortal()).execute(packet.getMaxRows());
}
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/flush/PostgreSQLComFlushExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/flush/PostgreSQLComFlushExecutor.java
index b01e2ef3624..acfb515c256 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/flush/PostgreSQLComFlushExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/flush/PostgreSQLComFlushExecutor.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.flush;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import java.sql.SQLException;
@@ -27,10 +27,10 @@ import java.util.Collections;
/**
* Command flush executor for PostgreSQL.
**/
-public final class PostgreSQLComFlushExecutor implements CommandExecutor {
+public final class PostgreSQLComFlushExecutor implements CommandExecutor<PostgreSQLPacket> {
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<PostgreSQLPacket> execute() throws SQLException {
return Collections.emptyList();
}
}
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java
index 30f55b14d1d..af2e1cd1f88 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.parse;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLColumnType;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.parse.PostgreSQLComParsePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.parse.PostgreSQLParseCompletePacket;
@@ -50,14 +50,14 @@ import java.util.List;
* PostgreSQL command parse executor.
*/
@RequiredArgsConstructor
-public final class PostgreSQLComParseExecutor implements CommandExecutor {
+public final class PostgreSQLComParseExecutor implements CommandExecutor<PostgreSQLPacket> {
private final PostgreSQLComParsePacket packet;
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() {
+ public Collection<PostgreSQLPacket> execute() {
SQLParserEngine sqlParserEngine = createShardingSphereSQLParserEngine(connectionSession.getDatabaseName());
String sql = packet.getSql();
SQLStatement sqlStatement = sqlParserEngine.parse(sql, true);
@@ -71,7 +71,7 @@ public final class PostgreSQLComParseExecutor implements CommandExecutor {
sqlStatement, connectionSession.getDefaultDatabaseName());
PostgreSQLServerPreparedStatement serverPreparedStatement = new PostgreSQLServerPreparedStatement(sql, sqlStatementContext, paddedColumnTypes);
connectionSession.getServerPreparedStatementRegistry().addPreparedStatement(packet.getStatementId(), serverPreparedStatement);
- return Collections.singletonList(PostgreSQLParseCompletePacket.getInstance());
+ return Collections.singleton(PostgreSQLParseCompletePacket.getInstance());
}
private SQLParserEngine createShardingSphereSQLParserEngine(final String databaseName) {
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/sync/PostgreSQLComSyncExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/sync/PostgreSQLComSyncExecutor.java
index d1ff9a7e9cc..2d28bb238e4 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/sync/PostgreSQLComSyncExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/sync/PostgreSQLComSyncExecutor.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.sync;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.generic.PostgreSQLReadyForQueryPacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
@@ -30,12 +30,12 @@ import java.util.Collections;
* Command sync executor for PostgreSQL.
*/
@RequiredArgsConstructor
-public final class PostgreSQLComSyncExecutor implements CommandExecutor {
+public final class PostgreSQLComSyncExecutor implements CommandExecutor<PostgreSQLPacket> {
private final ConnectionSession connectionSession;
@Override
- public Collection<DatabasePacket<?>> execute() {
- return Collections.singletonList(connectionSession.getTransactionStatus().isInTransaction() ? PostgreSQLReadyForQueryPacket.IN_TRANSACTION : PostgreSQLReadyForQueryPacket.NOT_IN_TRANSACTION);
+ public Collection<PostgreSQLPacket> execute() {
+ return Collections.singleton(connectionSession.getTransactionStatus().isInTransaction() ? PostgreSQLReadyForQueryPacket.IN_TRANSACTION : PostgreSQLReadyForQueryPacket.NOT_IN_TRANSACTION);
}
}
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/simple/PostgreSQLComQueryExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/simple/PostgreSQLComQueryExecutor.java
index cd5fb6fbab1..111280bfe61 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/simple/PostgreSQLComQueryExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/simple/PostgreSQLComQueryExecutor.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.simple;
import lombok.Getter;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLColumnDescription;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLDataRowPacket;
@@ -53,12 +52,11 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
-import java.util.List;
/**
* Command query executor for PostgreSQL.
*/
-public final class PostgreSQLComQueryExecutor implements QueryCommandExecutor {
+public final class PostgreSQLComQueryExecutor implements QueryCommandExecutor<PostgreSQLPacket> {
private final PortalContext portalContext;
@@ -73,7 +71,7 @@ public final class PostgreSQLComQueryExecutor implements QueryCommandExecutor {
}
@Override
- public Collection<DatabasePacket<?>> execute() throws SQLException {
+ public Collection<PostgreSQLPacket> execute() throws SQLException {
ResponseHeader responseHeader = proxyBackendHandler.execute();
if (responseHeader instanceof QueryResponseHeader) {
return Collections.singleton(createRowDescriptionPacket((QueryResponseHeader) responseHeader));
@@ -96,7 +94,7 @@ public final class PostgreSQLComQueryExecutor implements QueryCommandExecutor {
return result;
}
- private List<DatabasePacket<?>> createUpdatePacket(final UpdateResponseHeader updateResponseHeader) throws SQLException {
+ private Collection<PostgreSQLPacket> createUpdatePacket(final UpdateResponseHeader updateResponseHeader) throws SQLException {
SQLStatement sqlStatement = updateResponseHeader.getSqlStatement();
if (sqlStatement instanceof CommitStatement || sqlStatement instanceof RollbackStatement) {
portalContext.closeAll();
@@ -108,8 +106,8 @@ public final class PostgreSQLComQueryExecutor implements QueryCommandExecutor {
: new PostgreSQLCommandCompletePacket(PostgreSQLCommand.valueOf(sqlStatement.getClass()).map(PostgreSQLCommand::getTag).orElse(""), updateResponseHeader.getUpdateCount()));
}
- private List<DatabasePacket<?>> createParameterStatusResponse(final SetStatement sqlStatement) {
- List<DatabasePacket<?>> result = new ArrayList<>(2);
+ private Collection<PostgreSQLPacket> createParameterStatusResponse(final SetStatement sqlStatement) {
+ Collection<PostgreSQLPacket> result = new ArrayList<>(2);
result.add(new PostgreSQLCommandCompletePacket("SET", 0));
for (VariableAssignSegment each : sqlStatement.getVariableAssigns()) {
result.add(new PostgreSQLParameterStatusPacket(each.getVariable().getVariable(), IdentifierValue.getQuotedContent(each.getAssignValue())));
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecutorFactoryTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecutorFactoryTest.java
index e5f5381d98e..2f663c925e8 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecutorFactoryTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecutorFactoryTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.proxy.frontend.postgresql.command;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacketType;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLAggregatedCommandPacket;
@@ -90,7 +91,7 @@ class PostgreSQLCommandExecutorFactoryTest {
commandPacketClass = PostgreSQLCommandPacket.class;
}
PostgreSQLCommandPacket packet = preparePacket(commandPacketClass);
- CommandExecutor actual = PostgreSQLCommandExecutorFactory.newInstance(each.getCommandPacketType(), packet, connectionSession, portalContext);
+ CommandExecutor<PostgreSQLPacket> actual = PostgreSQLCommandExecutorFactory.newInstance(each.getCommandPacketType(), packet, connectionSession, portalContext);
assertThat(actual, instanceOf(each.getResultClass()));
}
}
@@ -118,9 +119,9 @@ class PostgreSQLCommandExecutorFactoryTest {
PostgreSQLAggregatedCommandPacket packet = mock(PostgreSQLAggregatedCommandPacket.class);
when(packet.isContainsBatchedStatements()).thenReturn(false);
when(packet.getPackets()).thenReturn(Arrays.asList(parsePacket, bindPacket, describePacket, executePacket, syncPacket));
- CommandExecutor actual = PostgreSQLCommandExecutorFactory.newInstance(null, packet, connectionSession, portalContext);
+ CommandExecutor<PostgreSQLPacket> actual = PostgreSQLCommandExecutorFactory.newInstance(null, packet, connectionSession, portalContext);
assertThat(actual, instanceOf(PostgreSQLAggregatedCommandExecutor.class));
- Iterator<CommandExecutor> actualPacketsIterator = getExecutorsFromAggregatedCommandExecutor((PostgreSQLAggregatedCommandExecutor) actual).iterator();
+ Iterator<CommandExecutor<PostgreSQLPacket>> actualPacketsIterator = getExecutorsFromAggregatedCommandExecutor((PostgreSQLAggregatedCommandExecutor) actual).iterator();
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComParseExecutor.class));
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComBindExecutor.class));
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComDescribeExecutor.class));
@@ -143,9 +144,9 @@ class PostgreSQLCommandExecutorFactoryTest {
when(packet.getPackets()).thenReturn(Arrays.asList(parsePacket, bindPacket, describePacket, executePacket, bindPacket, describePacket, executePacket, syncPacket));
when(packet.getFirstBindIndex()).thenReturn(1);
when(packet.getLastExecuteIndex()).thenReturn(6);
- CommandExecutor actual = PostgreSQLCommandExecutorFactory.newInstance(null, packet, connectionSession, portalContext);
+ CommandExecutor<PostgreSQLPacket> actual = PostgreSQLCommandExecutorFactory.newInstance(null, packet, connectionSession, portalContext);
assertThat(actual, instanceOf(PostgreSQLAggregatedCommandExecutor.class));
- Iterator<CommandExecutor> actualPacketsIterator = getExecutorsFromAggregatedCommandExecutor((PostgreSQLAggregatedCommandExecutor) actual).iterator();
+ Iterator<CommandExecutor<PostgreSQLPacket>> actualPacketsIterator = getExecutorsFromAggregatedCommandExecutor((PostgreSQLAggregatedCommandExecutor) actual).iterator();
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComParseExecutor.class));
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLAggregatedBatchedStatementsCommandExecutor.class));
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComSyncExecutor.class));
@@ -160,9 +161,9 @@ class PostgreSQLCommandExecutorFactoryTest {
when(syncPacket.getIdentifier()).thenReturn(PostgreSQLCommandPacketType.SYNC_COMMAND);
PostgreSQLAggregatedCommandPacket packet = mock(PostgreSQLAggregatedCommandPacket.class);
when(packet.getPackets()).thenReturn(Arrays.asList(flushPacket, syncPacket));
- CommandExecutor actual = PostgreSQLCommandExecutorFactory.newInstance(null, packet, connectionSession, portalContext);
+ CommandExecutor<PostgreSQLPacket> actual = PostgreSQLCommandExecutorFactory.newInstance(null, packet, connectionSession, portalContext);
assertThat(actual, instanceOf(PostgreSQLAggregatedCommandExecutor.class));
- Iterator<CommandExecutor> actualPacketsIterator = getExecutorsFromAggregatedCommandExecutor((PostgreSQLAggregatedCommandExecutor) actual).iterator();
+ Iterator<CommandExecutor<PostgreSQLPacket>> actualPacketsIterator = getExecutorsFromAggregatedCommandExecutor((PostgreSQLAggregatedCommandExecutor) actual).iterator();
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComFlushExecutor.class));
assertThat(actualPacketsIterator.next(), instanceOf(PostgreSQLComSyncExecutor.class));
assertFalse(actualPacketsIterator.hasNext());
@@ -170,8 +171,8 @@ class PostgreSQLCommandExecutorFactoryTest {
@SuppressWarnings("unchecked")
@SneakyThrows(ReflectiveOperationException.class)
- private List<CommandExecutor> getExecutorsFromAggregatedCommandExecutor(final PostgreSQLAggregatedCommandExecutor executor) {
- return (List<CommandExecutor>) Plugins.getMemberAccessor().get(PostgreSQLAggregatedCommandExecutor.class.getDeclaredField("executors"), executor);
+ private List<CommandExecutor<PostgreSQLPacket>> getExecutorsFromAggregatedCommandExecutor(final PostgreSQLAggregatedCommandExecutor executor) {
+ return (List<CommandExecutor<PostgreSQLPacket>>) Plugins.getMemberAccessor().get(PostgreSQLAggregatedCommandExecutor.class.getDeclaredField("executors"), executor);
}
@RequiredArgsConstructor
@@ -182,6 +183,6 @@ class PostgreSQLCommandExecutorFactoryTest {
private final Class<? extends PostgreSQLCommandPacket> commandPacketClass;
- private final Class<? extends CommandExecutor> resultClass;
+ private final Class<? extends CommandExecutor<PostgreSQLPacket>> resultClass;
}
}
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutorTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutorTest.java
index 98b07184ff3..d334e0c6283 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutorTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutorTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.generic;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.generic.PostgreSQLErrorResponsePacket;
import org.junit.jupiter.api.Test;
@@ -32,7 +32,7 @@ class PostgreSQLUnsupportedCommandExecutorTest {
@Test
void assertExecute() {
PostgreSQLUnsupportedCommandExecutor commandExecutor = new PostgreSQLUnsupportedCommandExecutor();
- Collection<DatabasePacket<?>> actual = commandExecutor.execute();
+ Collection<PostgreSQLPacket> actual = commandExecutor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), instanceOf(PostgreSQLErrorResponsePacket.class));
}
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedCommandExecutorTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedCommandExecutorTest.java
index b213b524056..dd4bb4868f4 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedCommandExecutorTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedCommandExecutorTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLAggregatedResponsesPacket;
import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
import org.junit.jupiter.api.Test;
@@ -36,18 +36,18 @@ import static org.mockito.Mockito.when;
class PostgreSQLAggregatedCommandExecutorTest {
+ @SuppressWarnings("unchecked")
@Test
void assertExecute() throws SQLException {
int commandCount = 16;
- List<CommandExecutor> executors = new ArrayList<>(commandCount);
+ List<CommandExecutor<PostgreSQLPacket>> executors = new ArrayList<>(commandCount);
for (int i = 0; i < commandCount; i++) {
- CommandExecutor executor = mock(CommandExecutor.class);
- DatabasePacket<?> expectedPacket = mock(DatabasePacket.class);
- when(executor.execute()).thenReturn(Collections.singleton(expectedPacket));
+ CommandExecutor<PostgreSQLPacket> executor = mock(CommandExecutor.class);
+ when(executor.execute()).thenReturn(Collections.singleton(mock(PostgreSQLPacket.class)));
executors.add(executor);
}
PostgreSQLAggregatedCommandExecutor actualExecutor = new PostgreSQLAggregatedCommandExecutor(executors);
- Collection<DatabasePacket<?>> actualPackets = actualExecutor.execute();
+ Collection<PostgreSQLPacket> actualPackets = actualExecutor.execute();
assertThat(actualPackets.size(), is(1));
assertThat(actualPackets.iterator().next(), instanceOf(PostgreSQLAggregatedResponsesPacket.class));
}
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/bind/PostgreSQLComBindExecutorTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/bind/PostgreSQLComBindExecutorTest.java
index 9ea12429eb5..8c2f04d7d74 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/bind/PostgreSQLComBindExecutorTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/bind/PostgreSQLComBindExecutorTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.bind;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.bind.PostgreSQLBindCompletePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.bind.PostgreSQLComBindPacket;
import org.apache.shardingsphere.infra.binder.statement.UnknownSQLStatementContext;
@@ -89,7 +89,7 @@ class PostgreSQLComBindExecutorTest {
ContextManager contextManager = mock(ContextManager.class, Answers.RETURNS_DEEP_STUBS);
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
when(ProxyContext.getInstance().getDatabase(databaseName)).thenReturn(database);
- Collection<DatabasePacket<?>> actual = executor.execute();
+ Collection<PostgreSQLPacket> actual = executor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(PostgreSQLBindCompletePacket.getInstance()));
verify(portalContext).add(any(Portal.class));
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/close/PostgreSQLComCloseExecutorTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/close/PostgreSQLComCloseExecutorTest.java
index f0fdaaf2aae..f873a306d3f 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/close/PostgreSQLComCloseExecutorTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/close/PostgreSQLComCloseExecutorTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.close;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.close.PostgreSQLCloseCompletePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.close.PostgreSQLComClosePacket;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -55,7 +55,7 @@ class PostgreSQLComCloseExecutorTest {
when(packet.getType()).thenReturn(PostgreSQLComClosePacket.Type.PREPARED_STATEMENT);
when(packet.getName()).thenReturn("S_1");
PostgreSQLComCloseExecutor closeExecutor = new PostgreSQLComCloseExecutor(portalContext, packet, connectionSession);
- Collection<DatabasePacket<?>> actual = closeExecutor.execute();
+ Collection<PostgreSQLPacket> actual = closeExecutor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(instanceOf(PostgreSQLCloseCompletePacket.class)));
}
@@ -66,7 +66,7 @@ class PostgreSQLComCloseExecutorTest {
String portalName = "C_1";
when(packet.getName()).thenReturn(portalName);
PostgreSQLComCloseExecutor closeExecutor = new PostgreSQLComCloseExecutor(portalContext, packet, connectionSession);
- Collection<DatabasePacket<?>> actual = closeExecutor.execute();
+ Collection<PostgreSQLPacket> actual = closeExecutor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(instanceOf(PostgreSQLCloseCompletePacket.class)));
verify(portalContext).close(portalName);
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java
index 1914e020f22..1baed767f7b 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extend
import lombok.SneakyThrows;
import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLColumnDescription;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLNoDataPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLParameterDescriptionPacket;
@@ -120,12 +121,11 @@ class PostgreSQLComDescribeExecutorTest {
PostgreSQLRowDescriptionPacket expected = mock(PostgreSQLRowDescriptionPacket.class);
when(portal.describe()).thenReturn(expected);
when(portalContext.get("P_1")).thenReturn(portal);
- Collection<DatabasePacket<?>> actual = executor.execute();
+ Collection<PostgreSQLPacket> actual = executor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(expected));
}
- @SuppressWarnings("rawtypes")
@Test
void assertDescribePreparedStatementInsertWithoutColumns() throws SQLException {
when(packet.getType()).thenReturn('S');
@@ -144,9 +144,9 @@ class PostgreSQLComDescribeExecutorTest {
ShardingSphereDatabase database = contextManager.getMetaDataContexts().getMetaData().getDatabase(DATABASE_NAME);
when(ProxyContext.getInstance().getDatabase(DATABASE_NAME)).thenReturn(database);
connectionSession.getServerPreparedStatementRegistry().addPreparedStatement(statementId, new PostgreSQLServerPreparedStatement(sql, sqlStatementContext, parameterTypes));
- Collection<DatabasePacket<?>> actualPackets = executor.execute();
+ Collection<PostgreSQLPacket> actualPackets = executor.execute();
assertThat(actualPackets.size(), is(2));
- Iterator<DatabasePacket<?>> actualPacketsIterator = actualPackets.iterator();
+ Iterator<PostgreSQLPacket> actualPacketsIterator = actualPackets.iterator();
PostgreSQLParameterDescriptionPacket actualParameterDescription = (PostgreSQLParameterDescriptionPacket) actualPacketsIterator.next();
PostgreSQLPacketPayload mockPayload = mock(PostgreSQLPacketPayload.class);
actualParameterDescription.write(mockPayload);
@@ -156,7 +156,6 @@ class PostgreSQLComDescribeExecutorTest {
assertThat(actualPacketsIterator.next(), is(PostgreSQLNoDataPacket.getInstance()));
}
- @SuppressWarnings("rawtypes")
@Test
void assertDescribePreparedStatementInsertWithColumns() throws SQLException {
when(packet.getType()).thenReturn('S');
@@ -175,9 +174,9 @@ class PostgreSQLComDescribeExecutorTest {
ShardingSphereDatabase database = contextManager.getMetaDataContexts().getMetaData().getDatabase(DATABASE_NAME);
when(ProxyContext.getInstance().getDatabase(DATABASE_NAME)).thenReturn(database);
connectionSession.getServerPreparedStatementRegistry().addPreparedStatement(statementId, new PostgreSQLServerPreparedStatement(sql, sqlStatementContext, parameterTypes));
- Collection<DatabasePacket<?>> actualPackets = executor.execute();
+ Collection<PostgreSQLPacket> actualPackets = executor.execute();
assertThat(actualPackets.size(), is(2));
- Iterator<DatabasePacket<?>> actualPacketsIterator = actualPackets.iterator();
+ Iterator<PostgreSQLPacket> actualPacketsIterator = actualPackets.iterator();
PostgreSQLParameterDescriptionPacket actualParameterDescription = (PostgreSQLParameterDescriptionPacket) actualPacketsIterator.next();
PostgreSQLPacketPayload mockPayload = mock(PostgreSQLPacketPayload.class);
actualParameterDescription.write(mockPayload);
@@ -187,7 +186,6 @@ class PostgreSQLComDescribeExecutorTest {
assertThat(actualPacketsIterator.next(), is(PostgreSQLNoDataPacket.getInstance()));
}
- @SuppressWarnings("rawtypes")
@Test
void assertDescribePreparedStatementInsertWithCaseInsensitiveColumns() throws SQLException {
when(packet.getType()).thenReturn('S');
@@ -206,9 +204,9 @@ class PostgreSQLComDescribeExecutorTest {
ShardingSphereDatabase database = contextManager.getMetaDataContexts().getMetaData().getDatabase(DATABASE_NAME);
when(ProxyContext.getInstance().getDatabase(DATABASE_NAME)).thenReturn(database);
connectionSession.getServerPreparedStatementRegistry().addPreparedStatement(statementId, new PostgreSQLServerPreparedStatement(sql, sqlStatementContext, parameterTypes));
- Collection<DatabasePacket<?>> actualPackets = executor.execute();
+ Collection<PostgreSQLPacket> actualPackets = executor.execute();
assertThat(actualPackets.size(), is(2));
- Iterator<DatabasePacket<?>> actualPacketsIterator = actualPackets.iterator();
+ Iterator<PostgreSQLPacket> actualPacketsIterator = actualPackets.iterator();
PostgreSQLParameterDescriptionPacket actualParameterDescription = (PostgreSQLParameterDescriptionPacket) actualPacketsIterator.next();
PostgreSQLPacketPayload mockPayload = mock(PostgreSQLPacketPayload.class);
actualParameterDescription.write(mockPayload);
@@ -218,7 +216,6 @@ class PostgreSQLComDescribeExecutorTest {
assertThat(actualPacketsIterator.next(), is(PostgreSQLNoDataPacket.getInstance()));
}
- @SuppressWarnings("rawtypes")
@Test
void assertDescribePreparedStatementInsertWithUndefinedColumns() {
when(packet.getType()).thenReturn('S');
@@ -240,7 +237,6 @@ class PostgreSQLComDescribeExecutorTest {
assertThrows(ColumnNotFoundException.class, () -> executor.execute());
}
- @SuppressWarnings("rawtypes")
@Test
void assertDescribePreparedStatementInsertWithReturningClause() throws SQLException {
when(packet.getType()).thenReturn('S');
@@ -260,9 +256,9 @@ class PostgreSQLComDescribeExecutorTest {
ShardingSphereDatabase database = contextManager.getMetaDataContexts().getMetaData().getDatabase(DATABASE_NAME);
when(ProxyContext.getInstance().getDatabase(DATABASE_NAME)).thenReturn(database);
connectionSession.getServerPreparedStatementRegistry().addPreparedStatement(statementId, new PostgreSQLServerPreparedStatement(sql, sqlStatementContext, parameterTypes));
- Collection<DatabasePacket<?>> actualPackets = executor.execute();
+ Collection<PostgreSQLPacket> actualPackets = executor.execute();
assertThat(actualPackets.size(), is(2));
- Iterator<DatabasePacket<?>> actualPacketsIterator = actualPackets.iterator();
+ Iterator<PostgreSQLPacket> actualPacketsIterator = actualPackets.iterator();
PostgreSQLParameterDescriptionPacket actualParameterDescription = (PostgreSQLParameterDescriptionPacket) actualPacketsIterator.next();
PostgreSQLPacketPayload mockPayload = mock(PostgreSQLPacketPayload.class);
actualParameterDescription.write(mockPayload);
@@ -324,7 +320,6 @@ class PostgreSQLComDescribeExecutorTest {
return (Collection<PostgreSQLColumnDescription>) Plugins.getMemberAccessor().get(PostgreSQLRowDescriptionPacket.class.getDeclaredField("columnDescriptions"), packet);
}
- @SuppressWarnings("rawtypes")
@Test
void assertDescribeSelectPreparedStatement() throws SQLException {
when(packet.getType()).thenReturn('S');
@@ -341,9 +336,9 @@ class PostgreSQLComDescribeExecutorTest {
ShardingSphereDatabase database = contextManager.getMetaDataContexts().getMetaData().getDatabase(DATABASE_NAME);
when(ProxyContext.getInstance().getDatabase(DATABASE_NAME)).thenReturn(database);
connectionSession.getServerPreparedStatementRegistry().addPreparedStatement(statementId, new PostgreSQLServerPreparedStatement(sql, sqlStatementContext, parameterTypes));
- Collection<DatabasePacket<?>> actual = executor.execute();
+ Collection<PostgreSQLPacket> actual = executor.execute();
assertThat(actual.size(), is(2));
- Iterator<DatabasePacket<?>> actualPacketsIterator = actual.iterator();
+ Iterator<PostgreSQLPacket> actualPacketsIterator = actual.iterator();
PostgreSQLParameterDescriptionPacket actualParameterDescription = (PostgreSQLParameterDescriptionPacket) actualPacketsIterator.next();
assertThat(actualParameterDescription, instanceOf(PostgreSQLParameterDescriptionPacket.class));
PostgreSQLPacketPayload mockPayload = mock(PostgreSQLPacketPayload.class);
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/execute/PostgreSQLComExecuteExecutorTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/execute/PostgreSQLComExecuteExecutorTest.java
index 49a3443fb0f..7408b5c1e7d 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/execute/PostgreSQLComExecuteExecutorTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/execute/PostgreSQLComExecuteExecutorTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.execute;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.execute.PostgreSQLComExecutePacket;
import org.apache.shardingsphere.proxy.frontend.postgresql.command.PortalContext;
@@ -70,7 +69,7 @@ class PostgreSQLComExecuteExecutorTest {
void assertExecute() throws SQLException {
PostgreSQLPacket expectedPacket = mock(PostgreSQLPacket.class);
when(portal.execute(anyInt())).thenReturn(Collections.singletonList(expectedPacket));
- List<DatabasePacket<?>> actualPackets = executor.execute();
+ List<PostgreSQLPacket> actualPackets = executor.execute();
assertThat(actualPackets.size(), is(1));
assertThat(actualPackets.iterator().next(), is(expectedPacket));
}
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
index 8e18555fe23..0d3951515bb 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.parse;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
+import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLColumnType;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.parse.PostgreSQLComParsePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.parse.PostgreSQLParseCompletePacket;
@@ -83,7 +83,7 @@ class PostgreSQLComParseExecutorTest {
when(parsePacket.getStatementId()).thenReturn(statementId);
ContextManager contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- Collection<DatabasePacket<?>> actualPackets = executor.execute();
+ Collection<PostgreSQLPacket> actualPackets = executor.execute();
assertThat(actualPackets.size(), is(1));
assertThat(actualPackets.iterator().next(), is(PostgreSQLParseCompletePacket.getInstance()));
PostgreSQLServerPreparedStatement actualPreparedStatement = connectionSession.getServerPreparedStatementRegistry().getPreparedStatement(statementId);
@@ -105,7 +105,7 @@ class PostgreSQLComParseExecutorTest {
Plugins.getMemberAccessor().set(PostgreSQLComParseExecutor.class.getDeclaredField("connectionSession"), executor, connectionSession);
ContextManager contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- Collection<DatabasePacket<?>> actualPackets = executor.execute();
+ Collection<PostgreSQLPacket> actualPackets = executor.execute();
assertThat(actualPackets.size(), is(1));
assertThat(actualPackets.iterator().next(), is(PostgreSQLParseCompletePacket.getInstance()));
PostgreSQLServerPreparedStatement actualPreparedStatement = connectionSession.getServerPreparedStatementRegistry().getPreparedStatement(statementId);
@@ -123,7 +123,7 @@ class PostgreSQLComParseExecutorTest {
when(parsePacket.getStatementId()).thenReturn(statementId);
ContextManager contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- Collection<DatabasePacket<?>> actualPackets = executor.execute();
+ Collection<PostgreSQLPacket> actualPackets = executor.execute();
assertThat(actualPackets.size(), is(1));
assertThat(actualPackets.iterator().next(), is(PostgreSQLParseCompletePacket.getInstance()));
PostgreSQLServerPreparedStatement actualPreparedStatement = connectionSession.getServerPreparedStatementRegistry().getPreparedStatement(statementId);
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/simple/PostgreSQLComQueryExecutorTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/simple/PostgreSQLComQueryExecutorTest.java
index 3d70f07f596..02923f34106 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/simple/PostgreSQLComQueryExecutorTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/simple/PostgreSQLComQueryExecutorTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.simple;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLDataRowPacket;
import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.PostgreSQLRowDescriptionPacket;
@@ -82,7 +81,7 @@ class PostgreSQLComQueryExecutorTest {
void assertExecuteQueryAndReturnEmptyResult() throws SQLException {
QueryResponseHeader queryResponseHeader = mock(QueryResponseHeader.class);
when(proxyBackendHandler.execute()).thenReturn(queryResponseHeader);
- Collection<DatabasePacket<?>> actual = queryExecutor.execute();
+ Collection<PostgreSQLPacket> actual = queryExecutor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(instanceOf(PostgreSQLRowDescriptionPacket.class)));
assertThat(queryExecutor.getResponseType(), is(ResponseType.QUERY));
@@ -94,7 +93,7 @@ class PostgreSQLComQueryExecutorTest {
QueryResponseHeader queryResponseHeader = mock(QueryResponseHeader.class);
when(queryResponseHeader.getQueryHeaders()).thenReturn(Collections.singletonList(new QueryHeader("schema", "table", "label", "column", 1, "type", 2, 3, true, true, true, true)));
when(proxyBackendHandler.execute()).thenReturn(queryResponseHeader);
- Collection<DatabasePacket<?>> actual = queryExecutor.execute();
+ Collection<PostgreSQLPacket> actual = queryExecutor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(instanceOf(PostgreSQLRowDescriptionPacket.class)));
assertThat(queryExecutor.getResponseType(), is(ResponseType.QUERY));
@@ -104,7 +103,7 @@ class PostgreSQLComQueryExecutorTest {
@Test
void assertExecuteUpdate() throws SQLException {
when(proxyBackendHandler.execute()).thenReturn(new UpdateResponseHeader(mock(InsertStatement.class)));
- Collection<DatabasePacket<?>> actual = queryExecutor.execute();
+ Collection<PostgreSQLPacket> actual = queryExecutor.execute();
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(instanceOf(PostgreSQLCommandCompletePacket.class)));
assertThat(queryExecutor.getResponseType(), is(ResponseType.UPDATE));