From e7ab6b4bec109287ff745104ae4dfb335e5527d9 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 10:55:07 +0000 Subject: [PATCH] docs: drop refused dotted-fields remedy from v17 release notes The v17.mdx removed-features row for the fields[] object form prescribed a dotted path (fields: ['owner.name']) as a fallback alongside expand. That spelling is now refused at both doors (REST ingress since #7532/PR #7588, engine find/findOne since #7589/PR #8327), so the remedy pointed upgraders straight into the refusal it was meant to route around. Per the card's own prescription: drop the dotted alternative, keep expand alone with the reference column preserved in the projection. Fixes #8329 Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Jqe56GnYFddggeAyfkZFVz --- content/docs/releases/v17.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/releases/v17.mdx b/content/docs/releases/v17.mdx index a9a3474fc0..43d7fce749 100644 --- a/content/docs/releases/v17.mdx +++ b/content/docs/releases/v17.mdx @@ -974,7 +974,7 @@ a `tsc` error at the call site. | Removed | Why | Use instead | |---|---|---| -| `fields[]` object form `{ field, fields, alias }` | inert end to end — every reader treats the list as `string[]`, so it was dropped by the SQL and memory drivers, projected as a column named `"[object Object]"` by MongoDB, and refused by the REST ingress | `expand`, or a dotted path for a single related column (`fields: ['owner.name']`) | +| `fields[]` object form `{ field, fields, alias }` | inert end to end — every reader treats the list as `string[]`, so it was dropped by the SQL and memory drivers, projected as a column named `"[object Object]"` by MongoDB, and refused by the REST ingress | `expand`, keeping the reference column in the projection (`fields: ['title', 'owner']` plus `expand`) | | `query.joins` | no engine or driver ever read it; the name squatted on the reserved REST parameter set (the `JoinNode`/`JoinType`/`JoinStrategy` cluster goes with it) | `expand` — the engine resolves it via batch `$in` queries | | `query.windowFunctions` | `find()` never applied one, so every OVER clause was silently dropped; `WindowFunctionNode` declared `field`/`over`/`frame` members the live door never read | `aggregations` + `groupBy`; embedders on a SQL datasource call `SqlDriver.findWithWindowFunctions()` | | `query.cursor` | no driver implemented keyset pagination — the cursor was accepted and ignored, so every page came back identical and a caller looping "until `hasMore` is false" never terminates | a `where` predicate on your sort key (`{ created_at: { $gt: last.created_at } }`) with the matching `orderBy` |