@@ -3242,6 +3242,7 @@ public void renameTable_ForMysql_ShouldWorkProperly() throws SQLException, Execu
32423242 + "`.`metadata` WHERE `full_table_name`=? ORDER BY `ordinal_position` ASC" ,
32433243 "ALTER TABLE `ns`.`table` RENAME TO `ns`.`table_new`" ,
32443244 "DELETE FROM `" + METADATA_SCHEMA + "`.`metadata` WHERE `full_table_name` = 'ns.table'" ,
3245+ "SELECT DISTINCT `full_table_name` FROM `" + METADATA_SCHEMA + "`.`metadata`" ,
32453246 "INSERT INTO `"
32463247 + METADATA_SCHEMA
32473248 + "`.`metadata` VALUES ('ns.table_new','c1','TEXT','PARTITION',NULL,false,1)" ,
@@ -3261,6 +3262,7 @@ public void renameTable_ForOracle_ShouldWorkProperly() throws SQLException, Exec
32613262 "DELETE FROM \" "
32623263 + METADATA_SCHEMA
32633264 + "\" .\" metadata\" WHERE \" full_table_name\" = 'ns.table'" ,
3265+ "SELECT DISTINCT \" full_table_name\" FROM \" " + METADATA_SCHEMA + "\" .\" metadata\" " ,
32643266 "INSERT INTO \" "
32653267 + METADATA_SCHEMA
32663268 + "\" .\" metadata\" VALUES ('ns.table_new','c1','TEXT','PARTITION',NULL,0,1)" ,
@@ -3281,6 +3283,7 @@ public void renameTable_ForPostgresql_ShouldWorkProperly()
32813283 "DELETE FROM \" "
32823284 + METADATA_SCHEMA
32833285 + "\" .\" metadata\" WHERE \" full_table_name\" = 'ns.table'" ,
3286+ "SELECT DISTINCT \" full_table_name\" FROM \" " + METADATA_SCHEMA + "\" .\" metadata\" " ,
32843287 "INSERT INTO \" "
32853288 + METADATA_SCHEMA
32863289 + "\" .\" metadata\" VALUES ('ns.table_new','c1','TEXT','PARTITION',NULL,false,1)" ,
@@ -3299,6 +3302,7 @@ public void renameTable_ForSqlServer_ShouldWorkProperly()
32993302 + "].[metadata] WHERE [full_table_name]=? ORDER BY [ordinal_position] ASC" ,
33003303 "EXEC sp_rename '[ns].[table]', 'table_new'" ,
33013304 "DELETE FROM [" + METADATA_SCHEMA + "].[metadata] WHERE [full_table_name] = 'ns.table'" ,
3305+ "SELECT DISTINCT [full_table_name] FROM [" + METADATA_SCHEMA + "].[metadata]" ,
33023306 "INSERT INTO ["
33033307 + METADATA_SCHEMA
33043308 + "].[metadata] VALUES ('ns.table_new','c1','TEXT','PARTITION',NULL,0,1)" ,
@@ -3316,6 +3320,7 @@ public void renameTable_ForSqlite_ShouldWorkProperly() throws SQLException, Exec
33163320 + "$metadata\" WHERE \" full_table_name\" =? ORDER BY \" ordinal_position\" ASC" ,
33173321 "ALTER TABLE \" ns$table\" RENAME TO \" ns$table_new\" " ,
33183322 "DELETE FROM \" " + METADATA_SCHEMA + "$metadata\" WHERE \" full_table_name\" = 'ns.table'" ,
3323+ "SELECT DISTINCT \" full_table_name\" FROM \" " + METADATA_SCHEMA + "$metadata\" " ,
33193324 "INSERT INTO \" "
33203325 + METADATA_SCHEMA
33213326 + "$metadata\" VALUES ('ns.table_new','c1','TEXT','PARTITION',NULL,FALSE,1)" ,
@@ -3335,6 +3340,7 @@ public void renameTable_ForDb2_ShouldWorkProperly() throws SQLException, Executi
33353340 "DELETE FROM \" "
33363341 + METADATA_SCHEMA
33373342 + "\" .\" metadata\" WHERE \" full_table_name\" = 'ns.table'" ,
3343+ "SELECT DISTINCT \" full_table_name\" FROM \" " + METADATA_SCHEMA + "\" .\" metadata\" " ,
33383344 "INSERT INTO \" "
33393345 + METADATA_SCHEMA
33403346 + "\" .\" metadata\" VALUES ('ns.table_new','c1','TEXT','PARTITION',NULL,false,1)" ,
@@ -3353,19 +3359,23 @@ private void renameTable_ForX_ShouldWorkProperly(
33533359 String columnName2 = "c2" ;
33543360
33553361 PreparedStatement selectStatement = mock (PreparedStatement .class );
3356- ResultSet resultSet =
3362+ ResultSet resultSet1 =
33573363 mockResultSet (
33583364 new SelectAllFromMetadataTableResultSetMocker .Row (
33593365 columnName1 , DataType .TEXT .toString (), "PARTITION" , null , false ),
33603366 new SelectAllFromMetadataTableResultSetMocker .Row (
33613367 columnName2 , DataType .INT .toString (), null , null , false ));
3362- when (selectStatement .executeQuery ()).thenReturn (resultSet );
3363-
3368+ when (selectStatement .executeQuery ()).thenReturn (resultSet1 );
33643369 when (connection .prepareStatement (any ())).thenReturn (selectStatement );
33653370 List <Statement > expectedStatements = new ArrayList <>();
3366- for (int i = 0 ; i < expectedSqlStatements .length ; i ++) {
3367- Statement expectedStatement = mock (Statement .class );
3368- expectedStatements .add (expectedStatement );
3371+ for (String expectedSqlStatement : expectedSqlStatements ) {
3372+ Statement mock = mock (Statement .class );
3373+ expectedStatements .add (mock );
3374+ if (expectedSqlStatement .startsWith ("SELECT DISTINCT " )) {
3375+ ResultSet resultSet2 = mock (ResultSet .class );
3376+ when (resultSet2 .next ()).thenReturn (true );
3377+ when (mock .executeQuery (any ())).thenReturn (resultSet2 );
3378+ }
33693379 }
33703380 when (connection .createStatement ())
33713381 .thenReturn (
@@ -3382,7 +3392,11 @@ private void renameTable_ForX_ShouldWorkProperly(
33823392 verify (selectStatement ).setString (1 , getFullTableName (namespace , table ));
33833393 verify (connection ).prepareStatement (expectedGetMetadataStatement );
33843394 for (int i = 0 ; i < expectedSqlStatements .length ; i ++) {
3385- verify (expectedStatements .get (i )).execute (expectedSqlStatements [i ]);
3395+ if (expectedSqlStatements [i ].startsWith ("SELECT DISTINCT " )) {
3396+ verify (expectedStatements .get (i )).executeQuery (expectedSqlStatements [i ]);
3397+ } else {
3398+ verify (expectedStatements .get (i )).execute (expectedSqlStatements [i ]);
3399+ }
33863400 }
33873401 }
33883402
0 commit comments