buildDeleteStatement method

DeleteStatement<Table, dynamic> buildDeleteStatement()

Build a delete statement based on the manager state

Implementation

DeleteStatement buildDeleteStatement() {
  final DeleteStatement deleteStatement;
  if (joinBuilders.isEmpty) {
    deleteStatement = db.delete(_tableAsTableInfo);
    if (filter != null) {
      deleteStatement.where((_) => filter!);
    }
  } else {
    deleteStatement = db.delete(_tableAsTableInfo);
    for (var col in _tableAsTableInfo.primaryKey) {
      final subquery = buildSelectStatement(targetColumns: [col]);
      deleteStatement.where((tbl) => col.isInQuery(subquery));
    }
  }
  return deleteStatement;
}