You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2023/04/24 00:40:41 UTC
[shardingsphere] branch master updated: Add more code style rules for pmd (#25292)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 07da4f79a16 Add more code style rules for pmd (#25292)
07da4f79a16 is described below
commit 07da4f79a16af44e5a800e7950d05692390a42e9
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Mon Apr 24 08:40:34 2023 +0800
Add more code style rules for pmd (#25292)
* Add more code style rules for pmd
* Add more code style rules for pmd
* Add more code style rules for pmd
* Add more code style rules for pmd
---
.../mysql/constant/MySQLBinaryColumnType.java | 2 +-
.../mysql/constant/MySQLBinlogEventType.java | 18 +++++++--------
.../binlog/row/MySQLBinlogRowsEventPacket.java | 6 ++---
.../binlog/row/MySQLBinlogTableMapEventPacket.java | 2 +-
.../value/MySQLBinlogProtocolValueFactory.java | 2 +-
.../column/value/string/MySQLJsonValueDecoder.java | 5 ++++-
.../handshake/MySQLHandshakeResponse41Packet.java | 6 ++---
.../mysql/constant/MySQLBinlogEventTypeTest.java | 2 +-
.../string/MySQLJsonBinlogProtocolValueTest.java | 2 +-
.../codec/OpenGaussPacketCodecEngine.java | 6 ++---
.../codec/PostgreSQLPacketCodecEngine.java | 6 ++---
.../command/query/PostgreSQLNoDataPacket.java | 2 +-
.../bind/PostgreSQLBindCompletePacket.java | 2 +-
.../protocol/PostgreSQLBinaryTimestampUtils.java | 8 +++----
.../bind/protocol/PostgreSQLByteConverter.java | 2 +-
.../close/PostgreSQLCloseCompletePacket.java | 2 +-
.../parse/PostgreSQLParseCompletePacket.java | 2 +-
.../generic/PostgreSQLReadyForQueryPacket.java | 2 +-
.../FeaturedDistSQLStatementParserEngine.java | 5 ++---
...OnDuplicateKeyUpdateValueParameterRewriter.java | 2 +-
.../EncryptInsertOnUpdateTokenGenerator.java | 2 +-
.../EncryptPredicateRightValueTokenGenerator.java | 8 +++----
.../dml/AbstractShadowDMLStatementRouteEngine.java | 4 ++--
.../dml/ShadowDeleteStatementRoutingEngine.java | 2 +-
.../dml/ShadowInsertStatementRoutingEngine.java | 4 ++--
.../dml/ShadowSelectStatementRoutingEngine.java | 2 +-
.../dml/ShadowUpdateStatementRoutingEngine.java | 2 +-
.../handler/query/ShowShadowRuleExecutor.java | 5 +++--
.../merge/dal/ShardingDALResultMerger.java | 2 +-
.../merge/dal/show/LogicTablesMergedResult.java | 14 +++++++-----
...rdingDataSourceGroupBroadcastRoutingEngine.java | 8 +++----
.../type/complex/ShardingComplexRoutingEngine.java | 2 +-
.../type/unicast/ShardingUnicastRoutingEngine.java | 2 +-
.../sharding/rule/BindingTableRule.java | 11 ++++++++-
.../shardingsphere/sharding/rule/TableRule.java | 17 ++++++++++++--
.../query/ShowShardingTableRuleExecutor.java | 2 +-
.../DropBroadcastTableRuleStatementUpdater.java | 2 +-
.../checker/ShardingRouteCacheableChecker.java | 4 ++--
.../engine/RowNumberPaginationContextEngine.java | 4 ++--
.../engine/TopPaginationContextEngine.java | 2 +-
.../sql/execute/result/query/QueryResult.java | 9 +-------
.../rewrite/engine/GenericSQLRewriteEngine.java | 2 +-
.../adapter/AbstractPreparedStatementAdapter.java | 2 +-
.../jdbc/core/connection/ConnectionManager.java | 14 ++++++------
.../connector/SocketSinkImporterConnector.java | 2 +-
.../pipeline/cdc/core/prepare/CDCJobPreparer.java | 2 +-
.../yaml/YamlPipelineReadConfiguration.java | 2 +-
.../core/api/impl/GovernanceRepositoryAPIImpl.java | 2 +-
.../DataConsistencyCalculateAlgorithmChooser.java | 16 +++++++------
.../consistency/DataConsistencyCheckUtils.java | 8 +++----
...StreamingDataConsistencyCalculateAlgorithm.java | 4 ++--
...DataMatchDataConsistencyCalculateAlgorithm.java | 5 ++++-
.../pipeline/core/importer/DataSourceImporter.java | 2 +-
.../core/ingest/dumper/InventoryDumper.java | 6 ++---
.../metadata/generator/PipelineDDLGenerator.java | 2 +-
.../core/prepare/PipelineJobPreparerUtils.java | 2 +-
.../mysql/ingest/MySQLIncrementalDumper.java | 2 +-
.../netty/MySQLBinlogEventPacketDecoder.java | 12 +++++-----
.../client/netty/MySQLCommandPacketDecoder.java | 26 +++++++++++-----------
.../ingest/client/netty/MySQLNegotiateHandler.java | 12 +++++-----
.../mysql/ingest/MySQLIncrementalDumperTest.java | 10 ---------
.../postgresql/ingest/wal/WALEventConverter.java | 2 +-
.../ingest/wal/decode/TestDecodingPlugin.java | 4 ++--
.../ingest/wal/WALEventConverterTest.java | 9 --------
.../query/ShowMigrationCheckStatusExecutor.java | 2 +-
.../query/ShowMigrationJobStatusExecutor.java | 2 +-
.../ShowMigrationCheckStatusExecutorTest.java | 21 -----------------
.../query/ShowMigrationJobStatusExecutorTest.java | 13 -----------
.../api/impl/ConsistencyCheckJobAPI.java | 2 +-
.../migration/prepare/MigrationJobPreparer.java | 2 +-
.../metadata/factory/InternalMetaDataFactory.java | 6 ++---
.../single/route/SingleSQLRouter.java | 6 ++---
.../sqlfederation/optimizer/SQLOptimizeEngine.java | 6 ++---
.../statement/select/SelectStatementConverter.java | 2 +-
.../TranslatableProjectFilterRule.java | 4 ++--
.../translatable/TranslatableProjectRule.java | 4 ++--
.../rexnode/SQLOptimizerRexNodeVisitor.java | 2 +-
.../transaction/core/ResourceIDGenerator.java | 2 +-
.../handler/query/ShowTransactionRuleExecutor.java | 2 +-
.../base/seata/at/SeataTransactionHolder.java | 8 +++----
.../manager/AtomikosXARecoverableResource.java | 2 +-
.../subscriber/StateChangedSubscriber.java | 2 +-
.../cluster/zookeeper/ZookeeperRepository.java | 6 ++---
.../proxy/backend/connector/BackendConnection.java | 14 ++++++------
.../ConvertYamlConfigurationExecutor.java | 2 +-
.../handler/distsql/rul/sql/PreviewHandler.java | 10 +++------
.../handler/admin/MySQLAdminExecutorCreator.java | 2 +-
.../admin/executor/ShowProcessListExecutor.java | 10 ++++-----
.../org/apache/shardingsphere/proxy/Bootstrap.java | 2 +-
.../proxy/arguments/BootstrapArguments.java | 2 +-
.../proxy/arguments/BootstrapArgumentsTest.java | 10 ++++-----
.../text/query/MySQLMultiStatementsHandler.java | 4 ++--
.../PostgreSQLBatchedStatementsExecutor.java | 4 ++--
.../mysql/visitor/format/MySQLFormatVisitor.java | 6 ++---
src/resources/pmd.xml | 17 ++++++++++++++
.../test/it/optimize/SQLNodeConverterEngineIT.java | 2 +-
.../sql/parser/internal/InternalSQLParserIT.java | 2 +-
.../internal/asserts/SQLCaseAssertContext.java | 2 +-
.../internal/asserts/segment/SQLSegmentAssert.java | 4 ++--
.../segment/expression/ExpressionAssert.java | 4 ++--
.../asserts/segment/limit/LimitClauseAssert.java | 2 +-
.../segment/parameter/ParameterMarkerAssert.java | 2 +-
.../segment/projection/ProjectionAssert.java | 4 ++--
.../cases/sql/type/CaseTypedSQLBuilderFactory.java | 4 ++--
.../internal/cases/sql/type/SQLCaseType.java | 2 +-
105 files changed, 263 insertions(+), 282 deletions(-)
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinaryColumnType.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinaryColumnType.java
index 5c32262b0cf..04cd61b8adf 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinaryColumnType.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinaryColumnType.java
@@ -81,7 +81,7 @@ public enum MySQLBinaryColumnType implements BinaryColumnType {
*
* @see <a href="https://github.com/apache/shardingsphere/issues/4795"></a>
*/
- MySQL_TYPE_JSON(0xf5),
+ MYSQL_TYPE_JSON(0xf5),
MYSQL_TYPE_NEWDECIMAL(0xf6),
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventType.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventType.java
index faff6dc8dd2..9621d85cc3f 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventType.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventType.java
@@ -74,17 +74,17 @@ public enum MySQLBinlogEventType {
TABLE_MAP_EVENT(19),
- WRITE_ROWS_EVENTv0(20),
+ WRITE_ROWS_EVENT_V0(20),
- UPDATE_ROWS_EVENTv0(21),
+ UPDATE_ROWS_EVENT_V0(21),
- DELETE_ROWS_EVENTv0(22),
+ DELETE_ROWS_EVENT_V0(22),
- WRITE_ROWS_EVENTv1(23),
+ WRITE_ROWS_EVENT_V1(23),
- UPDATE_ROWS_EVENTv1(24),
+ UPDATE_ROWS_EVENT_V1(24),
- DELETE_ROWS_EVENTv1(25),
+ DELETE_ROWS_EVENT_V1(25),
INCIDENT_EVENT(26),
@@ -94,11 +94,11 @@ public enum MySQLBinlogEventType {
ROWS_QUERY_LOG_EVENT(29),
- WRITE_ROWS_EVENTv2(30),
+ WRITE_ROWS_EVENT_V2(30),
- UPDATE_ROWS_EVENTv2(31),
+ UPDATE_ROWS_EVENT_V2(31),
- DELETE_ROWS_EVENTv2(32),
+ DELETE_ROWS_EVENT_V2(32),
GTID_LOG_EVENT(33),
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogRowsEventPacket.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogRowsEventPacket.java
index e548a7907bb..4eb7bdf3ffc 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogRowsEventPacket.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogRowsEventPacket.java
@@ -70,8 +70,8 @@ public final class MySQLBinlogRowsEventPacket extends AbstractMySQLBinlogEventPa
}
private boolean isRowsEventVersion2(final int eventType) {
- return MySQLBinlogEventType.WRITE_ROWS_EVENTv2.getValue() == eventType || MySQLBinlogEventType.UPDATE_ROWS_EVENTv2.getValue() == eventType
- || MySQLBinlogEventType.DELETE_ROWS_EVENTv2.getValue() == eventType;
+ return MySQLBinlogEventType.WRITE_ROWS_EVENT_V2.getValue() == eventType || MySQLBinlogEventType.UPDATE_ROWS_EVENT_V2.getValue() == eventType
+ || MySQLBinlogEventType.DELETE_ROWS_EVENT_V2.getValue() == eventType;
}
private MySQLNullBitmap readUpdateColumnsPresentBitmap(final MySQLPacketPayload payload) {
@@ -79,7 +79,7 @@ public final class MySQLBinlogRowsEventPacket extends AbstractMySQLBinlogEventPa
}
private boolean isUpdateRowsEvent(final int eventType) {
- return MySQLBinlogEventType.UPDATE_ROWS_EVENTv2.getValue() == eventType || MySQLBinlogEventType.UPDATE_ROWS_EVENTv1.getValue() == eventType;
+ return MySQLBinlogEventType.UPDATE_ROWS_EVENT_V2.getValue() == eventType || MySQLBinlogEventType.UPDATE_ROWS_EVENT_V1.getValue() == eventType;
}
/**
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogTableMapEventPacket.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogTableMapEventPacket.java
index c367560f850..f383ce6e598 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogTableMapEventPacket.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogTableMapEventPacket.java
@@ -103,7 +103,7 @@ public final class MySQLBinlogTableMapEventPacket extends AbstractMySQLBinlogEve
case MYSQL_TYPE_TIME2:
case MYSQL_TYPE_TIMESTAMP2:
case MYSQL_TYPE_DATETIME2:
- case MySQL_TYPE_JSON:
+ case MYSQL_TYPE_JSON:
return payload.readInt1();
default:
return 0;
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/MySQLBinlogProtocolValueFactory.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/MySQLBinlogProtocolValueFactory.java
index c4ea7b80616..a2340ab8d9b 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/MySQLBinlogProtocolValueFactory.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/MySQLBinlogProtocolValueFactory.java
@@ -92,7 +92,7 @@ public final class MySQLBinlogProtocolValueFactory {
BINLOG_PROTOCOL_VALUES.put(MySQLBinaryColumnType.MYSQL_TYPE_STRING, new MySQLStringBinlogProtocolValue());
BINLOG_PROTOCOL_VALUES.put(MySQLBinaryColumnType.MYSQL_TYPE_VARCHAR, new MySQLVarcharBinlogProtocolValue());
BINLOG_PROTOCOL_VALUES.put(MySQLBinaryColumnType.MYSQL_TYPE_VAR_STRING, new MySQLVarcharBinlogProtocolValue());
- BINLOG_PROTOCOL_VALUES.put(MySQLBinaryColumnType.MySQL_TYPE_JSON, new MySQLJsonBinlogProtocolValue());
+ BINLOG_PROTOCOL_VALUES.put(MySQLBinaryColumnType.MYSQL_TYPE_JSON, new MySQLJsonBinlogProtocolValue());
}
private static void registerBlobTypeValue() {
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonValueDecoder.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonValueDecoder.java
index 25cdeeb365b..c691ab8343c 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonValueDecoder.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonValueDecoder.java
@@ -238,8 +238,11 @@ public final class MySQLJsonValueDecoder {
out.append('"');
}
+ /**
+ * Json value types.
+ */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
- static final class JsonValueTypes {
+ public static final class JsonValueTypes {
public static final byte SMALL_JSON_OBJECT = 0x00;
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/handshake/MySQLHandshakeResponse41Packet.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/handshake/MySQLHandshakeResponse41Packet.java
index 4b84b330293..917bb68b87a 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/handshake/MySQLHandshakeResponse41Packet.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/handshake/MySQLHandshakeResponse41Packet.java
@@ -72,11 +72,11 @@ public final class MySQLHandshakeResponse41Packet implements MySQLPacket {
}
private String readDatabase(final MySQLPacketPayload payload) {
- return 0 != (capabilityFlags & MySQLCapabilityFlag.CLIENT_CONNECT_WITH_DB.getValue()) ? payload.readStringNul() : null;
+ return 0 == (capabilityFlags & MySQLCapabilityFlag.CLIENT_CONNECT_WITH_DB.getValue()) ? null : payload.readStringNul();
}
private String readAuthPluginName(final MySQLPacketPayload payload) {
- return 0 != (capabilityFlags & MySQLCapabilityFlag.CLIENT_PLUGIN_AUTH.getValue()) ? payload.readStringNul() : null;
+ return 0 == (capabilityFlags & MySQLCapabilityFlag.CLIENT_PLUGIN_AUTH.getValue()) ? null : payload.readStringNul();
}
/**
@@ -92,7 +92,7 @@ public final class MySQLHandshakeResponse41Packet implements MySQLPacket {
/**
* Set authentication plugin name.
*
- * @param authenticationMethod MySQL authentication method
+ * @param authenticationMethod authentication method of MySQL
*/
public void setAuthPluginName(final MySQLAuthenticationMethod authenticationMethod) {
authPluginName = authenticationMethod.getMethodName();
diff --git a/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventTypeTest.java b/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventTypeTest.java
index 93302907b7a..554eaab99a9 100644
--- a/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventTypeTest.java
+++ b/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventTypeTest.java
@@ -30,7 +30,7 @@ class MySQLBinlogEventTypeTest {
@Test
void assertGetValue() {
- assertThat(MySQLBinlogEventType.WRITE_ROWS_EVENTv2.getValue(), is(0x1e));
+ assertThat(MySQLBinlogEventType.WRITE_ROWS_EVENT_V2.getValue(), is(0x1e));
}
@Test
diff --git a/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonBinlogProtocolValueTest.java b/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonBinlogProtocolValueTest.java
index 1abff4d4399..4672a44c7f5 100644
--- a/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonBinlogProtocolValueTest.java
+++ b/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonBinlogProtocolValueTest.java
@@ -57,7 +57,7 @@ class MySQLJsonBinlogProtocolValueTest {
@BeforeEach
void setUp() {
- columnDef = new MySQLBinlogColumnDef(MySQLBinaryColumnType.MySQL_TYPE_JSON);
+ columnDef = new MySQLBinlogColumnDef(MySQLBinaryColumnType.MYSQL_TYPE_JSON);
when(payload.getByteBuf()).thenReturn(byteBuf);
mockJsonValue();
}
diff --git a/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java b/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java
index 0e5676cbce3..a614dc4bbcc 100644
--- a/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java
+++ b/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java
@@ -73,10 +73,10 @@ public final class OpenGaussPacketCodecEngine implements DatabasePacketCodecEngi
CommandPacketType commandPacketType = OpenGaussCommandPacketType.valueOf(type);
if (requireAggregation(commandPacketType)) {
pendingMessages.add(in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength));
- } else if (!pendingMessages.isEmpty()) {
- handlePendingMessages(context, in, out, payloadLength);
- } else {
+ } else if (pendingMessages.isEmpty()) {
out.add(in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength));
+ } else {
+ handlePendingMessages(context, in, out, payloadLength);
}
}
}
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java
index 8eb9de501b6..626a5e12667 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java
@@ -71,10 +71,10 @@ public final class PostgreSQLPacketCodecEngine implements DatabasePacketCodecEng
PostgreSQLCommandPacketType commandPacketType = PostgreSQLCommandPacketType.valueOf(type);
if (requireAggregation(commandPacketType)) {
pendingMessages.add(in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength));
- } else if (!pendingMessages.isEmpty()) {
- handlePendingMessages(context, in, out, payloadLength);
- } else {
+ } else if (pendingMessages.isEmpty()) {
out.add(in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength));
+ } else {
+ handlePendingMessages(context, in, out, payloadLength);
}
}
}
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/PostgreSQLNoDataPacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/PostgreSQLNoDataPacket.java
index 703fcd3b02e..95cabffd824 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/PostgreSQLNoDataPacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/PostgreSQLNoDataPacket.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacket
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class PostgreSQLNoDataPacket implements PostgreSQLPacket {
- private static final byte[] VALUE = new byte[]{(byte) PostgreSQLMessagePacketType.NO_DATA.getValue(), 0, 0, 0, 4};
+ private static final byte[] VALUE = {(byte) PostgreSQLMessagePacketType.NO_DATA.getValue(), 0, 0, 0, 4};
private static final PostgreSQLNoDataPacket INSTANCE = new PostgreSQLNoDataPacket();
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/PostgreSQLBindCompletePacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/PostgreSQLBindCompletePacket.java
index 84f852fc322..48a23c9d1e5 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/PostgreSQLBindCompletePacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/PostgreSQLBindCompletePacket.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacket
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class PostgreSQLBindCompletePacket implements PostgreSQLPacket {
- private static final byte[] VALUE = new byte[]{(byte) PostgreSQLMessagePacketType.BIND_COMPLETE.getValue(), 0, 0, 0, 4};
+ private static final byte[] VALUE = {(byte) PostgreSQLMessagePacketType.BIND_COMPLETE.getValue(), 0, 0, 0, 4};
private static final PostgreSQLBindCompletePacket INSTANCE = new PostgreSQLBindCompletePacket();
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLBinaryTimestampUtils.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLBinaryTimestampUtils.java
index 5330039f756..fb08b6ae6d2 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLBinaryTimestampUtils.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLBinaryTimestampUtils.java
@@ -42,11 +42,11 @@ public final class PostgreSQLBinaryTimestampUtils {
* @return PostgreSQL time
*/
public static long toPostgreSQLTime(final Timestamp timestamp, final boolean withTimeZone) {
- long millis = timestamp.getTime() - (timestamp.getNanos() / 1000000) + (!withTimeZone ? TimeZone.getDefault().getRawOffset() : 0);
- long nanos = timestamp.getNanos() / 1000;
+ long millis = timestamp.getTime() - (timestamp.getNanos() / 1000000L) + (withTimeZone ? 0L : TimeZone.getDefault().getRawOffset());
+ long nanos = timestamp.getNanos() / 1000L;
long pgSeconds = convertJavaEpochToPgEpoch(millis / 1000L);
- if (nanos >= 1000000) {
- nanos -= 1000000;
+ if (nanos >= 1000000L) {
+ nanos -= 1000000L;
pgSeconds++;
}
return pgSeconds * 1000000 + nanos;
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLByteConverter.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLByteConverter.java
index 7190ed7c216..f3fa8f475bf 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLByteConverter.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLByteConverter.java
@@ -122,7 +122,7 @@ public final class PostgreSQLByteConverter {
}
private static byte[] initBytesZeroCase(final int scale) {
- final byte[] result = new byte[]{0, 0, -1, -1, 0, 0, 0, 0};
+ final byte[] result = {0, 0, -1, -1, 0, 0, 0, 0};
int2(result, 6, Math.max(0, scale));
return result;
}
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/close/PostgreSQLCloseCompletePacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/close/PostgreSQLCloseCompletePacket.java
index 58886100cfa..cfbd21a72c4 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/close/PostgreSQLCloseCompletePacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/close/PostgreSQLCloseCompletePacket.java
@@ -26,7 +26,7 @@ import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacket
*/
public final class PostgreSQLCloseCompletePacket implements PostgreSQLPacket {
- private static final byte[] VALUE = new byte[]{(byte) PostgreSQLMessagePacketType.CLOSE_COMPLETE.getValue(), 0, 0, 0, 4};
+ private static final byte[] VALUE = {(byte) PostgreSQLMessagePacketType.CLOSE_COMPLETE.getValue(), 0, 0, 0, 4};
private static final PostgreSQLCloseCompletePacket INSTANCE = new PostgreSQLCloseCompletePacket();
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/parse/PostgreSQLParseCompletePacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/parse/PostgreSQLParseCompletePacket.java
index 188acc7db76..21a1b082b40 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/parse/PostgreSQLParseCompletePacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/parse/PostgreSQLParseCompletePacket.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacket
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class PostgreSQLParseCompletePacket implements PostgreSQLPacket {
- private static final byte[] VALUE = new byte[]{(byte) PostgreSQLMessagePacketType.PARSE_COMPLETE.getValue(), 0, 0, 0, 4};
+ private static final byte[] VALUE = {(byte) PostgreSQLMessagePacketType.PARSE_COMPLETE.getValue(), 0, 0, 0, 4};
private static final PostgreSQLParseCompletePacket INSTANCE = new PostgreSQLParseCompletePacket();
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLReadyForQueryPacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLReadyForQueryPacket.java
index ce444df8867..f7908c2fb9d 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLReadyForQueryPacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLReadyForQueryPacket.java
@@ -35,7 +35,7 @@ public final class PostgreSQLReadyForQueryPacket implements PostgreSQLPacket {
public static final PostgreSQLReadyForQueryPacket TRANSACTION_FAILED = new PostgreSQLReadyForQueryPacket((byte) 'E');
- private static final byte[] PREFIX = new byte[]{(byte) PostgreSQLMessagePacketType.READY_FOR_QUERY.getValue(), 0, 0, 0, 5};
+ private static final byte[] PREFIX = {(byte) PostgreSQLMessagePacketType.READY_FOR_QUERY.getValue(), 0, 0, 0, 5};
private final byte status;
diff --git a/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/featured/FeaturedDistSQLStatementParserEngine.java b/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/featured/FeaturedDistSQLStatementParserEngine.java
index d1f65ce7e49..ef6c6a95523 100644
--- a/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/featured/FeaturedDistSQLStatementParserEngine.java
+++ b/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/featured/FeaturedDistSQLStatementParserEngine.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.distsql.parser.core.featured;
import lombok.SneakyThrows;
import org.antlr.v4.runtime.misc.ParseCancellationException;
import org.antlr.v4.runtime.tree.ErrorNode;
-import org.antlr.v4.runtime.tree.ParseTreeVisitor;
import org.apache.shardingsphere.distsql.parser.engine.spi.FeaturedDistSQLStatementParserFacade;
import org.apache.shardingsphere.infra.util.spi.ShardingSphereServiceLoader;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
@@ -60,10 +59,10 @@ public final class FeaturedDistSQLStatementParserEngine {
@SneakyThrows(ReflectiveOperationException.class)
@SuppressWarnings("rawtypes")
private SQLStatement getSQLStatement(final String sql, final String featureType, final ParseASTNode parseASTNode) {
- SQLVisitor visitor = TypedSPILoader.getService(FeaturedDistSQLStatementParserFacade.class, featureType).getVisitorClass().getDeclaredConstructor().newInstance();
if (parseASTNode.getRootNode() instanceof ErrorNode) {
throw new SQLParsingException(sql);
}
- return (SQLStatement) ((ParseTreeVisitor) visitor).visit(parseASTNode.getRootNode());
+ SQLVisitor visitor = TypedSPILoader.getService(FeaturedDistSQLStatementParserFacade.class, featureType).getVisitorClass().getDeclaredConstructor().newInstance();
+ return (SQLStatement) visitor.visit(parseASTNode.getRootNode());
}
}
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
index b21ed51605d..bf9211e5a16 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
@@ -66,7 +66,6 @@ public final class EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter imple
String schemaName = insertStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(insertStatementContext.getDatabaseType(), databaseName));
for (int index = 0; index < onDuplicateKeyUpdateValueContext.getValueExpressions().size(); index++) {
String encryptLogicColumnName = onDuplicateKeyUpdateValueContext.getColumn(index).getIdentifier().getValue();
- EncryptContext encryptContext = EncryptContextBuilder.build(databaseName, schemaName, tableName, encryptLogicColumnName);
Optional<EncryptAlgorithm> encryptor = encryptRule.findEncryptor(tableName, encryptLogicColumnName);
if (!encryptor.isPresent()) {
continue;
@@ -75,6 +74,7 @@ public final class EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter imple
if (plainColumnValue instanceof FunctionSegment && "VALUES".equalsIgnoreCase(((FunctionSegment) plainColumnValue).getFunctionName())) {
return;
}
+ EncryptContext encryptContext = EncryptContextBuilder.build(databaseName, schemaName, tableName, encryptLogicColumnName);
Object cipherColumnValue = encryptor.get().encrypt(plainColumnValue, encryptContext);
groupedParamBuilder.getGenericParameterBuilder().addReplacedParameters(index, cipherColumnValue);
Collection<Object> addedParams = new LinkedList<>();
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 1eb1767ab19..7f9b44a8b6a 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
@@ -65,7 +65,6 @@ public final class EncryptInsertOnUpdateTokenGenerator implements CollectionSQLT
public Collection<EncryptAssignmentToken> generateSQLTokens(final InsertStatementContext insertStatementContext) {
Collection<EncryptAssignmentToken> result = new LinkedList<>();
InsertStatement insertStatement = insertStatementContext.getSqlStatement();
- String tableName = insertStatement.getTable().getTableName().getIdentifier().getValue();
Preconditions.checkState(InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement).isPresent());
OnDuplicateKeyColumnsSegment onDuplicateKeyColumnsSegment = InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement).get();
Collection<AssignmentSegment> onDuplicateKeyColumnsSegments = onDuplicateKeyColumnsSegment.getColumns();
@@ -73,6 +72,7 @@ public final class EncryptInsertOnUpdateTokenGenerator implements CollectionSQLT
return result;
}
String schemaName = insertStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(insertStatementContext.getDatabaseType(), databaseName));
+ String tableName = insertStatement.getTable().getTableName().getIdentifier().getValue();
for (AssignmentSegment each : onDuplicateKeyColumnsSegments) {
boolean leftEncryptorPresent = encryptRule.findEncryptor(tableName, each.getColumns().get(0).getIdentifier().getValue()).isPresent();
if (each.getValue() instanceof FunctionSegment && "VALUES".equalsIgnoreCase(((FunctionSegment) each.getValue()).getFunctionName())) {
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
index ce97178e824..f15cbb0ac45 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
@@ -35,6 +35,7 @@ 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.generator.aware.ParametersAware;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
+import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.FunctionSegment;
import java.util.Collection;
@@ -104,11 +105,8 @@ public final class EncryptPredicateRightValueTokenGenerator
private List<Object> getEncryptedValues(final String schemaName, final EncryptCondition encryptCondition, final List<Object> originalValues) {
if (encryptCondition instanceof EncryptBinaryCondition && "LIKE".equalsIgnoreCase(((EncryptBinaryCondition) encryptCondition).getOperator())) {
Optional<String> likeQueryColumn = encryptRule.findLikeQueryColumn(encryptCondition.getTableName(), encryptCondition.getColumnName());
- if (!likeQueryColumn.isPresent()) {
- throw new UnsupportedEncryptSQLException("LIKE");
- } else {
- return encryptRule.getEncryptLikeQueryValues(databaseName, schemaName, encryptCondition.getTableName(), encryptCondition.getColumnName(), originalValues);
- }
+ ShardingSpherePreconditions.checkState(likeQueryColumn.isPresent(), () -> new UnsupportedEncryptSQLException("LIKE"));
+ return encryptRule.getEncryptLikeQueryValues(databaseName, schemaName, encryptCondition.getTableName(), encryptCondition.getColumnName(), originalValues);
}
Optional<String> assistedQueryColumn = encryptRule.findAssistedQueryColumn(encryptCondition.getTableName(), encryptCondition.getColumnName());
return assistedQueryColumn.isPresent()
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
index 9ae821f4e5e..319e0dabfc6 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
@@ -32,6 +32,7 @@ import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import java.util.Collection;
+import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
@@ -117,14 +118,13 @@ public abstract class AbstractShadowDMLStatementRouteEngine implements ShadowRou
}
private Map<String, String> findByShadowColumn(final Collection<String> relatedShadowTables, final ShadowRule shadowRule, final ShadowOperationType shadowOperationType) {
- Map<String, String> result = new LinkedHashMap<>();
for (String each : relatedShadowTables) {
Collection<String> relatedShadowColumnNames = shadowRule.getRelatedShadowColumnNames(shadowOperationType, each);
if (!relatedShadowColumnNames.isEmpty() && isMatchAnyColumnShadowAlgorithms(each, relatedShadowColumnNames, shadowRule, shadowOperationType)) {
return shadowRule.getRelatedShadowDataSourceMappings(each);
}
}
- return result;
+ return Collections.emptyMap();
}
private boolean isMatchAnyColumnShadowAlgorithms(final String shadowTable, final Collection<String> shadowColumnNames, final ShadowRule shadowRule, final ShadowOperationType shadowOperation) {
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java
index 570ef65cfa0..196c7cf9adf 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java
@@ -79,7 +79,7 @@ public final class ShadowDeleteStatementRoutingEngine extends AbstractShadowDMLS
private final class ShadowColumnConditionIterator extends AbstractWhereSegmentShadowColumnConditionIterator {
- ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
+ private ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
super(shadowColumn, predicates.iterator());
}
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java
index 9c9492d74f3..75c5122d1d5 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java
@@ -65,7 +65,7 @@ public final class ShadowInsertStatementRoutingEngine extends AbstractShadowDMLS
return insertStatementContext.getInsertColumnNames();
}
- private class ShadowColumnConditionIterator implements Iterator<Optional<ShadowColumnCondition>> {
+ private final class ShadowColumnConditionIterator implements Iterator<Optional<ShadowColumnCondition>> {
private int index;
@@ -75,7 +75,7 @@ public final class ShadowInsertStatementRoutingEngine extends AbstractShadowDMLS
private final List<InsertValueContext> insertValueContexts;
- ShadowColumnConditionIterator(final String shadowColumn, final Iterator<String> iterator, final List<InsertValueContext> insertValueContexts) {
+ private ShadowColumnConditionIterator(final String shadowColumn, final Iterator<String> iterator, final List<InsertValueContext> insertValueContexts) {
index = 0;
this.shadowColumn = shadowColumn;
this.iterator = iterator;
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java
index 0b660498707..e81455219f4 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java
@@ -80,7 +80,7 @@ public final class ShadowSelectStatementRoutingEngine extends AbstractShadowDMLS
private final class ShadowColumnConditionIterator extends AbstractWhereSegmentShadowColumnConditionIterator {
- ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
+ private ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
super(shadowColumn, predicates.iterator());
}
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java
index 6a40b687264..5dac45ed076 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java
@@ -79,7 +79,7 @@ public final class ShadowUpdateStatementRoutingEngine extends AbstractShadowDMLS
private final class ShadowColumnConditionIterator extends AbstractWhereSegmentShadowColumnConditionIterator {
- ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
+ private ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
super(shadowColumn, predicates.iterator());
}
diff --git a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowRuleExecutor.java b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowRuleExecutor.java
index f6a1e4e9b74..486c576a149 100644
--- a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowRuleExecutor.java
+++ b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowRuleExecutor.java
@@ -68,8 +68,9 @@ public final class ShowShadowRuleExecutor implements RQLExecutor<ShowShadowRules
private Iterator<Map<String, String>> buildDataSourceIterator(final ShadowRuleConfiguration ruleConfig, final ShowShadowRulesStatement sqlStatement) {
Map<String, Map<String, ShadowTableConfiguration>> dataSourceTableMap = convertToDataSourceTableMap(ruleConfig.getTables());
- Collection<ShadowDataSourceConfiguration> specifiedConfigs = !isSpecified(sqlStatement) ? ruleConfig.getDataSources()
- : ruleConfig.getDataSources().stream().filter(each -> each.getName().equalsIgnoreCase(sqlStatement.getRuleName())).collect(Collectors.toList());
+ Collection<ShadowDataSourceConfiguration> specifiedConfigs = isSpecified(sqlStatement)
+ ? ruleConfig.getDataSources().stream().filter(each -> each.getName().equalsIgnoreCase(sqlStatement.getRuleName())).collect(Collectors.toList())
+ : ruleConfig.getDataSources();
return specifiedConfigs.stream().map(each -> buildDataItem(each, dataSourceTableMap)).collect(Collectors.toList()).iterator();
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
index 38d2651549a..934184880f6 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
@@ -59,10 +59,10 @@ public final class ShardingDALResultMerger implements ResultMerger {
public MergedResult merge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext,
final ShardingSphereDatabase database, final ConnectionContext connectionContext) throws SQLException {
SQLStatement dalStatement = sqlStatementContext.getSqlStatement();
- String schemaName = sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), database.getName()));
if (dalStatement instanceof MySQLShowDatabasesStatement) {
return new LocalDataMergedResult(Collections.singleton(new LocalDataQueryResultRow(databaseName)));
}
+ String schemaName = sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), database.getName()));
ShardingSphereSchema schema = database.getSchema(schemaName);
if (dalStatement instanceof MySQLShowTablesStatement) {
return new LogicTablesMergedResult(shardingRule, sqlStatementContext, schema, queryResults);
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java
index 5dfc4e25694..3ad7402ded9 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java
@@ -53,16 +53,18 @@ public class LogicTablesMergedResult extends MemoryMergedResult<ShardingRule> {
MemoryQueryResultRow memoryResultSetRow = new MemoryQueryResultRow(each);
String actualTableName = memoryResultSetRow.getCell(1).toString();
Optional<TableRule> tableRule = shardingRule.findTableRuleByActualTable(actualTableName);
- if (!tableRule.isPresent()) {
+ if (tableRule.isPresent()) {
+ if (tableNames.add(tableRule.get().getLogicTable())) {
+ String logicTableName = tableRule.get().getLogicTable();
+ memoryResultSetRow.setCell(1, logicTableName);
+ setCellValue(memoryResultSetRow, logicTableName, actualTableName, schema.getTable(logicTableName), shardingRule);
+ result.add(memoryResultSetRow);
+ }
+ } else {
if (shardingRule.getTableRules().isEmpty() || tableNames.add(actualTableName)) {
setCellValue(memoryResultSetRow, actualTableName, actualTableName, schema.getTable(actualTableName), shardingRule);
result.add(memoryResultSetRow);
}
- } else if (tableNames.add(tableRule.get().getLogicTable())) {
- String logicTableName = tableRule.get().getLogicTable();
- memoryResultSetRow.setCell(1, logicTableName);
- setCellValue(memoryResultSetRow, logicTableName, actualTableName, schema.getTable(logicTableName), shardingRule);
- result.add(memoryResultSetRow);
}
}
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDataSourceGroupBroadcastRoutingEngine.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDataSourceGroupBroadcastRoutingEngine.java
index 5902b10180f..c47a2e40eb5 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDataSourceGroupBroadcastRoutingEngine.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDataSourceGroupBroadcastRoutingEngine.java
@@ -66,19 +66,19 @@ public final class ShardingDataSourceGroupBroadcastRoutingEngine implements Shar
private Collection<Set<String>> getCandidateDataSourceGroup(final Collection<Set<String>> dataSourceSetGroup, final Set<String> compareSet) {
Collection<Set<String>> result = new LinkedList<>();
- Set<String> intersections;
if (dataSourceSetGroup.isEmpty()) {
result.add(compareSet);
return result;
}
+ Set<String> intersections;
boolean hasIntersection = false;
for (Set<String> each : dataSourceSetGroup) {
intersections = Sets.intersection(each, compareSet);
- if (!intersections.isEmpty()) {
+ if (intersections.isEmpty()) {
+ result.add(each);
+ } else {
result.add(intersections);
hasIntersection = true;
- } else {
- result.add(each);
}
}
if (!hasIntersection) {
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRoutingEngine.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRoutingEngine.java
index d5f6b704ef8..88f452baabf 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRoutingEngine.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRoutingEngine.java
@@ -52,7 +52,6 @@ public final class ShardingComplexRoutingEngine implements ShardingRouteEngine {
@Override
public RouteContext route(final ShardingRule shardingRule) {
- RouteContext result = new RouteContext();
Collection<String> bindingTableNames = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
Collection<RouteContext> routeContexts = new LinkedList<>();
for (String each : logicTables) {
@@ -67,6 +66,7 @@ public final class ShardingComplexRoutingEngine implements ShardingRouteEngine {
if (routeContexts.isEmpty()) {
throw new ShardingTableRuleNotFoundException(logicTables);
}
+ RouteContext result = new RouteContext();
if (1 == routeContexts.size()) {
RouteContext newRouteContext = routeContexts.iterator().next();
result.getOriginalDataNodes().addAll(newRouteContext.getOriginalDataNodes());
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngine.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngine.java
index 39924042dd8..615e38498a2 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngine.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngine.java
@@ -117,7 +117,7 @@ public final class ShardingUnicastRoutingEngine implements ShardingRouteEngine {
private String getRandomDataSourceName(final Collection<String> dataSourceNames) {
Collection<String> preferredDataSourceNames = connectionContext.getPreferredDataSourceNames();
- List<String> availableDataSourceNames = new ArrayList<>(!preferredDataSourceNames.isEmpty() ? preferredDataSourceNames : dataSourceNames);
+ List<String> availableDataSourceNames = new ArrayList<>(preferredDataSourceNames.isEmpty() ? dataSourceNames : preferredDataSourceNames);
return availableDataSourceNames.get(ThreadLocalRandom.current().nextInt(availableDataSourceNames.size()));
}
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/BindingTableRule.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/BindingTableRule.java
index 5cd80321e70..d186a0bd0a2 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/BindingTableRule.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/BindingTableRule.java
@@ -81,7 +81,16 @@ public final class BindingTableRule {
return tableRules.keySet();
}
- Map<String, String> getLogicAndActualTables(final String dataSource, final String logicTable, final String actualTable, final Collection<String> availableLogicBindingTables) {
+ /**
+ * Get logic and actual tables.
+ *
+ * @param dataSource data source
+ * @param logicTable logic table
+ * @param actualTable actual table
+ * @param availableLogicBindingTables available logic binding tables
+ * @return logic and actual tables
+ */
+ public Map<String, String> getLogicAndActualTables(final String dataSource, final String logicTable, final String actualTable, final Collection<String> availableLogicBindingTables) {
Map<String, String> result = new LinkedHashMap<>();
for (String each : availableLogicBindingTables) {
String availableLogicTable = each.toLowerCase();
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/TableRule.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/TableRule.java
index 93362b3d753..4f8ca30d1f7 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/TableRule.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/TableRule.java
@@ -233,11 +233,24 @@ public final class TableRule {
return dataSourceToTablesMap.getOrDefault(targetDataSource, Collections.emptySet());
}
- int findActualTableIndex(final String dataSourceName, final String actualTableName) {
+ /**
+ * Find actual table index.
+ *
+ * @param dataSourceName data source name
+ * @param actualTableName actual table name
+ * @return actual table index
+ */
+ public int findActualTableIndex(final String dataSourceName, final String actualTableName) {
return dataNodeIndexMap.getOrDefault(new DataNode(dataSourceName, actualTableName), -1);
}
- boolean isExisted(final String actualTableName) {
+ /**
+ * Is existed.
+ *
+ * @param actualTableName actual table name
+ * @return is existed or not
+ */
+ public boolean isExisted(final String actualTableName) {
return actualTables.contains(actualTableName);
}
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableRuleExecutor.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableRuleExecutor.java
index 9964b12f5c7..6ae20c7d9ab 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableRuleExecutor.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableRuleExecutor.java
@@ -172,7 +172,7 @@ public final class ShowShardingTableRuleExecutor implements RQLExecutor<ShowShar
auditorTypes.add(shardingRuleConfig.getAuditors().get(each).getType());
}
}
- return !auditorTypes.isEmpty() ? String.join(",", auditorTypes) : "";
+ return auditorTypes.isEmpty() ? "" : String.join(",", auditorTypes);
}
private String getAllowHintDisable(final ShardingAuditStrategyConfiguration shardingAuditStrategyConfig) {
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java
index 02b31690c80..34675e52679 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java
@@ -35,10 +35,10 @@ public final class DropBroadcastTableRuleStatementUpdater implements RuleDefinit
@Override
public void checkSQLStatement(final ShardingSphereDatabase database,
final DropBroadcastTableRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
- String databaseName = database.getName();
if (!isExistRuleConfig(currentRuleConfig) && sqlStatement.isIfExists()) {
return;
}
+ String databaseName = database.getName();
checkCurrentRuleConfiguration(databaseName, currentRuleConfig);
checkBroadcastTableRuleExist(databaseName, sqlStatement, currentRuleConfig);
}
diff --git a/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java b/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
index 4bf437f52fd..f6daed849c0 100644
--- a/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
+++ b/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
@@ -212,7 +212,7 @@ public final class ShardingRouteCacheableChecker {
@EqualsAndHashCode(of = "sql")
@Getter
- private static class Key {
+ private static final class Key {
private final ShardingSphereDatabase database;
@@ -222,7 +222,7 @@ public final class ShardingRouteCacheableChecker {
private final List<Object> parameters;
- Key(final ShardingSphereDatabase database, final String sql, final SQLStatementContext<?> sqlStatementContext, final List<Object> params) {
+ private Key(final ShardingSphereDatabase database, final String sql, final SQLStatementContext<?> sqlStatementContext, final List<Object> params) {
this.database = database;
this.sql = sql;
this.sqlStatementContext = sqlStatementContext;
diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/RowNumberPaginationContextEngine.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
index 6e9f31796a1..7bcc5888692 100644
--- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
+++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
@@ -58,7 +58,7 @@ public final class RowNumberPaginationContextEngine {
* @return pagination context
*/
public PaginationContext createPaginationContext(final Collection<ExpressionSegment> expressions, final ProjectionsContext projectionsContext, final List<Object> params) {
- Optional<String> rowNumberAlias = isRowNumberAlias(projectionsContext);
+ Optional<String> rowNumberAlias = findRowNumberAlias(projectionsContext);
if (!rowNumberAlias.isPresent()) {
return new PaginationContext(null, null, params);
}
@@ -79,7 +79,7 @@ public final class RowNumberPaginationContextEngine {
return result;
}
- private Optional<String> isRowNumberAlias(final ProjectionsContext projectionsContext) {
+ private Optional<String> findRowNumberAlias(final ProjectionsContext projectionsContext) {
for (String each : ROW_NUMBER_IDENTIFIERS) {
Optional<String> result = projectionsContext.findAlias(each);
if (result.isPresent()) {
diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/TopPaginationContextEngine.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/TopPaginationContextEngine.java
index 24b2e096fbb..486c7aef10b 100644
--- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/TopPaginationContextEngine.java
+++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/TopPaginationContextEngine.java
@@ -51,7 +51,7 @@ public final class TopPaginationContextEngine {
*/
public PaginationContext createPaginationContext(final TopProjectionSegment topProjectionSegment, final Collection<ExpressionSegment> expressions, final List<Object> params) {
Collection<AndPredicate> andPredicates = expressions.stream().flatMap(each -> ExpressionExtractUtils.getAndPredicates(each).stream()).collect(Collectors.toList());
- Optional<ExpressionSegment> rowNumberPredicate = !expressions.isEmpty() ? getRowNumberPredicate(andPredicates, topProjectionSegment.getAlias()) : Optional.empty();
+ Optional<ExpressionSegment> rowNumberPredicate = expressions.isEmpty() ? Optional.empty() : getRowNumberPredicate(andPredicates, topProjectionSegment.getAlias());
Optional<PaginationValueSegment> offset = rowNumberPredicate.isPresent() ? createOffsetWithRowNumber(rowNumberPredicate.get()) : Optional.empty();
PaginationValueSegment rowCount = topProjectionSegment.getTop();
return new PaginationContext(offset.orElse(null), rowCount, params);
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/QueryResult.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/QueryResult.java
index 310bddfe534..99eabddaf13 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/QueryResult.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/QueryResult.java
@@ -26,7 +26,7 @@ import java.util.Calendar;
/**
* Query result.
*/
-public interface QueryResult extends ExecuteResult {
+public interface QueryResult extends ExecuteResult, AutoCloseable {
/**
* Iterate next data.
@@ -81,11 +81,4 @@ public interface QueryResult extends ExecuteResult {
* @return query result meta data
*/
QueryResultMetaData getMetaData();
-
- /**
- * Close.
- *
- * @throws SQLException SQL exception
- */
- void close() throws SQLException;
}
diff --git a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java
index 5037c56a597..be87c0e6612 100644
--- a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java
+++ b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java
@@ -48,7 +48,7 @@ public final class GenericSQLRewriteEngine {
public GenericSQLRewriteResult rewrite(final SQLRewriteContext sqlRewriteContext) {
String sql = translatorRule.translate(
new DefaultSQLBuilder(sqlRewriteContext).toSQL(), sqlRewriteContext.getSqlStatementContext().getSqlStatement(), protocolType,
- !storageTypes.isEmpty() ? storageTypes.values().iterator().next() : protocolType);
+ storageTypes.isEmpty() ? protocolType : storageTypes.values().iterator().next());
return new GenericSQLRewriteResult(new SQLRewriteUnit(sql, sqlRewriteContext.getParameterBuilder().getParameters()));
}
}
diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractPreparedStatementAdapter.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractPreparedStatementAdapter.java
index d168a20b29a..8624ea95998 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractPreparedStatementAdapter.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractPreparedStatementAdapter.java
@@ -297,7 +297,7 @@ public abstract class AbstractPreparedStatementAdapter extends AbstractUnsupport
}
@FunctionalInterface
- interface PreparedStatementInvocationReplayer {
+ private interface PreparedStatementInvocationReplayer {
void replayOn(PreparedStatement preparedStatement) throws SQLException;
}
diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
index f786ed91f7d..7e6b0b583df 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
@@ -303,7 +303,7 @@ public final class ConnectionManager implements ExecutorJDBCConnectionManager, A
@Override
public List<Connection> getConnections(final String dataSourceName, final int connectionSize, final ConnectionMode connectionMode) throws SQLException {
DataSource dataSource = dataSourceMap.get(dataSourceName);
- Preconditions.checkState(null != dataSource, "Missing the data source name: '%s'", dataSourceName);
+ Preconditions.checkNotNull(dataSource, "Missing the data source name: '%s'", dataSourceName);
Collection<Connection> connections;
synchronized (cachedConnections) {
connections = cachedConnections.get(dataSourceName);
@@ -311,7 +311,12 @@ public final class ConnectionManager implements ExecutorJDBCConnectionManager, A
List<Connection> result;
if (connections.size() >= connectionSize) {
result = new ArrayList<>(connections).subList(0, connectionSize);
- } else if (!connections.isEmpty()) {
+ } else if (connections.isEmpty()) {
+ result = new ArrayList<>(createConnections(dataSourceName, dataSource, connectionSize, connectionMode));
+ synchronized (cachedConnections) {
+ cachedConnections.putAll(dataSourceName, result);
+ }
+ } else {
result = new ArrayList<>(connectionSize);
result.addAll(connections);
List<Connection> newConnections = createConnections(dataSourceName, dataSource, connectionSize - connections.size(), connectionMode);
@@ -319,11 +324,6 @@ public final class ConnectionManager implements ExecutorJDBCConnectionManager, A
synchronized (cachedConnections) {
cachedConnections.putAll(dataSourceName, newConnections);
}
- } else {
- result = new ArrayList<>(createConnections(dataSourceName, dataSource, connectionSize, connectionMode));
- synchronized (cachedConnections) {
- cachedConnections.putAll(dataSourceName, result);
- }
}
return result;
}
diff --git a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/connector/SocketSinkImporterConnector.java b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/connector/SocketSinkImporterConnector.java
index 402dd123aa0..1fd48ecc6dc 100644
--- a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/connector/SocketSinkImporterConnector.java
+++ b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/connector/SocketSinkImporterConnector.java
@@ -113,13 +113,13 @@ public final class SocketSinkImporterConnector implements ImporterConnector, Aut
return;
}
if (ImporterType.INVENTORY == importerType || null == dataRecordComparator) {
- Map<SocketSinkImporter, CDCAckPosition> importerDataRecordMap = new HashMap<>();
int dataRecordCount = (int) recordList.stream().filter(each -> each instanceof DataRecord).count();
Record lastRecord = recordList.get(recordList.size() - 1);
if (lastRecord instanceof FinishedRecord && 0 == dataRecordCount) {
socketSinkImporter.ackWithLastDataRecord(new CDCAckPosition(lastRecord, 0));
return;
}
+ Map<SocketSinkImporter, CDCAckPosition> importerDataRecordMap = new HashMap<>();
importerDataRecordMap.put(socketSinkImporter, new CDCAckPosition(RecordUtils.getLastNormalRecord(recordList), dataRecordCount));
writeImmediately(recordList, importerDataRecordMap);
} else if (ImporterType.INCREMENTAL == importerType) {
diff --git a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/prepare/CDCJobPreparer.java b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/prepare/CDCJobPreparer.java
index b87f057d9ed..b5b5f52d2b1 100644
--- a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/prepare/CDCJobPreparer.java
+++ b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/prepare/CDCJobPreparer.java
@@ -78,7 +78,6 @@ public final class CDCJobPreparer {
}
private void initIncrementalTasks(final CDCJobItemContext jobItemContext) {
- PipelineChannelCreator pipelineChannelCreator = jobItemContext.getJobProcessContext().getPipelineChannelCreator();
CDCTaskConfiguration taskConfig = jobItemContext.getTaskConfig();
JobItemIncrementalTasksProgress initIncremental = null == jobItemContext.getInitProgress() ? null : jobItemContext.getInitProgress().getIncremental();
try {
@@ -86,6 +85,7 @@ public final class CDCJobPreparer {
} catch (final SQLException ex) {
throw new PrepareJobWithGetBinlogPositionException(jobItemContext.getJobId(), ex);
}
+ PipelineChannelCreator pipelineChannelCreator = jobItemContext.getJobProcessContext().getPipelineChannelCreator();
PipelineTableMetaDataLoader sourceMetaDataLoader = jobItemContext.getSourceMetaDataLoader();
ExecuteEngine incrementalExecuteEngine = jobItemContext.getJobProcessContext().getIncrementalExecuteEngine();
IncrementalTask incrementalTask = new IncrementalTask(taskConfig.getImporterConfig().getConcurrency(), taskConfig.getDumperConfig(), taskConfig.getImporterConfig(),
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/process/yaml/YamlPipelineReadConfiguration.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/process/yaml/YamlPipelineReadConfiguration.java
index 3b2e23a8749..83f455c1fc4 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/process/yaml/YamlPipelineReadConfiguration.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/process/yaml/YamlPipelineReadConfiguration.java
@@ -33,7 +33,7 @@ public final class YamlPipelineReadConfiguration implements YamlConfiguration {
private static final Integer DEFAULT_BATCH_SIZE = 1000;
- private static final Integer DEFAULT_SHARDING_SIZE = 1000_0000;
+ private static final Integer DEFAULT_SHARDING_SIZE = 10000000;
private Integer workerThread;
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/GovernanceRepositoryAPIImpl.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/GovernanceRepositoryAPIImpl.java
index 57085f57ac3..9f371b64e5c 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/GovernanceRepositoryAPIImpl.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/GovernanceRepositoryAPIImpl.java
@@ -95,13 +95,13 @@ public final class GovernanceRepositoryAPIImpl implements GovernanceRepositoryAP
@SuppressWarnings("unchecked")
@Override
public Map<String, DataConsistencyCheckResult> getCheckJobResult(final String parentJobId, final String checkJobId) {
- Map<String, DataConsistencyCheckResult> result = new HashMap<>();
String yamlCheckResultMapText = repository.getDirectly(PipelineMetaDataNode.getCheckJobResultPath(parentJobId, checkJobId));
if (Strings.isNullOrEmpty(yamlCheckResultMapText)) {
return Collections.emptyMap();
}
YamlDataConsistencyCheckResultSwapper swapper = new YamlDataConsistencyCheckResultSwapper();
Map<String, String> yamlCheckResultMap = YamlEngine.unmarshal(yamlCheckResultMapText, Map.class, true);
+ Map<String, DataConsistencyCheckResult> result = new HashMap<>(yamlCheckResultMap.size(), 1);
for (Entry<String, String> entry : yamlCheckResultMap.entrySet()) {
result.put(entry.getKey(), swapper.swapToObject(entry.getValue()));
}
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooser.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooser.java
index 8a7a404ca6d..2a11790b089 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooser.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooser.java
@@ -38,14 +38,16 @@ public final class DataConsistencyCalculateAlgorithmChooser {
* @return algorithm
*/
public static DataConsistencyCalculateAlgorithm choose(final DatabaseType databaseType, final DatabaseType peerDatabaseType) {
- String algorithmType;
+ return TypedSPILoader.getService(DataConsistencyCalculateAlgorithm.class, getAlgorithmType(databaseType, peerDatabaseType));
+ }
+
+ private static String getAlgorithmType(final DatabaseType databaseType, final DatabaseType peerDatabaseType) {
if (!databaseType.getType().equalsIgnoreCase(peerDatabaseType.getType())) {
- algorithmType = "DATA_MATCH";
- } else if (databaseType instanceof MySQLDatabaseType) {
- algorithmType = "CRC32_MATCH";
- } else {
- algorithmType = "DATA_MATCH";
+ return "DATA_MATCH";
+ }
+ if (databaseType instanceof MySQLDatabaseType) {
+ return "CRC32_MATCH";
}
- return TypedSPILoader.getService(DataConsistencyCalculateAlgorithm.class, algorithmType);
+ return "DATA_MATCH";
}
}
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCheckUtils.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCheckUtils.java
index de8aad97870..c79f4c3c73b 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCheckUtils.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCheckUtils.java
@@ -41,7 +41,10 @@ public final class DataConsistencyCheckUtils {
public static boolean isBigDecimalEquals(final BigDecimal one, final BigDecimal another) {
BigDecimal decimalOne;
BigDecimal decimalTwo;
- if (one.scale() != another.scale()) {
+ if (one.scale() == another.scale()) {
+ decimalOne = one;
+ decimalTwo = another;
+ } else {
if (one.scale() > another.scale()) {
decimalOne = one;
decimalTwo = another.setScale(one.scale(), RoundingMode.UNNECESSARY);
@@ -49,9 +52,6 @@ public final class DataConsistencyCheckUtils {
decimalOne = one.setScale(another.scale(), RoundingMode.UNNECESSARY);
decimalTwo = another;
}
- } else {
- decimalOne = one;
- decimalTwo = another;
}
return decimalOne.equals(decimalTwo);
}
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractStreamingDataConsistencyCalculateAlgorithm.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractStreamingDataConsistencyCalculateAlgorithm.java
index 37797fc8a57..c890cbccdc7 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractStreamingDataConsistencyCalculateAlgorithm.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractStreamingDataConsistencyCalculateAlgorithm.java
@@ -51,7 +51,7 @@ public abstract class AbstractStreamingDataConsistencyCalculateAlgorithm extends
* It's not thread-safe, it should be executed in only one thread at the same time.
*/
@RequiredArgsConstructor
- final class ResultIterable implements Iterable<DataConsistencyCalculatedResult> {
+ private final class ResultIterable implements Iterable<DataConsistencyCalculatedResult> {
private final DataConsistencyCalculateParameter param;
@@ -62,7 +62,7 @@ public abstract class AbstractStreamingDataConsistencyCalculateAlgorithm extends
}
@RequiredArgsConstructor
- final class ResultIterator implements Iterator<DataConsistencyCalculatedResult> {
+ private final class ResultIterator implements Iterator<DataConsistencyCalculatedResult> {
private final DataConsistencyCalculateParameter param;
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
index 0a69307c9d9..94222b1de1c 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
@@ -204,9 +204,12 @@ public final class DataMatchDataConsistencyCalculateAlgorithm extends AbstractSt
}
}
+ /**
+ * Calculated result.
+ */
@RequiredArgsConstructor
@Getter
- static final class CalculatedResult implements DataConsistencyCalculatedResult {
+ public static final class CalculatedResult implements DataConsistencyCalculatedResult {
@NonNull
private final Object maxUniqueKeyValue;
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
index 0c0e20b78a9..4cc79efb8dd 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
@@ -107,10 +107,10 @@ public final class DataSourceImporter extends AbstractLifecycleExecutor implemen
private PipelineJobProgressUpdatedParameter flush(final DataSource dataSource, final List<Record> buffer) {
List<DataRecord> dataRecords = buffer.stream().filter(each -> each instanceof DataRecord).map(each -> (DataRecord) each).collect(Collectors.toList());
- int insertRecordNumber = 0;
if (dataRecords.isEmpty()) {
return new PipelineJobProgressUpdatedParameter(0);
}
+ int insertRecordNumber = 0;
for (DataRecord each : dataRecords) {
if (IngestDataChangeType.INSERT.equals(each.getType())) {
insertRecordNumber++;
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
index 548eac94a80..5f49977c691 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
@@ -206,9 +206,9 @@ public final class InventoryDumper extends AbstractLifecycleExecutor implements
}
private IngestPosition<?> newPosition(final ResultSet resultSet) throws SQLException {
- return !dumperConfig.hasUniqueKey()
- ? new PlaceholderPosition()
- : PrimaryKeyPositionFactory.newInstance(resultSet.getObject(dumperConfig.getUniqueKeyColumns().get(0).getName()), ((PrimaryKeyPosition<?>) dumperConfig.getPosition()).getEndValue());
+ return dumperConfig.hasUniqueKey()
+ ? PrimaryKeyPositionFactory.newInstance(resultSet.getObject(dumperConfig.getUniqueKeyColumns().get(0).getName()), ((PrimaryKeyPosition<?>) dumperConfig.getPosition()).getEndValue())
+ : new PlaceholderPosition();
}
@Override
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
index 7c1a2204a36..c4723af696a 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
@@ -188,11 +188,11 @@ public final class PipelineDDLGenerator {
if (sqlStatementContext.getTablesContext().getTables().isEmpty()) {
return sql;
}
- TableNameSegment tableNameSegment = sqlStatementContext.getTablesContext().getTables().iterator().next().getTableName();
if (sqlStatementContext.getTablesContext().getSchemaName().isPresent()) {
return sql;
}
Map<SQLSegment, String> replaceMap = new TreeMap<>(Comparator.comparing(SQLSegment::getStartIndex));
+ TableNameSegment tableNameSegment = sqlStatementContext.getTablesContext().getTables().iterator().next().getTableName();
replaceMap.put(tableNameSegment, prefix + tableNameSegment.getIdentifier().getValue());
return doDecorateActualTable(replaceMap, sql);
}
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
index de6c7e47eda..11e11634862 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
@@ -170,11 +170,11 @@ public final class PipelineJobPreparerUtils {
* @param targetDataSources target data sources
*/
public static void checkTargetDataSource(final String databaseType, final ImporterConfiguration importerConfig, final Collection<? extends DataSource> targetDataSources) {
- DataSourceChecker dataSourceChecker = PipelineTypedSPILoader.findDatabaseTypedService(DataSourceChecker.class, databaseType).orElseGet(() -> new BasicDataSourceChecker(databaseType));
if (null == targetDataSources || targetDataSources.isEmpty()) {
log.info("target data source is empty, skip check");
return;
}
+ DataSourceChecker dataSourceChecker = PipelineTypedSPILoader.findDatabaseTypedService(DataSourceChecker.class, databaseType).orElseGet(() -> new BasicDataSourceChecker(databaseType));
dataSourceChecker.checkConnection(targetDataSources);
dataSourceChecker.checkTargetTable(targetDataSources, importerConfig.getTableNameSchemaNameMapping(), importerConfig.getLogicTableNames());
}
diff --git a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java
index 7a511f419d8..e4b5886ea9a 100644
--- a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java
+++ b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java
@@ -151,7 +151,7 @@ public final class MySQLIncrementalDumper extends AbstractLifecycleExecutor impl
}
}
- boolean isColumnUnneeded(final Set<ColumnName> columnNameSet, final String columnName) {
+ private boolean isColumnUnneeded(final Set<ColumnName> columnNameSet, final String columnName) {
return null != columnNameSet && !columnNameSet.contains(new ColumnName(columnName));
}
diff --git a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLBinlogEventPacketDecoder.java b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLBinlogEventPacketDecoder.java
index 0f62bb7e887..0f2d6d9cd04 100644
--- a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLBinlogEventPacketDecoder.java
+++ b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLBinlogEventPacketDecoder.java
@@ -94,14 +94,14 @@ public final class MySQLBinlogEventPacketDecoder extends ByteToMessageDecoder {
case TABLE_MAP_EVENT:
decodeTableMapEvent(binlogEventHeader, payload);
return null;
- case WRITE_ROWS_EVENTv1:
- case WRITE_ROWS_EVENTv2:
+ case WRITE_ROWS_EVENT_V1:
+ case WRITE_ROWS_EVENT_V2:
return decodeWriteRowsEventV2(binlogEventHeader, payload);
- case UPDATE_ROWS_EVENTv1:
- case UPDATE_ROWS_EVENTv2:
+ case UPDATE_ROWS_EVENT_V1:
+ case UPDATE_ROWS_EVENT_V2:
return decodeUpdateRowsEventV2(binlogEventHeader, payload);
- case DELETE_ROWS_EVENTv1:
- case DELETE_ROWS_EVENTv2:
+ case DELETE_ROWS_EVENT_V1:
+ case DELETE_ROWS_EVENT_V2:
return decodeDeleteRowsEventV2(binlogEventHeader, payload);
default:
PlaceholderEvent result = createPlaceholderEvent(binlogEventHeader);
diff --git a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java
index 7d6584d11c9..fec27a02dc0 100644
--- a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java
+++ b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java
@@ -38,10 +38,10 @@ import java.util.List;
public final class MySQLCommandPacketDecoder extends ByteToMessageDecoder {
private enum States {
- ResponsePacket, FieldPacket, RowDataPacket
+ RESPONSE_PACKET, FIELD_PACKET, ROW_DATA_PACKET
}
- private volatile States currentState = States.ResponsePacket;
+ private volatile States currentState = States.RESPONSE_PACKET;
private volatile InternalResultSet internalResultSet;
@@ -52,11 +52,11 @@ public final class MySQLCommandPacketDecoder extends ByteToMessageDecoder {
}
private void decodeCommandPacket(final MySQLPacketPayload payload, final List<Object> out) {
- if (States.FieldPacket == currentState) {
+ if (States.FIELD_PACKET == currentState) {
decodeFieldPacket(payload);
return;
}
- if (States.RowDataPacket == currentState) {
+ if (States.ROW_DATA_PACKET == currentState) {
decodeRowDataPacket(payload, out);
return;
}
@@ -64,22 +64,22 @@ public final class MySQLCommandPacketDecoder extends ByteToMessageDecoder {
}
private void decodeFieldPacket(final MySQLPacketPayload payload) {
- if (MySQLEofPacket.HEADER != (payload.getByteBuf().getByte(0) & 0xff)) {
- internalResultSet.getFieldDescriptors().add(new MySQLColumnDefinition41Packet(payload));
- } else {
+ if (MySQLEofPacket.HEADER == (payload.getByteBuf().getByte(0) & 0xff)) {
new MySQLEofPacket(payload);
- currentState = States.RowDataPacket;
+ currentState = States.ROW_DATA_PACKET;
+ } else {
+ internalResultSet.getFieldDescriptors().add(new MySQLColumnDefinition41Packet(payload));
}
}
private void decodeRowDataPacket(final MySQLPacketPayload payload, final List<Object> out) {
- if (MySQLEofPacket.HEADER != (payload.getByteBuf().getByte(0) & 0xff)) {
- internalResultSet.getFieldValues().add(new MySQLTextResultSetRowPacket(payload, internalResultSet.getHeader().getColumnCount()));
- } else {
+ if (MySQLEofPacket.HEADER == (payload.getByteBuf().getByte(0) & 0xff)) {
new MySQLEofPacket(payload);
out.add(internalResultSet);
- currentState = States.ResponsePacket;
+ currentState = States.RESPONSE_PACKET;
internalResultSet = null;
+ } else {
+ internalResultSet.getFieldValues().add(new MySQLTextResultSetRowPacket(payload, internalResultSet.getHeader().getColumnCount()));
}
}
@@ -93,7 +93,7 @@ public final class MySQLCommandPacketDecoder extends ByteToMessageDecoder {
break;
default:
MySQLFieldCountPacket fieldCountPacket = new MySQLFieldCountPacket(payload);
- currentState = States.FieldPacket;
+ currentState = States.FIELD_PACKET;
internalResultSet = new InternalResultSet(fieldCountPacket);
break;
}
diff --git a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java
index d657cd2bca1..048e707d4cc 100644
--- a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java
+++ b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java
@@ -113,16 +113,16 @@ public final class MySQLNegotiateHandler extends ChannelInboundHandlerAdapter {
private void handleCachingSha2Auth(final ChannelHandlerContext ctx, final MySQLAuthMoreDataPacket authMoreData) {
// how caching_sha2_password works: https://dev.mysql.com/doc/dev/mysql-server/8.0.11/page_caching_sha2_authentication_exchanges.html#sect_caching_sha2_info
- if (!publicKeyRequested) {
- if (PERFORM_FULL_AUTHENTICATION == authMoreData.getPluginData()[0]) {
- publicKeyRequested = true;
- ctx.channel().writeAndFlush(new MySQLAuthSwitchResponsePacket(new byte[]{REQUEST_PUBLIC_KEY}));
- }
- } else {
+ if (publicKeyRequested) {
ctx.channel().writeAndFlush(new MySQLAuthSwitchResponsePacket(
PasswordEncryption.encryptWithRSAPublicKey(password, seed,
serverInfo.getServerVersion().greaterThanOrEqualTo(8, 0, 5) ? "RSA/ECB/OAEPWithSHA-1AndMGF1Padding" : "RSA/ECB/PKCS1Padding",
new String(authMoreData.getPluginData()))));
+ } else {
+ if (PERFORM_FULL_AUTHENTICATION == authMoreData.getPluginData()[0]) {
+ publicKeyRequested = true;
+ ctx.channel().writeAndFlush(new MySQLAuthSwitchResponsePacket(new byte[]{REQUEST_PUBLIC_KEY}));
+ }
}
}
diff --git a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumperTest.java b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumperTest.java
index 4cad5b119c6..c5f7ac75567 100644
--- a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumperTest.java
+++ b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumperTest.java
@@ -65,13 +65,10 @@ import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
@@ -135,13 +132,6 @@ class MySQLIncrementalDumperTest {
dataSourceManager.close();
}
- @Test
- void assertIsColumnUnneeded() {
- assertFalse(incrementalDumper.isColumnUnneeded(null, "order_id"));
- assertFalse(incrementalDumper.isColumnUnneeded(Stream.of("order_id", "user_id").map(ColumnName::new).collect(Collectors.toSet()), "order_id"));
- assertTrue(incrementalDumper.isColumnUnneeded(Stream.of("order_id", "user_id").map(ColumnName::new).collect(Collectors.toSet()), "status"));
- }
-
@Test
void assertWriteRowsEventWithoutCustomColumns() throws ReflectiveOperationException {
assertWriteRowsEvent0(null, 3);
diff --git a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverter.java b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverter.java
index c9be2e60f2f..1efb6597cf9 100644
--- a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverter.java
+++ b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverter.java
@@ -143,7 +143,7 @@ public final class WALEventConverter {
}
}
- boolean isColumnUnneeded(final Set<ColumnName> columnNameSet, final String columnName) {
+ private boolean isColumnUnneeded(final Set<ColumnName> columnNameSet, final String columnName) {
return null != columnNameSet && !columnNameSet.contains(new ColumnName(columnName));
}
}
diff --git a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/decode/TestDecodingPlugin.java b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/decode/TestDecodingPlugin.java
index a5f0569a7f3..c2fc628fd54 100644
--- a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/decode/TestDecodingPlugin.java
+++ b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/decode/TestDecodingPlugin.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.data.pipeline.postgresql.ingest.wal.decode;
import com.google.common.base.Preconditions;
-import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.data.pipeline.core.ingest.IngestDataChangeType;
import org.apache.shardingsphere.data.pipeline.core.ingest.exception.IngestException;
import org.apache.shardingsphere.data.pipeline.postgresql.ingest.wal.event.AbstractRowEvent;
@@ -38,7 +38,7 @@ import java.util.List;
/**
* Test decoding plugin.
*/
-@AllArgsConstructor
+@RequiredArgsConstructor
public final class TestDecodingPlugin implements DecodingPlugin {
private final BaseTimestampUtils timestampUtils;
diff --git a/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverterTest.java b/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverterTest.java
index 0bf9971e6a5..76bb483b469 100644
--- a/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverterTest.java
+++ b/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverterTest.java
@@ -62,12 +62,10 @@ import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -129,13 +127,6 @@ class WALEventConverterTest {
return result;
}
- @Test
- void assertIsColumnUnneeded() {
- assertFalse(walEventConverter.isColumnUnneeded(null, "order_id"));
- assertFalse(walEventConverter.isColumnUnneeded(Stream.of("order_id", "user_id").map(ColumnName::new).collect(Collectors.toSet()), "order_id"));
- assertTrue(walEventConverter.isColumnUnneeded(Stream.of("order_id", "user_id").map(ColumnName::new).collect(Collectors.toSet()), "status"));
- }
-
@Test
void assertWriteRowEventWithoutCustomColumns() throws ReflectiveOperationException {
assertWriteRowEvent0(null, 3);
diff --git a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutor.java b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutor.java
index bba29e519eb..34844fe5a62 100644
--- a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutor.java
+++ b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutor.java
@@ -46,7 +46,7 @@ public final class ShowMigrationCheckStatusExecutor implements QueryableRALExecu
return result;
}
- LocalDataQueryResultRow convert(final ConsistencyCheckJobItemInfo info) {
+ private LocalDataQueryResultRow convert(final ConsistencyCheckJobItemInfo info) {
String checkResult = null == info.getCheckSuccess() ? "" : info.getCheckSuccess().toString();
return new LocalDataQueryResultRow(Optional.ofNullable(info.getTableNames()).orElse(""), checkResult, Optional.ofNullable(info.getCheckFailedTableNames()).orElse(""),
String.valueOf(info.getFinishedPercentage()), info.getRemainingSeconds(),
diff --git a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutor.java b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutor.java
index e6b5cd3640b..b0c20682de1 100644
--- a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutor.java
+++ b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutor.java
@@ -45,7 +45,7 @@ public final class ShowMigrationJobStatusExecutor implements QueryableRALExecuto
return jobItemInfos.stream().map(each -> generateResultRow(each, currentTimeMillis)).collect(Collectors.toList());
}
- LocalDataQueryResultRow generateResultRow(final InventoryIncrementalJobItemInfo jobItemInfo, final long currentTimeMillis) {
+ private LocalDataQueryResultRow generateResultRow(final InventoryIncrementalJobItemInfo jobItemInfo, final long currentTimeMillis) {
InventoryIncrementalJobItemProgress jobItemProgress = jobItemInfo.getJobItemProgress();
if (null == jobItemProgress) {
return new LocalDataQueryResultRow(jobItemInfo.getShardingItem(), "", "", "", "", "", "", "", jobItemInfo.getErrorMessage());
diff --git a/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutorTest.java b/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutorTest.java
index 077ea2c5559..64deb6be459 100644
--- a/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutorTest.java
+++ b/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutorTest.java
@@ -17,14 +17,10 @@
package org.apache.shardingsphere.migration.distsql.handler.query;
-import org.apache.shardingsphere.data.pipeline.api.pojo.ConsistencyCheckJobItemInfo;
-import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.junit.jupiter.api.Test;
-import org.mockito.internal.configuration.plugins.Plugins;
import java.util.Collection;
import java.util.Iterator;
-import java.util.List;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -48,21 +44,4 @@ class ShowMigrationCheckStatusExecutorTest {
assertThat(iterator.next(), is("duration_seconds"));
assertThat(iterator.next(), is("error_message"));
}
-
- @Test
- @SuppressWarnings("unchecked")
- void assertConvert() throws ReflectiveOperationException {
- ConsistencyCheckJobItemInfo jobItemInfo = new ConsistencyCheckJobItemInfo();
- jobItemInfo.setTableNames("t_order");
- jobItemInfo.setCheckSuccess(true);
- jobItemInfo.setCheckFailedTableNames(null);
- jobItemInfo.setFinishedPercentage(100);
- jobItemInfo.setRemainingSeconds(0);
- jobItemInfo.setCheckBeginTime("");
- jobItemInfo.setCheckEndTime("");
- jobItemInfo.setDurationSeconds(1);
- LocalDataQueryResultRow row = executor.convert(jobItemInfo);
- List<Object> actual = (List<Object>) Plugins.getMemberAccessor().get(LocalDataQueryResultRow.class.getDeclaredField("data"), row);
- assertThat(actual.size(), is(executor.getColumnNames().size()));
- }
}
diff --git a/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutorTest.java b/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutorTest.java
index 522c9bd8fe7..fdb12399260 100644
--- a/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutorTest.java
+++ b/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutorTest.java
@@ -17,14 +17,10 @@
package org.apache.shardingsphere.migration.distsql.handler.query;
-import org.apache.shardingsphere.data.pipeline.api.pojo.InventoryIncrementalJobItemInfo;
-import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.junit.jupiter.api.Test;
-import org.mockito.internal.configuration.plugins.Plugins;
import java.util.Collection;
import java.util.Iterator;
-import java.util.List;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -48,13 +44,4 @@ class ShowMigrationJobStatusExecutorTest {
assertThat(iterator.next(), is("incremental_idle_seconds"));
assertThat(iterator.next(), is("error_message"));
}
-
- @Test
- @SuppressWarnings("unchecked")
- void assertGenerateResultRowWithNullJobItemProgress() throws ReflectiveOperationException {
- InventoryIncrementalJobItemInfo jobItemInfo = new InventoryIncrementalJobItemInfo(0, "t_order", null, System.currentTimeMillis(), 0, null);
- LocalDataQueryResultRow row = executor.generateResultRow(jobItemInfo, System.currentTimeMillis());
- List<Object> actual = (List<Object>) Plugins.getMemberAccessor().get(LocalDataQueryResultRow.class.getDeclaredField("data"), row);
- assertThat(actual.size(), is(executor.getColumnNames().size()));
- }
}
diff --git a/kernel/data-pipeline/scenario/consistencycheck/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/api/impl/ConsistencyCheckJobAPI.java b/kernel/data-pipeline/scenario/consistencycheck/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/api/impl/ConsistencyCheckJobAPI.java
index cd1c4de219a..7394c37c6aa 100644
--- a/kernel/data-pipeline/scenario/consistencycheck/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/api/impl/ConsistencyCheckJobAPI.java
+++ b/kernel/data-pipeline/scenario/consistencycheck/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/api/impl/ConsistencyCheckJobAPI.java
@@ -283,12 +283,12 @@ public final class ConsistencyCheckJobAPI extends AbstractPipelineJobAPIImpl {
return result;
}
ConsistencyCheckJobItemProgress jobItemProgress = progressOptional.get();
- LocalDateTime checkBeginTime = new Timestamp(jobItemProgress.getCheckBeginTimeMillis()).toLocalDateTime();
if (null == jobItemProgress.getRecordsCount() || null == jobItemProgress.getCheckedRecordsCount()) {
result.setFinishedPercentage(0);
result.setCheckSuccess(false);
return result;
}
+ LocalDateTime checkBeginTime = new Timestamp(jobItemProgress.getCheckBeginTimeMillis()).toLocalDateTime();
long recordsCount = jobItemProgress.getRecordsCount();
long checkedRecordsCount = Math.min(jobItemProgress.getCheckedRecordsCount(), recordsCount);
if (JobStatus.FINISHED == jobItemProgress.getStatus()) {
diff --git a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/prepare/MigrationJobPreparer.java b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/prepare/MigrationJobPreparer.java
index 91cf01f2cc5..f34fe078082 100644
--- a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/prepare/MigrationJobPreparer.java
+++ b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/prepare/MigrationJobPreparer.java
@@ -160,7 +160,6 @@ public final class MigrationJobPreparer {
}
private void initIncrementalTasks(final MigrationJobItemContext jobItemContext) {
- PipelineChannelCreator pipelineChannelCreator = jobItemContext.getJobProcessContext().getPipelineChannelCreator();
MigrationTaskConfiguration taskConfig = jobItemContext.getTaskConfig();
PipelineDataSourceManager dataSourceManager = (PipelineDataSourceManager) jobItemContext.getImporterConnector().getConnector();
JobItemIncrementalTasksProgress initIncremental = null == jobItemContext.getInitProgress() ? null : jobItemContext.getInitProgress().getIncremental();
@@ -169,6 +168,7 @@ public final class MigrationJobPreparer {
} catch (final SQLException ex) {
throw new PrepareJobWithGetBinlogPositionException(jobItemContext.getJobId(), ex);
}
+ PipelineChannelCreator pipelineChannelCreator = jobItemContext.getJobProcessContext().getPipelineChannelCreator();
PipelineTableMetaDataLoader sourceMetaDataLoader = jobItemContext.getSourceMetaDataLoader();
ExecuteEngine incrementalExecuteEngine = jobItemContext.getJobProcessContext().getIncrementalExecuteEngine();
IncrementalTask incrementalTask = new IncrementalTask(taskConfig.getImporterConfig().getConcurrency(), taskConfig.getDumperConfig(), taskConfig.getImporterConfig(),
diff --git a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/factory/InternalMetaDataFactory.java b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/factory/InternalMetaDataFactory.java
index 6ff54b93a79..69c949b3e02 100644
--- a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/factory/InternalMetaDataFactory.java
+++ b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/factory/InternalMetaDataFactory.java
@@ -73,10 +73,10 @@ public final class InternalMetaDataFactory {
Map<String, ShardingSphereDatabase> result = new ConcurrentHashMap<>(databaseConfigMap.size(), 1);
for (Entry<String, DatabaseConfiguration> entry : databaseConfigMap.entrySet()) {
String databaseName = entry.getKey();
- if (!entry.getValue().getDataSources().isEmpty()) {
- result.put(databaseName.toLowerCase(), create(databaseName, persistService, entry.getValue(), props, instanceContext));
- } else {
+ if (entry.getValue().getDataSources().isEmpty()) {
result.put(databaseName.toLowerCase(), ShardingSphereDatabase.create(databaseName, protocolType));
+ } else {
+ result.put(databaseName.toLowerCase(), create(databaseName, persistService, entry.getValue(), props, instanceContext));
}
}
return result;
diff --git a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java
index c2b61c5ef38..0c3facf7188 100644
--- a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java
+++ b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java
@@ -115,9 +115,9 @@ public final class SingleSQLRouter implements SQLRouter<SingleRule> {
private static void validateSameDataSource(final SQLStatementContext<?> sqlStatementContext, final SingleRule rule,
final ConfigurationProperties props, final Collection<QualifiedTable> singleTableNames, final RouteContext routeContext) {
String sqlFederationType = props.getValue(ConfigurationPropertyKey.SQL_FEDERATION_TYPE);
- boolean allTablesInSameDataSource = !"NONE".equals(sqlFederationType)
- ? sqlStatementContext instanceof SelectStatementContext || rule.isSingleTablesInSameDataSource(singleTableNames)
- : rule.isAllTablesInSameDataSource(routeContext, singleTableNames);
+ boolean allTablesInSameDataSource = "NONE".equals(sqlFederationType)
+ ? rule.isAllTablesInSameDataSource(routeContext, singleTableNames)
+ : sqlStatementContext instanceof SelectStatementContext || rule.isSingleTablesInSameDataSource(singleTableNames);
Preconditions.checkState(allTablesInSameDataSource, "All tables must be in the same datasource.");
}
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/SQLOptimizeEngine.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/SQLOptimizeEngine.java
index a59b374e2c9..6f151c7106d 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/SQLOptimizeEngine.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/SQLOptimizeEngine.java
@@ -61,10 +61,10 @@ public final class SQLOptimizeEngine {
private RelNode optimizeWithCBO(final RelNode bestPlan, final SqlToRelConverter converter) {
RelOptPlanner planner = converter.getCluster().getPlanner();
- if (!bestPlan.getTraitSet().equals(converter.getCluster().traitSet().replace(EnumerableConvention.INSTANCE))) {
- planner.setRoot(planner.changeTraits(bestPlan, converter.getCluster().traitSet().replace(EnumerableConvention.INSTANCE)));
- } else {
+ if (bestPlan.getTraitSet().equals(converter.getCluster().traitSet().replace(EnumerableConvention.INSTANCE))) {
planner.setRoot(bestPlan);
+ } else {
+ planner.setRoot(planner.changeTraits(bestPlan, converter.getCluster().traitSet().replace(EnumerableConvention.INSTANCE)));
}
return planner.findBestExp();
}
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/select/SelectStatementConverter.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/select/SelectStatementConverter.java
index b6246e6ff15..10253d018e2 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/select/SelectStatementConverter.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/select/SelectStatementConverter.java
@@ -57,7 +57,7 @@ public final class SelectStatementConverter implements SQLStatementConverter<Sel
SqlNode rowCount = limit.get().getRowCount().flatMap(optional -> new PaginationValueSQLConverter().convert(optional)).orElse(null);
return new SqlOrderBy(SqlParserPos.ZERO, sqlCombine, orderBy, offset, rowCount);
}
- return !orderBy.isEmpty() ? new SqlOrderBy(SqlParserPos.ZERO, sqlCombine, orderBy, null, null) : sqlCombine;
+ return orderBy.isEmpty() ? sqlCombine : new SqlOrderBy(SqlParserPos.ZERO, sqlCombine, orderBy, null, null);
}
private static SqlSelect convertSelect(final SelectStatement selectStatement) {
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
index fc91294fcc0..c73c22c9fdb 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
@@ -51,12 +51,12 @@ public class TranslatableProjectFilterRule extends RelOptRule {
@Override
public void onMatch(final RelOptRuleCall call) {
LogicalProject project = call.rel(0);
- LogicalFilter filter = call.rel(1);
- TranslatableTableScan scan = call.rel(2);
int[] fields = getProjectFields(project.getProjects());
if (0 == fields.length) {
return;
}
+ LogicalFilter filter = call.rel(1);
+ TranslatableTableScan scan = call.rel(2);
call.transformTo(new TranslatableTableScan(scan.getCluster(), scan.getTable(), scan.getTranslatableTable(), Collections.singletonList(filter.getCondition()), fields));
}
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java
index cf83ff1dbe5..29a05a94a3e 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java
@@ -43,12 +43,12 @@ public class TranslatableProjectRule extends RelOptRule {
@Override
public void onMatch(final RelOptRuleCall call) {
LogicalProject project = call.rel(0);
- TranslatableTableScan scan = call.rel(1);
int[] fields = getProjectFields(project.getProjects());
- List<RexNode> expressions = project.getProjects();
if (0 == fields.length) {
return;
}
+ TranslatableTableScan scan = call.rel(1);
+ List<RexNode> expressions = project.getProjects();
if (fields.length == expressions.size()) {
call.transformTo(new TranslatableTableScan(scan.getCluster(), scan.getTable(), scan.getTranslatableTable(), scan.getFilters(), fields));
} else {
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/rexnode/SQLOptimizerRexNodeVisitor.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/rexnode/SQLOptimizerRexNodeVisitor.java
index debe9947912..4c31fb14702 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/rexnode/SQLOptimizerRexNodeVisitor.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/rexnode/SQLOptimizerRexNodeVisitor.java
@@ -150,12 +150,12 @@ public final class SQLOptimizerRexNodeVisitor extends SQLOptimizerRexNodeBaseVis
@Override
public RexNode visitInputRef(final InputRefContext ctx) {
Integer index = Integer.valueOf(ctx.INTEGER_().getText());
- String sign = ctx.getParent().getStop().getText();
if (null != columnMap.get(index)) {
Class<?> dataType = getClass(columnMap.get(index));
return rexBuilder.makeInputRef(typeFactory.createJavaType(dataType), index);
}
if (ctx.getParent() instanceof CastContext) {
+ String sign = ctx.getParent().getStop().getText();
return makeCastInputRef(sign, index);
}
return rexBuilder.makeInputRef(typeFactory.createJavaType(Integer.class), index);
diff --git a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/core/ResourceIDGenerator.java b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/core/ResourceIDGenerator.java
index 251f96151d3..bb65f0e6c54 100644
--- a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/core/ResourceIDGenerator.java
+++ b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/core/ResourceIDGenerator.java
@@ -46,7 +46,7 @@ public final class ResourceIDGenerator {
*
* @return next ID
*/
- String nextId() {
+ public String nextId() {
return String.format("%d-", count.incrementAndGet());
}
}
diff --git a/kernel/transaction/distsql/handler/src/main/java/org/apache/shardingsphere/transaction/distsql/handler/query/ShowTransactionRuleExecutor.java b/kernel/transaction/distsql/handler/src/main/java/org/apache/shardingsphere/transaction/distsql/handler/query/ShowTransactionRuleExecutor.java
index a2f69b9654a..5f6aa532d56 100644
--- a/kernel/transaction/distsql/handler/src/main/java/org/apache/shardingsphere/transaction/distsql/handler/query/ShowTransactionRuleExecutor.java
+++ b/kernel/transaction/distsql/handler/src/main/java/org/apache/shardingsphere/transaction/distsql/handler/query/ShowTransactionRuleExecutor.java
@@ -37,7 +37,7 @@ public final class ShowTransactionRuleExecutor implements MetaDataRequiredQuerya
public Collection<LocalDataQueryResultRow> getRows(final ShardingSphereMetaData metaData, final ShowTransactionRuleStatement sqlStatement) {
TransactionRule rule = metaData.getGlobalRuleMetaData().getSingleRule(TransactionRule.class);
return Collections.singleton(new LocalDataQueryResultRow(rule.getDefaultType().name(), null != rule.getProviderType() ? rule.getProviderType() : "",
- !rule.getProps().isEmpty() ? PropertiesConverter.convert(rule.getProps()) : ""));
+ rule.getProps().isEmpty() ? "" : PropertiesConverter.convert(rule.getProps())));
}
@Override
diff --git a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataTransactionHolder.java b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataTransactionHolder.java
index b7a2bb780ab..350adfdf30c 100644
--- a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataTransactionHolder.java
+++ b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataTransactionHolder.java
@@ -25,7 +25,7 @@ import lombok.NoArgsConstructor;
* Seata transaction holder.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-final class SeataTransactionHolder {
+public final class SeataTransactionHolder {
private static final ThreadLocal<GlobalTransaction> CONTEXT = new ThreadLocal<>();
@@ -34,7 +34,7 @@ final class SeataTransactionHolder {
*
* @param transaction global transaction context
*/
- static void set(final GlobalTransaction transaction) {
+ public static void set(final GlobalTransaction transaction) {
CONTEXT.set(transaction);
}
@@ -43,14 +43,14 @@ final class SeataTransactionHolder {
*
* @return global transaction
*/
- static GlobalTransaction get() {
+ public static GlobalTransaction get() {
return CONTEXT.get();
}
/**
* Clear global transaction.
*/
- static void clear() {
+ public static void clear() {
CONTEXT.remove();
}
}
diff --git a/kernel/transaction/type/xa/provider/atomikos/src/main/java/org/apache/shardingsphere/transaction/xa/atomikos/manager/AtomikosXARecoverableResource.java b/kernel/transaction/type/xa/provider/atomikos/src/main/java/org/apache/shardingsphere/transaction/xa/atomikos/manager/AtomikosXARecoverableResource.java
index 98460a625e5..df596f51c45 100644
--- a/kernel/transaction/type/xa/provider/atomikos/src/main/java/org/apache/shardingsphere/transaction/xa/atomikos/manager/AtomikosXARecoverableResource.java
+++ b/kernel/transaction/type/xa/provider/atomikos/src/main/java/org/apache/shardingsphere/transaction/xa/atomikos/manager/AtomikosXARecoverableResource.java
@@ -30,7 +30,7 @@ public final class AtomikosXARecoverableResource extends JdbcTransactionalResour
private final String resourceName;
- AtomikosXARecoverableResource(final String serverName, final XADataSource xaDataSource) {
+ public AtomikosXARecoverableResource(final String serverName, final XADataSource xaDataSource) {
super(serverName, xaDataSource);
resourceName = serverName;
}
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java
index 44657c68c24..e3daeef7ef4 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java
@@ -61,10 +61,10 @@ public final class StateChangedSubscriber {
*/
@Subscribe
public synchronized void renew(final StorageNodeChangedEvent event) {
- QualifiedDatabase qualifiedDatabase = event.getQualifiedDatabase();
if (!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getQualifiedDatabase().getDatabaseName())) {
return;
}
+ QualifiedDatabase qualifiedDatabase = event.getQualifiedDatabase();
Optional<StaticDataSourceContainedRule> staticDataSourceRule = contextManager.getMetaDataContexts()
.getMetaData().getDatabase(qualifiedDatabase.getDatabaseName()).getRuleMetaData().findSingleRule(StaticDataSourceContainedRule.class);
staticDataSourceRule.ifPresent(optional -> optional.updateStatus(new StorageNodeDataSourceChangedEvent(qualifiedDatabase, event.getDataSource())));
diff --git a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
index 72de244a289..38c735c2ba9 100644
--- a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
+++ b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
@@ -142,10 +142,10 @@ public final class ZookeeperRepository implements ClusterPersistRepository, Inst
@Override
public void persist(final String key, final String value) {
try {
- if (!isExisted(key)) {
- client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath(key, value.getBytes(StandardCharsets.UTF_8));
- } else {
+ if (isExisted(key)) {
update(key, value);
+ } else {
+ client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath(key, value.getBytes(StandardCharsets.UTF_8));
}
// CHECKSTYLE:OFF
} catch (final Exception ex) {
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/BackendConnection.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/BackendConnection.java
index e901734b74e..c06f50ea239 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/BackendConnection.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/BackendConnection.java
@@ -79,7 +79,13 @@ public final class BackendConnection implements ExecutorJDBCConnectionManager {
List<Connection> result;
if (connections.size() >= connectionSize) {
result = new ArrayList<>(connections).subList(0, connectionSize);
- } else if (!connections.isEmpty()) {
+ } else if (connections.isEmpty()) {
+ result = createNewConnections(dataSourceName, connectionSize, connectionMode);
+ synchronized (cachedConnections) {
+ cachedConnections.putAll(connectionSession.getDatabaseName().toLowerCase() + "." + dataSourceName, result);
+ }
+ executeTransactionHooksAfterCreateConnections(result);
+ } else {
result = new ArrayList<>(connectionSize);
result.addAll(connections);
List<Connection> newConnections = createNewConnections(dataSourceName, connectionSize - connections.size(), connectionMode);
@@ -87,12 +93,6 @@ public final class BackendConnection implements ExecutorJDBCConnectionManager {
synchronized (cachedConnections) {
cachedConnections.putAll(connectionSession.getDatabaseName().toLowerCase() + "." + dataSourceName, newConnections);
}
- } else {
- result = createNewConnections(dataSourceName, connectionSize, connectionMode);
- synchronized (cachedConnections) {
- cachedConnections.putAll(connectionSession.getDatabaseName().toLowerCase() + "." + dataSourceName, result);
- }
- executeTransactionHooksAfterCreateConnections(result);
}
return result;
}
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
index 45e68256bcc..dc5f4f3a4a4 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
@@ -266,7 +266,7 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
private String appendAutoTableStrategy(final ShardingAutoTableRuleConfiguration autoTableRuleConfig, final ShardingRuleConfiguration ruleConfig) {
StringBuilder result = new StringBuilder();
StandardShardingStrategyConfiguration strategyConfig = (StandardShardingStrategyConfiguration) autoTableRuleConfig.getShardingStrategy();
- String shardingColumn = !Strings.isNullOrEmpty(strategyConfig.getShardingColumn()) ? strategyConfig.getShardingColumn() : ruleConfig.getDefaultShardingColumn();
+ String shardingColumn = Strings.isNullOrEmpty(strategyConfig.getShardingColumn()) ? ruleConfig.getDefaultShardingColumn() : strategyConfig.getShardingColumn();
result.append(String.format(DistSQLScriptConstants.AUTO_TABLE_STRATEGY, shardingColumn, getAlgorithmType(ruleConfig.getShardingAlgorithms().get(strategyConfig.getShardingAlgorithmName()))));
appendKeyGenerateStrategy(ruleConfig.getKeyGenerators(), autoTableRuleConfig.getKeyGenerateStrategy(), result);
appendAuditStrategy(ruleConfig.getAuditors(), null != autoTableRuleConfig.getAuditStrategy() ? autoTableRuleConfig.getAuditStrategy() : ruleConfig.getDefaultAuditStrategy(), result);
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewHandler.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewHandler.java
index 3d4ce15c959..df9e02ead42 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewHandler.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewHandler.java
@@ -168,13 +168,9 @@ public final class PreviewHandler extends SQLRULBackendHandler<PreviewStatement>
}
private String getDatabaseName() {
- String result = !Strings.isNullOrEmpty(getConnectionSession().getDatabaseName()) ? getConnectionSession().getDatabaseName() : getConnectionSession().getDefaultDatabaseName();
- if (Strings.isNullOrEmpty(result)) {
- throw new NoDatabaseSelectedException();
- }
- if (!ProxyContext.getInstance().databaseExists(result)) {
- throw new UnknownDatabaseException(result);
- }
+ String result = Strings.isNullOrEmpty(getConnectionSession().getDatabaseName()) ? getConnectionSession().getDefaultDatabaseName() : getConnectionSession().getDatabaseName();
+ ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(result), NoDatabaseSelectedException::new);
+ ShardingSpherePreconditions.checkState(ProxyContext.getInstance().databaseExists(result), () -> new UnknownDatabaseException(result));
return result;
}
}
diff --git a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
index e3e192c8e20..3ddf1f8f71d 100644
--- a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
+++ b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
@@ -155,10 +155,10 @@ public final class MySQLAdminExecutorCreator implements DatabaseAdminExecutorCre
}
private Optional<DatabaseAdminExecutor> mockExecutor(final String databaseName, final SelectStatement sqlStatement, final String sql) {
- boolean isNotUseSchema = null == databaseName && null == sqlStatement.getFrom();
if (hasNoResource()) {
return Optional.of(new NoResourceShowExecutor(sqlStatement));
}
+ boolean isNotUseSchema = null == databaseName && null == sqlStatement.getFrom();
return isNotUseSchema ? Optional.of(new UnicastResourceShowExecutor(sqlStatement, sql)) : Optional.empty();
}
diff --git a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
index 7fef015f041..eafb7d184c6 100644
--- a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
+++ b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
@@ -102,15 +102,13 @@ public final class ShowProcessListExecutor implements DatabaseAdminQueryExecutor
rowValues.add(ExecuteProcessStatusEnum.SLEEP == processContext.getProcessStatus() ? "Sleep" : "Execute");
rowValues.add(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - processContext.getStartTimeMillis()));
String sql = null;
- if (ExecuteProcessStatusEnum.SLEEP != processContext.getProcessStatus()) {
- int processDoneCount = processContext.getUnitStatuses().stream()
- .map(each -> ExecuteProcessStatusEnum.DONE == each.getProcessStatus() ? 1 : 0)
- .reduce(0, Integer::sum);
+ if (ExecuteProcessStatusEnum.SLEEP == processContext.getProcessStatus()) {
+ rowValues.add("");
+ } else {
+ int processDoneCount = processContext.getUnitStatuses().stream().map(each -> ExecuteProcessStatusEnum.DONE == each.getProcessStatus() ? 1 : 0).reduce(0, Integer::sum);
String statePrefix = "Executing ";
rowValues.add(statePrefix + processDoneCount + "/" + processContext.getUnitStatuses().size());
sql = processContext.getSql();
- } else {
- rowValues.add("");
}
if (null != sql && sql.length() > 100) {
sql = sql.substring(0, 100);
diff --git a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
index c57238decce..eb4edabe538 100644
--- a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
+++ b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
@@ -51,7 +51,7 @@ public final class Bootstrap {
YamlProxyConfiguration yamlConfig = ProxyConfigurationLoader.load(bootstrapArgs.getConfigurationPath());
int port = bootstrapArgs.getPort().orElseGet(() -> new ConfigurationProperties(yamlConfig.getServerConfiguration().getProps()).getValue(ConfigurationPropertyKey.PROXY_DEFAULT_PORT));
List<String> addresses = bootstrapArgs.getAddresses();
- new BootstrapInitializer().init(yamlConfig, port, bootstrapArgs.getForce());
+ new BootstrapInitializer().init(yamlConfig, port, bootstrapArgs.isForce());
Optional.ofNullable((Integer) yamlConfig.getServerConfiguration().getProps().get(ConfigurationPropertyKey.CDC_SERVER_PORT.getKey()))
.ifPresent(cdcPort -> new CDCServer(addresses, cdcPort).start());
ShardingSphereProxy shardingSphereProxy = new ShardingSphereProxy();
diff --git a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java
index ec8fcacca4e..8167524dcba 100644
--- a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java
+++ b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java
@@ -103,7 +103,7 @@ public final class BootstrapArguments {
*
* @return force parameter
*/
- public boolean getForce() {
+ public boolean isForce() {
return args.length >= 4 && parseForceParameter(args[3]);
}
diff --git a/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/arguments/BootstrapArgumentsTest.java b/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/arguments/BootstrapArgumentsTest.java
index 289146ee4f3..b98088aea34 100644
--- a/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/arguments/BootstrapArgumentsTest.java
+++ b/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/arguments/BootstrapArgumentsTest.java
@@ -108,11 +108,11 @@ class BootstrapArgumentsTest {
@Test
void assertGetForce() {
- assertFalse(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1"}).getForce());
- assertFalse(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "false"}).getForce());
- assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "true "}).getForce());
- assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "true"}).getForce());
- assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "TrUe"}).getForce());
+ assertFalse(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1"}).isForce());
+ assertFalse(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "false"}).isForce());
+ assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "true "}).isForce());
+ assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "true"}).isForce());
+ assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "TrUe"}).isForce());
}
@Test
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
index 3173e26f956..2232dee8c66 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
@@ -181,9 +181,9 @@ public final class MySQLMultiStatementsHandler implements ProxyBackendHandler {
return new UpdateResponseHeader(sqlStatementSample, Collections.singletonList(new UpdateResult(updated, 0L)));
}
- private static class BatchedJDBCExecutorCallback extends JDBCExecutorCallback<int[]> {
+ private static final class BatchedJDBCExecutorCallback extends JDBCExecutorCallback<int[]> {
- BatchedJDBCExecutorCallback(final Map<String, DatabaseType> storageTypes, final SQLStatement sqlStatement, final boolean isExceptionThrown) {
+ private BatchedJDBCExecutorCallback(final Map<String, DatabaseType> storageTypes, final SQLStatement sqlStatement, final boolean isExceptionThrown) {
super(TypedSPILoader.getService(DatabaseType.class, "MySQL"), storageTypes, sqlStatement, isExceptionThrown);
}
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
index 1511d5e0fb0..4ad079bb864 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
@@ -192,9 +192,9 @@ public final class PostgreSQLBatchedStatementsExecutor {
return result;
}
- private static class BatchedStatementsJDBCExecutorCallback extends JDBCExecutorCallback<int[]> {
+ private static final class BatchedStatementsJDBCExecutorCallback extends JDBCExecutorCallback<int[]> {
- BatchedStatementsJDBCExecutorCallback(final DatabaseType protocolType, final Map<String, DatabaseType> storageTypes, final SQLStatement sqlStatement, final boolean isExceptionThrown) {
+ private BatchedStatementsJDBCExecutorCallback(final DatabaseType protocolType, final Map<String, DatabaseType> storageTypes, final SQLStatement sqlStatement, final boolean isExceptionThrown) {
super(protocolType, storageTypes, sqlStatement, isExceptionThrown);
}
diff --git a/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java b/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
index 6cf52266c05..408b2d6f55d 100644
--- a/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
+++ b/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
@@ -440,14 +440,14 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
int childCount = ctx.getChildCount();
for (int i = 0; i < childCount; i++) {
ParseTree child = ctx.getChild(i);
- if (i != 0) {
+ if (i == 0) {
+ child.accept(this);
+ } else {
if (child instanceof TerminalNode) {
formatPrintln(",");
} else {
child.accept(this);
}
- } else {
- child.accept(this);
}
}
return formattedSQL.toString();
diff --git a/src/resources/pmd.xml b/src/resources/pmd.xml
index 1e9b5336112..61d67827204 100644
--- a/src/resources/pmd.xml
+++ b/src/resources/pmd.xml
@@ -59,6 +59,23 @@
<rule ref="category/java/bestpractices.xml/UseTryWithResources" />
<rule ref="category/java/bestpractices.xml/WhileLoopWithLiteralBoolean" />
+ <rule ref="category/java/codestyle.xml/AvoidUsingNativeCode" />
+ <rule ref="category/java/codestyle.xml/BooleanGetMethodName" />
+ <rule ref="category/java/codestyle.xml/CommentDefaultAccessModifier" />
+ <rule ref="category/java/codestyle.xml/ConfusingTernary">
+ <properties>
+ <property name="ignoreElseIf" value="false" />
+ </properties>
+ </rule>
+ <rule ref="category/java/codestyle.xml/EmptyMethodInAbstractClassShouldBeAbstract" />
+ <rule ref="category/java/codestyle.xml/FieldDeclarationsShouldBeAtStartOfClass" />
+ <rule ref="category/java/codestyle.xml/FieldNamingConventions" />
+ <rule ref="category/java/codestyle.xml/LinguisticNaming" />
+ <rule ref="category/java/codestyle.xml/PrematureDeclaration" />
+ <rule ref="category/java/codestyle.xml/UnnecessaryCast" />
+ <rule ref="category/java/codestyle.xml/UseDiamondOperator" />
+ <rule ref="category/java/codestyle.xml/UseShortArrayInitializer" />
+
<rule ref="category/java/documentation.xml/CommentSize">
<properties>
<property name="maxLines" value="40" />
diff --git a/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java b/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java
index a0655fdf5b1..ab897f67eb5 100644
--- a/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java
+++ b/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java
@@ -223,7 +223,7 @@ class SQLNodeConverterEngineIT {
}
private boolean isPlaceholderWithoutParameter(final InternalSQLParserTestParameter testParam) {
- return SQLCaseType.Placeholder == testParam.getSqlCaseType() && SQL_PARSER_TEST_CASES.get(testParam.getSqlCaseId()).getParameters().isEmpty();
+ return SQLCaseType.PLACEHOLDER == testParam.getSqlCaseType() && SQL_PARSER_TEST_CASES.get(testParam.getSqlCaseId()).getParameters().isEmpty();
}
private boolean isSupportedSQLCase(final InternalSQLParserTestParameter testParam) {
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java
index ba6befe76a7..57d90ee3672 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java
@@ -84,7 +84,7 @@ public abstract class InternalSQLParserIT {
}
private boolean isPlaceholderWithoutParameter(final InternalSQLParserTestParameter testParam) {
- return SQLCaseType.Placeholder == testParam.getSqlCaseType() && SQL_PARSER_TEST_CASES.get(testParam.getSqlCaseId()).getParameters().isEmpty();
+ return SQLCaseType.PLACEHOLDER == testParam.getSqlCaseType() && SQL_PARSER_TEST_CASES.get(testParam.getSqlCaseId()).getParameters().isEmpty();
}
}
}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java
index 55f2c5fa275..e94003373e8 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java
@@ -60,7 +60,7 @@ public final class SQLCaseAssertContext {
private void appendSQL(final StringBuilder builder) {
builder.append("SQL : ");
- if (SQLCaseType.Placeholder == caseType) {
+ if (SQLCaseType.PLACEHOLDER == caseType) {
builder.append(sql);
builder.append(System.lineSeparator());
builder.append("SQL Params : ");
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/SQLSegmentAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
index 72409787ea1..c5b7d6634be 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
@@ -46,12 +46,12 @@ public final class SQLSegmentAssert {
}
private static void assertStartIndex(final SQLCaseAssertContext assertContext, final SQLSegment actual, final ExpectedSQLSegment expected) {
- int expectedStartIndex = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralStartIndex() ? expected.getLiteralStartIndex() : expected.getStartIndex();
+ int expectedStartIndex = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralStartIndex() ? expected.getLiteralStartIndex() : expected.getStartIndex();
assertThat(assertContext.getText(String.format("`%s`'s start index assertion error: ", actual.getClass().getSimpleName())), actual.getStartIndex(), is(expectedStartIndex));
}
private static void assertStopIndex(final SQLCaseAssertContext assertContext, final SQLSegment actual, final ExpectedSQLSegment expected) {
- int expectedStopIndex = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralStopIndex() ? expected.getLiteralStopIndex() : expected.getStopIndex();
+ int expectedStopIndex = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralStopIndex() ? expected.getLiteralStopIndex() : expected.getStopIndex();
assertThat(assertContext.getText(String.format("`%s`'s stop index assertion error: ", actual.getClass().getSimpleName())), actual.getStopIndex(), is(expectedStopIndex));
}
}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
index 43ebb719ea9..a956b7918da 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
@@ -128,7 +128,7 @@ public final class ExpressionAssert {
assertNull(actual, assertContext.getText("Actual common expression should not exist."));
} else {
assertNotNull(actual, assertContext.getText("Actual common expression should exist."));
- String expectedText = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralText() ? expected.getLiteralText() : expected.getText();
+ String expectedText = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralText() ? expected.getLiteralText() : expected.getText();
assertThat(assertContext.getText("Common expression text assertion error: "), actual.getText(), is(expectedText));
SQLSegmentAssert.assertIs(assertContext, actual, expected);
}
@@ -300,7 +300,7 @@ public final class ExpressionAssert {
public static void assertFunction(final SQLCaseAssertContext assertContext, final FunctionSegment actual, final ExpectedFunction expected) {
SQLSegmentAssert.assertIs(assertContext, actual, expected);
assertThat(assertContext.getText("Function method name assertion error: "), actual.getFunctionName(), is(expected.getFunctionName()));
- String expectedText = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralText()
+ String expectedText = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralText()
? expected.getLiteralText()
: expected.getText();
assertThat(assertContext.getText("Function text name assertion error: "), actual.getText(), is(expectedText));
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
index 156f3b80372..5efa97e96d2 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
@@ -70,7 +70,7 @@ public final class LimitClauseAssert {
assertNull(expected, assertContext.getText("Row count should not exist."));
return;
}
- if (SQLCaseType.Placeholder == assertContext.getCaseType()) {
+ if (SQLCaseType.PLACEHOLDER == assertContext.getCaseType()) {
assertThat(assertContext.getText("Row count index assertion error: "),
((ParameterMarkerPaginationValueSegment) actual).getParameterIndex(), is(expected.getParameterIndex()));
} else {
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
index 9477a1dc153..85c9091e989 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
@@ -39,7 +39,7 @@ public final class ParameterMarkerAssert {
* @param expected expected parameter markers count
*/
public static void assertCount(final SQLCaseAssertContext assertContext, final int actual, final int expected) {
- if (SQLCaseType.Placeholder == assertContext.getCaseType()) {
+ if (SQLCaseType.PLACEHOLDER == assertContext.getCaseType()) {
assertThat(assertContext.getText("Parameter markers count assertion error: "), actual, is(expected));
} else {
assertThat(assertContext.getText("Parameter markers count assertion error: "), actual, is(0));
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
index 47e4592c630..135bf2821fa 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
@@ -115,7 +115,7 @@ public final class ProjectionAssert {
private static void assertSubqueryProjection(final SQLCaseAssertContext assertContext, final SubqueryProjectionSegment actual, final ExpectedSubqueryProjection expected) {
assertThat(assertContext.getText("Subquery projection alias assertion error: "), actual.getAlias().orElse(null), is(expected.getAlias()));
- String expectedText = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralText() ? expected.getLiteralText() : expected.getText();
+ String expectedText = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralText() ? expected.getLiteralText() : expected.getText();
assertThat(assertContext.getText("Subquery projection text assertion error: "), actual.getText(), is(expectedText));
SelectStatementAssert.assertIs(assertContext, actual.getSubquery().getSelect(), expected.getSubquery().getSelectTestCases());
}
@@ -154,7 +154,7 @@ public final class ProjectionAssert {
private static void assertExpressionProjection(final SQLCaseAssertContext assertContext, final ExpressionProjectionSegment actual, final ExpectedExpressionProjection expected) {
assertThat(assertContext.getText("Expression projection alias assertion error: "),
actual.getAlias().orElse(null), is(expected.getAlias()));
- String expectedText = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralText()
+ String expectedText = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralText()
? expected.getLiteralText()
: expected.getText();
assertThat(assertContext.getText("Expression projection text assertion error: "),
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java
index 52b43aed26a..3810d3ac49e 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java
@@ -37,9 +37,9 @@ public final class CaseTypedSQLBuilderFactory {
*/
public static CaseTypedSQLBuilder newInstance(final SQLCaseType caseType) {
switch (caseType) {
- case Literal:
+ case LITERAL:
return new LiteralSQLBuilder();
- case Placeholder:
+ case PLACEHOLDER:
return new PlaceholderSQLBuilder();
default:
throw new UnsupportedOperationException(caseType.name());
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/SQLCaseType.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/SQLCaseType.java
index 885a77ece2f..a4403f38248 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/SQLCaseType.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/SQLCaseType.java
@@ -22,5 +22,5 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.cases.sql.type;
*/
public enum SQLCaseType {
- Literal, Placeholder
+ LITERAL, PLACEHOLDER
}