executeSqlStatement method

Future<int> executeSqlStatement({
  1. required String query,
  2. List<TableRef>? tables,
  3. ArrowTable? params,
  4. List<String>? namespace,
  5. String? branch,
})

Implementation

Future<int> executeSqlStatement({
  required String query,
  List<TableRef>? tables,
  ArrowTable? params,
  List<String>? namespace,
  String? branch,
}) async {
  final response = await _invokeContent(
    "execute_sql_statement",
    BinaryContent(
      data: params == null ? Uint8List(0) : ArrowIpcStreamWriter.fromTable(params).write(),
      headers: {
        "query": query,
        "tables": (tables ?? const <TableRef>[]).map((table) => table.toJson()).toList(growable: false),
        "namespace": namespace,
        "branch": branch,
      },
    ),
  );
  if (response is! JsonContent) {
    throw RoomServerException("unexpected return type from datasets.execute_sql_statement call");
  }
  final rowsAffected = response.json["rows_affected"];
  if (rowsAffected is! int) {
    throw RoomServerException("unexpected return type from datasets.execute_sql_statement call");
  }
  return rowsAffected;
}