count method

Future<int> count({
  1. required String column,
  2. bool distinct = false,
})

Implementation

Future<int> count({required String column, bool distinct = false}) async {
  if (distinct && column != "*") {
    _selectQueryMaker.write("COUNT(DISTINCT $column)");
  } else {
    _selectQueryMaker.write("COUNT($column)");
  }

  int result = 0;

  if (dbType == DbType.sqlite) {
    final rows = sqliteDb!.select(
        "SELECT ${_selectQueryMaker.toString()} FROM $tableName ${_queryMaker.toString()} ${_paginationQueryMaker.toString()}");

    result = rows[0].entries.first.value;
  } else if (dbType == DbType.postgresql) {
    result = (await postgresqlDb!
            .query(
                "SELECT ${_selectQueryMaker.toString()} FROM $tableName ${_queryMaker.toString()} ${_paginationQueryMaker.toString()}")
            .single)
        .toMap()
        .values
        .first;
  }

  return result;
}