Skip to content

Commit e5af8cc

Browse files
authored
Refactor PipelineNativeContainerComposer (#36605)
1 parent 05a267f commit e5af8cc

File tree

1 file changed

+25
-20
lines changed

1 file changed

+25
-20
lines changed

test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/framework/container/compose/PipelineNativeContainerComposer.java

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ public final class PipelineNativeContainerComposer extends PipelineBaseContainer
4141

4242
private static final PipelineE2EEnvironment ENV = PipelineE2EEnvironment.getInstance();
4343

44-
private final JdbcUrlAppender jdbcUrlAppender = new JdbcUrlAppender();
45-
4644
private final DatabaseType databaseType;
4745

4846
public PipelineNativeContainerComposer(final DatabaseType databaseType) {
@@ -60,26 +58,17 @@ public void cleanUpDatabase(final String databaseName) {
6058
switch (databaseType.getType()) {
6159
case "MySQL":
6260
case "MariaDB":
63-
String queryAllTables = String.format("select table_name from information_schema.tables where table_schema='%s' and table_type='BASE TABLE'", databaseName);
64-
jdbcUrl = dataSourceEnvironment.getURL("localhost", actualDatabasePort, databaseName);
65-
try (
66-
Connection connection = DriverManager.getConnection(
67-
jdbcUrlAppender.appendQueryProperties(jdbcUrl, PropertiesBuilder.build(new Property("allowPublicKeyRetrieval", Boolean.TRUE.toString()))), username, password)) {
68-
try (ResultSet resultSet = connection.createStatement().executeQuery(queryAllTables)) {
69-
List<String> actualTableNames = getFirstColumnValueFromResult(resultSet);
70-
for (String each : actualTableNames) {
71-
connection.createStatement().executeUpdate(String.format("drop table %s", each));
72-
}
73-
}
61+
jdbcUrl = new JdbcUrlAppender().appendQueryProperties(dataSourceEnvironment.getURL("localhost", actualDatabasePort, databaseName),
62+
PropertiesBuilder.build(new Property("allowPublicKeyRetrieval", Boolean.TRUE.toString())));
63+
try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password)) {
64+
dropTableWithMySQL(connection, databaseName);
7465
}
7566
break;
7667
case "openGauss":
7768
case "PostgreSQL":
7869
jdbcUrl = dataSourceEnvironment.getURL("localhost", actualDatabasePort, databaseName);
7970
try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password)) {
80-
dropTableWithSchema(connection, "public");
81-
dropTableWithSchema(connection, "test");
82-
connection.createStatement().execute("DROP SCHEMA IF EXISTS test;");
71+
dropTableWithPostgreSQL(connection);
8372
}
8473
break;
8574
case "Oracle":
@@ -92,6 +81,16 @@ public void cleanUpDatabase(final String databaseName) {
9281
}
9382
}
9483

84+
private void dropTableWithMySQL(final Connection connection, final String databaseName) throws SQLException {
85+
String queryAllTables = String.format("SELECT table_name FROM information_schema.tables WHERE table_schema='%s' and table_type='BASE TABLE'", databaseName);
86+
try (ResultSet resultSet = connection.createStatement().executeQuery(queryAllTables)) {
87+
List<String> actualTableNames = getFirstColumnValueFromResult(resultSet);
88+
for (String each : actualTableNames) {
89+
connection.createStatement().executeUpdate(String.format("DROP TABLE %s", each));
90+
}
91+
}
92+
}
93+
9594
private List<String> getFirstColumnValueFromResult(final ResultSet resultSet) throws SQLException {
9695
List<String> result = new LinkedList<>();
9796
while (resultSet.next()) {
@@ -100,18 +99,24 @@ private List<String> getFirstColumnValueFromResult(final ResultSet resultSet) th
10099
return result;
101100
}
102101

103-
private void dropTableWithSchema(final Connection connection, final String schema) throws SQLException {
104-
String queryAllTables = "select tablename from pg_tables where schemaname='%s'";
102+
private void dropTableWithPostgreSQL(final Connection connection) throws SQLException {
103+
dropTableWithPostgreSQL(connection, "public");
104+
dropTableWithPostgreSQL(connection, "test");
105+
connection.createStatement().execute("DROP SCHEMA IF EXISTS test;");
106+
}
107+
108+
private void dropTableWithPostgreSQL(final Connection connection, final String schema) throws SQLException {
109+
String queryAllTables = "SELECT tablename FROM pg_tables WHERE='%s'";
105110
try (ResultSet resultSet = connection.createStatement().executeQuery(String.format(queryAllTables, schema))) {
106111
List<String> actualTableNames = getFirstColumnValueFromResult(resultSet);
107112
for (String each : actualTableNames) {
108-
connection.createStatement().executeUpdate(String.format("drop table %s.%s", schema, each));
113+
connection.createStatement().executeUpdate(String.format("DROP TABLE %s.%s", schema, each));
109114
}
110115
}
111116
}
112117

113118
private void dropTableWithOracle(final Connection connection, final String schema) throws SQLException {
114-
String queryAllTables = String.format("SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = '%s'", schema);
119+
String queryAllTables = String.format("SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER='%s'", schema);
115120
try (ResultSet resultSet = connection.createStatement().executeQuery(String.format(queryAllTables, schema))) {
116121
List<String> actualTableNames = getFirstColumnValueFromResult(resultSet);
117122
for (String each : actualTableNames) {

0 commit comments

Comments
 (0)