@@ -2527,7 +2527,6 @@ private HashMap<String, Object[]> checkAndDeleteDupes(DataIterator rows,
25272527 noDeleteMap .put (uniq ,key );
25282528
25292529 // partial fix for 16647, we should handle the replace case differently (do we ever replace?)
2530- String sep = "" ;
25312530 if (uriMap .size () < 10000 || Boolean .TRUE ==replace )
25322531 {
25332532 idList .add (uniq );
@@ -2574,8 +2573,8 @@ private HashMap<String, Object[]> checkTargetDupesAndDelete(final boolean demogr
25742573
25752574 TableInfo tinfo = getStorageTableInfo (false );
25762575 SimpleFilter filter = new SimpleFilter ();
2577- SQLFragment inClause = tinfo .getSqlDialect ().appendInClauseSql (new SQLFragment (demographic ?"ParticipantId" :"LSID" ), idList );
2578- filter .addWhereClause (inClause );
2576+ SQLFragment checkInClause = tinfo .getSqlDialect ().appendInClauseSql (new SQLFragment (demographic ?"ParticipantId" :"LSID" ), idList );
2577+ filter .addWhereClause (checkInClause );
25792578 if (isShared ())
25802579 {
25812580 Container rowsContainer = getContainer ();
@@ -2609,16 +2608,8 @@ private HashMap<String, Object[]> checkTargetDupesAndDelete(final boolean demogr
26092608 return null ;
26102609
26112610 SimpleFilter deleteFilter = new SimpleFilter ();
2612- StringBuilder sbDelete = new StringBuilder ();
2613- String sep = "" ;
2614- for (String s : deleteSet )
2615- {
2616- if (s .contains (("'" )))
2617- s = s .replaceAll ("'" ,"''" );
2618- sbDelete .append (sep ).append ("'" ).append (s ).append ("'" );
2619- sep = ", " ;
2620- }
2621- deleteFilter .addWhereClause ("LSID IN (" + sbDelete + ")" , new Object []{});
2611+ SQLFragment deleteInClause = tinfo .getSqlDialect ().appendInClauseSql (new SQLFragment ("LSID" ), deleteSet );
2612+ deleteFilter .addWhereClause (deleteInClause );
26222613 Table .delete (tinfo , deleteFilter );
26232614
26242615 return null ;
0 commit comments