delete method
Delete some datapoints from the database
Implementation
Future<int> delete(
{required String table,
required String? where,
bool verbose = false}) async {
/// [table] is the table to use and [where] the sql where clause
///
/// Returns a future with a count of the deleted rows
var deleted = 0;
await _mutex.synchronized(() async {
if (!_isReady) {
throw DatabaseNotReady();
}
try {
final timer = Stopwatch()..start();
final q = 'DELETE FROM $table WHERE $where';
await _db!.transaction((txn) async {
deleted = await txn.rawDelete(q);
});
timer.stop();
_changeFeedController.sink.add(DatabaseChangeEvent(
type: DatabaseChange.delete,
value: deleted,
query: q,
table: table,
executionTime: timer.elapsedMicroseconds));
if (verbose) {
final msg = "$q in ${timer.elapsedMilliseconds} ms";
print(msg);
}
return deleted;
} catch (e) {
rethrow;
}
});
return deleted;
}