Skip to content

Commit 6fa9c82

Browse files
project(functional-indexes): the Supabase twin pair is scenario J, not an exact twin
S4-2 review observation: the reference pair differs in unique, so the exact-twin guard rests on its unit tests, not a live fixture. Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io>
1 parent f294bbd commit 6fa9c82

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

projects/functional-indexes/specs/infer-round-trip.spec.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ contract infer → emit → db verify: zero issues → db update --dry-run: zero
2525

2626
### 2. The duplicate-guard carry-over
2727

28-
`validateStorageSemantics` (`validators.ts:532–556`): the duplicate-index rejection keys by content signature, which would reject a legally-twinned database (two content-identical indexes under different names — the Supabase reference carries one). For **exact-mode** entries (no `prefix`) the guard keys by `name`; managed entries keep the content key (two managed twins would collide on wire name anyway — same hash — so the content key is already equivalent there; state that in a comment). A signed twin-carrying database validates.
28+
`validateStorageSemantics` (`validators.ts:532–556`): the duplicate-index rejection keys by content signature, which would reject a legally-twinned database (two content-identical indexes under different names — legal in Postgres; the Supabase reference's same-tuple pair differs in `unique`, so it exercises scenario J rather than this guard, which is proven by unit tests). For **exact-mode** entries (no `prefix`) the guard keys by `name`; managed entries keep the content key (two managed twins would collide on wire name anyway — same hash — so the content key is already equivalent there; state that in a comment). A signed twin-carrying database validates.
2929

3030
### 3. Policy block emission (D8 policy half)
3131

0 commit comments

Comments
 (0)