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 996e557f8d7 Make mask syntax consistent with upper and lower case
(#32755)
996e557f8d7 is described below
commit 996e557f8d713a224a30b7ea56b9aa88e409ce06
Author: yx9o <[email protected]>
AuthorDate: Mon Sep 2 19:13:21 2024 +0800
Make mask syntax consistent with upper and lower case (#32755)
* Make mask syntax consistent with upper and lower case
* Update
* Update
---
.../handler/query/ShowMaskRuleExecutor.java | 2 +-
.../handler/update/DropMaskRuleExecutor.java | 12 ++++++-----
.../handler/query/ShowMaskRuleExecutorTest.java | 24 ++++++++++++----------
.../handler/update/DropMaskRuleExecutorTest.java | 4 ++--
4 files changed, 23 insertions(+), 19 deletions(-)
diff --git
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskRuleExecutor.java
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskRuleExecutor.java
index da1449dbbb7..02a7ed3a5e1 100644
---
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskRuleExecutor.java
+++
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskRuleExecutor.java
@@ -48,7 +48,7 @@ public final class ShowMaskRuleExecutor implements
DistSQLQueryExecutor<ShowMask
@Override
public Collection<LocalDataQueryResultRow> getRows(final
ShowMaskRulesStatement sqlStatement, final ContextManager contextManager) {
- return rule.getConfiguration().getTables().stream().filter(each ->
null == sqlStatement.getTableName() ||
each.getName().equals(sqlStatement.getTableName()))
+ return rule.getConfiguration().getTables().stream().filter(each ->
null == sqlStatement.getTableName() ||
each.getName().equalsIgnoreCase(sqlStatement.getTableName()))
.map(each -> buildColumnData(each,
rule.getConfiguration().getMaskAlgorithms())).flatMap(Collection::stream).collect(Collectors.toList());
}
diff --git
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutor.java
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutor.java
index 11408103a69..1c0e1ba208e 100644
---
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutor.java
+++
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutor.java
@@ -17,12 +17,13 @@
package org.apache.shardingsphere.mask.distsql.handler.update;
+import com.cedarsoftware.util.CaseInsensitiveSet;
import lombok.Setter;
-import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.MissingRequiredRuleException;
-import
org.apache.shardingsphere.distsql.handler.required.DistSQLExecutorCurrentRuleRequired;
import
org.apache.shardingsphere.distsql.handler.engine.update.rdl.rule.spi.database.DatabaseRuleDropExecutor;
+import
org.apache.shardingsphere.distsql.handler.required.DistSQLExecutorCurrentRuleRequired;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
+import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.MissingRequiredRuleException;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mask.config.MaskRuleConfiguration;
import org.apache.shardingsphere.mask.config.rule.MaskColumnRuleConfiguration;
@@ -57,14 +58,15 @@ public final class DropMaskRuleExecutor implements
DatabaseRuleDropExecutor<Drop
}
private void checkToBeDroppedMaskTableNames(final DropMaskRuleStatement
sqlStatement) {
- Collection<String> currentMaskTableNames =
rule.getConfiguration().getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toList());
+ Collection<String> currentMaskTableNames =
rule.getConfiguration().getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toCollection(CaseInsensitiveSet::new));
Collection<String> notExistedTableNames =
sqlStatement.getTables().stream().filter(each ->
!currentMaskTableNames.contains(each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkMustEmpty(notExistedTableNames, () ->
new MissingRequiredRuleException("Mask", database.getName(),
notExistedTableNames));
}
@Override
public boolean hasAnyOneToBeDropped(final DropMaskRuleStatement
sqlStatement) {
- return
!Collections.disjoint(rule.getConfiguration().getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toSet()),
sqlStatement.getTables());
+ return !Collections.disjoint(
+
rule.getConfiguration().getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toCollection(CaseInsensitiveSet::new)),
sqlStatement.getTables());
}
@Override
@@ -80,7 +82,7 @@ public final class DropMaskRuleExecutor implements
DatabaseRuleDropExecutor<Drop
}
private void dropRule(final String ruleName) {
- Optional<MaskTableRuleConfiguration> maskTableRuleConfig =
rule.getConfiguration().getTables().stream().filter(each ->
each.getName().equals(ruleName)).findAny();
+ Optional<MaskTableRuleConfiguration> maskTableRuleConfig =
rule.getConfiguration().getTables().stream().filter(each ->
each.getName().equalsIgnoreCase(ruleName)).findAny();
maskTableRuleConfig.ifPresent(optional ->
rule.getConfiguration().getTables().remove(maskTableRuleConfig.get()));
}
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 d6afb238ac3..6a9615127ae 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
@@ -50,17 +50,9 @@ class ShowMaskRuleExecutorTest {
@BeforeEach
void setUp() {
- 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(database.getRuleMetaData().findSingleRule(MaskRule.class)).thenReturn(Optional.of(rule));
- return result;
+ ShowMaskRulesStatement showMaskRulesStatement =
mock(ShowMaskRulesStatement.class);
+ when(showMaskRulesStatement.getTableName()).thenReturn("T_MASK");
+ engine = new DistSQLQueryExecuteEngine(showMaskRulesStatement,
"foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
}
@Test
@@ -76,6 +68,16 @@ class ShowMaskRuleExecutorTest {
assertThat(row.getCell(4), is(""));
}
+ 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(database.getRuleMetaData().findSingleRule(MaskRule.class)).thenReturn(Optional.of(rule));
+ return result;
+ }
+
private MaskRuleConfiguration getRuleConfiguration() {
MaskColumnRuleConfiguration maskColumnRuleConfig = new
MaskColumnRuleConfiguration("user_id", "t_mask_user_id_md5");
MaskTableRuleConfiguration maskTableRuleConfig = new
MaskTableRuleConfiguration("t_mask",
Collections.singleton(maskColumnRuleConfig));
diff --git
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
index f9e92997cf8..dfa9f78010e 100644
---
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
+++
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
@@ -61,14 +61,14 @@ class DropMaskRuleExecutorTest {
MaskRule rule = mock(MaskRule.class);
when(rule.getConfiguration()).thenReturn(ruleConfig);
executor.setRule(rule);
- MaskRuleConfiguration toBeDroppedRuleConfig =
executor.buildToBeDroppedRuleConfiguration(createSQLStatement(false, "t_mask"));
+ MaskRuleConfiguration toBeDroppedRuleConfig =
executor.buildToBeDroppedRuleConfiguration(createSQLStatement(false, "T_MASK"));
assertThat(toBeDroppedRuleConfig.getTables().size(), is(1));
assertTrue(toBeDroppedRuleConfig.getMaskAlgorithms().isEmpty());
}
@Test
void assertUpdateCurrentRuleConfigurationWithIfExists() {
- DropMaskRuleStatement statement = createSQLStatement(true, "t_user");
+ DropMaskRuleStatement statement = createSQLStatement(true, "T_USER");
MaskRule rule = mock(MaskRule.class);
when(rule.getConfiguration()).thenReturn(new
MaskRuleConfiguration(Collections.emptyList(), Collections.emptyMap()));
executor.setRule(rule);