Fix missing quotes in drift files docs

This commit is contained in:
Simon Binder 2022-01-05 18:52:35 +01:00
parent 6efe6de3ba
commit 573bd20eb8
No known key found for this signature in database
GPG Key ID: 7891917E4147B8C0
5 changed files with 18 additions and 16 deletions

View File

@ -77,7 +77,7 @@ At the moment, drift supports these options:
* `new_sql_code_generation`: Generates SQL statements from the parsed AST instead of replacing substrings. This will also remove * `new_sql_code_generation`: Generates SQL statements from the parsed AST instead of replacing substrings. This will also remove
unnecessary whitespace and comments. unnecessary whitespace and comments.
If enabling this option breaks your queries, please file an issue! If enabling this option breaks your queries, please file an issue!
* `scoped_dart_components`: Generates a function parameter for [Dart placeholders]({{ '../Using SQL/moor_files.md#dart-components-in-sql' | pageUrl }}) in SQL. * `scoped_dart_components`: Generates a function parameter for [Dart placeholders]({{ '../Using SQL/drift_files.md#dart-components-in-sql' | pageUrl }}) in SQL.
The function has a parameter for each table that is available in the query, making it easier to get aliases right when using The function has a parameter for each table that is available in the query, making it easier to get aliases right when using
Dart placeholders. Dart placeholders.
* `null_aware_type_converters`: Consider the type of applied type converters to determine nullability of columns in Dart. * `null_aware_type_converters`: Consider the type of applied type converters to determine nullability of columns in Dart.

View File

@ -149,7 +149,7 @@ Let's take a look at what drift generated during the build:
- a `Selectable<Todo> todosInCategory(int)` method, which runs the - a `Selectable<Todo> todosInCategory(int)` method, which runs the
`todosInCategory` query declared above. Drift has determined that the `todosInCategory` query declared above. Drift has determined that the
type of the variable in that query is `int`, because that's the type type of the variable in that query is `int`, because that's the type
of the `category` column we're comparing it to. of the `category` column we're comparing it to.
The method returns a `Selectable` to indicate that it can both be The method returns a `Selectable` to indicate that it can both be
used as a regular query (`Selectable.get` returns a `Future<List<Todo>>`) used as a regular query (`Selectable.get` returns a `Future<List<Todo>>`)
or as an auto-updating stream (by using `.watch` instead of `.get()`). or as an auto-updating stream (by using `.watch` instead of `.get()`).
@ -169,7 +169,7 @@ further guides to help you learn more:
- [Schema migrations]({{ "../Advanced Features/migrations.md" | pageUrl }}) - [Schema migrations]({{ "../Advanced Features/migrations.md" | pageUrl }})
- Writing [queries]({{ "writing_queries.md" | pageUrl }}) and - Writing [queries]({{ "writing_queries.md" | pageUrl }}) and
[expressions]({{ "../Advanced Features/expressions.md" | pageUrl }}) in Dart [expressions]({{ "../Advanced Features/expressions.md" | pageUrl }}) in Dart
- A more [in-depth guide]({{ "../Using SQL/moor_files.md" | pageUrl }}) - A more [in-depth guide]({{ "../Using SQL/drift_files.md" | pageUrl }})
on `drift` files, which explains `import` statements and the Dart-SQL interop. on `drift` files, which explains `import` statements and the Dart-SQL interop.
{% block "blocks/alert" title="Using the database" %} {% block "blocks/alert" title="Using the database" %}

View File

@ -47,11 +47,11 @@ To use this feature, it's helpful to know how Dart tables are named in sql. For
override `tableName`, the name in sql will be the `snake_case` of the class name. So a Dart table override `tableName`, the name in sql will be the `snake_case` of the class name. So a Dart table
called `Categories` will be named `categories`, a table called `UserAddressInformation` would be called `Categories` will be named `categories`, a table called `UserAddressInformation` would be
called `user_address_information`. The same rule applies to column getters without an explicit name. called `user_address_information`. The same rule applies to column getters without an explicit name.
Tables and columns declared in [Drift files]({{ "moor_files.md" | pageUrl }}) will always have the Tables and columns declared in [Drift files]({{ "drift_files.md" | pageUrl }}) will always have the
name you specified. name you specified.
{% endblock %} {% endblock %}
You can also use `UPDATE` or `DELETE` statements here. Of course, this feature is also available for You can also use `UPDATE` or `DELETE` statements here. Of course, this feature is also available for
[daos]({{ "../Advanced Features/daos.md" | pageUrl }}), [daos]({{ "../Advanced Features/daos.md" | pageUrl }}),
and it perfectly integrates with auto-updating streams by analyzing what tables you're reading from or and it perfectly integrates with auto-updating streams by analyzing what tables you're reading from or
writing to. writing to.
@ -60,7 +60,7 @@ writing to.
If you don't want to use the statements with an generated api, you can If you don't want to use the statements with an generated api, you can
still send custom queries by calling `customSelect` for a one-time query or still send custom queries by calling `customSelect` for a one-time query or
`customSelectStream` for a query stream that automatically emits a new set of items when `customSelectStream` for a query stream that automatically emits a new set of items when
the underlying data changes. Using the todo example introduced in the the underlying data changes. Using the todo example introduced in the
[getting started guide]({{ "../Getting started/index.md" | pageUrl }}), we can [getting started guide]({{ "../Getting started/index.md" | pageUrl }}), we can
write this query which will load the amount of todo entries in each category: write this query which will load the amount of todo entries in each category:
```dart ```dart
@ -90,7 +90,7 @@ Stream<List<CategoryWithCount>> categoriesWithCount() {
``` ```
For custom selects, you should use the `readsFrom` parameter to specify from which tables the query is For custom selects, you should use the `readsFrom` parameter to specify from which tables the query is
reading. When using a `Stream`, drift will be able to know after which updates the stream should emit reading. When using a `Stream`, drift will be able to know after which updates the stream should emit
items. items.
You can also bind SQL variables by using question-mark placeholders and the `variables` parameter: You can also bind SQL variables by using question-mark placeholders and the `variables` parameter:
@ -104,7 +104,7 @@ Stream<int> amountOfTodosInCategory(int id) {
} }
``` ```
Of course, you can also use indexed variables (like `?12`) - for more information on them, see Of course, you can also use indexed variables (like `?12`) - for more information on them, see
[the sqlite3 documentation](https://sqlite.org/lang_expr.html#varparam). [the sqlite3 documentation](https://sqlite.org/lang_expr.html#varparam).
## Custom update statements ## Custom update statements

View File

@ -6,6 +6,8 @@ data:
aliases: aliases:
- /docs/using-sql/custom_tables/ # Redirect from outdated "custom tables" page which has been deleted - /docs/using-sql/custom_tables/ # Redirect from outdated "custom tables" page which has been deleted
- /docs/using-sql/moor_files/
template: layouts/docs/single template: layouts/docs/single
--- ---
@ -174,27 +176,27 @@ CREATE TABLE saved_routes (
id INTEGER NOT NULL PRIMARY KEY, id INTEGER NOT NULL PRIMARY KEY,
name TEXT NOT NULL, name TEXT NOT NULL,
"from" INTEGER NOT NULL REFERENCES coordinates (id), "from" INTEGER NOT NULL REFERENCES coordinates (id),
to INTEGER NOT NULL REFERENCES coordinates (id) "to" INTEGER NOT NULL REFERENCES coordinates (id)
); );
routesWithPoints: SELECT r.id, r.name, f.*, t.* FROM routes r routesWithPoints: SELECT r.id, r.name, f.*, t.* FROM routes r
INNER JOIN coordinates f ON f.id = r."from" INNER JOIN coordinates f ON f.id = r."from"
INNER JOIN coordinates t ON t.id = r.to; INNER JOIN coordinates t ON t.id = r."to";
``` ```
To match the returned column names while avoiding name clashes in Dart, drift To match the returned column names while avoiding name clashes in Dart, drift
will generate a class having an `id`, `name`, `id1`, `lat`, `long`, `lat1` and will generate a class having an `id`, `name`, `id1`, `lat`, `long`, `lat1` and
a `long1` field. a `long1` field.
Of course, that's not helpful at all - was `lat1` coming from `from` or `to` Of course, that's not helpful at all - was `lat1` coming from `from` or `to`
again? Let's rewrite the query, this time using nested results: again? Let's rewrite the query, this time using nested results:
```sql ```sql
routesWithNestedPoints: SELECT r.id, r.name, f.**, t.** FROM routes r routesWithNestedPoints: SELECT r.id, r.name, f.**, t.** FROM routes r
INNER JOIN coordinates f ON f.id = r."from" INNER JOIN coordinates f ON f.id = r."from"
INNER JOIN coordinates t ON t.id = r.to; INNER JOIN coordinates t ON t.id = r."to";
``` ```
As you can see, we can nest a result simply by using the drift-specific As you can see, we can nest a result simply by using the drift-specific
`table.**` syntax. `table.**` syntax.
For this query, drift will generate the following class: For this query, drift will generate the following class:
```dart ```dart
@ -207,7 +209,7 @@ class RoutesWithNestedPointsResult {
} }
``` ```
Great! This class matches our intent much better than the flat result class Great! This class matches our intent much better than the flat result class
from before. from before.
At the moment, there are some limitations with this approach: At the moment, there are some limitations with this approach:

View File

@ -25,7 +25,7 @@ path: v2
The rewritten compiler is faster than ever, supports more SQL features and gives you The rewritten compiler is faster than ever, supports more SQL features and gives you
more flexibility when writing database code. more flexibility when writing database code.
[Check the updated documentation]({{ "docs/Using SQL/moor_files.md" | pageUrl }}) [Check the updated documentation]({{ "docs/Using SQL/drift_files.md" | pageUrl }})
{% endblock %} {% endblock %}
{% endblock %} {% endblock %}