bulkDelete method
Implementation
@override
Future<bool> bulkDelete({
String? column,
List<dynamic>? values,
int batchSize = 1000,
}) async {
if (column == null || values == null || values.isEmpty) {
throw InvalidArgumentException(
'Column and values must be provided for bulk delete operation');
}
try {
final conn = await getConnection();
for (int i = 0; i < values.length; i += batchSize) {
final batch = values.skip(i).take(batchSize).toList();
final paramBindings = <String, dynamic>{};
final placeholders = batch.map((value) {
final paramName = _nextParamName();
paramBindings[paramName] = value;
return ":$paramName";
}).join(', ');
final sql = "DELETE FROM $getTable WHERE $column IN ($placeholders)";
await conn.execute(sql, paramBindings);
}
return true;
} catch (e) {
rethrow;
}
}