This is an automated email from the ASF dual-hosted git repository.
chenjiahao 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 1f28db4fb20 Fix empty sql in SQL E2E (#28877)
1f28db4fb20 is described below
commit 1f28db4fb20de93236532028fa5710790d1ac3fb
Author: Raigor <[email protected]>
AuthorDate: Fri Oct 27 01:13:48 2023 -0500
Fix empty sql in SQL E2E (#28877)
* Fix empty sql in SQL E2E
* Optimize empty filter when use splitter
* Fix code style
* Fix code style
---
.../handler/query/ShowShardingTableNodesExecutor.java | 2 +-
.../shardingsphere/distsql/handler/query/RQLExecutor.java | 4 ++--
.../prepare/datasource/OpenGaussDataSourcePreparer.java | 4 +---
.../prepare/datasource/PostgreSQLDataSourcePreparer.java | 4 +---
.../ral/queryable/ConvertYamlConfigurationExecutorTest.java | 13 ++++++-------
.../shardingsphere/test/e2e/engine/type/DDLE2EIT.java | 4 ++--
.../shardingsphere/test/e2e/engine/type/RALE2EIT.java | 4 ++--
.../shardingsphere/test/e2e/engine/type/RDLE2EIT.java | 4 ++--
8 files changed, 17 insertions(+), 22 deletions(-)
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutor.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutor.java
index 9272c1ccf95..b0739c3fe1b 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutor.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutor.java
@@ -34,7 +34,7 @@ import java.util.Optional;
import java.util.stream.Collectors;
/**
- * Result set for show sharding table nodes.
+ * Show sharding table nodes executor.
*/
public final class ShowShardingTableNodesExecutor implements
RQLExecutor<ShowShardingTableNodesStatement> {
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/query/RQLExecutor.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/query/RQLExecutor.java
index e6ecbc2bbc9..34f254861be 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/query/RQLExecutor.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/query/RQLExecutor.java
@@ -43,11 +43,11 @@ public interface RQLExecutor<T extends RQLStatement>
extends TypedSPI {
/**
* Get query result rows.
*
- * @param shardingSphereDatabase ShardingSphere database
+ * @param database database
* @param sqlStatement SQL statement
* @return query result rows
*/
- Collection<LocalDataQueryResultRow> getRows(ShardingSphereDatabase
shardingSphereDatabase, T sqlStatement);
+ Collection<LocalDataQueryResultRow> getRows(ShardingSphereDatabase
database, T sqlStatement);
@Override
Class<T> getType();
diff --git
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/prepare/datasource/OpenGaussDataSourcePreparer.java
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/prepare/datasource/OpenGaussDataSourcePreparer.java
index ba9679fbb2b..ba76a9b7213 100644
---
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/prepare/datasource/OpenGaussDataSourcePreparer.java
+++
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/prepare/datasource/OpenGaussDataSourcePreparer.java
@@ -19,7 +19,6 @@ package
org.apache.shardingsphere.data.pipeline.opengauss.prepare.datasource;
import com.google.common.base.Splitter;
import lombok.extern.slf4j.Slf4j;
-import org.apache.curator.shaded.com.google.common.base.Strings;
import
org.apache.shardingsphere.data.pipeline.common.config.CreateTableConfiguration.CreateTableEntry;
import
org.apache.shardingsphere.data.pipeline.common.datasource.PipelineDataSourceManager;
import
org.apache.shardingsphere.data.pipeline.core.preparer.datasource.AbstractDataSourcePreparer;
@@ -28,7 +27,6 @@ import
org.apache.shardingsphere.data.pipeline.core.preparer.datasource.PrepareT
import java.sql.Connection;
import java.sql.SQLException;
-import java.util.stream.Collectors;
/**
* Data source preparer for openGauss.
@@ -55,7 +53,7 @@ public final class OpenGaussDataSourcePreparer extends
AbstractDataSourcePrepare
for (CreateTableEntry each :
param.getCreateTableConfig().getCreateTableEntries()) {
String createTargetTableSQL = getCreateTargetTableSQL(each,
dataSourceManager, param.getSqlParserEngine());
try (Connection targetConnection =
getCachedDataSource(dataSourceManager,
each.getTargetDataSourceConfig()).getConnection()) {
- for (String sql :
Splitter.on(";").trimResults().splitToList(createTargetTableSQL).stream().filter(cs
-> !Strings.isNullOrEmpty(cs)).collect(Collectors.toList())) {
+ for (String sql :
Splitter.on(";").trimResults().omitEmptyStrings().splitToList(createTargetTableSQL))
{
executeTargetTableSQL(targetConnection,
addIfNotExistsForCreateTableSQL(sql));
}
}
diff --git
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/prepare/datasource/PostgreSQLDataSourcePreparer.java
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/prepare/datasource/PostgreSQLDataSourcePreparer.java
index abd17f3a8cd..10c0c05dda6 100644
---
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/prepare/datasource/PostgreSQLDataSourcePreparer.java
+++
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/prepare/datasource/PostgreSQLDataSourcePreparer.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.data.pipeline.postgresql.prepare.datasource;
import com.google.common.base.Splitter;
-import com.google.common.base.Strings;
import
org.apache.shardingsphere.data.pipeline.common.config.CreateTableConfiguration.CreateTableEntry;
import
org.apache.shardingsphere.data.pipeline.common.datasource.PipelineDataSourceManager;
import
org.apache.shardingsphere.data.pipeline.core.preparer.datasource.AbstractDataSourcePreparer;
@@ -26,7 +25,6 @@ import
org.apache.shardingsphere.data.pipeline.core.preparer.datasource.PrepareT
import java.sql.Connection;
import java.sql.SQLException;
-import java.util.stream.Collectors;
/**
* Data source preparer for PostgreSQL.
@@ -39,7 +37,7 @@ public final class PostgreSQLDataSourcePreparer extends
AbstractDataSourcePrepar
for (CreateTableEntry each :
param.getCreateTableConfig().getCreateTableEntries()) {
String createTargetTableSQL = getCreateTargetTableSQL(each,
dataSourceManager, param.getSqlParserEngine());
try (Connection targetConnection =
getCachedDataSource(dataSourceManager,
each.getTargetDataSourceConfig()).getConnection()) {
- for (String sql :
Splitter.on(";").trimResults().splitToList(createTargetTableSQL).stream().filter(cs
-> !Strings.isNullOrEmpty(cs)).collect(Collectors.toList())) {
+ for (String sql :
Splitter.on(";").trimResults().omitEmptyStrings().splitToList(createTargetTableSQL))
{
executeTargetTableSQL(targetConnection, sql);
}
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutorTest.java
index 0d0e9124fca..0831b2259dd 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutorTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable;
import com.google.common.base.Splitter;
-import com.google.common.base.Strings;
import lombok.SneakyThrows;
import
org.apache.shardingsphere.distsql.statement.ral.queryable.ConvertYamlConfigurationStatement;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
@@ -26,6 +25,7 @@ import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryRes
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.parser.rule.SQLParserRule;
import
org.apache.shardingsphere.parser.rule.builder.DefaultSQLParserRuleConfigurationBuilder;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.io.BufferedReader;
@@ -37,7 +37,6 @@ import java.util.Objects;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
class ConvertYamlConfigurationExecutorTest {
@@ -97,11 +96,11 @@ class ConvertYamlConfigurationExecutorTest {
}
private void assertParseSQL(final String actual) {
- Splitter.on(";").trimResults().splitToList(actual).forEach(each -> {
- if (!Strings.isNullOrEmpty(each)) {
-
assertNotNull(sqlParserRule.getSQLParserEngine(TypedSPILoader.getService(DatabaseType.class,
"MySQL")).parse(each, false));
- }
- });
+
Splitter.on(";").trimResults().omitEmptyStrings().splitToList(actual).forEach(this::assertNotNull);
+ }
+
+ private void assertNotNull(final String sql) {
+
Assertions.assertNotNull(sqlParserRule.getSQLParserEngine(TypedSPILoader.getService(DatabaseType.class,
"MySQL")).parse(sql, false));
}
@SneakyThrows(IOException.class)
diff --git
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DDLE2EIT.java
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DDLE2EIT.java
index 1beba8c29f9..4adfeaa1766 100644
---
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DDLE2EIT.java
+++
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DDLE2EIT.java
@@ -139,7 +139,7 @@ class DDLE2EIT {
if (null == containerComposer.getAssertion().getInitialSQL().getSql())
{
return;
}
- for (String each :
Splitter.on(";").trimResults().splitToList(containerComposer.getAssertion().getInitialSQL().getSql()))
{
+ for (String each :
Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getInitialSQL().getSql()))
{
try (PreparedStatement preparedStatement =
connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
}
@@ -159,7 +159,7 @@ class DDLE2EIT {
if (null == containerComposer.getAssertion().getDestroySQL().getSql())
{
return;
}
- for (String each :
Splitter.on(";").trimResults().splitToList(containerComposer.getAssertion().getDestroySQL().getSql()))
{
+ for (String each :
Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getDestroySQL().getSql()))
{
try (PreparedStatement preparedStatement =
connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
}
diff --git
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RALE2EIT.java
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RALE2EIT.java
index cf2c3951ccb..3bb870379f9 100644
---
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RALE2EIT.java
+++
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RALE2EIT.java
@@ -85,7 +85,7 @@ class RALE2EIT {
if (null == containerComposer.getAssertion().getInitialSQL().getSql())
{
return;
}
- for (String each :
Splitter.on(";").trimResults().splitToList(containerComposer.getAssertion().getInitialSQL().getSql()))
{
+ for (String each :
Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getInitialSQL().getSql()))
{
try (PreparedStatement preparedStatement =
connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
}
@@ -105,7 +105,7 @@ class RALE2EIT {
if (null == containerComposer.getAssertion().getDestroySQL().getSql())
{
return;
}
- for (String each :
Splitter.on(";").trimResults().splitToList(containerComposer.getAssertion().getDestroySQL().getSql()))
{
+ for (String each :
Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getDestroySQL().getSql()))
{
try (PreparedStatement preparedStatement =
connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
}
diff --git
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java
index f09565d5942..3e4d607ec3d 100644
---
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java
+++
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java
@@ -99,7 +99,7 @@ class RDLE2EIT {
if (null == containerComposer.getAssertion().getInitialSQL() || null
== containerComposer.getAssertion().getInitialSQL().getSql()) {
return;
}
- for (String each :
Splitter.on(";").trimResults().splitToList(containerComposer.getAssertion().getInitialSQL().getSql()))
{
+ for (String each :
Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getInitialSQL().getSql()))
{
try (PreparedStatement preparedStatement =
connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() ->
true);
@@ -111,7 +111,7 @@ class RDLE2EIT {
if (null == containerComposer.getAssertion().getDestroySQL().getSql())
{
return;
}
- for (String each :
Splitter.on(";").trimResults().splitToList(containerComposer.getAssertion().getDestroySQL().getSql()))
{
+ for (String each :
Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getDestroySQL().getSql()))
{
try (PreparedStatement preparedStatement =
connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() ->
true);