This is an automated email from the ASF dual-hosted git repository.
panjuan 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 9b521d9068c Refactor DataMatchCalculatedResult (#25958)
9b521d9068c is described below
commit 9b521d9068ca58dfd14d593852cda36969434234
Author: Liang Zhang <[email protected]>
AuthorDate: Wed May 31 16:57:03 2023 +0800
Refactor DataMatchCalculatedResult (#25958)
---
.../DataConsistencyCalculatedResult.java | 12 +++++------
.../consistency/DataMatchCalculatedResult.java | 12 ++++++++---
...DataMatchDataConsistencyCalculateAlgorithm.java | 2 +-
.../consistency/DataMatchCalculatedResultTest.java | 24 +++++++++++-----------
4 files changed, 28 insertions(+), 22 deletions(-)
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/check/consistency/DataConsistencyCalculatedResult.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/check/consistency/DataConsistencyCalculatedResult.java
index c5d4587ed02..9879208a87e 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/check/consistency/DataConsistencyCalculatedResult.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/check/consistency/DataConsistencyCalculatedResult.java
@@ -25,16 +25,16 @@ import java.util.Optional;
public interface DataConsistencyCalculatedResult {
/**
- * Get records count.
+ * Get max unique key value.
*
- * @return records count
+ * @return max unique key value
*/
- int getRecordsCount();
+ Optional<Object> getMaxUniqueKeyValue();
/**
- * Get max unique key value.
+ * Get records count.
*
- * @return max unique key value
+ * @return records count
*/
- Optional<Object> getMaxUniqueKeyValue();
+ int getRecordsCount();
}
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResult.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResult.java
index a916300e9f8..74b0a72fae2 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResult.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResult.java
@@ -17,9 +17,9 @@
package org.apache.shardingsphere.data.pipeline.core.check.consistency;
+import lombok.AccessLevel;
import lombok.Getter;
import lombok.NonNull;
-import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.builder.EqualsBuilder;
@@ -35,7 +35,6 @@ import java.util.Optional;
/**
* Data match calculated result.
*/
-@RequiredArgsConstructor
@Getter
@Slf4j
public final class DataMatchCalculatedResult implements
DataConsistencyCalculatedResult {
@@ -45,8 +44,15 @@ public final class DataMatchCalculatedResult implements
DataConsistencyCalculate
private final int recordsCount;
+ @Getter(AccessLevel.NONE)
private final Collection<Collection<Object>> records;
+ public DataMatchCalculatedResult(final Object maxUniqueKeyValue, final
Collection<Collection<Object>> records) {
+ this.maxUniqueKeyValue = maxUniqueKeyValue;
+ recordsCount = records.size();
+ this.records = records;
+ }
+
@Override
public Optional<Object> getMaxUniqueKeyValue() {
return Optional.of(maxUniqueKeyValue);
@@ -92,6 +98,6 @@ public final class DataMatchCalculatedResult implements
DataConsistencyCalculate
@Override
public int hashCode() {
- return new HashCodeBuilder(17,
37).append(getMaxUniqueKeyValue().orElse(null)).append(getRecordsCount()).append(getRecords()).toHashCode();
+ return new HashCodeBuilder(17,
37).append(getMaxUniqueKeyValue().orElse(null)).append(getRecordsCount()).append(records).toHashCode();
}
}
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
index eb48732ce45..6cf176bf939 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
@@ -110,7 +110,7 @@ public final class
DataMatchDataConsistencyCalculateAlgorithm extends AbstractSt
if (records.isEmpty()) {
calculationContext.close();
}
- return records.isEmpty() ? Optional.empty() : Optional.of(new
DataMatchCalculatedResult(maxUniqueKeyValue, records.size(), records));
+ return records.isEmpty() ? Optional.empty() : Optional.of(new
DataMatchCalculatedResult(maxUniqueKeyValue, records));
} catch (final PipelineSQLException ex) {
calculationContext.close();
throw ex;
diff --git
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResultTest.java
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResultTest.java
index ba6412caf68..531e54886f8 100644
---
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResultTest.java
+++
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResultTest.java
@@ -36,15 +36,15 @@ class DataMatchCalculatedResultTest {
@Test
void assertEmptyRecordsEquals() {
- DataMatchCalculatedResult actual = new DataMatchCalculatedResult(0, 0,
Collections.emptyList());
- DataMatchCalculatedResult expected = new DataMatchCalculatedResult(0,
0, Collections.emptyList());
+ DataMatchCalculatedResult actual = new DataMatchCalculatedResult(0,
Collections.emptyList());
+ DataMatchCalculatedResult expected = new DataMatchCalculatedResult(0,
Collections.emptyList());
assertThat(actual, is(expected));
}
@Test
void assertFullTypeRecordsEquals() {
- DataMatchCalculatedResult actual = new DataMatchCalculatedResult(1000,
2, Arrays.asList(buildFixedFullTypeRecord(), buildFixedFullTypeRecord()));
- DataMatchCalculatedResult expected = new
DataMatchCalculatedResult(1000, 2, Arrays.asList(buildFixedFullTypeRecord(),
buildFixedFullTypeRecord()));
+ DataMatchCalculatedResult actual = new DataMatchCalculatedResult(1000,
Arrays.asList(buildFixedFullTypeRecord(), buildFixedFullTypeRecord()));
+ DataMatchCalculatedResult expected = new
DataMatchCalculatedResult(1000, Arrays.asList(buildFixedFullTypeRecord(),
buildFixedFullTypeRecord()));
assertThat(actual, is(expected));
}
@@ -55,7 +55,7 @@ class DataMatchCalculatedResultTest {
@Test
void assertFullTypeRecordsEqualsWithDifferentDecimalScale() {
- DataMatchCalculatedResult expected = new
DataMatchCalculatedResult(1000, 1,
Collections.singletonList(buildFixedFullTypeRecord()));
+ DataMatchCalculatedResult expected = new
DataMatchCalculatedResult(1000,
Collections.singleton(buildFixedFullTypeRecord()));
List<Object> record = buildFixedFullTypeRecord();
for (int index = 0; index < record.size(); index++) {
if (record.get(index) instanceof BigDecimal) {
@@ -63,30 +63,30 @@ class DataMatchCalculatedResultTest {
record.set(index, decimal.setScale(decimal.scale() + 1,
RoundingMode.CEILING));
}
}
- DataMatchCalculatedResult actual = new DataMatchCalculatedResult(1000,
1, Collections.singletonList(record));
+ DataMatchCalculatedResult actual = new DataMatchCalculatedResult(1000,
Collections.singleton(record));
assertThat(actual, is(expected));
}
@Test
void assertRecordsCountNotEquals() {
- DataMatchCalculatedResult result1 = new
DataMatchCalculatedResult(1000, 1, Collections.emptyList());
- DataMatchCalculatedResult result2 = new
DataMatchCalculatedResult(1000, 0, Collections.emptyList());
+ DataMatchCalculatedResult result1 = new
DataMatchCalculatedResult(1000,
Collections.singleton(Collections.singleton(buildFixedFullTypeRecord())));
+ DataMatchCalculatedResult result2 = new
DataMatchCalculatedResult(1000, Collections.emptyList());
assertNotEquals(result1, result2);
}
@Test
void assertMaxUniqueKeyValueNotEquals() {
- DataMatchCalculatedResult result1 = new
DataMatchCalculatedResult(1000, 1, Collections.emptyList());
- DataMatchCalculatedResult result2 = new
DataMatchCalculatedResult(1001, 1, Collections.emptyList());
+ DataMatchCalculatedResult result1 = new
DataMatchCalculatedResult(1000,
Collections.singleton(Collections.singleton(buildFixedFullTypeRecord())));
+ DataMatchCalculatedResult result2 = new
DataMatchCalculatedResult(1001,
Collections.singleton(Collections.singleton(buildFixedFullTypeRecord())));
assertNotEquals(result1, result2);
}
@Test
void assertRandomColumnValueNotEquals() {
List<Object> record = buildFixedFullTypeRecord();
- DataMatchCalculatedResult result1 = new
DataMatchCalculatedResult(1000, 1, Collections.singletonList(record));
+ DataMatchCalculatedResult result1 = new
DataMatchCalculatedResult(1000, Collections.singleton(record));
for (int index = 0; index < record.size(); index++) {
- DataMatchCalculatedResult result2 = new
DataMatchCalculatedResult(1000, 1,
Collections.singletonList(modifyColumnValueRandomly(buildFixedFullTypeRecord(),
index)));
+ DataMatchCalculatedResult result2 = new
DataMatchCalculatedResult(1000,
Collections.singleton(modifyColumnValueRandomly(buildFixedFullTypeRecord(),
index)));
assertNotEquals(result1, result2);
}
}