This is an automated email from the ASF dual-hosted git repository.
linghengqian 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 87e63ab8279 Refactor DistSQLExecutorAwareSetter and DistSQLExecutor
(#30303)
87e63ab8279 is described below
commit 87e63ab82796a463d06d4b9fe43631d1128d370d
Author: Raigor <[email protected]>
AuthorDate: Mon Feb 26 23:56:31 2024 +0800
Refactor DistSQLExecutorAwareSetter and DistSQLExecutor (#30303)
---
.../handler/query/ShowBroadcastTableRuleExecutorTest.java | 7 +++++--
.../distsql/handler/query/ShowEncryptRuleExecutorTest.java | 7 +++++--
.../mask/distsql/handler/query/ShowMaskRuleExecutorTest.java | 7 +++++--
.../handler/query/ShowReadwriteSplittingRuleExecutorTest.java | 7 +++++--
.../distsql/query/ShowDefaultShadowAlgorithmExecutorTest.java | 7 +++++--
.../shadow/distsql/query/ShowShadowAlgorithmsExecutorTest.java | 7 +++++--
.../shadow/distsql/query/ShowShadowRuleExecutorTest.java | 7 +++++--
.../shadow/distsql/query/ShowShadowTableRulesExecutorTest.java | 7 +++++--
.../distsql/query/ShowDefaultShardingStrategyExecutorTest.java | 7 +++++--
.../distsql/query/ShowShardingAlgorithmExecutorTest.java | 7 +++++--
.../sharding/distsql/query/ShowShardingAuditorsExecutorTest.java | 7 +++++--
.../distsql/query/ShowShardingKeyGeneratorExecutorTest.java | 7 +++++--
.../distsql/query/ShowShardingTableNodesExecutorTest.java | 7 +++++--
.../query/ShowShardingTableReferenceRuleExecutorTest.java | 7 +++++--
.../distsql/query/ShowShardingTableRuleExecutorTest.java | 7 +++++--
.../query/ShowShardingTableRulesUsedAlgorithmExecutorTest.java | 7 +++++--
.../query/ShowShardingTableRulesUsedAuditorExecutorTest.java | 7 +++++--
.../ShowShardingTableRulesUsedKeyGeneratorExecutorTest.java | 7 +++++--
.../distsql/query/ShowUnusedShardingAlgorithmsExecutorTest.java | 7 +++++--
.../distsql/query/ShowUnusedShardingAuditorsExecutorTest.java | 7 +++++--
.../query/ShowUnusedShardingKeyGeneratorExecutorTest.java | 7 +++++--
.../distsql/handler/aware/DistSQLExecutorAwareSetter.java | 9 ++++++++-
.../distsql/handler/engine/query/DistSQLQueryExecuteEngine.java | 2 +-
.../handler/engine/update/DistSQLUpdateExecuteEngine.java | 2 +-
.../query/ShowDefaultSingleTableStorageUnitExecutorTest.java | 7 +++++--
.../distsql/handler/query/ShowSingleTableExecutorTest.java | 7 +++++--
26 files changed, 125 insertions(+), 49 deletions(-)
diff --git
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/query/ShowBroadcastTableRuleExecutorTest.java
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/query/ShowBroadcastTableRuleExecutorTest.java
index 9405fc633c6..b09c3f0237c 100644
---
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/query/ShowBroadcastTableRuleExecutorTest.java
+++
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/query/ShowBroadcastTableRuleExecutorTest.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.broadcast.rule.BroadcastRule;
import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext;
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -45,13 +46,15 @@ class ShowBroadcastTableRuleExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowBroadcastTableRulesStatement.class), null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowBroadcastTableRulesStatement.class),
"foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
BroadcastRule rule = mockBroadcastRule();
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(BroadcastRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(BroadcastRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/query/ShowEncryptRuleExecutorTest.java
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/query/ShowEncryptRuleExecutorTest.java
index 3127d62cd54..f7dd35a6791 100644
---
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/query/ShowEncryptRuleExecutorTest.java
+++
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/query/ShowEncryptRuleExecutorTest.java
@@ -27,6 +27,7 @@ import
org.apache.shardingsphere.encrypt.distsql.statement.ShowEncryptRulesState
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -50,14 +51,16 @@ class ShowEncryptRuleExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowEncryptRulesStatement.class), null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowEncryptRulesStatement.class), "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
EncryptRule rule = mock(EncryptRule.class);
when(rule.getConfiguration()).thenReturn(getRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(EncryptRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(EncryptRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskRuleExecutorTest.java
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskRuleExecutorTest.java
index b1e043fdfc1..ec75d846a92 100644
---
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskRuleExecutorTest.java
+++
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskRuleExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mask.api.config.MaskRuleConfiguration;
import
org.apache.shardingsphere.mask.api.config.rule.MaskColumnRuleConfiguration;
import
org.apache.shardingsphere.mask.api.config.rule.MaskTableRuleConfiguration;
@@ -49,14 +50,16 @@ class ShowMaskRuleExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowMaskRulesStatement.class), null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowMaskRulesStatement.class), "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
MaskRule rule = mock(MaskRule.class);
when(rule.getConfiguration()).thenReturn(getRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(MaskRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(MaskRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/query/ShowReadwriteSplittingRuleExecutorTest.java
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/query/ShowReadwriteSplittingRuleExecutorTest.java
index c00fc9401ca..371e4df280e 100644
---
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/query/ShowReadwriteSplittingRuleExecutorTest.java
+++
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/query/ShowReadwriteSplittingRuleExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.rule.identifier.type.exportable.constant.ExportableConstants;
import org.apache.shardingsphere.mode.manager.ContextManager;
import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
@@ -51,15 +52,17 @@ class ShowReadwriteSplittingRuleExecutorTest {
private DistSQLQueryExecuteEngine engine;
private DistSQLQueryExecuteEngine setUp(final
ShowReadwriteSplittingRulesStatement statement, final
ReadwriteSplittingRuleConfiguration configuration) {
- return new DistSQLQueryExecuteEngine(statement, null,
mockContextManager(configuration), mock(DistSQLConnectionContext.class));
+ return new DistSQLQueryExecuteEngine(statement, "foo_db",
mockContextManager(configuration), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager(final
ReadwriteSplittingRuleConfiguration configuration) {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ReadwriteSplittingRule rule = mock(ReadwriteSplittingRule.class);
when(rule.getConfiguration()).thenReturn(configuration);
when(rule.getExportData()).thenReturn(createExportedData());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ReadwriteSplittingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ReadwriteSplittingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowDefaultShadowAlgorithmExecutorTest.java
b/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowDefaultShadowAlgorithmExecutorTest.java
index ddb0cc1c539..94054d3a9f4 100644
---
a/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowDefaultShadowAlgorithmExecutorTest.java
+++
b/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowDefaultShadowAlgorithmExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
import
org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
@@ -49,14 +50,16 @@ class ShowDefaultShadowAlgorithmExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowDefaultShadowAlgorithmStatement.class),
null, mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowDefaultShadowAlgorithmStatement.class),
"foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShadowRule rule = mock(ShadowRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShadowRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShadowRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowAlgorithmsExecutorTest.java
b/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowAlgorithmsExecutorTest.java
index 2c67c5c64b4..75e78be563f 100644
---
a/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowAlgorithmsExecutorTest.java
+++
b/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowAlgorithmsExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
import
org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
@@ -49,14 +50,16 @@ class ShowShadowAlgorithmsExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowShadowAlgorithmsStatement.class), null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowShadowAlgorithmsStatement.class), "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShadowRule rule = mock(ShadowRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShadowRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShadowRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowRuleExecutorTest.java
b/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowRuleExecutorTest.java
index ba49f454389..5940f058e21 100644
---
a/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowRuleExecutorTest.java
+++
b/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowRuleExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
import
org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
@@ -49,14 +50,16 @@ class ShowShadowRuleExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowShadowRulesStatement.class), null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowShadowRulesStatement.class), "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShadowRule rule = mock(ShadowRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShadowRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShadowRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowTableRulesExecutorTest.java
b/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowTableRulesExecutorTest.java
index 81a2b87fec9..4f37ac6ec4b 100644
---
a/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowTableRulesExecutorTest.java
+++
b/features/shadow/distsql/handler/src/test/java/org/apache/shardingsphere/shadow/distsql/query/ShowShadowTableRulesExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
import
org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
@@ -50,14 +51,16 @@ class ShowShadowTableRulesExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowShadowTableRulesStatement.class), null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowShadowTableRulesStatement.class), "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShadowRule rule = mock(ShadowRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShadowRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShadowRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowDefaultShardingStrategyExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowDefaultShardingStrategyExecutorTest.java
index b6d584a308a..5dd7ccfb2b1 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowDefaultShardingStrategyExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowDefaultShardingStrategyExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.strategy.sharding.ComplexShardingStrategyConfiguration;
@@ -49,14 +50,16 @@ class ShowDefaultShardingStrategyExecutorTest {
private DistSQLQueryExecuteEngine engine;
DistSQLQueryExecuteEngine setUp(final ShardingRuleConfiguration
configuration) {
- return new
DistSQLQueryExecuteEngine(mock(ShowDefaultShardingStrategyStatement.class),
null, mockContextManager(configuration), mock(DistSQLConnectionContext.class));
+ return new
DistSQLQueryExecuteEngine(mock(ShowDefaultShardingStrategyStatement.class),
"foo_db", mockContextManager(configuration),
mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager(final ShardingRuleConfiguration
configuration) {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(configuration);
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingAlgorithmExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingAlgorithmExecutorTest.java
index 24d5ca7316e..41d6c18d989 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingAlgorithmExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingAlgorithmExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.distsql.statement.ShowShardingAlgorithmsStatement;
@@ -47,14 +48,16 @@ class ShowShardingAlgorithmExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowShardingAlgorithmsStatement.class), null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowShardingAlgorithmsStatement.class),
"foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingAuditorsExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingAuditorsExecutorTest.java
index 6c2251055e7..75dbfd99af6 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingAuditorsExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingAuditorsExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.distsql.statement.ShowShardingAuditorsStatement;
@@ -47,14 +48,16 @@ class ShowShardingAuditorsExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowShardingAuditorsStatement.class), null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowShardingAuditorsStatement.class), "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingKeyGeneratorExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingKeyGeneratorExecutorTest.java
index 0f6539e0f98..1884f794ce0 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingKeyGeneratorExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingKeyGeneratorExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.distsql.statement.ShowShardingKeyGeneratorsStatement;
@@ -47,14 +48,16 @@ class ShowShardingKeyGeneratorExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowShardingKeyGeneratorsStatement.class), null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowShardingKeyGeneratorsStatement.class),
"foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableNodesExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableNodesExecutorTest.java
index 45c5bc9c2c7..25bbd5b7658 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableNodesExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableNodesExecutorTest.java
@@ -23,6 +23,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import org.apache.shardingsphere.infra.instance.InstanceContext;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
import org.apache.shardingsphere.infra.yaml.config.pojo.YamlRootConfiguration;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -54,12 +55,14 @@ class ShowShardingTableNodesExecutorTest {
private DistSQLQueryExecuteEngine engine;
DistSQLQueryExecuteEngine setUp(final ShardingRule rule, final
ShowShardingTableNodesStatement statement) {
- return new DistSQLQueryExecuteEngine(statement, null,
mockContextManager(rule), mock(DistSQLConnectionContext.class));
+ return new DistSQLQueryExecuteEngine(statement, "foo_db",
mockContextManager(rule), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager(final ShardingRule rule) {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableReferenceRuleExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableReferenceRuleExecutorTest.java
index ef75db33e1c..17649d88933 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableReferenceRuleExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableReferenceRuleExecutorTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.query;
import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext;
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableReferenceRuleConfiguration;
@@ -44,14 +45,16 @@ class ShowShardingTableReferenceRuleExecutorTest {
private DistSQLQueryExecuteEngine engine;
DistSQLQueryExecuteEngine setUp(final
ShowShardingTableReferenceRulesStatement statement) {
- return new DistSQLQueryExecuteEngine(statement, null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ return new DistSQLQueryExecuteEngine(statement, "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRuleExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRuleExecutorTest.java
index 22c6efd7573..a1955f5f178 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRuleExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRuleExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfigurat
import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext;
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
@@ -54,14 +55,16 @@ class ShowShardingTableRuleExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowShardingTableRulesStatement.class), null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowShardingTableRulesStatement.class),
"foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedAlgorithmExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedAlgorithmExecutorTest.java
index 5526d0c5556..794ca11006d 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedAlgorithmExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedAlgorithmExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
@@ -52,14 +53,16 @@ class ShowShardingTableRulesUsedAlgorithmExecutorTest {
DistSQLQueryExecuteEngine setUp(final
ShowShardingTableRulesUsedAlgorithmStatement statement, final String
algorithmName) {
when(statement.getShardingAlgorithmName()).thenReturn(Optional.of(algorithmName));
- return new DistSQLQueryExecuteEngine(statement, null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ return new DistSQLQueryExecuteEngine(statement, "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedAuditorExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedAuditorExecutorTest.java
index 0fbcda5fac7..0160077f9ba 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedAuditorExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedAuditorExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
@@ -53,14 +54,16 @@ class ShowShardingTableRulesUsedAuditorExecutorTest {
DistSQLQueryExecuteEngine setUp(final
ShowShardingTableRulesUsedAuditorStatement statement, final String auditorName)
{
when(statement.getAuditorName()).thenReturn(Optional.of(auditorName));
- return new DistSQLQueryExecuteEngine(statement, null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ return new DistSQLQueryExecuteEngine(statement, "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedKeyGeneratorExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedKeyGeneratorExecutorTest.java
index 047b1791d91..8c493a9e962 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedKeyGeneratorExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowShardingTableRulesUsedKeyGeneratorExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
@@ -52,14 +53,16 @@ class ShowShardingTableRulesUsedKeyGeneratorExecutorTest {
DistSQLQueryExecuteEngine setUp(final
ShowShardingTableRulesUsedKeyGeneratorStatement statement, final String
keyGeneratorName) {
when(statement.getKeyGeneratorName()).thenReturn(Optional.of(keyGeneratorName));
- return new DistSQLQueryExecuteEngine(statement, null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ return new DistSQLQueryExecuteEngine(statement, "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingAlgorithmsExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingAlgorithmsExecutorTest.java
index ddf0c557482..a96e93512c4 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingAlgorithmsExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingAlgorithmsExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
@@ -49,14 +50,16 @@ class ShowUnusedShardingAlgorithmsExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowUnusedShardingAlgorithmsStatement.class),
null, mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowUnusedShardingAlgorithmsStatement.class),
"foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingAuditorsExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingAuditorsExecutorTest.java
index f3b7069757c..11869b9c3f0 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingAuditorsExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingAuditorsExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
@@ -51,14 +52,16 @@ class ShowUnusedShardingAuditorsExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowUnusedShardingAuditorsStatement.class),
null, mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowUnusedShardingAuditorsStatement.class),
"foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingKeyGeneratorExecutorTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingKeyGeneratorExecutorTest.java
index 35ead71c686..60e9673f7be 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingKeyGeneratorExecutorTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShowUnusedShardingKeyGeneratorExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
@@ -48,14 +49,16 @@ class ShowUnusedShardingKeyGeneratorExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowUnusedShardingKeyGeneratorsStatement.class),
null, mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowUnusedShardingKeyGeneratorsStatement.class),
"foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
ShardingRule rule = mock(ShardingRule.class);
when(rule.getConfiguration()).thenReturn(createRuleConfiguration());
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/aware/DistSQLExecutorAwareSetter.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/aware/DistSQLExecutorAwareSetter.java
index 9700a6c547a..ff2b818c04d 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/aware/DistSQLExecutorAwareSetter.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/aware/DistSQLExecutorAwareSetter.java
@@ -19,6 +19,9 @@ package org.apache.shardingsphere.distsql.handler.aware;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext;
+import
org.apache.shardingsphere.distsql.handler.engine.update.rdl.rule.spi.global.GlobalRuleDefinitionExecutor;
+import org.apache.shardingsphere.distsql.statement.DistSQLStatement;
+import
org.apache.shardingsphere.distsql.statement.rql.rule.global.ShowGlobalRulesStatement;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import
org.apache.shardingsphere.infra.exception.core.external.sql.type.generic.UnsupportedSQLOperationException;
import
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.database.NoDatabaseSelectedException;
@@ -42,14 +45,18 @@ public final class DistSQLExecutorAwareSetter {
* @param contextManager context manager
* @param database database
* @param connectionContext connection context
+ * @param sqlStatement DistSQL statement
*/
@SuppressWarnings("rawtypes")
- public void set(final ContextManager contextManager, final
ShardingSphereDatabase database, final DistSQLConnectionContext
connectionContext) {
+ public void set(final ContextManager contextManager, final
ShardingSphereDatabase database, final DistSQLConnectionContext
connectionContext, final DistSQLStatement sqlStatement) {
if (executor instanceof DistSQLExecutorDatabaseAware) {
ShardingSpherePreconditions.checkNotNull(database,
NoDatabaseSelectedException::new);
((DistSQLExecutorDatabaseAware) executor).setDatabase(database);
}
if (executor instanceof DistSQLExecutorRuleAware) {
+ if (!(sqlStatement instanceof ShowGlobalRulesStatement) &&
!(executor instanceof GlobalRuleDefinitionExecutor)) {
+ ShardingSpherePreconditions.checkNotNull(database,
NoDatabaseSelectedException::new);
+ }
setRule((DistSQLExecutorRuleAware) executor, contextManager,
database);
}
if (executor instanceof DistSQLExecutorConnectionContextAware) {
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/query/DistSQLQueryExecuteEngine.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/query/DistSQLQueryExecuteEngine.java
index 0c7e923b710..495760a728b 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/query/DistSQLQueryExecuteEngine.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/query/DistSQLQueryExecuteEngine.java
@@ -67,7 +67,7 @@ public final class DistSQLQueryExecuteEngine {
public void executeQuery() throws SQLException {
DistSQLQueryExecutor<DistSQLStatement> executor =
TypedSPILoader.getService(DistSQLQueryExecutor.class, sqlStatement.getClass());
try {
- new DistSQLExecutorAwareSetter(executor).set(contextManager, null
== databaseName ? null : contextManager.getDatabase(databaseName),
distsqlConnectionContext);
+ new DistSQLExecutorAwareSetter(executor).set(contextManager, null
== databaseName ? null : contextManager.getDatabase(databaseName),
distsqlConnectionContext, sqlStatement);
} catch (final UnsupportedSQLOperationException ignored) {
columnNames = executor.getColumnNames(sqlStatement);
rows = Collections.emptyList();
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
index 5979665546f..496d8ac0737 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
@@ -107,7 +107,7 @@ public final class DistSQLUpdateExecuteEngine {
private void executeNormalUpdate() throws SQLException {
DistSQLUpdateExecutor executor =
TypedSPILoader.getService(DistSQLUpdateExecutor.class, sqlStatement.getClass());
ShardingSphereDatabase database = null == databaseName ? null :
contextManager.getDatabase(databaseName);
- new DistSQLExecutorAwareSetter(executor).set(contextManager, database,
null);
+ new DistSQLExecutorAwareSetter(executor).set(contextManager, database,
null, sqlStatement);
new DistSQLExecutorRequiredChecker(executor).check(sqlStatement,
contextManager, database);
executor.executeUpdate(sqlStatement, contextManager);
}
diff --git
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowDefaultSingleTableStorageUnitExecutorTest.java
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowDefaultSingleTableStorageUnitExecutorTest.java
index 2b0f21e32fc..0f41401fd78 100644
---
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowDefaultSingleTableStorageUnitExecutorTest.java
+++
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowDefaultSingleTableStorageUnitExecutorTest.java
@@ -20,6 +20,7 @@ package
org.apache.shardingsphere.single.distsql.handler.query;
import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext;
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
import
org.apache.shardingsphere.single.distsql.statement.rql.ShowDefaultSingleTableStorageUnitStatement;
@@ -45,14 +46,16 @@ class ShowDefaultSingleTableStorageUnitExecutorTest {
@BeforeEach
void setUp() {
- engine = new
DistSQLQueryExecuteEngine(mock(ShowDefaultSingleTableStorageUnitStatement.class),
null, mockContextManager(), mock(DistSQLConnectionContext.class));
+ engine = new
DistSQLQueryExecuteEngine(mock(ShowDefaultSingleTableStorageUnitStatement.class),
"foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
SingleRule rule = mock(SingleRule.class);
when(rule.getConfiguration()).thenReturn(new
SingleRuleConfiguration(Collections.emptyList(), "foo_ds"));
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(SingleRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(SingleRule.class)).thenReturn(Optional.of(rule));
return result;
}
diff --git
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutorTest.java
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutorTest.java
index adcb7e0411e..fba8523ee86 100644
---
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutorTest.java
+++
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutorTest.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.DistSQLConnectionContext
import
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecuteEngine;
import org.apache.shardingsphere.infra.datanode.DataNode;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
import
org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
import org.apache.shardingsphere.single.rule.SingleRule;
@@ -45,13 +46,15 @@ class ShowSingleTableExecutorTest {
private DistSQLQueryExecuteEngine engine;
DistSQLQueryExecuteEngine setUp(final ShowSingleTableStatement statement) {
- return new DistSQLQueryExecuteEngine(statement, null,
mockContextManager(), mock(DistSQLConnectionContext.class));
+ return new DistSQLQueryExecuteEngine(statement, "foo_db",
mockContextManager(), mock(DistSQLConnectionContext.class));
}
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getDatabase("foo_db")).thenReturn(database);
SingleRule rule = mockSingleRule();
-
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(SingleRule.class)).thenReturn(Optional.of(rule));
+
when(database.getRuleMetaData().findSingleRule(SingleRule.class)).thenReturn(Optional.of(rule));
return result;
}