approximateRowCount static method
Returns the approximate number of rows in the provided table.
Implementation
static Future<int> approximateRowCount({
required Database database,
required String table,
}) async {
var tableDefinition = await _getLiveTableDefinition(database, table);
if (tableDefinition == null) {
throw BulkDataException(
message: 'The "$table" table was not found in the live database.',
);
}
var query =
'SELECT reltuples::bigint AS estimate FROM pg_class '
'JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace '
'WHERE relname = \'$table\' AND nspname = \'public\'';
var result = await database.unsafeQuery(query);
if (result.isEmpty) {
return 0;
}
var count = result.first.first as int;
return max(count, 0);
}