This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 3e5ac4862cd Refactor DialectPipelineSQLBuilder (#27220)
3e5ac4862cd is described below
commit 3e5ac4862cd8a76e8f0c6b201bbb0a136f024960
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jul 15 17:14:38 2023 +0800
Refactor DialectPipelineSQLBuilder (#27220)
* Refactor DialectPipelineSQLBuilder
* Refactor DialectPipelineSQLBuilder
---
.../spi/sqlbuilder/DialectPipelineSQLBuilder.java | 17 +++++++----------
.../common/sqlbuilder/CommonPipelineSQLBuilder.java | 14 +++++++-------
.../sqlbuilder/fixture/FixturePipelineSQLBuilder.java | 8 ++++----
.../mysql/sqlbuilder/MySQLPipelineSQLBuilder.java | 15 ++++++---------
.../mysql/sqlbuilder/MySQLPipelineSQLBuilderTest.java | 4 ++--
.../sqlbuilder/OpenGaussPipelineSQLBuilder.java | 12 +++++-------
.../sqlbuilder/PostgreSQLPipelineSQLBuilder.java | 12 +++++-------
.../pipeline/core/fixture/H2PipelineSQLBuilder.java | 4 ++--
8 files changed, 38 insertions(+), 48 deletions(-)
diff --git
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/sqlbuilder/DialectPipelineSQLBuilder.java
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/sqlbuilder/DialectPipelineSQLBuilder.java
index a72d6ee762c..a898654aa64 100644
---
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/sqlbuilder/DialectPipelineSQLBuilder.java
+++
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/sqlbuilder/DialectPipelineSQLBuilder.java
@@ -50,32 +50,29 @@ public interface DialectPipelineSQLBuilder extends
DatabaseTypedSPI {
/**
* Build check empty SQL.
*
- * @param schemaName schema name
- * @param tableName table name
+ * @param qualifiedTableName qualified table name
* @return check SQL
*/
- String buildCheckEmptySQL(String schemaName, String tableName);
+ String buildCheckEmptySQL(String qualifiedTableName);
/**
* Build estimated count SQL.
*
- * @param schemaName schema name
- * @param tableName table name
+ * @param qualifiedTableName qualified table name
* @return estimated count SQL
*/
- default Optional<String> buildEstimatedCountSQL(String schemaName, String
tableName) {
+ default Optional<String> buildEstimatedCountSQL(String qualifiedTableName)
{
return Optional.empty();
}
/**
* Build CRC32 SQL.
*
- * @param schemaName schema name
- * @param tableName table Name
- * @param column column
+ * @param qualifiedTableName qualified table name
+ * @param columnName column name
* @return CRC32 SQL
*/
- default Optional<String> buildCRC32SQL(final String schemaName, final
String tableName, final String column) {
+ default Optional<String> buildCRC32SQL(String qualifiedTableName, final
String columnName) {
return Optional.empty();
}
}
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/CommonPipelineSQLBuilder.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/CommonPipelineSQLBuilder.java
index 769b192e4c9..43640916024 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/CommonPipelineSQLBuilder.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/CommonPipelineSQLBuilder.java
@@ -46,7 +46,7 @@ public final class CommonPipelineSQLBuilder {
* @return create schema SQL
*/
public Optional<String> buildCreateSchemaSQL(final String schemaName) {
- return dialectSQLBuilder.buildCreateSchemaSQL(schemaName);
+ return
dialectSQLBuilder.buildCreateSchemaSQL(sqlSegmentBuilder.getEscapedIdentifier(schemaName));
}
/**
@@ -79,7 +79,7 @@ public final class CommonPipelineSQLBuilder {
* @return estimated count SQL
*/
public Optional<String> buildEstimatedCountSQL(final String schemaName,
final String tableName) {
- return dialectSQLBuilder.buildEstimatedCountSQL(schemaName, tableName);
+ return
dialectSQLBuilder.buildEstimatedCountSQL(sqlSegmentBuilder.getQualifiedTableName(schemaName,
tableName));
}
/**
@@ -122,18 +122,18 @@ public final class CommonPipelineSQLBuilder {
* @return check SQL
*/
public String buildCheckEmptySQL(final String schemaName, final String
tableName) {
- return dialectSQLBuilder.buildCheckEmptySQL(schemaName, tableName);
+ return
dialectSQLBuilder.buildCheckEmptySQL(sqlSegmentBuilder.getQualifiedTableName(schemaName,
tableName));
}
/**
* Build CRC32 SQL.
*
* @param schemaName schema name
- * @param tableName table Name
- * @param column column
+ * @param tableName table name
+ * @param columnName column name
* @return CRC32 SQL
*/
- public Optional<String> buildCRC32SQL(final String schemaName, final
String tableName, final String column) {
- return dialectSQLBuilder.buildCRC32SQL(schemaName, tableName, column);
+ public Optional<String> buildCRC32SQL(final String schemaName, final
String tableName, final String columnName) {
+ return
dialectSQLBuilder.buildCRC32SQL(sqlSegmentBuilder.getQualifiedTableName(schemaName,
tableName), sqlSegmentBuilder.getEscapedIdentifier(columnName));
}
}
diff --git
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/fixture/FixturePipelineSQLBuilder.java
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/fixture/FixturePipelineSQLBuilder.java
index 3eb73bc96c9..8bb5d56b74e 100644
---
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/fixture/FixturePipelineSQLBuilder.java
+++
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/common/sqlbuilder/fixture/FixturePipelineSQLBuilder.java
@@ -24,13 +24,13 @@ import java.util.Optional;
public final class FixturePipelineSQLBuilder implements
DialectPipelineSQLBuilder {
@Override
- public String buildCheckEmptySQL(final String schemaName, final String
tableName) {
- return String.format("SELECT * FROM %s LIMIT 1", tableName);
+ public String buildCheckEmptySQL(final String qualifiedTableName) {
+ return String.format("SELECT * FROM %s LIMIT 1", qualifiedTableName);
}
@Override
- public Optional<String> buildCRC32SQL(final String schemaName, final
String tableName, final String column) {
- return Optional.of(String.format("SELECT CRC32(%s) FROM %s", column,
tableName));
+ public Optional<String> buildCRC32SQL(final String qualifiedTableName,
final String columnName) {
+ return Optional.of(String.format("SELECT CRC32(%s) FROM %s",
columnName, qualifiedTableName));
}
@Override
diff --git
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilder.java
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilder.java
index 6711609a879..d6ac2df045b 100644
---
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilder.java
+++
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilder.java
@@ -49,21 +49,18 @@ public final class MySQLPipelineSQLBuilder implements
DialectPipelineSQLBuilder
}
@Override
- public String buildCheckEmptySQL(final String schemaName, final String
tableName) {
- return String.format("SELECT * FROM %s LIMIT 1", new
PipelineSQLSegmentBuilder(getType()).getQualifiedTableName(schemaName,
tableName));
+ public String buildCheckEmptySQL(final String qualifiedTableName) {
+ return String.format("SELECT * FROM %s LIMIT 1", qualifiedTableName);
}
@Override
- public Optional<String> buildEstimatedCountSQL(final String schemaName,
final String tableName) {
- return Optional.of(String.format("SELECT TABLE_ROWS FROM
INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ? AND TABLE_NAME = '%s'",
- new
PipelineSQLSegmentBuilder(getType()).getQualifiedTableName(schemaName,
tableName)));
+ public Optional<String> buildEstimatedCountSQL(final String
qualifiedTableName) {
+ return Optional.of(String.format("SELECT TABLE_ROWS FROM
INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ? AND TABLE_NAME = '%s'",
qualifiedTableName));
}
@Override
- public Optional<String> buildCRC32SQL(final String schemaName, final
String tableName, final String column) {
- PipelineSQLSegmentBuilder sqlSegmentBuilder = new
PipelineSQLSegmentBuilder(getType());
- return Optional.of(String.format("SELECT BIT_XOR(CAST(CRC32(%s) AS
UNSIGNED)) AS checksum, COUNT(1) AS cnt FROM %s",
- sqlSegmentBuilder.getEscapedIdentifier(column),
sqlSegmentBuilder.getEscapedIdentifier(tableName)));
+ public Optional<String> buildCRC32SQL(final String qualifiedTableName,
final String columnName) {
+ return Optional.of(String.format("SELECT BIT_XOR(CAST(CRC32(%s) AS
UNSIGNED)) AS checksum, COUNT(1) AS cnt FROM %s", columnName,
qualifiedTableName));
}
@Override
diff --git
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilderTest.java
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilderTest.java
index fddf5969e9f..83b65a1630a 100644
---
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilderTest.java
+++
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/sqlbuilder/MySQLPipelineSQLBuilderTest.java
@@ -47,7 +47,7 @@ class MySQLPipelineSQLBuilderTest {
@Test
void assertBuildSumCrc32SQL() {
- Optional<String> actual = sqlBuilder.buildCRC32SQL(null, "t2", "id");
+ Optional<String> actual = sqlBuilder.buildCRC32SQL("t2", "id");
assertTrue(actual.isPresent());
assertThat(actual.get(), is("SELECT BIT_XOR(CAST(CRC32(id) AS
UNSIGNED)) AS checksum, COUNT(1) AS cnt FROM t2"));
}
@@ -64,7 +64,7 @@ class MySQLPipelineSQLBuilderTest {
@Test
void assertBuilderEstimateCountSQLWithoutKeyword() {
- Optional<String> actual = sqlBuilder.buildEstimatedCountSQL(null,
"t_order");
+ Optional<String> actual = sqlBuilder.buildEstimatedCountSQL("t_order");
assertTrue(actual.isPresent());
assertThat(actual.get(), is("SELECT TABLE_ROWS FROM
INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ? AND TABLE_NAME = 't_order'"));
}
diff --git
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
index 8fa42823114..ed63cc2c5f6 100644
---
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
+++
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
@@ -31,8 +31,7 @@ public final class OpenGaussPipelineSQLBuilder implements
DialectPipelineSQLBuil
@Override
public Optional<String> buildCreateSchemaSQL(final String schemaName) {
- PipelineSQLSegmentBuilder sqlSegmentBuilder = new
PipelineSQLSegmentBuilder(getType());
- return Optional.of(String.format("CREATE SCHEMA %s",
sqlSegmentBuilder.getEscapedIdentifier(schemaName)));
+ return Optional.of(String.format("CREATE SCHEMA %s", schemaName));
}
@Override
@@ -51,14 +50,13 @@ public final class OpenGaussPipelineSQLBuilder implements
DialectPipelineSQLBuil
}
@Override
- public String buildCheckEmptySQL(final String schemaName, final String
tableName) {
- return String.format("SELECT * FROM %s LIMIT 1", new
PipelineSQLSegmentBuilder(getType()).getQualifiedTableName(schemaName,
tableName));
+ public String buildCheckEmptySQL(final String qualifiedTableName) {
+ return String.format("SELECT * FROM %s LIMIT 1", qualifiedTableName);
}
@Override
- public Optional<String> buildEstimatedCountSQL(final String schemaName,
final String tableName) {
- return Optional.of(String.format("SELECT reltuples::integer FROM
pg_class WHERE oid='%s'::regclass::oid;",
- new
PipelineSQLSegmentBuilder(getType()).getQualifiedTableName(schemaName,
tableName)));
+ public Optional<String> buildEstimatedCountSQL(final String
qualifiedTableName) {
+ return Optional.of(String.format("SELECT reltuples::integer FROM
pg_class WHERE oid='%s'::regclass::oid;", qualifiedTableName));
}
@Override
diff --git
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
index 8c408ff2ba1..406fa2e02dc 100644
---
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
+++
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
@@ -32,8 +32,7 @@ public final class PostgreSQLPipelineSQLBuilder implements
DialectPipelineSQLBui
@Override
public Optional<String> buildCreateSchemaSQL(final String schemaName) {
- PipelineSQLSegmentBuilder sqlSegmentBuilder = new
PipelineSQLSegmentBuilder(getType());
- return Optional.of(String.format("CREATE SCHEMA IF NOT EXISTS %s",
sqlSegmentBuilder.getEscapedIdentifier(schemaName)));
+ return Optional.of(String.format("CREATE SCHEMA IF NOT EXISTS %s",
schemaName));
}
@Override
@@ -66,14 +65,13 @@ public final class PostgreSQLPipelineSQLBuilder implements
DialectPipelineSQLBui
}
@Override
- public String buildCheckEmptySQL(final String schemaName, final String
tableName) {
- return String.format("SELECT * FROM %s LIMIT 1", new
PipelineSQLSegmentBuilder(getType()).getQualifiedTableName(schemaName,
tableName));
+ public String buildCheckEmptySQL(final String qualifiedTableName) {
+ return String.format("SELECT * FROM %s LIMIT 1", qualifiedTableName);
}
@Override
- public Optional<String> buildEstimatedCountSQL(final String schemaName,
final String tableName) {
- return Optional.of(String.format("SELECT reltuples::integer FROM
pg_class WHERE oid='%s'::regclass::oid;",
- new
PipelineSQLSegmentBuilder(getType()).getQualifiedTableName(schemaName,
tableName)));
+ public Optional<String> buildEstimatedCountSQL(final String
qualifiedTableName) {
+ return Optional.of(String.format("SELECT reltuples::integer FROM
pg_class WHERE oid='%s'::regclass::oid;", qualifiedTableName));
}
@Override
diff --git
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PipelineSQLBuilder.java
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PipelineSQLBuilder.java
index 06f3862f63b..e50a85f8c89 100644
---
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PipelineSQLBuilder.java
+++
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/fixture/H2PipelineSQLBuilder.java
@@ -22,8 +22,8 @@ import
org.apache.shardingsphere.data.pipeline.spi.sqlbuilder.DialectPipelineSQL
public final class H2PipelineSQLBuilder implements DialectPipelineSQLBuilder {
@Override
- public String buildCheckEmptySQL(final String schemaName, final String
tableName) {
- return String.format("SELECT * FROM %s LIMIT 1", tableName);
+ public String buildCheckEmptySQL(final String qualifiedTableName) {
+ return String.format("SELECT * FROM %s LIMIT 1", qualifiedTableName);
}
@Override