Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[D1] Cleaning up Build with D1 #18321

Open
wants to merge 14 commits into
base: production
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions public/_redirects
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,9 @@
/constellation/ /workers-ai/ 301

# D1
/d1/client-api/ /d1/build-with-d1/d1-client-api/ 301
/d1/d1-api/ /d1/rest-api/d1-api 301/
/d1/client-api/ /d1/worker-api/ 301
/d1/build-with-d1/d1-client-api/ /d1/worker-api/ 301
/d1/learning/using-d1-from-pages/ /pages/functions/bindings/#d1-databases 301
/d1/learning/debug-d1/ /d1/observability/debug-d1/ 301
/d1/learning/using-indexes/ /d1/build-with-d1/use-indexes/ 301
Expand All @@ -271,25 +273,26 @@
/d1/migrations/ /d1/reference/migrations/ 301
/d1/platform/wrangler-commands/ /workers/wrangler/commands/#d1 301
/d1/platform/community-projects/ /d1/reference/community-projects/ 301
/d1/platform/client-api/ /d1/build-with-d1/d1-client-api/ 301
/d1/platform/client-api/ /d1/worker-api/ 301
/d1/platform/data-security/ /d1/reference/data-security/ 301
/d1/platform/environments/ /d1/configuration/environments/ 301
/d1/platform/metrics-analytics/ /d1/observability/metrics-analytics/ 301
/d1/platform/migrations/ /d1/reference/migrations/ 301
/d1/reference/client-api/ /d1/build-with-d1/d1-client-api/ 301
/d1/reference/client-api/ /d1/worker-api/ 301
/d1/reference/environments/ /d1/configuration/environments/ 301
/d1/reference/metrics-analytics/ /d1/observability/metrics-analytics/ 301
/d1/reference/wrangler-commands/ / /d1/rest-api/wrangler-commands/ 301
/d1/how-to/ /d1/build-with-d1/ 301
/d1/how-to/query-databases/ /d1/build-with-d1/d1-client-api/ 301
/d1/how-to/query-databases/ /d1/build-with-d1/query-d1/ 301
/d1/how-to/using-indexes/ /d1/build-with-d1/use-indexes/ 301
/d1/how-to/querying-json/ /d1/build-with-d1/query-json/ 301
/d1/how-to/importing-data/ /d1/build-with-d1/import-export-data/ 301
/d1/how-to/generated-columns/ /d1/reference/generated-columns/ 301
/d1/build-databases/ /d1/build-with-d1/ 301
/d1/build-databases/query-databases/ /d1/build-with-d1/d1-client-api/ 301
/d1/build-databases/query-databases/ /d1/build-with-d1/query-d1/ 301
/d1/build-databases/use-indexes/ /d1/build-with-d1/use-indexes/ 301
/d1/build-databases/import-data/ /d1/build-with-d1/import-export-data/ 301
/d1/build-databases/client-api/ /d1/build-with-d1/d1-client-api/ 301
/d1/build-databases/client-api/ /d1/worker-api/ 301
/d1/reference/query-json/ /d1/build-with-d1/query-json/ 301
/d1/configuration/local-development/ /d1/build-with-d1/local-development/ 301
/d1/configuration/remote-development/ /d1/build-with-d1/remote-development/ 301
Expand Down
22 changes: 11 additions & 11 deletions src/content/changelogs/d1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ entries:
- publish_date: "2024-07-26"
title: Fixed bug in TypeScript typings for run() API
description: |-
The `run()` method as part of the [D1 Client API](/d1/build-with-d1/d1-client-api/) had an incorrect (outdated) type definition, which has now been addressed as of [`@cloudflare/workers-types`](https://www.npmjs.com/package/@cloudflare/workers-types) version `4.20240725.0`.
The `run()` method as part of the [D1 Client API](/d1/worker-api/) had an incorrect (outdated) type definition, which has now been addressed as of [`@cloudflare/workers-types`](https://www.npmjs.com/package/@cloudflare/workers-types) version `4.20240725.0`.

The correct type definition is `stmt.run<T>(): D1Result`, as `run()` returns the result rows of the query. The previously _incorrect_ type definition was `stmt.run(): D1Response`, which only returns query metadata and no results.

Expand All @@ -28,7 +28,7 @@ entries:
description: |-
Previously, D1's [HTTP API](/api/operations/cloudflare-d1-query-database) returned a HTTP `500 Internal Server` error for queries that came in while a D1 database was overloaded. These requests now correctly return a `HTTP 429 Too Many Requests` error.

D1's [Workers API](/d1/build-with-d1/d1-client-api/) is unaffected by this change.
D1's [Workers API](/d1/worker-api/) is unaffected by this change.

- publish_date: "2024-04-30"
title: D1 alpha databases will stop accepting live SQL queries on August 15, 2024
Expand All @@ -42,7 +42,7 @@ entries:
description: |-
Previously, D1's [HTTP API](/api/operations/cloudflare-d1-query-database) returned a HTTP `500 Internal Server` error for an invalid query. An invalid SQL query now correctly returns a `HTTP 400 Bad Request` error.

D1's [Workers API](/d1/build-with-d1/d1-client-api/) is unaffected by this change.
D1's [Workers API](/d1/worker-api/) is unaffected by this change.

- publish_date: "2024-04-05"
title: D1 alpha databases are deprecated
Expand Down Expand Up @@ -81,24 +81,24 @@ entries:
- publish_date: "2024-02-16"
title: API changes to `run()`
description: |-
A previous change (made on 2024-02-13) to the `run()` [query statement method](/d1/build-with-d1/d1-client-api/#await-stmtrun) has been reverted.
A previous change (made on 2024-02-13) to the `run()` [query statement method](/d1/worker-api/prepared-statements/#run) has been reverted.

`run()` now returns a `D1Result`, including the result rows, matching its original behaviour prior to the change on 2024-02-13.
`run()` now returns a `D1Result`, including the result rows, matching its original behavior prior to the change on 2024-02-13.

Future change to `run()` to return a [`D1ExecResult`](/d1/build-with-d1/d1-client-api/#return-object), as originally intended and documented, will be gated behind a [compatibility date](/workers/configuration/compatibility-dates/) as to avoid breaking existing Workers relying on the way `run()` currently works.
Future change to `run()` to return a [`D1ExecResult`](/d1/worker-api/return-object/#d1execresult), as originally intended and documented, will be gated behind a [compatibility date](/workers/configuration/compatibility-dates/) as to avoid breaking existing Workers relying on the way `run()` currently works.

- publish_date: "2024-02-13"
title: API changes to `raw()`, `all()` and `run()`
description: |-
D1's `raw()`, `all()` and `run()` [query statement methods](/d1/build-with-d1/d1-client-api/#query-statement-methods) have been updated to reflect their intended behaviour and improve compatibility with ORM libraries.
D1's `raw()`, `all()` and `run()` [query statement methods](/d1/worker-api/prepared-statements/) have been updated to reflect their intended behavior and improve compatibility with ORM libraries.

`raw()` now correctly returns results as an array of arrays, allowing the correct handling of duplicate column names (such as when joining tables), as compared to `all()`, which is unchanged and returns an array of objects. To include an array of column names in the results when using `raw()`, use `raw({columnNames: true})`.

`run()` no longer incorrectly returns a `D1Result` and instead returns a [`D1ExecResult`](/d1/build-with-d1/d1-client-api/#return-object) as originally intended and documented.
`run()` no longer incorrectly returns a `D1Result` and instead returns a [`D1ExecResult`](/d1/worker-api/return-object/#d1execresult) as originally intended and documented.

This may be a breaking change for some applications that expected `raw()` to return an array of objects.

Refer to [D1 client API](/d1/build-with-d1/d1-client-api/) to review D1's query methods, return types and TypeScript support in detail.
Refer to [D1 client API](/d1/worker-api/) to review D1's query methods, return types and TypeScript support in detail.

- publish_date: "2024-01-18"
title: Support for LIMIT on UPDATE and DELETE statements
Expand Down Expand Up @@ -140,7 +140,7 @@ entries:
description: |-
D1 now returns a count of `rows_written` and `rows_read` for every query executed, allowing you to assess the cost of query for both [pricing](/d1/platform/pricing/) and [index optimization](/d1/build-with-d1/use-indexes/) purposes.

The `meta` object returned in [D1's Client API](/d1/build-with-d1/d1-client-api/) contains a total count of the rows read (`rows_read`) and rows written (`rows_written`) by that query. For example, a query that performs a full table scan (for example, `SELECT * FROM users`) from a table with 5000 rows would return a `rows_read` value of `5000`:
The `meta` object returned in [D1's Client API](/d1/worker-api/return-object/#d1result) contains a total count of the rows read (`rows_read`) and rows written (`rows_written`) by that query. For example, a query that performs a full table scan (for example, `SELECT * FROM users`) from a table with 5000 rows would return a `rows_read` value of `5000`:
```json
"meta": {
"duration": 0.20472300052642825,
Expand Down Expand Up @@ -200,7 +200,7 @@ entries:
- publish_date: "2023-06-12"
title: Deprecating Error.cause
description: |-
As of [`wrangler v3.1.1`](https://github.com/cloudflare/workers-sdk/releases/tag/wrangler%403.1.1) the [D1 client API](/d1/build-with-d1/d1-client-api/) now returns [detailed error messages](/d1/build-with-d1/d1-client-api/#errors) within the top-level `Error.message` property, and no longer requires developers to inspect the `Error.cause.message` property.
As of [`wrangler v3.1.1`](https://github.com/cloudflare/workers-sdk/releases/tag/wrangler%403.1.1) the [D1 client API](/d1/worker-api/) now returns [detailed error messages](/d1/observability/debug-d1/) within the top-level `Error.message` property, and no longer requires developers to inspect the `Error.cause.message` property.

To facilitate a transition from the previous `Error.cause` behaviour, detailed error messages will continue to be populated within `Error.cause` as well as the top-level `Error` object until approximately July 14th, 2023. Future versions of both `wrangler` and the D1 client API will no longer populate `Error.cause` after this date.
- publish_date: "2023-05-19"
Expand Down
Loading
Loading