sql method

Future<List<Map<String, dynamic>>> sql({
  1. required String query,
  2. required List<TableRef> tables,
  3. Map<String, dynamic>? params,
})

Execute a SQL query against one or more tables.

Implementation

Future<List<Map<String, dynamic>>> sql({required String query, required List<TableRef> tables, Map<String, dynamic>? params}) async {
  final payload = <String, dynamic>{
    "query": query,
    "tables": tables.map((table) => table.toJson()).toList(),
    if (params != null) "params": params,
  };

  final response = (await room.sendRequest("database.sql", payload) as JsonResponse);
  final results = decodeRecords((response.json["results"] as List).cast<Map<String, dynamic>>());
  return results.toList();
}