This is an automated email from the ASF dual-hosted git repository.
jianglongtao 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 58946adaf34 Method parameter adjustment in
RuleDefinitionCreateUpdater. (#23172)
58946adaf34 is described below
commit 58946adaf34f604c8955d426b256f8ca24643742
Author: yx9o <[email protected]>
AuthorDate: Fri Dec 30 21:40:52 2022 +0800
Method parameter adjustment in RuleDefinitionCreateUpdater. (#23172)
* Method parameter adjustment in RuleDefinitionCreateUpdater.
* Update.
* Update.
---
.../handler/update/RuleDefinitionCreateUpdater.java | 9 +++++----
...CreateDatabaseDiscoveryHeartbeatStatementUpdater.java | 3 ++-
.../CreateDatabaseDiscoveryRuleStatementUpdater.java | 2 +-
.../CreateDatabaseDiscoveryTypeStatementUpdater.java | 2 +-
...teDatabaseDiscoveryHeartbeatStatementUpdaterTest.java | 2 +-
...seDiscoveryProviderAlgorithmStatementUpdaterTest.java | 8 ++++----
.../CreateDatabaseDiscoveryRuleStatementUpdaterTest.java | 16 ++++++++--------
.../update/CreateEncryptRuleStatementUpdater.java | 2 +-
.../update/CreateEncryptRuleStatementUpdaterTest.java | 2 +-
.../handler/update/CreateMaskRuleStatementUpdater.java | 2 +-
.../CreateReadwriteSplittingRuleStatementUpdater.java | 3 ++-
...CreateReadwriteSplittingRuleStatementUpdaterTest.java | 2 +-
.../CreateDefaultShadowAlgorithmStatementUpdater.java | 2 +-
.../handler/update/CreateShadowRuleStatementUpdater.java | 2 +-
.../update/CreateBroadcastTableRuleStatementUpdater.java | 2 +-
.../CreateDefaultShardingStrategyStatementUpdater.java | 8 ++++----
...CreateShardingTableReferenceRuleStatementUpdater.java | 4 ++--
.../update/CreateShardingTableRuleStatementUpdater.java | 2 +-
.../CreateBroadcastTableRuleStatementUpdaterTest.java | 6 +++---
...reateDefaultShardingStrategyStatementUpdaterTest.java | 16 ++++++++--------
...teShardingTableReferenceRuleStatementUpdaterTest.java | 2 +-
.../CreateShardingTableRuleStatementUpdaterTest.java | 6 +++---
.../distsql/rdl/rule/RuleDefinitionBackendHandler.java | 2 +-
...SetDefaultSingleTableStorageUnitStatementUpdater.java | 4 ++--
.../fixture/FixtureRuleDefinitionCreateUpdater.java | 4 ++--
.../SetDefaultSingleTableStorageUnitUpdaterTest.java | 8 ++++----
26 files changed, 62 insertions(+), 59 deletions(-)
diff --git
a/distsql/handler/src/main/java/org/apache/shardingsphere/distsql/handler/update/RuleDefinitionCreateUpdater.java
b/distsql/handler/src/main/java/org/apache/shardingsphere/distsql/handler/update/RuleDefinitionCreateUpdater.java
index e2e8981ca3f..3ee160c44db 100644
---
a/distsql/handler/src/main/java/org/apache/shardingsphere/distsql/handler/update/RuleDefinitionCreateUpdater.java
+++
b/distsql/handler/src/main/java/org/apache/shardingsphere/distsql/handler/update/RuleDefinitionCreateUpdater.java
@@ -22,7 +22,7 @@ import
org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
/**
* Create rule definition updater.
- *
+ *
* @param <T> type of SQL statement
* @param <R> type of rule configuration
*/
@@ -30,15 +30,16 @@ public interface RuleDefinitionCreateUpdater<T extends
SQLStatement, R extends R
/**
* Build to be created rule configuration.
- *
+ *
+ * @param currentRuleConfig current rule configuration to be updated
* @param sqlStatement SQL statement
* @return built to be created rule configuration
*/
- RuleConfiguration buildToBeCreatedRuleConfiguration(T sqlStatement);
+ RuleConfiguration buildToBeCreatedRuleConfiguration(R currentRuleConfig, T
sqlStatement);
/**
* Update current rule configuration.
- *
+ *
* @param currentRuleConfig current rule configuration to be updated
* @param toBeCreatedRuleConfig to be created rule configuration
*/
diff --git
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryHeartbeatStatementUpdater.java
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryHeartbeatStatementUpdater.java
index 206ff0d93c1..8560f2392d4 100644
---
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryHeartbeatStatementUpdater.java
+++
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryHeartbeatStatementUpdater.java
@@ -35,7 +35,8 @@ public final class
CreateDatabaseDiscoveryHeartbeatStatementUpdater implements R
private static final String RULE_TYPE = "database discovery";
@Override
- public DatabaseDiscoveryRuleConfiguration
buildToBeCreatedRuleConfiguration(final
CreateDatabaseDiscoveryHeartbeatStatement sqlStatement) {
+ public DatabaseDiscoveryRuleConfiguration
buildToBeCreatedRuleConfiguration(final DatabaseDiscoveryRuleConfiguration
currentRuleConfig,
+
final CreateDatabaseDiscoveryHeartbeatStatement sqlStatement) {
return
DatabaseDiscoveryRuleStatementConverter.convertDiscoveryHeartbeat(sqlStatement.getHeartbeats());
}
diff --git
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
index 9082ce38fe8..1f79d5e006c 100644
---
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
+++
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
@@ -95,7 +95,7 @@ public final class
CreateDatabaseDiscoveryRuleStatementUpdater implements RuleDe
}
@Override
- public DatabaseDiscoveryRuleConfiguration
buildToBeCreatedRuleConfiguration(final CreateDatabaseDiscoveryRuleStatement
sqlStatement) {
+ public DatabaseDiscoveryRuleConfiguration
buildToBeCreatedRuleConfiguration(final DatabaseDiscoveryRuleConfiguration
currentRuleConfig, final CreateDatabaseDiscoveryRuleStatement sqlStatement) {
return
DatabaseDiscoveryRuleStatementConverter.convert(sqlStatement.getRules());
}
diff --git
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryTypeStatementUpdater.java
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryTypeStatementUpdater.java
index f6f14995f51..7382eed030e 100644
---
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryTypeStatementUpdater.java
+++
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryTypeStatementUpdater.java
@@ -71,7 +71,7 @@ public final class
CreateDatabaseDiscoveryTypeStatementUpdater implements RuleDe
}
@Override
- public RuleConfiguration buildToBeCreatedRuleConfiguration(final
CreateDatabaseDiscoveryTypeStatement sqlStatement) {
+ public RuleConfiguration buildToBeCreatedRuleConfiguration(final
DatabaseDiscoveryRuleConfiguration currentRuleConfig, final
CreateDatabaseDiscoveryTypeStatement sqlStatement) {
return
DatabaseDiscoveryRuleStatementConverter.convertDiscoveryProviderAlgorithm(sqlStatement.getProviders());
}
diff --git
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryHeartbeatStatementUpdaterTest.java
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryHeartbeatStatementUpdaterTest.java
index 5e3afb31090..88e280009dc 100644
---
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryHeartbeatStatementUpdaterTest.java
+++
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryHeartbeatStatementUpdaterTest.java
@@ -64,8 +64,8 @@ public final class
CreateDatabaseDiscoveryHeartbeatStatementUpdaterTest {
public void assertUpdate() {
DatabaseDiscoveryHeartbeatSegment segment1 = new
DatabaseDiscoveryHeartbeatSegment("heartbeat_1", createProperties("key_1",
"value_1"));
DatabaseDiscoveryHeartbeatSegment segment2 = new
DatabaseDiscoveryHeartbeatSegment("heartbeat_2", createProperties("key_2",
"value_2"));
- DatabaseDiscoveryRuleConfiguration ruleConfig =
updater.buildToBeCreatedRuleConfiguration(new
CreateDatabaseDiscoveryHeartbeatStatement(Arrays.asList(segment1, segment2)));
DatabaseDiscoveryRuleConfiguration currentConfig = new
DatabaseDiscoveryRuleConfiguration(new LinkedList<>(), new LinkedHashMap<>(),
new LinkedHashMap<>());
+ DatabaseDiscoveryRuleConfiguration ruleConfig =
updater.buildToBeCreatedRuleConfiguration(currentConfig, new
CreateDatabaseDiscoveryHeartbeatStatement(Arrays.asList(segment1, segment2)));
updater.updateCurrentRuleConfiguration(currentConfig, ruleConfig);
assertThat(currentConfig.getDiscoveryHeartbeats().size(), is(2));
assertThat(currentConfig.getDiscoveryHeartbeats().get("heartbeat_1").getProps(),
is(createProperties("key_1", "value_1")));
diff --git
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryProviderAlgorithmStatementUpdaterTest.java
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryProviderAlgorithmStatementUpdaterTest.java
index f939387791c..43874b4be5f 100644
---
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryProviderAlgorithmStatementUpdaterTest.java
+++
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryProviderAlgorithmStatementUpdaterTest.java
@@ -21,10 +21,10 @@ import
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleCon
import
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
import
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryProviderAlgorithmSegment;
import
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryTypeStatement;
+import
org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException;
+import
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
-import
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
-import
org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -82,9 +82,9 @@ public final class
CreateDatabaseDiscoveryProviderAlgorithmStatementUpdaterTest
Collection<DatabaseDiscoveryProviderAlgorithmSegment>
algorithmSegments = Collections.singleton(
new
DatabaseDiscoveryProviderAlgorithmSegment("discovery_type", new
AlgorithmSegment("DISTSQL.FIXTURE", new Properties())));
updater.checkSQLStatement(database, new
CreateDatabaseDiscoveryTypeStatement(algorithmSegments), null);
- DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfig =
- (DatabaseDiscoveryRuleConfiguration)
updater.buildToBeCreatedRuleConfiguration(new
CreateDatabaseDiscoveryTypeStatement(algorithmSegments));
DatabaseDiscoveryRuleConfiguration currentConfig = new
DatabaseDiscoveryRuleConfiguration(new LinkedList<>(), new LinkedHashMap<>(),
new LinkedHashMap<>());
+ DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfig =
+ (DatabaseDiscoveryRuleConfiguration)
updater.buildToBeCreatedRuleConfiguration(currentConfig, new
CreateDatabaseDiscoveryTypeStatement(algorithmSegments));
updater.updateCurrentRuleConfiguration(currentConfig,
databaseDiscoveryRuleConfig);
assertThat(currentConfig.getDiscoveryTypes().size(), is(1));
assertThat(currentConfig.getDiscoveryTypes().get("discovery_type").getType(),
is("DISTSQL.FIXTURE"));
diff --git
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
index 046083a76ca..96e15279cc5 100644
---
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
+++
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
@@ -23,9 +23,9 @@ import
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractData
import
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
import
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryRuleStatement;
import
org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException;
-import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
-import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
+import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
+import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
import org.junit.Before;
@@ -97,7 +97,7 @@ public final class
CreateDatabaseDiscoveryRuleStatementUpdaterTest {
AlgorithmSegment algorithmSegment = new AlgorithmSegment("MySQL.MGR",
new Properties());
DatabaseDiscoveryDefinitionSegment definitionSegment = new
DatabaseDiscoveryDefinitionSegment("readwrite_ds_1", Arrays.asList("ds_read_0",
"ds_read_1"), algorithmSegment, new Properties());
DatabaseDiscoveryRuleConfiguration ruleConfig =
- updater.buildToBeCreatedRuleConfiguration(new
CreateDatabaseDiscoveryRuleStatement(false,
Collections.singletonList(definitionSegment)));
+ updater.buildToBeCreatedRuleConfiguration(null, new
CreateDatabaseDiscoveryRuleStatement(false,
Collections.singletonList(definitionSegment)));
assertThat(ruleConfig.getDataSources().size(), is(1));
assertTrue(ruleConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
.collect(Collectors.toList()).removeAll(Collections.singletonList("readwrite_ds_1")));
@@ -109,9 +109,9 @@ public final class
CreateDatabaseDiscoveryRuleStatementUpdaterTest {
public void assertUpdate() {
AlgorithmSegment algorithmSegment = new AlgorithmSegment("MySQL.MGR",
new Properties());
DatabaseDiscoveryDefinitionSegment definitionSegment = new
DatabaseDiscoveryDefinitionSegment("readwrite_ds_1", Arrays.asList("ds_read_0",
"ds_read_1"), algorithmSegment, new Properties());
- DatabaseDiscoveryRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(
- new CreateDatabaseDiscoveryRuleStatement(false,
Collections.singletonList(definitionSegment)));
DatabaseDiscoveryRuleConfiguration currentConfig = new
DatabaseDiscoveryRuleConfiguration(new LinkedList<>(), new LinkedHashMap<>(),
new LinkedHashMap<>());
+ DatabaseDiscoveryRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentConfig,
+ new CreateDatabaseDiscoveryRuleStatement(false,
Collections.singletonList(definitionSegment)));
updater.updateCurrentRuleConfiguration(currentConfig,
toBeCreatedRuleConfig);
assertThat(currentConfig.getDataSources().size(), is(1));
assertTrue(currentConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
@@ -130,9 +130,9 @@ public final class
CreateDatabaseDiscoveryRuleStatementUpdaterTest {
Collection<AbstractDatabaseDiscoverySegment> currentRules = new
LinkedList<>();
currentRules.add(definitionSegmentDS1);
currentRules.add(definitionSegmentDS2);
- DatabaseDiscoveryRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(
- new CreateDatabaseDiscoveryRuleStatement(false, currentRules));
DatabaseDiscoveryRuleConfiguration currentConfig = new
DatabaseDiscoveryRuleConfiguration(new LinkedList<>(), new LinkedHashMap<>(),
new LinkedHashMap<>());
+ DatabaseDiscoveryRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentConfig,
+ new CreateDatabaseDiscoveryRuleStatement(false, currentRules));
updater.updateCurrentRuleConfiguration(currentConfig,
toBeCreatedRuleConfig);
definitionSegmentDS1 = new
DatabaseDiscoveryDefinitionSegment("readwrite_ds_1", Arrays.asList("ds_read_0",
"ds_read_1", "ds_read_3"), algorithmSegment, new Properties());
definitionSegmentDS2 = new
DatabaseDiscoveryDefinitionSegment("readwrite_ds_2", Arrays.asList("ds_read_0",
"ds_read_1", "ds_read_3"), algorithmSegment, new Properties());
@@ -141,7 +141,7 @@ public final class
CreateDatabaseDiscoveryRuleStatementUpdaterTest {
rules.add(definitionSegmentDS2);
CreateDatabaseDiscoveryRuleStatement statement = new
CreateDatabaseDiscoveryRuleStatement(true, rules);
updater.checkSQLStatement(database, statement, currentConfig);
- toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(statement);
+ toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentConfig, statement);
updater.updateCurrentRuleConfiguration(currentConfig,
toBeCreatedRuleConfig);
assertThat(currentConfig.getDataSources().size(), is(2));
assertTrue(currentConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
diff --git
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
index 14b78cdd940..47687d5d9f4 100644
---
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
+++
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
@@ -88,7 +88,7 @@ public final class CreateEncryptRuleStatementUpdater
implements RuleDefinitionCr
}
@Override
- public EncryptRuleConfiguration buildToBeCreatedRuleConfiguration(final
CreateEncryptRuleStatement sqlStatement) {
+ public EncryptRuleConfiguration buildToBeCreatedRuleConfiguration(final
EncryptRuleConfiguration currentRuleConfig, final CreateEncryptRuleStatement
sqlStatement) {
return EncryptRuleStatementConverter.convert(sqlStatement.getRules());
}
diff --git
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdaterTest.java
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdaterTest.java
index 1752a369ef6..15f2d8c7f28 100644
---
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdaterTest.java
+++
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdaterTest.java
@@ -77,7 +77,7 @@ public final class CreateEncryptRuleStatementUpdaterTest {
EncryptRuleConfiguration currentRuleConfig = getCurrentRuleConfig();
CreateEncryptRuleStatement sqlStatement = createSQLStatement(true,
"AES");
updater.checkSQLStatement(database, sqlStatement, currentRuleConfig);
- EncryptRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(sqlStatement);
+ EncryptRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, sqlStatement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
assertThat(currentRuleConfig.getTables().size(), is(2));
assertTrue(currentRuleConfig.getEncryptors().isEmpty());
diff --git
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdater.java
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdater.java
index 29d937b00fb..006a298c88d 100644
---
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdater.java
+++
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdater.java
@@ -73,7 +73,7 @@ public final class CreateMaskRuleStatementUpdater implements
RuleDefinitionCreat
}
@Override
- public RuleConfiguration buildToBeCreatedRuleConfiguration(final
CreateMaskRuleStatement sqlStatement) {
+ public RuleConfiguration buildToBeCreatedRuleConfiguration(final
MaskRuleConfiguration currentRuleConfig, final CreateMaskRuleStatement
sqlStatement) {
return MaskRuleStatementConverter.convert(sqlStatement.getRules());
}
diff --git
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdater.java
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdater.java
index 16518701820..503955ad537 100644
---
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdater.java
+++
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdater.java
@@ -43,7 +43,8 @@ public final class
CreateReadwriteSplittingRuleStatementUpdater implements RuleD
}
@Override
- public ReadwriteSplittingRuleConfiguration
buildToBeCreatedRuleConfiguration(final CreateReadwriteSplittingRuleStatement
sqlStatement) {
+ public ReadwriteSplittingRuleConfiguration
buildToBeCreatedRuleConfiguration(final ReadwriteSplittingRuleConfiguration
currentRuleConfig,
+
final CreateReadwriteSplittingRuleStatement sqlStatement) {
Collection<ReadwriteSplittingRuleSegment> segments =
sqlStatement.getRules();
if (!duplicatedRuleNames.isEmpty()) {
segments.removeIf(each ->
duplicatedRuleNames.contains(each.getName()));
diff --git
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdaterTest.java
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdaterTest.java
index af833c08da5..0190bd9ef57 100644
---
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdaterTest.java
+++
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdaterTest.java
@@ -142,8 +142,8 @@ public final class
CreateReadwriteSplittingRuleStatementUpdaterTest {
ReadwriteSplittingRuleSegment staticSegment = new
ReadwriteSplittingRuleSegment("static_rule", "write_ds_0",
Arrays.asList("read_ds_0", "read_ds_1"), "TEST", new Properties());
CreateReadwriteSplittingRuleStatement statement =
createSQLStatement(false, dynamicSegment, staticSegment);
updater.checkSQLStatement(database, statement, null);
- ReadwriteSplittingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(statement);
ReadwriteSplittingRuleConfiguration currentRuleConfig = new
ReadwriteSplittingRuleConfiguration(new ArrayList<>(), new HashMap<>());
+ ReadwriteSplittingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, statement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
assertThat(currentRuleConfig.getDataSources().size(), is(2));
}
diff --git
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmStatementUpdater.java
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmStatementUpdater.java
index 229b49399d0..e471da2e90a 100644
---
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmStatementUpdater.java
+++
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmStatementUpdater.java
@@ -47,7 +47,7 @@ public final class
CreateDefaultShadowAlgorithmStatementUpdater implements RuleD
private static final String DEFAULT_ALGORITHM_NAME =
"default_shadow_algorithm";
@Override
- public RuleConfiguration buildToBeCreatedRuleConfiguration(final
CreateDefaultShadowAlgorithmStatement sqlStatement) {
+ public RuleConfiguration buildToBeCreatedRuleConfiguration(final
ShadowRuleConfiguration currentRuleConfig, final
CreateDefaultShadowAlgorithmStatement sqlStatement) {
ShadowRuleConfiguration result = new ShadowRuleConfiguration();
result.setShadowAlgorithms(buildAlgorithmMap(sqlStatement));
result.setDefaultShadowAlgorithmName(DEFAULT_ALGORITHM_NAME);
diff --git
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleStatementUpdater.java
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleStatementUpdater.java
index 4af3dbd5aa1..514e43b6940 100644
---
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleStatementUpdater.java
+++
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleStatementUpdater.java
@@ -46,7 +46,7 @@ public final class CreateShadowRuleStatementUpdater
implements RuleDefinitionCre
private Collection<String> duplicatedRuleNames = new LinkedList<>();
@Override
- public RuleConfiguration buildToBeCreatedRuleConfiguration(final
CreateShadowRuleStatement sqlStatement) {
+ public RuleConfiguration buildToBeCreatedRuleConfiguration(final
ShadowRuleConfiguration currentRuleConfig, final CreateShadowRuleStatement
sqlStatement) {
Collection<ShadowRuleSegment> segments = sqlStatement.getRules();
if (!duplicatedRuleNames.isEmpty()) {
segments.removeIf(each ->
duplicatedRuleNames.contains(each.getRuleName()));
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateBroadcastTableRuleStatementUpdater.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateBroadcastTableRuleStatementUpdater.java
index cae41635af4..6a5ec3e0a3d 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateBroadcastTableRuleStatementUpdater.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateBroadcastTableRuleStatementUpdater.java
@@ -55,7 +55,7 @@ public final class CreateBroadcastTableRuleStatementUpdater
implements RuleDefin
}
@Override
- public ShardingRuleConfiguration buildToBeCreatedRuleConfiguration(final
CreateBroadcastTableRuleStatement sqlStatement) {
+ public ShardingRuleConfiguration buildToBeCreatedRuleConfiguration(final
ShardingRuleConfiguration currentRuleConfig, final
CreateBroadcastTableRuleStatement sqlStatement) {
ShardingRuleConfiguration result = new ShardingRuleConfiguration();
result.setBroadcastTables(sqlStatement.getTables());
return result;
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateDefaultShardingStrategyStatementUpdater.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateDefaultShardingStrategyStatementUpdater.java
index d13a20d032a..4837896ffd5 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateDefaultShardingStrategyStatementUpdater.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateDefaultShardingStrategyStatementUpdater.java
@@ -17,13 +17,13 @@
package org.apache.shardingsphere.sharding.distsql.handler.update;
-import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
-import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
-import
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
import
org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException;
import
org.apache.shardingsphere.distsql.handler.exception.algorithm.MissingRequiredAlgorithmException;
+import
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
import
org.apache.shardingsphere.distsql.handler.exception.rule.MissingRequiredRuleException;
import
org.apache.shardingsphere.distsql.handler.update.RuleDefinitionCreateUpdater;
+import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
+import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
@@ -79,7 +79,7 @@ public final class
CreateDefaultShardingStrategyStatementUpdater implements Rule
}
@Override
- public ShardingRuleConfiguration buildToBeCreatedRuleConfiguration(final
CreateDefaultShardingStrategyStatement sqlStatement) {
+ public ShardingRuleConfiguration buildToBeCreatedRuleConfiguration(final
ShardingRuleConfiguration currentRuleConfig, final
CreateDefaultShardingStrategyStatement sqlStatement) {
ShardingRuleConfiguration result = new ShardingRuleConfiguration();
String shardingAlgorithmName = getShardingAlgorithmName(sqlStatement,
result);
ShardingStrategyConfiguration strategyConfig =
ShardingTableRuleStatementConverter.createStrategyConfiguration(
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleStatementUpdater.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleStatementUpdater.java
index bf513f92ec5..4476b17cd06 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleStatementUpdater.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleStatementUpdater.java
@@ -92,7 +92,7 @@ public final class
CreateShardingTableReferenceRuleStatementUpdater implements R
}
private void checkShardingTableReferenceRulesValid(final
CreateShardingTableReferenceRuleStatement sqlStatement, final
ShardingRuleConfiguration currentRuleConfig) {
- Collection<ShardingTableReferenceRuleConfiguration> bindingTableGroups
= buildToBeCreatedRuleConfiguration(sqlStatement).getBindingTableGroups();
+ Collection<ShardingTableReferenceRuleConfiguration> bindingTableGroups
= buildToBeCreatedRuleConfiguration(currentRuleConfig,
sqlStatement).getBindingTableGroups();
Collection<String> names =
bindingTableGroups.stream().map(ShardingTableReferenceRuleConfiguration::getName).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(ShardingTableRuleStatementChecker.isValidBindingTableGroups(bindingTableGroups,
currentRuleConfig),
() -> new InvalidRuleConfigurationException("sharding table",
names, Collections.singleton("invalid sharding table reference.")));
@@ -107,7 +107,7 @@ public final class
CreateShardingTableReferenceRuleStatementUpdater implements R
}
@Override
- public ShardingRuleConfiguration buildToBeCreatedRuleConfiguration(final
CreateShardingTableReferenceRuleStatement sqlStatement) {
+ public ShardingRuleConfiguration buildToBeCreatedRuleConfiguration(final
ShardingRuleConfiguration currentRuleConfig, final
CreateShardingTableReferenceRuleStatement sqlStatement) {
ShardingRuleConfiguration result = new ShardingRuleConfiguration();
sqlStatement.getRules().forEach(each ->
result.getBindingTableGroups().add(new
ShardingTableReferenceRuleConfiguration(each.getName(), each.getReference())));
return result;
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableRuleStatementUpdater.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableRuleStatementUpdater.java
index 4934086d4ff..cfbb2c84482 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableRuleStatementUpdater.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableRuleStatementUpdater.java
@@ -41,7 +41,7 @@ public final class CreateShardingTableRuleStatementUpdater
implements RuleDefini
}
@Override
- public ShardingRuleConfiguration buildToBeCreatedRuleConfiguration(final
CreateShardingTableRuleStatement sqlStatement) {
+ public ShardingRuleConfiguration buildToBeCreatedRuleConfiguration(final
ShardingRuleConfiguration currentRuleConfig, final
CreateShardingTableRuleStatement sqlStatement) {
return
ShardingTableRuleStatementConverter.convert(sqlStatement.getRules());
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateBroadcastTableRuleStatementUpdaterTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateBroadcastTableRuleStatementUpdaterTest.java
index 571ff5756bc..b6a58064e34 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateBroadcastTableRuleStatementUpdaterTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateBroadcastTableRuleStatementUpdaterTest.java
@@ -49,7 +49,7 @@ public final class
CreateBroadcastTableRuleStatementUpdaterTest {
ShardingRuleConfiguration currentRuleConfig = new
ShardingRuleConfiguration();
CreateBroadcastTableRuleStatement sqlStatement = new
CreateBroadcastTableRuleStatement(false, Arrays.asList("t_1", "t_2"));
updater.checkSQLStatement(database, sqlStatement, currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(sqlStatement);
+ ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, sqlStatement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
assertThat(currentRuleConfig.getBroadcastTables().size(), is(2));
assertTrue(currentRuleConfig.getBroadcastTables().contains("t_1"));
@@ -68,7 +68,7 @@ public final class
CreateBroadcastTableRuleStatementUpdaterTest {
ShardingRuleConfiguration currentRuleConfig =
createCurrentRuleConfiguration();
CreateBroadcastTableRuleStatement sqlStatement = new
CreateBroadcastTableRuleStatement(false, Arrays.asList("t_1", "t_2"));
updater.checkSQLStatement(database, sqlStatement, currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(sqlStatement);
+ ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, sqlStatement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
assertThat(currentRuleConfig.getBroadcastTables().size(), is(4));
assertTrue(currentRuleConfig.getBroadcastTables().contains("t_1"));
@@ -87,7 +87,7 @@ public final class
CreateBroadcastTableRuleStatementUpdaterTest {
ShardingRuleConfiguration currentRuleConfig =
createCurrentRuleConfiguration();
CreateBroadcastTableRuleStatement sqlStatement = new
CreateBroadcastTableRuleStatement(true, tables);
updater.checkSQLStatement(database, sqlStatement, currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(sqlStatement);
+ ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, sqlStatement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
assertThat(currentRuleConfig.getBroadcastTables().size(), is(4));
assertTrue(currentRuleConfig.getBroadcastTables().contains("t_1"));
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateDefaultShardingStrategyStatementUpdaterTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateDefaultShardingStrategyStatementUpdaterTest.java
index 4bd5199b43c..688a34382ac 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateDefaultShardingStrategyStatementUpdaterTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateDefaultShardingStrategyStatementUpdaterTest.java
@@ -17,10 +17,10 @@
package org.apache.shardingsphere.sharding.distsql.update;
-import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
-import
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
import
org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException;
+import
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
import
org.apache.shardingsphere.distsql.handler.exception.rule.MissingRequiredRuleException;
+import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.strategy.sharding.StandardShardingStrategyConfiguration;
@@ -90,7 +90,7 @@ public final class
CreateDefaultShardingStrategyStatementUpdaterTest {
currentRuleConfig.setDefaultDatabaseShardingStrategy(new
StandardShardingStrategyConfiguration("order_id", "orderAlgorithm"));
currentRuleConfig.getShardingAlgorithms().put("order_id_algorithm",
null);
updater.checkSQLStatement(database, statement, currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(statement);
+ ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, statement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
StandardShardingStrategyConfiguration defaultTableShardingStrategy =
(StandardShardingStrategyConfiguration)
currentRuleConfig.getDefaultTableShardingStrategy();
assertThat(defaultTableShardingStrategy.getShardingAlgorithmName(),
is("default_table_order_id_algorithm"));
@@ -103,7 +103,7 @@ public final class
CreateDefaultShardingStrategyStatementUpdaterTest {
CreateDefaultShardingStrategyStatement statement = new
CreateDefaultShardingStrategyStatement(false, "DATABASE", "standard",
"user_id", databaseAlgorithmSegment);
ShardingRuleConfiguration currentRuleConfig = new
ShardingRuleConfiguration();
updater.checkSQLStatement(database, statement, currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(statement);
+ ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, statement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
StandardShardingStrategyConfiguration defaultDatabaseShardingStrategy
= (StandardShardingStrategyConfiguration)
currentRuleConfig.getDefaultDatabaseShardingStrategy();
assertThat(defaultDatabaseShardingStrategy.getShardingAlgorithmName(),
is("default_database_inline"));
@@ -118,12 +118,12 @@ public final class
CreateDefaultShardingStrategyStatementUpdaterTest {
currentRuleConfig.setDefaultDatabaseShardingStrategy(new
StandardShardingStrategyConfiguration("order_id", "orderAlgorithm"));
currentRuleConfig.getShardingAlgorithms().put("order_id_algorithm",
null);
updater.checkSQLStatement(database, statement, currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(statement);
+ ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, statement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
algorithm = new AlgorithmSegment("user_id_algorithm", new
Properties());
CreateDefaultShardingStrategyStatement statementWithIfNotExists = new
CreateDefaultShardingStrategyStatement(true, "TABLE", "standard", "order_id",
algorithm);
updater.checkSQLStatement(database, statementWithIfNotExists,
currentRuleConfig);
- toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(statementWithIfNotExists);
+ toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig,
statementWithIfNotExists);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
StandardShardingStrategyConfiguration defaultTableShardingStrategy =
(StandardShardingStrategyConfiguration)
currentRuleConfig.getDefaultTableShardingStrategy();
assertThat(defaultTableShardingStrategy.getShardingAlgorithmName(),
is("default_table_order_id_algorithm"));
@@ -136,12 +136,12 @@ public final class
CreateDefaultShardingStrategyStatementUpdaterTest {
CreateDefaultShardingStrategyStatement statement = new
CreateDefaultShardingStrategyStatement(false, "DATABASE", "standard",
"user_id", databaseAlgorithmSegment);
ShardingRuleConfiguration currentRuleConfig = new
ShardingRuleConfiguration();
updater.checkSQLStatement(database, statement, currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(statement);
+ ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, statement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
databaseAlgorithmSegment = getAutoCreativeAlgorithmSegment("inline",
newProperties("algorithm-expression", "ds_${order_id% 2}"));
CreateDefaultShardingStrategyStatement statementWithIfNotExists = new
CreateDefaultShardingStrategyStatement(true, "TABLE", "standard", "order_id",
databaseAlgorithmSegment);
updater.checkSQLStatement(database, statementWithIfNotExists,
currentRuleConfig);
- toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(statementWithIfNotExists);
+ toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig,
statementWithIfNotExists);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
StandardShardingStrategyConfiguration defaultDatabaseShardingStrategy
= (StandardShardingStrategyConfiguration)
currentRuleConfig.getDefaultDatabaseShardingStrategy();
assertThat(defaultDatabaseShardingStrategy.getShardingAlgorithmName(),
is("default_database_inline"));
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableReferenceRuleStatementUpdaterTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableReferenceRuleStatementUpdaterTest.java
index 763ee24ae63..12dca3e4603 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableReferenceRuleStatementUpdaterTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableReferenceRuleStatementUpdaterTest.java
@@ -66,7 +66,7 @@ public final class
CreateShardingTableReferenceRuleStatementUpdaterTest {
CreateShardingTableReferenceRuleStatement sqlStatement =
createSQLStatement(true, "foo", "t_order,t_order_item");
ShardingRuleConfiguration currentRuleConfig = getCurrentRuleConfig();
updater.checkSQLStatement(database, sqlStatement, currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(sqlStatement);
+ ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, sqlStatement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
Collection<ShardingTableReferenceRuleConfiguration>
referenceRuleConfigurations = currentRuleConfig.getBindingTableGroups();
assertThat(referenceRuleConfigurations.size(), is(1));
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableRuleStatementUpdaterTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableRuleStatementUpdaterTest.java
index 6c9d161f973..d4bfc2d4e44 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableRuleStatementUpdaterTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableRuleStatementUpdaterTest.java
@@ -95,7 +95,7 @@ public final class
CreateShardingTableRuleStatementUpdaterTest {
public void assertUpdate() {
CreateShardingTableRuleStatement statement = new
CreateShardingTableRuleStatement(false,
Arrays.asList(createCompleteAutoTableRule(), createCompleteTableRule()));
updater.checkSQLStatement(database, statement, currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(statement);
+ ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, statement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
assertThat(currentRuleConfig.getTables().size(), is(2));
Iterator<ShardingTableRuleConfiguration> tableRuleIterator =
currentRuleConfig.getTables().iterator();
@@ -157,7 +157,7 @@ public final class
CreateShardingTableRuleStatementUpdaterTest {
public void assertUpdateWithIfNotExistsStatement() {
CreateShardingTableRuleStatement statement = new
CreateShardingTableRuleStatement(false,
Arrays.asList(createCompleteAutoTableRule(), createCompleteTableRule()));
updater.checkSQLStatement(database, statement, currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(statement);
+ ShardingRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, statement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
AutoTableRuleSegment autoTableRuleSegment = new
AutoTableRuleSegment("t_order_item_input",
Collections.singletonList("logic_ds"));
autoTableRuleSegment.setKeyGenerateStrategySegment(new
KeyGenerateStrategySegment("test_product_id", new
AlgorithmSegment("DISTSQL.FIXTURE", new Properties())));
@@ -170,7 +170,7 @@ public final class
CreateShardingTableRuleStatementUpdaterTest {
tableRuleSegment.setKeyGenerateStrategySegment(new
KeyGenerateStrategySegment("order_id", new AlgorithmSegment("DISTSQL.FIXTURE",
new Properties())));
CreateShardingTableRuleStatement statementWithIfNotExists = new
CreateShardingTableRuleStatement(true, Arrays.asList(autoTableRuleSegment,
tableRuleSegment));
updater.checkSQLStatement(database, statementWithIfNotExists,
currentRuleConfig);
- ShardingRuleConfiguration toBeCreatedRuleConfigWithIfNotExists =
updater.buildToBeCreatedRuleConfiguration(statement);
+ ShardingRuleConfiguration toBeCreatedRuleConfigWithIfNotExists =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, statement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfigWithIfNotExists);
assertThat(currentRuleConfig.getTables().size(), is(2));
Iterator<ShardingTableRuleConfiguration> tableRuleIterator =
currentRuleConfig.getTables().iterator();
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
index 1c6ff34de01..c3dc5a8ab8f 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
@@ -95,7 +95,7 @@ public final class RuleDefinitionBackendHandler<T extends
RuleDefinitionStatemen
@SuppressWarnings({"rawtypes", "unchecked"})
private RuleConfiguration processCreate(final T sqlStatement, final
RuleDefinitionCreateUpdater updater, final RuleConfiguration currentRuleConfig)
{
- RuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(sqlStatement);
+ RuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, sqlStatement);
if (null == currentRuleConfig) {
return toBeCreatedRuleConfig;
}
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdater.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdater.java
index 060f1485167..cebdb18c7a7 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdater.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdater.java
@@ -18,9 +18,9 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule;
import org.apache.commons.lang3.StringUtils;
-import
org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.distsql.handler.update.RuleDefinitionCreateUpdater;
+import
org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
@@ -47,7 +47,7 @@ public final class
SetDefaultSingleTableStorageUnitStatementUpdater implements R
}
@Override
- public SingleRuleConfiguration buildToBeCreatedRuleConfiguration(final
SetDefaultSingleTableStorageUnitStatement sqlStatement) {
+ public SingleRuleConfiguration buildToBeCreatedRuleConfiguration(final
SingleRuleConfiguration currentRuleConfig, final
SetDefaultSingleTableStorageUnitStatement sqlStatement) {
SingleRuleConfiguration result = new SingleRuleConfiguration();
result.setDefaultDataSource(sqlStatement.getDefaultStorageUnit());
return result;
diff --git
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/fixture/FixtureRuleDefinitionCreateUpdater.java
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/fixture/FixtureRuleDefinitionCreateUpdater.java
index af3fdb1a443..73fc2b28a6e 100644
---
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/fixture/FixtureRuleDefinitionCreateUpdater.java
+++
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/fixture/FixtureRuleDefinitionCreateUpdater.java
@@ -17,14 +17,14 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.fixture;
-import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.distsql.handler.update.RuleDefinitionCreateUpdater;
+import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
public final class FixtureRuleDefinitionCreateUpdater implements
RuleDefinitionCreateUpdater<CreateFixtureRuleStatement,
FixtureRuleConfiguration> {
@Override
- public RuleConfiguration buildToBeCreatedRuleConfiguration(final
CreateFixtureRuleStatement sqlStatement) {
+ public RuleConfiguration buildToBeCreatedRuleConfiguration(final
FixtureRuleConfiguration currentRuleConfig, final CreateFixtureRuleStatement
sqlStatement) {
return new FixtureRuleConfiguration();
}
diff --git
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitUpdaterTest.java
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitUpdaterTest.java
index c639418cd3d..0a848deceaf 100644
---
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitUpdaterTest.java
+++
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitUpdaterTest.java
@@ -17,8 +17,8 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule;
-import
org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
+import
org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
@@ -61,15 +61,15 @@ public final class
SetDefaultSingleTableStorageUnitUpdaterTest {
@Test
public void assertBuild() {
- SingleRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(new
SetDefaultSingleTableStorageUnitStatement("ds_0"));
+ SingleRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentConfig, new
SetDefaultSingleTableStorageUnitStatement("ds_0"));
assertTrue(toBeCreatedRuleConfig.getDefaultDataSource().isPresent());
assertThat(toBeCreatedRuleConfig.getDefaultDataSource().get(),
is("ds_0"));
}
@Test
public void assertUpdate() {
- SingleRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(new
SetDefaultSingleTableStorageUnitStatement("ds_0"));
SingleRuleConfiguration currentConfig = new SingleRuleConfiguration();
+ SingleRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentConfig, new
SetDefaultSingleTableStorageUnitStatement("ds_0"));
updater.updateCurrentRuleConfiguration(currentConfig,
toBeCreatedRuleConfig);
assertTrue(currentConfig.getDefaultDataSource().isPresent());
assertThat(currentConfig.getDefaultDataSource().get(), is("ds_0"));
@@ -77,8 +77,8 @@ public final class
SetDefaultSingleTableStorageUnitUpdaterTest {
@Test
public void assertRandom() {
- SingleRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(new
SetDefaultSingleTableStorageUnitStatement(null));
SingleRuleConfiguration currentConfig = new SingleRuleConfiguration();
+ SingleRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentConfig, new
SetDefaultSingleTableStorageUnitStatement(null));
updater.updateCurrentRuleConfiguration(currentConfig,
toBeCreatedRuleConfig);
assertFalse(currentConfig.getDefaultDataSource().isPresent());
}