query<R> method
Future<List<R> >
query<R>(
- SqlQuery<
R> query, { - ExecutionOptions options = const ExecutionOptions(),
- Iterable<
String> changedTables = const [],
Executes and decodes one statement using its actual result labels.
A decode failure poisons the current transaction even if caught. Outside a transaction a write may already be committed; decoding is never retried.
Implementation
Future<List<R>> query<R>(
SqlQuery<R> query, {
ExecutionOptions options = const ExecutionOptions(),
Iterable<String> changedTables = const [],
}) async {
final result = await execute(
query.sql.compile(capabilities),
options: options,
changedTables: changedTables,
);
return _guardSqlResult(this, () {
final decode = query.result.bind(result.columns);
return [for (final row in result.rows) decode(row)];
});
}