This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 e2df5afc4b9 Refactor
PipelineDataConsistencyCalculateSQLBuilder.buildPointQuerySQL (#33957)
e2df5afc4b9 is described below
commit e2df5afc4b93599101d8f0b68ec8819ca8534200
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Dec 7 20:36:12 2024 +0800
Refactor PipelineDataConsistencyCalculateSQLBuilder.buildPointQuerySQL
(#33957)
---
.../table/calculator/RecordSingleTableInventoryCalculator.java | 3 +--
.../sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilder.java | 7 +++----
.../sql/PipelineDataConsistencyCalculateSQLBuilderTest.java | 6 +++---
3 files changed, 7 insertions(+), 9 deletions(-)
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/table/calculator/RecordSingleTableInventoryCalculator.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/table/calculator/RecordSingleTableInventoryCalculator.java
index f38a17ba1bf..22af62850c3 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/table/calculator/RecordSingleTableInventoryCalculator.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/table/calculator/RecordSingleTableInventoryCalculator.java
@@ -156,8 +156,7 @@ public final class RecordSingleTableInventoryCalculator
extends AbstractStreamin
case RANGE_QUERY:
return
pipelineSQLBuilder.buildQueryRangeOrderingSQL(param.getTable(), columnNames,
param.getUniqueKeysNames(), param.getQueryRange(),
param.getShardingColumnsNames());
case POINT_QUERY:
- return pipelineSQLBuilder.buildPointQuerySQL(
- param.getTable().getSchemaName(),
param.getTable().getTableName(), columnNames, param.getUniqueKeysNames(),
param.getShardingColumnsNames());
+ return pipelineSQLBuilder.buildPointQuerySQL(param.getTable(),
columnNames, param.getUniqueKeysNames(), param.getShardingColumnsNames());
default:
throw new UnsupportedOperationException("Query type: " +
param.getQueryType());
}
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilder.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilder.java
index c3edc165fe1..c5211dcd225 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilder.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilder.java
@@ -93,16 +93,15 @@ public final class
PipelineDataConsistencyCalculateSQLBuilder {
/**
* Build point query SQL.
*
- * @param schemaName schema name
- * @param tableName table name
+ * @param table qualified table
* @param columnNames column names
* @param uniqueKeys unique keys, it may be primary key, not null
* @param shardingColumnsNames sharding columns names, nullable
* @return built SQL
*/
- public String buildPointQuerySQL(final String schemaName, final String
tableName, final Collection<String> columnNames, final List<String> uniqueKeys,
+ public String buildPointQuerySQL(final QualifiedTable table, final
Collection<String> columnNames, final List<String> uniqueKeys,
@Nullable final List<String>
shardingColumnsNames) {
- String qualifiedTableName =
sqlSegmentBuilder.getQualifiedTableName(schemaName, tableName);
+ String qualifiedTableName =
sqlSegmentBuilder.getQualifiedTableName(table.getSchemaName(),
table.getTableName());
String queryColumns =
columnNames.stream().map(sqlSegmentBuilder::getEscapedIdentifier).collect(Collectors.joining(","));
String equalsConditions = joinColumns(uniqueKeys,
shardingColumnsNames).stream().map(each ->
sqlSegmentBuilder.getEscapedIdentifier(each) +
"=?").collect(Collectors.joining(" AND "));
return String.format("SELECT %s FROM %s WHERE %s", queryColumns,
qualifiedTableName, equalsConditions);
diff --git
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilderTest.java
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilderTest.java
index 06ab86fae9f..189d213d87b 100644
---
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilderTest.java
+++
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/sql/PipelineDataConsistencyCalculateSQLBuilderTest.java
@@ -63,11 +63,11 @@ class PipelineDataConsistencyCalculateSQLBuilderTest {
@Test
void assertBuildPointQuerySQLWithoutQueryCondition() {
- String actual = sqlBuilder.buildPointQuerySQL(null, "t_order",
COLUMN_NAMES, UNIQUE_KEYS, null);
+ String actual = sqlBuilder.buildPointQuerySQL(new QualifiedTable(null,
"t_order"), COLUMN_NAMES, UNIQUE_KEYS, null);
assertThat(actual, is("SELECT order_id,user_id,status FROM t_order
WHERE order_id=? AND status=?"));
- actual = sqlBuilder.buildPointQuerySQL(null, "t_order", COLUMN_NAMES,
UNIQUE_KEYS, Collections.emptyList());
+ actual = sqlBuilder.buildPointQuerySQL(new QualifiedTable(null,
"t_order"), COLUMN_NAMES, UNIQUE_KEYS, Collections.emptyList());
assertThat(actual, is("SELECT order_id,user_id,status FROM t_order
WHERE order_id=? AND status=?"));
- actual = sqlBuilder.buildPointQuerySQL(null, "t_order", COLUMN_NAMES,
UNIQUE_KEYS, Collections.singletonList("user_id"));
+ actual = sqlBuilder.buildPointQuerySQL(new QualifiedTable(null,
"t_order"), COLUMN_NAMES, UNIQUE_KEYS, Collections.singletonList("user_id"));
assertThat(actual, is("SELECT order_id,user_id,status FROM t_order
WHERE order_id=? AND status=? AND user_id=?"));
}