@@ -41,8 +41,6 @@ public final class PipelineNativeContainerComposer extends PipelineBaseContainer
41
41
42
42
private static final PipelineE2EEnvironment ENV = PipelineE2EEnvironment .getInstance ();
43
43
44
- private final JdbcUrlAppender jdbcUrlAppender = new JdbcUrlAppender ();
45
-
46
44
private final DatabaseType databaseType ;
47
45
48
46
public PipelineNativeContainerComposer (final DatabaseType databaseType ) {
@@ -60,26 +58,17 @@ public void cleanUpDatabase(final String databaseName) {
60
58
switch (databaseType .getType ()) {
61
59
case "MySQL" :
62
60
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 );
74
65
}
75
66
break ;
76
67
case "openGauss" :
77
68
case "PostgreSQL" :
78
69
jdbcUrl = dataSourceEnvironment .getURL ("localhost" , actualDatabasePort , databaseName );
79
70
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 );
83
72
}
84
73
break ;
85
74
case "Oracle" :
@@ -92,6 +81,16 @@ public void cleanUpDatabase(final String databaseName) {
92
81
}
93
82
}
94
83
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
+
95
94
private List <String > getFirstColumnValueFromResult (final ResultSet resultSet ) throws SQLException {
96
95
List <String > result = new LinkedList <>();
97
96
while (resultSet .next ()) {
@@ -100,18 +99,24 @@ private List<String> getFirstColumnValueFromResult(final ResultSet resultSet) th
100
99
return result ;
101
100
}
102
101
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'" ;
105
110
try (ResultSet resultSet = connection .createStatement ().executeQuery (String .format (queryAllTables , schema ))) {
106
111
List <String > actualTableNames = getFirstColumnValueFromResult (resultSet );
107
112
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 ));
109
114
}
110
115
}
111
116
}
112
117
113
118
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 );
115
120
try (ResultSet resultSet = connection .createStatement ().executeQuery (String .format (queryAllTables , schema ))) {
116
121
List <String > actualTableNames = getFirstColumnValueFromResult (resultSet );
117
122
for (String each : actualTableNames ) {
0 commit comments