executeQueries static method

Future<BulkQueryResult> executeQueries({
  1. required Database database,
  2. required List<String> queries,
})

Executes a series of queries and returns the last result as a BulkQueryResult.

Implementation

static Future<BulkQueryResult> executeQueries({
  required Database database,
  required List<String> queries,
}) async {
  var result = await database.transaction<BulkQueryResult>((
    transaction,
  ) async {
    var startTime = DateTime.now();
    DatabaseResult? result;
    int numAffectedRows = 0;

    for (var query in queries) {
      result = await database.unsafeQuery(query, transaction: transaction);
      numAffectedRows += result.affectedRowCount;
    }
    result!;

    var duration = DateTime.now().difference(startTime);

    return BulkQueryResult(
      headers: result.schema.columns
          .map(
            (e) => BulkQueryColumnDescription(
              name: e.columnName ?? '',
            ),
          )
          .toList(),
      data: SerializationManager.encode(result),
      numAffectedRows: numAffectedRows,
      duration: duration,
    );
  });

  return result;
}