Commit 4e51fef
Port prisma functional wave 2: mongo composites, relationMode matrices, issue regressions (229 accounted) (#1042)
Second porting wave for the
[`port-all-tests`](projects/port-all-tests/spec.md) project. **+229
checklist boxes accounted** (488 → 717); every box gated by an Opus
reviewer before it was checked.
## What landed
**Ported & passing**
- **mongo composites** — `composites/list` and `composites/object`
(create / createMany / delete / deleteMany / findFirst / findMany /
update / upsert) against `withMongoPort`.
- **relationMode foreignKeys matrices** — `1-to-1`, `1-to-n`, `m-to-n`
referential actions (Cascade / NoAction / Restrict / SetNull × `@map`
variants) plus the 17255 same/mixed-action `disconnect` cases.
- **issue regressions** — 5952 (decimal), 14954 (date), 21631
(batching-in-tx, `Promise.all` forms), 29174 (jsonb), 13089
(dollar-in-search, mongo).
**Ported & failing** (`test.fails`, faithful gap — one-to-one with
`failing.md`)
- 29267 `Uint8Array`-in-JSON serialization; required-composite `null`;
implicit-default `onUpdate` (prisma-next `NoAction` vs Prisma
`Cascade`).
**Non-portable** (recorded per-test under
`non-ported/functional/<suite>/`)
- `relationLoadStrategy` (no such query option), `relationMode=prisma`
client-side emulation, implicit embedded mongo m2m, array-batch
`$transaction([...])`, and mongo-ORM gaps (embedded-subfield `select`,
composite `where` operators, read-side `aggregate`/`count`).
## Verification
- Full ports corpus: **68 files, 526 passed | 50 expected-fail**,
`typecheck` + `lint` clean.
- `failing.md` matches the 50 `test.fails` 1:1; non-ported ledgers
mirror `functional/<suite>/`; checklist boxes carry per-line
dispositions.
- The reviewer gate caught and corrected two real faithfulness defects
before finalize: composites/list had dropped the upstream `_id`
assertion, and three issue suites had substituted array-batch
`$transaction([...])` with the interactive-transaction facade (demoted
to non-ported).
No production code changed — test-only, per the project spec.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Signed-off-by: Serhii Tatarintsev <tatarintsev@prisma.io>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 7a39ef4 commit 4e51fef
275 files changed
Lines changed: 45410 additions & 232 deletions
File tree
- projects/port-all-tests
- briefs
- checklists
- test/integration/test/ports/prisma
- functional
- composites-list-createMany
- _fixture
- generated
- composites-list-create
- _fixture
- generated
- composites-list-deleteMany
- _fixture
- generated
- composites-list-delete
- _fixture
- generated
- composites-list-findFirst
- _fixture
- generated
- composites-list-findMany
- _fixture
- generated
- composites-list-update
- _fixture
- generated
- composites-list-upsert-create
- _fixture
- generated
- composites-object-createMany
- _fixture
- generated
- composites-object-deleteMany
- _fixture
- generated
- composites-object-delete
- _fixture
- generated
- composites-object-findFirst
- _fixture
- generated
- composites-object-findMany
- _fixture
- generated
- composites-object-upsert-create
- _fixture
- generated
- issues-13089-dollar-in-search
- _fixture
- generated
- issues-14954-date-batch
- _fixture
- generated
- issues-21631-batching-in-transaction
- _fixture
- generated
- issues-29174-jsonb-parameter-regression
- _fixture
- generated
- issues-29267-uint8array-in-json
- _fixture
- generated
- issues-5952-decimal-batch
- _fixture
- generated
- relation-mode-17255-mixed-actions
- _fixture
- generated
- relation-mode-17255-same-actions
- _fixture
- generated
- relation-mode-gh-1-to-1
- _fixture
- cascade-map
- generated
- cascade-plain
- generated
- noaction-map
- generated
- noaction-plain
- generated
- restrict-map
- generated
- restrict-plain
- generated
- setnull-map
- generated
- setnull-plain
- generated
- relation-mode-gh-1-to-n
- _fixture
- cascade-map
- generated
- cascade-plain
- generated
- noaction-map
- generated
- noaction-plain
- generated
- restrict-map
- generated
- restrict-plain
- generated
- setnull-map
- generated
- setnull-plain
- generated
- relation-mode-gh-m-to-n
- _fixture
- cascade-map
- cascade-nomap
- generated
- default-map
- default-nomap
- generated
- noaction-map
- noaction-nomap
- generated
- restrict-map
- restrict-nomap
- generated
- non-ported/functional
- composites-list-aggregate
- composites-list-count
- composites-list-findFirst
- composites-list-findMany
- composites-list-update
- composites-object-aggregate
- composites-object-count
- composites-object-findFirst
- composites-object-findMany
- issues-11740-transaction-stored-query
- issues-12862-errors-are-obfuscated-by-interactive-transactions
- issues-14954-date-batch
- issues-18276-batch-order
- issues-20724
- issues-21631-batching-in-transaction
- issues-5952-decimal-batch
- relation-load-strategy-unsupported
- relation-load-strategy
- relation-mode-17255-mixed-actions
- relation-mode-17255-same-actions
- relation-mode-gh-1-to-1
- relation-mode-gh-1-to-n
- relation-mode-gh-m-to-n-mongodb
- relation-mode-gh-m-to-n
- relation-mode-m-n-mongodb-at-map
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| |||
Lines changed: 68 additions & 68 deletions
Large diffs are not rendered by default.
Lines changed: 34 additions & 34 deletions
Large diffs are not rendered by default.
Lines changed: 129 additions & 129 deletions
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
Lines changed: 36 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
Lines changed: 217 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments