count method

Future<int> count([
  1. String column = '*'
])

COUNT aggregate

Implementation

Future<int> count([String column = '*']) async {
  final originalSelects = List<String>.from(_selects);
  final originalLimit = _limit;
  final originalOffset = _offset;

  _selects.clear();
  _limit = null;
  _offset = null;

  _selects.add('COUNT($column) as count');

  final result = await first();

  // Restore original state
  _selects.clear();
  _selects.addAll(originalSelects);
  _limit = originalLimit;
  _offset = originalOffset;

  if (result?["count"] is String) {
    return int.tryParse("${result?["count"] ?? 0}  ") ?? 0;
  }
  if (result?["count"] is num) {
    return result?["count"] as int;
  }

  if (result?["count"] is int) {
    return result?["count"];
  }
  return 0;
}