This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 e1c3b31 Optimize shadow determine condition. (#13310)
e1c3b31 is described below
commit e1c3b31837a760a3880ce6d5fb2ca2ae12f46596
Author: gin <[email protected]>
AuthorDate: Wed Oct 27 18:16:53 2021 +0800
Optimize shadow determine condition. (#13310)
---
.../shadow/condition/ShadowDetermineCondition.java | 22 +---------------------
.../algorithm/ColumnShadowAlgorithmDeterminer.java | 11 ++++-------
.../algorithm/NoteShadowAlgorithmDeterminer.java | 6 +++---
3 files changed, 8 insertions(+), 31 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
index c59606d..7bd1c95 100644
---
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
+++
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
@@ -22,17 +22,15 @@ import
org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
import java.util.Collection;
import java.util.LinkedList;
-import java.util.Optional;
/**
* Shadow determine condition.
*/
+@Getter
public final class ShadowDetermineCondition {
- @Getter
private final String tableName;
- @Getter
private final ShadowOperationType shadowOperationType;
private final Collection<ShadowColumnCondition> shadowColumnConditions =
new LinkedList<>();
@@ -56,15 +54,6 @@ public final class ShadowDetermineCondition {
}
/**
- * Get SQL notes.
- *
- * @return SQL notes
- */
- public Optional<Collection<String>> getSqlNotes() {
- return sqlNotes.isEmpty() ? Optional.empty() : Optional.of(sqlNotes);
- }
-
- /**
* Initialize shadow column condition.
*
* @param shadowColumnConditions shadow column conditions
@@ -74,13 +63,4 @@ public final class ShadowDetermineCondition {
this.shadowColumnConditions.addAll(shadowColumnConditions);
return this;
}
-
- /**
- * Get shadow column conditions.
- *
- * @return shadow column conditions
- */
- public Optional<Collection<ShadowColumnCondition>>
getShadowColumnConditions() {
- return shadowColumnConditions.isEmpty() ? Optional.empty() :
Optional.of(shadowColumnConditions);
- }
}
diff --git
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/ColumnShadowAlgorithmDeterminer.java
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/ColumnShadowAlgorithmDeterminer.java
index bac0685..c5ee5e8 100644
---
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/ColumnShadowAlgorithmDeterminer.java
+++
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/ColumnShadowAlgorithmDeterminer.java
@@ -28,7 +28,6 @@ import org.apache.shardingsphere.shadow.rule.ShadowRule;
import java.util.Collection;
import java.util.LinkedList;
-import java.util.Optional;
/**
* Column shadow algorithm determiner.
@@ -40,12 +39,10 @@ public final class ColumnShadowAlgorithmDeterminer
implements ShadowAlgorithmDet
@Override
public boolean isShadow(final ShadowDetermineCondition
shadowDetermineCondition, final ShadowRule shadowRule) {
- Optional<Collection<ShadowColumnCondition>> shadowColumnConditions =
shadowDetermineCondition.getShadowColumnConditions();
- if (shadowColumnConditions.isPresent()) {
- for (ShadowColumnCondition each : shadowColumnConditions.get()) {
- if (isShadowColumn(each, shadowRule,
shadowDetermineCondition.getTableName(),
shadowDetermineCondition.getShadowOperationType())) {
- return true;
- }
+ Collection<ShadowColumnCondition> shadowColumnConditions =
shadowDetermineCondition.getShadowColumnConditions();
+ for (ShadowColumnCondition each : shadowColumnConditions) {
+ if (isShadowColumn(each, shadowRule,
shadowDetermineCondition.getTableName(),
shadowDetermineCondition.getShadowOperationType())) {
+ return true;
}
}
return false;
diff --git
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java
index b51e8c8..247d9d0 100644
---
a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java
+++
b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java
@@ -27,6 +27,7 @@ import org.apache.shardingsphere.shadow.rule.ShadowRule;
import java.util.Collection;
import java.util.LinkedList;
+import java.util.stream.Collectors;
/**
* Note shadow algorithm determiner.
@@ -50,8 +51,7 @@ public final class NoteShadowAlgorithmDeterminer implements
ShadowAlgorithmDeter
private Collection<PreciseNoteShadowValue<Comparable<?>>>
createNoteShadowValues(final ShadowDetermineCondition shadowDetermineCondition)
{
ShadowOperationType shadowOperationType =
shadowDetermineCondition.getShadowOperationType();
String tableName = shadowDetermineCondition.getTableName();
- Collection<PreciseNoteShadowValue<Comparable<?>>> result = new
LinkedList<>();
- shadowDetermineCondition.getSqlNotes().ifPresent(notes ->
notes.forEach(each -> result.add(new PreciseNoteShadowValue<>(tableName,
shadowOperationType, each))));
- return result;
+ return
shadowDetermineCondition.getSqlNotes().stream().<PreciseNoteShadowValue<Comparable<?>>>map(each
-> new PreciseNoteShadowValue<>(tableName, shadowOperationType, each))
+ .collect(Collectors.toCollection(LinkedList::new));
}
}