mirror of https://github.com/AMT-Cheif/drift.git
Clarify join result types in docs
This commit is contained in:
parent
9bcaeddb3b
commit
aba434e7e0
|
@ -9,6 +9,8 @@ import '../_shared/todo_tables.drift.dart';
|
||||||
class EntryWithCategory {
|
class EntryWithCategory {
|
||||||
EntryWithCategory(this.entry, this.category);
|
EntryWithCategory(this.entry, this.category);
|
||||||
|
|
||||||
|
// The classes are generated by drift for each of the tables involved in the
|
||||||
|
// join.
|
||||||
final TodoItem entry;
|
final TodoItem entry;
|
||||||
final Category? category;
|
final Category? category;
|
||||||
}
|
}
|
||||||
|
@ -69,8 +71,6 @@ extension SelectExamples on CanUseCommonTables {
|
||||||
leftOuterJoin(categories, categories.id.equalsExp(todoItems.category)),
|
leftOuterJoin(categories, categories.id.equalsExp(todoItems.category)),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// see next section on how to parse the result
|
|
||||||
// #enddocregion joinIntro
|
|
||||||
// #docregion results
|
// #docregion results
|
||||||
return query.watch().map((rows) {
|
return query.watch().map((rows) {
|
||||||
return rows.map((row) {
|
return rows.map((row) {
|
||||||
|
@ -81,7 +81,6 @@ extension SelectExamples on CanUseCommonTables {
|
||||||
}).toList();
|
}).toList();
|
||||||
});
|
});
|
||||||
// #enddocregion results
|
// #enddocregion results
|
||||||
// #docregion joinIntro
|
|
||||||
}
|
}
|
||||||
// #enddocregion joinIntro
|
// #enddocregion joinIntro
|
||||||
|
|
||||||
|
|
|
@ -114,14 +114,14 @@ Of course, you can also join multiple tables:
|
||||||
|
|
||||||
{% include "blocks/snippet" snippets = snippets name = 'otherTodosInSameCategory' %}
|
{% include "blocks/snippet" snippets = snippets name = 'otherTodosInSameCategory' %}
|
||||||
|
|
||||||
## Parsing results
|
### Parsing results
|
||||||
|
|
||||||
Calling `get()` or `watch` on a select statement with join returns a `Future` or `Stream` of
|
Calling `get()` or `watch` on a select statement with join returns a `Future` or `Stream` of
|
||||||
`List<TypedResult>`, respectively. Each `TypedResult` represents a row from which data can be
|
`List<TypedResult>`, respectively. Each `TypedResult` represents a row from which data can be
|
||||||
read. It contains a `rawData` getter to obtain the raw columns. But more importantly, the
|
read. It contains a `rawData` getter to obtain the raw columns. But more importantly, the
|
||||||
`readTable` method can be used to read a data class from a table.
|
`readTable` method can be used to read a data class from a table.
|
||||||
|
|
||||||
In the example query above, we can read the todo entry and the category from each row like this:
|
In the example query above, we've read the todo entry and the category from each row like this:
|
||||||
|
|
||||||
{% include "blocks/snippet" snippets = snippets name = 'results' %}
|
{% include "blocks/snippet" snippets = snippets name = 'results' %}
|
||||||
|
|
||||||
|
|
|
@ -140,7 +140,7 @@ abstract class _TransactionExecutor extends _BaseExecutor
|
||||||
|
|
||||||
if (_closed) {
|
if (_closed) {
|
||||||
throw StateError(
|
throw StateError(
|
||||||
"A tranaction was used after being closed. Please check that you're "
|
"A transaction was used after being closed. Please check that you're "
|
||||||
'awaiting all database operations inside a `transaction` block.');
|
'awaiting all database operations inside a `transaction` block.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue