@prisma/orm-family-sql 8.0.0-rc.16-dev.9 → 8.0.0-rc.17-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ast-Bf6J9_ra.d.mts → ast-Bmb-2vbO.d.mts} +3 -3
- package/dist/{ast-Bf6J9_ra.d.mts.map → ast-Bmb-2vbO.d.mts.map} +1 -1
- package/dist/{authoring-entity-types-CZ-vdwYS-Bq3LXsCn.d.mts → authoring-entity-types-CZ-vdwYS-BLYHcBXG.d.mts} +2 -2
- package/dist/{authoring-entity-types-CZ-vdwYS-Bq3LXsCn.d.mts.map → authoring-entity-types-CZ-vdwYS-BLYHcBXG.d.mts.map} +1 -1
- package/dist/{authoring-type-constructors-0Iv2zdwS-CVl4womm.mjs → authoring-type-constructors-0Iv2zdwS-ClKI8Uuk.mjs} +2 -2
- package/dist/{authoring-type-constructors-0Iv2zdwS-CVl4womm.mjs.map → authoring-type-constructors-0Iv2zdwS-ClKI8Uuk.mjs.map} +1 -1
- package/dist/builder.d.mts +2 -2
- package/dist/builder__runtime.d.mts +9 -9
- package/dist/builder__runtime.mjs +1 -1
- package/dist/builder__types.d.mts +2 -2
- package/dist/{codec-descriptor-registry-D7bl9ayf.mjs → codec-descriptor-registry-CdIIOkuE.mjs} +2 -2
- package/dist/{codec-descriptor-registry-D7bl9ayf.mjs.map → codec-descriptor-registry-CdIIOkuE.mjs.map} +1 -1
- package/dist/{config-types-DeIF6WyF.mjs → config-types-D0sxpKAN.mjs} +2 -2
- package/dist/{config-types-DeIF6WyF.mjs.map → config-types-D0sxpKAN.mjs.map} +1 -1
- package/dist/{config-types-Cag6qJnA.d.mts → config-types-DB6gRJ5K.d.mts} +4 -4
- package/dist/{config-types-Cag6qJnA.d.mts.map → config-types-DB6gRJ5K.d.mts.map} +1 -1
- package/dist/{contract-builder-BaJMQFAc.d.mts → contract-builder-V5pFHDv3.d.mts} +14 -11
- package/dist/contract-builder-V5pFHDv3.d.mts.map +1 -0
- package/dist/{contract-builder-BlFrYr97.mjs → contract-builder-tEax3I2q.mjs} +4 -4
- package/dist/{contract-builder-BlFrYr97.mjs.map → contract-builder-tEax3I2q.mjs.map} +1 -1
- package/dist/contract-emitter.mjs +1 -1
- package/dist/contract-prisma7__provider.d.mts +2 -2
- package/dist/contract-prisma7__provider.mjs +36 -8
- package/dist/contract-prisma7__provider.mjs.map +1 -1
- package/dist/contract-psl.d.mts +3 -3
- package/dist/contract-psl.mjs +1 -1
- package/dist/contract-psl__attribute-specs.d.mts +4 -4
- package/dist/contract-psl__attribute-specs.d.mts.map +1 -1
- package/dist/contract-psl__attribute-specs.mjs +1 -1
- package/dist/contract-psl__provider.d.mts +2 -2
- package/dist/contract-psl__provider.mjs +2 -2
- package/dist/contract-psl__provider.mjs.map +1 -1
- package/dist/contract-ts.d.mts +3 -3
- package/dist/contract-ts.mjs +3 -3
- package/dist/contract-ts__config-types.d.mts +1 -1
- package/dist/contract-ts__config-types.mjs +1 -1
- package/dist/contract-ts__contract-builder.d.mts +2 -2
- package/dist/contract-ts__contract-builder.mjs +2 -2
- package/dist/{contract-view-Cd6_tdxU.d.mts → contract-view-C1xX3yIj.d.mts} +2 -2
- package/dist/{contract-view-Cd6_tdxU.d.mts.map → contract-view-C1xX3yIj.d.mts.map} +1 -1
- package/dist/contract.d.mts +14 -14
- package/dist/contract.mjs +9 -8
- package/dist/contract__contract-view.d.mts +1 -1
- package/dist/contract__entity-kinds.d.mts +1 -1
- package/dist/contract__entity-kinds.mjs +1 -1
- package/dist/contract__factories.d.mts +1 -1
- package/dist/contract__factories.mjs +1 -1
- package/dist/contract__foreign-key-materialization.d.mts +2 -2
- package/dist/contract__foreign-key-materialization.mjs +3 -2
- package/dist/contract__index-type-validation.d.mts +1 -1
- package/dist/contract__referential-action-sql.d.mts +1 -1
- package/dist/contract__resolve-storage-table.d.mts +1 -1
- package/dist/contract__types.d.mts +6 -6
- package/dist/contract__types.mjs +3 -3
- package/dist/contract__validators.d.mts +1 -1
- package/dist/contract__validators.mjs +2 -2
- package/dist/{control-BkyDhucB.d.mts → control-B3Mb21Md.d.mts} +16 -16
- package/dist/{control-BkyDhucB.d.mts.map → control-B3Mb21Md.d.mts.map} +1 -1
- package/dist/{control-BRbds4vn.mjs → control-C5Yy0n3w.mjs} +10 -10
- package/dist/{control-BRbds4vn.mjs.map → control-C5Yy0n3w.mjs.map} +1 -1
- package/dist/control-adapter-BXQ29_fa.d.mts +1 -0
- package/dist/{control-adapter-CkFfBVei-Ba9JNrCN.d.mts → control-adapter-CkFfBVei-BLYeKcLW.d.mts} +6 -6
- package/dist/{control-adapter-CkFfBVei-Ba9JNrCN.d.mts.map → control-adapter-CkFfBVei-BLYeKcLW.d.mts.map} +1 -1
- package/dist/{db-D7R5zKiH-SEM04lcK.d.mts → db-D7R5zKiH-P7Tg4ZXk.d.mts} +9 -9
- package/dist/{db-D7R5zKiH-SEM04lcK.d.mts.map → db-D7R5zKiH-P7Tg4ZXk.d.mts.map} +1 -1
- package/dist/{ddl-types-DtKZjNtN-6TxFf4bH.d.mts → ddl-types-DtKZjNtN-CByECwns.d.mts} +4 -4
- package/dist/{ddl-types-DtKZjNtN-6TxFf4bH.d.mts.map → ddl-types-DtKZjNtN-CByECwns.d.mts.map} +1 -1
- package/dist/{derived-checks-DdguQPYm-BP57ljP8.mjs → derived-checks-D5zdlyyh-CPofdm1W.mjs} +30 -20
- package/dist/{derived-checks-DdguQPYm-BP57ljP8.mjs.map → derived-checks-D5zdlyyh-CPofdm1W.mjs.map} +1 -1
- package/dist/{derived-checks-DpPkO6Dt-BituyKFg.d.mts → derived-checks-DpPkO6Dt-D3M7YEr2.d.mts} +3 -3
- package/dist/{derived-checks-DpPkO6Dt-BituyKFg.d.mts.map → derived-checks-DpPkO6Dt-D3M7YEr2.d.mts.map} +1 -1
- package/dist/{diff-DMOqiT2h.d.mts → diff-CBqsNkxe.d.mts} +6 -6
- package/dist/{diff-DMOqiT2h.d.mts.map → diff-CBqsNkxe.d.mts.map} +1 -1
- package/dist/{dist-7hmkNQGd.mjs → dist-Dm_hQ-hh.mjs} +2 -2
- package/dist/{dist-7hmkNQGd.mjs.map → dist-Dm_hQ-hh.mjs.map} +1 -1
- package/dist/{entity-kinds-DCwkg9t7.d.mts → entity-kinds--HvqT50S.d.mts} +2 -2
- package/dist/{entity-kinds-DCwkg9t7.d.mts.map → entity-kinds--HvqT50S.d.mts.map} +1 -1
- package/dist/{entity-kinds-JlqzyFoo-kIaAUFyK.mjs → entity-kinds-O3V1K26U-B8TUrsX2.mjs} +16 -5
- package/dist/entity-kinds-O3V1K26U-B8TUrsX2.mjs.map +1 -0
- package/dist/{expression-B-QXMOmY.d.mts → expression-DE893va7.d.mts} +7 -7
- package/dist/{expression-B-QXMOmY.d.mts.map → expression-DE893va7.d.mts.map} +1 -1
- package/dist/{factories-BsUyFxsk.mjs → factories-Bp41Aity.mjs} +4 -3
- package/dist/factories-Bp41Aity.mjs.map +1 -0
- package/dist/{factories-CgVRbL8l.d.mts → factories-DzLBAAvj.d.mts} +4 -4
- package/dist/{factories-CgVRbL8l.d.mts.map → factories-DzLBAAvj.d.mts.map} +1 -1
- package/dist/family.d.mts +13 -13
- package/dist/family.mjs +6 -6
- package/dist/family__control-adapter.d.mts +2 -2
- package/dist/family__control.d.mts +4 -4
- package/dist/family__control.mjs +3 -3
- package/dist/family__diff.d.mts +2 -2
- package/dist/family__diff.mjs +1 -1
- package/dist/family__ir.d.mts +1 -1
- package/dist/family__ir.mjs +1 -1
- package/dist/family__migration.d.mts +1 -1
- package/dist/family__pack.d.mts +1 -1
- package/dist/family__pack.mjs +2 -2
- package/dist/family__psl-build.mjs +1 -1
- package/dist/family__psl-infer.d.mts +1 -1
- package/dist/family__psl-infer.mjs +1 -1
- package/dist/family__runtime.d.mts +2 -2
- package/dist/foreign-key-materialization-Cv3q8Pix.mjs +278 -0
- package/dist/foreign-key-materialization-Cv3q8Pix.mjs.map +1 -0
- package/dist/foreign-key-materialization-D0Ltg78T.d.mts +96 -0
- package/dist/foreign-key-materialization-D0Ltg78T.d.mts.map +1 -0
- package/dist/{foreign-key-C-iTPuRT-C9ip8zFx.d.mts → foreign-key-qkDFfG8t-Fyrzd0VI.d.mts} +20 -4
- package/dist/foreign-key-qkDFfG8t-Fyrzd0VI.d.mts.map +1 -0
- package/dist/{index-qOLTnfYz.d.mts → index-CnpTmyXs.d.mts} +3 -3
- package/dist/{index-qOLTnfYz.d.mts.map → index-CnpTmyXs.d.mts.map} +1 -1
- package/dist/index-equivalence-DswCiq5l-C7wLMPwF.mjs +109 -0
- package/dist/index-equivalence-DswCiq5l-C7wLMPwF.mjs.map +1 -0
- package/dist/{index-DYjWQAcJ.d.mts → index-oNRBExeI.d.mts} +11 -11
- package/dist/{index-DYjWQAcJ.d.mts.map → index-oNRBExeI.d.mts.map} +1 -1
- package/dist/{index-type-validation-BHppm9U-.d.mts → index-type-validation-B925ye4q.d.mts} +3 -3
- package/dist/{index-type-validation-BHppm9U-.d.mts.map → index-type-validation-B925ye4q.d.mts.map} +1 -1
- package/dist/{interpreter-BF5Xrf3W-bdklH78q.mjs → interpreter-DlG-2o64-DmykcFbp.mjs} +64 -17
- package/dist/interpreter-DlG-2o64-DmykcFbp.mjs.map +1 -0
- package/dist/{ir-BYHqe2mj.d.mts → ir-BPrf_vgX.d.mts} +3 -3
- package/dist/{ir-BYHqe2mj.d.mts.map → ir-BPrf_vgX.d.mts.map} +1 -1
- package/dist/middleware-DwaZ6s12.d.mts +1 -0
- package/dist/{middleware-mLwvcOLS-6Y52seRP.d.mts → middleware-mLwvcOLS-SaqhgsmA.d.mts} +2 -2
- package/dist/{middleware-mLwvcOLS-6Y52seRP.d.mts.map → middleware-mLwvcOLS-SaqhgsmA.d.mts.map} +1 -1
- package/dist/{migration-C5HGygKM.d.mts → migration-C_J49WKy.d.mts} +4 -4
- package/dist/{migration-C5HGygKM.d.mts.map → migration-C_J49WKy.d.mts.map} +1 -1
- package/dist/operations.d.mts +1 -1
- package/dist/orm-client.d.mts +15 -15
- package/dist/orm-client.mjs +1 -1
- package/dist/{pack-l0vLQrO8.d.mts → pack-DZtuLikU.d.mts} +3 -3
- package/dist/{pack-l0vLQrO8.d.mts.map → pack-DZtuLikU.d.mts.map} +1 -1
- package/dist/plan-Dhl03MtT.d.mts +2 -0
- package/dist/{plan-cGEaSXHv-2F5y-Dpy.d.mts → plan-cGEaSXHv-BeW-cC5v.d.mts} +4 -4
- package/dist/{plan-cGEaSXHv-2F5y-Dpy.d.mts.map → plan-cGEaSXHv-BeW-cC5v.d.mts.map} +1 -1
- package/dist/{prepared-statement-YtgdlN7e-DBJtJAm7.d.mts → prepared-statement-YtgdlN7e-CI1fD5IM.d.mts} +16 -16
- package/dist/{prepared-statement-YtgdlN7e-DBJtJAm7.d.mts.map → prepared-statement-YtgdlN7e-CI1fD5IM.d.mts.map} +1 -1
- package/dist/{psl-build-Di-cBOCv.mjs → psl-build-B5iMVWHu.mjs} +2 -2
- package/dist/{psl-build-Di-cBOCv.mjs.map → psl-build-B5iMVWHu.mjs.map} +1 -1
- package/dist/{psl-column-resolution-CNtNJ7g7-CR_auHUV.d.mts → psl-column-resolution-CNtNJ7g7-CEuutj8I.d.mts} +2 -2
- package/dist/{psl-column-resolution-CNtNJ7g7-CR_auHUV.d.mts.map → psl-column-resolution-CNtNJ7g7-CEuutj8I.d.mts.map} +1 -1
- package/dist/{psl-field-resolution-DUCrDnuq-DSxPrd-4.mjs → psl-field-resolution-BW0ZuqBd-Dv18ERa7.mjs} +6 -6
- package/dist/psl-field-resolution-BW0ZuqBd-Dv18ERa7.mjs.map +1 -0
- package/dist/{psl-infer-fU7LRjTx.mjs → psl-infer-B0yuv-j_.mjs} +22 -16
- package/dist/psl-infer-B0yuv-j_.mjs.map +1 -0
- package/dist/{psl-infer-Cm7eDSA-.d.mts → psl-infer-DkPZJnUM.d.mts} +11 -12
- package/dist/{psl-infer-Cm7eDSA-.d.mts.map → psl-infer-DkPZJnUM.d.mts.map} +1 -1
- package/dist/query-lane-context-BaoHpLsE.d.mts +1 -0
- package/dist/{query-lane-context-CJoNBspB-Ylhia3fC.d.mts → query-lane-context-CJoNBspB-CR_n8DNB.d.mts} +5 -5
- package/dist/{query-lane-context-CJoNBspB-Ylhia3fC.d.mts.map → query-lane-context-CJoNBspB-CR_n8DNB.d.mts.map} +1 -1
- package/dist/{referential-action-sql-DJ9ps6-S.d.mts → referential-action-sql-Cw1Q0YSd.d.mts} +2 -2
- package/dist/referential-action-sql-Cw1Q0YSd.d.mts.map +1 -0
- package/dist/relational-core.d.mts +11 -11
- package/dist/relational-core__aggregate-descriptor-registry.d.mts +1 -1
- package/dist/relational-core__ast.d.mts +3 -3
- package/dist/relational-core__codec-descriptor-registry.d.mts +4 -4
- package/dist/relational-core__codec-descriptor-registry.mjs +1 -1
- package/dist/relational-core__contract-free.d.mts +4 -4
- package/dist/relational-core__expression.d.mts +1 -1
- package/dist/relational-core__middleware.d.mts +2 -2
- package/dist/relational-core__plan.d.mts +3 -3
- package/dist/relational-core__query-lane-context.d.mts +2 -2
- package/dist/relational-core__types.d.mts +2 -2
- package/dist/{resolve-storage-table-Ba33K41A.d.mts → resolve-storage-table-B7m9cFy4.d.mts} +3 -3
- package/dist/{resolve-storage-table-Ba33K41A.d.mts.map → resolve-storage-table-B7m9cFy4.d.mts.map} +1 -1
- package/dist/{runtime-BUemUdMk.d.mts → runtime-Ca7PVQcJ.d.mts} +2 -2
- package/dist/{runtime-BUemUdMk.d.mts.map → runtime-Ca7PVQcJ.d.mts.map} +1 -1
- package/dist/runtime.d.mts +4 -4
- package/dist/runtime.mjs +2 -2
- package/dist/runtime__internal__prepared-query.d.mts +1 -1
- package/dist/{schema-differ-CqWOkoW9--uxNOini.d.mts → schema-differ-CqWOkoW9-BABSAGGB.d.mts} +3 -3
- package/dist/{schema-differ-CqWOkoW9--uxNOini.d.mts.map → schema-differ-CqWOkoW9-BABSAGGB.d.mts.map} +1 -1
- package/dist/{schema-verify-DIfHSB4I-CjYnmUuD.mjs → schema-verify-DIfHSB4I-Dx3Tq9hf.mjs} +2 -2
- package/dist/{schema-verify-DIfHSB4I-CjYnmUuD.mjs.map → schema-verify-DIfHSB4I-Dx3Tq9hf.mjs.map} +1 -1
- package/dist/{serialized-index-QAYy0fjm-zxvK3RBa.mjs → serialized-index-C26m_DWu-CnNi8WAI.mjs} +3 -3
- package/dist/{serialized-index-QAYy0fjm-zxvK3RBa.mjs.map → serialized-index-C26m_DWu-CnNi8WAI.mjs.map} +1 -1
- package/dist/{sql-contract-serializer-DDaAVCQr-CLDkZLXO.mjs → sql-contract-serializer-DDaAVCQr-c3jZiPS3.mjs} +4 -4
- package/dist/{sql-contract-serializer-DDaAVCQr-CLDkZLXO.mjs.map → sql-contract-serializer-DDaAVCQr-c3jZiPS3.mjs.map} +1 -1
- package/dist/{sql-execution-plan-C7XauPPu-BMi8hJlv.d.mts → sql-execution-plan-C7XauPPu-BFhGKvp4.d.mts} +2 -2
- package/dist/{sql-execution-plan-C7XauPPu-BMi8hJlv.d.mts.map → sql-execution-plan-C7XauPPu-BFhGKvp4.d.mts.map} +1 -1
- package/dist/{sql-storage-DSnnRQAf-DaHPnley.d.mts → sql-storage-BTlJLUID-O6fBB_am.d.mts} +3 -3
- package/dist/{sql-storage-DSnnRQAf-DaHPnley.d.mts.map → sql-storage-BTlJLUID-O6fBB_am.d.mts.map} +1 -1
- package/dist/{storage-table-CyL4CNMi-ByGZXmzd.mjs → storage-table-B7OSPl3G-EOodFPzq.mjs} +5 -3
- package/dist/storage-table-B7OSPl3G-EOodFPzq.mjs.map +1 -0
- package/dist/{storage-table-BBcKoAuF-CssyCQhM.d.mts → storage-table-WXeVNycx-tlFMnbig.d.mts} +3 -3
- package/dist/{storage-table-BBcKoAuF-CssyCQhM.d.mts.map → storage-table-WXeVNycx-tlFMnbig.d.mts.map} +1 -1
- package/dist/{types-BJQcLx-8-DSnaugR4.d.mts → types-BJQcLx-8-DY221fiX.d.mts} +10 -10
- package/dist/{types-BJQcLx-8-DSnaugR4.d.mts.map → types-BJQcLx-8-DY221fiX.d.mts.map} +1 -1
- package/dist/{types-DkOYK86-.d.mts → types-BURWzacK.d.mts} +5 -5
- package/dist/{types-DkOYK86-.d.mts.map → types-BURWzacK.d.mts.map} +1 -1
- package/dist/{types-DDHgx581.mjs → types-C7oOtFcJ.mjs} +2 -2
- package/dist/{types-DDHgx581.mjs.map → types-C7oOtFcJ.mjs.map} +1 -1
- package/dist/{types-CzxOObSY-CNWyrf87.d.mts → types-CzxOObSY-DEfjmbj1.d.mts} +7 -7
- package/dist/{types-CzxOObSY-CNWyrf87.d.mts.map → types-CzxOObSY-DEfjmbj1.d.mts.map} +1 -1
- package/dist/{types-DV040Uuq-Bu8CnbMa.d.mts → types-DFZhLz18-C_h0u-Zx.d.mts} +8 -7
- package/dist/types-DFZhLz18-C_h0u-Zx.d.mts.map +1 -0
- package/dist/types-DLjT0ADz.d.mts +1 -0
- package/dist/{types-Sh5HuaZE-C8I29pGQ.d.mts → types-Sh5HuaZE-B_FQUPng.d.mts} +2 -2
- package/dist/{types-Sh5HuaZE-C8I29pGQ.d.mts.map → types-Sh5HuaZE-B_FQUPng.d.mts.map} +1 -1
- package/dist/{validators-BAa0JKuB.d.mts → validators-Cr_FFJAG.d.mts} +5 -4
- package/dist/{validators-BAa0JKuB.d.mts.map → validators-Cr_FFJAG.d.mts.map} +1 -1
- package/dist/{validators-Xx-TKcx3.mjs → validators-oyDG5mVX.mjs} +22 -2
- package/dist/validators-oyDG5mVX.mjs.map +1 -0
- package/package.json +18 -18
- package/dist/contract-builder-BaJMQFAc.d.mts.map +0 -1
- package/dist/control-adapter-CD_gz6TI.d.mts +0 -1
- package/dist/entity-kinds-JlqzyFoo-kIaAUFyK.mjs.map +0 -1
- package/dist/factories-BsUyFxsk.mjs.map +0 -1
- package/dist/foreign-key-C-iTPuRT-C9ip8zFx.d.mts.map +0 -1
- package/dist/foreign-key-materialization-IGfTKmHV.mjs +0 -73
- package/dist/foreign-key-materialization-IGfTKmHV.mjs.map +0 -1
- package/dist/foreign-key-materialization-U4M9cqKd.d.mts +0 -65
- package/dist/foreign-key-materialization-U4M9cqKd.d.mts.map +0 -1
- package/dist/interpreter-BF5Xrf3W-bdklH78q.mjs.map +0 -1
- package/dist/middleware-BFoORv3y.d.mts +0 -1
- package/dist/plan-CmfWjqtI.d.mts +0 -2
- package/dist/psl-field-resolution-DUCrDnuq-DSxPrd-4.mjs.map +0 -1
- package/dist/psl-infer-fU7LRjTx.mjs.map +0 -1
- package/dist/query-lane-context-qK5s2okl.d.mts +0 -1
- package/dist/referential-action-sql-DJ9ps6-S.d.mts.map +0 -1
- package/dist/storage-table-CyL4CNMi-ByGZXmzd.mjs.map +0 -1
- package/dist/types-14L6c26e.d.mts +0 -1
- package/dist/types-DV040Uuq-Bu8CnbMa.d.mts.map +0 -1
- package/dist/validators-Xx-TKcx3.mjs.map +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { s as SqlIndexIR } from "./types-Cz_bcUWN-CC3lFQOi.mjs";
|
|
2
|
+
//#region ../../../2-sql/1-core/contract/dist/index-equivalence-DswCiq5l.mjs
|
|
3
|
+
/** The schema node the planner builds for an index the contract states, which is what it compares. */
|
|
4
|
+
function indexNodeOf(index) {
|
|
5
|
+
return new SqlIndexIR({
|
|
6
|
+
...index,
|
|
7
|
+
annotations: void 0,
|
|
8
|
+
dependsOn: void 0,
|
|
9
|
+
partial: index.where !== void 0
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
/** Whether the planner sees two indexes as the same index apart from their names. */
|
|
13
|
+
function identicalIndexes(a, b) {
|
|
14
|
+
return a.contentEquals(b, {
|
|
15
|
+
columnPresence: "matching",
|
|
16
|
+
bodies: "verbatim"
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/** The index the contract build derives to back a foreign key on `columns`, as the planner sees it. */
|
|
20
|
+
function derivedBackingIndexNode(columns) {
|
|
21
|
+
return new SqlIndexIR({
|
|
22
|
+
naming: {
|
|
23
|
+
kind: "exact",
|
|
24
|
+
name: "derived backing index"
|
|
25
|
+
},
|
|
26
|
+
columns,
|
|
27
|
+
where: void 0,
|
|
28
|
+
unique: false,
|
|
29
|
+
type: void 0,
|
|
30
|
+
options: void 0,
|
|
31
|
+
annotations: void 0,
|
|
32
|
+
dependsOn: void 0,
|
|
33
|
+
partial: false
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function sameColumns(a, b) {
|
|
37
|
+
return a.length === b.length && startsWithColumns(a, b);
|
|
38
|
+
}
|
|
39
|
+
/** Whether `columns` begins with `leading`, in order: an index or key on such columns serves lookups on `leading`. */
|
|
40
|
+
function startsWithColumns(columns, leading) {
|
|
41
|
+
return leading.length <= columns.length && leading.every((column, position) => column === columns[position]);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The key that serves every lookup of `index`, when `index` is a plain non-unique index: one the planner sees as identical to an index derived on its columns. A unique index serves only when it has no predicate.
|
|
45
|
+
*/
|
|
46
|
+
function servingKey(index, table) {
|
|
47
|
+
const { columns } = index;
|
|
48
|
+
if (columns === void 0 || !identicalIndexes(index, derivedBackingIndexNode(columns))) return;
|
|
49
|
+
if (table.primaryKey !== void 0 && sameColumns(table.primaryKey.columns, columns)) return {
|
|
50
|
+
kind: "primaryKey",
|
|
51
|
+
primaryKey: table.primaryKey
|
|
52
|
+
};
|
|
53
|
+
const unique = table.uniques.find((constraint) => sameColumns(constraint.columns, columns));
|
|
54
|
+
if (unique !== void 0) return {
|
|
55
|
+
kind: "uniqueConstraint",
|
|
56
|
+
unique
|
|
57
|
+
};
|
|
58
|
+
const uniqueIndex = table.indexes.find((candidate) => {
|
|
59
|
+
const node = table.nodeOf(candidate);
|
|
60
|
+
return node.unique && node.where === void 0 && node.columns !== void 0 && sameColumns(node.columns, columns);
|
|
61
|
+
});
|
|
62
|
+
return uniqueIndex === void 0 ? void 0 : {
|
|
63
|
+
kind: "index",
|
|
64
|
+
index: uniqueIndex
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Whether the contract build would drop the backing index it derives for a foreign key on `columns`, because the table already has an identical index or a key serving its lookups. `contract infer` asks this of a live table to decide whether a relation needs `index: false`.
|
|
69
|
+
*/
|
|
70
|
+
function derivedBackingIndexIsRedundant(columns, table) {
|
|
71
|
+
const derived = derivedBackingIndexNode(columns);
|
|
72
|
+
return table.indexes.some((index) => identicalIndexes(table.nodeOf(index), derived)) || servingKey(derived, table) !== void 0;
|
|
73
|
+
}
|
|
74
|
+
/** Whether the planner sees `index` as a plain index: its columns, uniqueness and nothing else. */
|
|
75
|
+
function isPlainIndexNode(index) {
|
|
76
|
+
if (index.columns === void 0) return false;
|
|
77
|
+
return identicalIndexes(index, new SqlIndexIR({
|
|
78
|
+
naming: {
|
|
79
|
+
kind: "exact",
|
|
80
|
+
name: "plain index"
|
|
81
|
+
},
|
|
82
|
+
columns: index.columns,
|
|
83
|
+
where: void 0,
|
|
84
|
+
unique: index.unique,
|
|
85
|
+
type: void 0,
|
|
86
|
+
options: void 0,
|
|
87
|
+
annotations: void 0,
|
|
88
|
+
dependsOn: void 0,
|
|
89
|
+
partial: false
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The name of an object of the table that serves lookups on `columns` although the build would keep a derived backing index beside it: a named primary key or unique constraint, or a plain index, whose first columns are `columns`. A source that derives no backing index of its own names it on the relation instead of writing `index: false`.
|
|
94
|
+
*/
|
|
95
|
+
function leadingBackingObjectName(columns, table) {
|
|
96
|
+
const { primaryKey } = table;
|
|
97
|
+
if (primaryKey?.name !== void 0 && startsWithColumns(primaryKey.columns, columns)) return primaryKey.name;
|
|
98
|
+
const unique = table.uniques.find((constraint) => constraint.name !== void 0 && startsWithColumns(constraint.columns, columns));
|
|
99
|
+
if (unique?.name !== void 0) return unique.name;
|
|
100
|
+
const index = table.indexes.find((candidate) => {
|
|
101
|
+
const node = table.nodeOf(candidate);
|
|
102
|
+
return node.columns !== void 0 && startsWithColumns(node.columns, columns) && isPlainIndexNode(node);
|
|
103
|
+
});
|
|
104
|
+
return index === void 0 ? void 0 : table.nameOf(index);
|
|
105
|
+
}
|
|
106
|
+
//#endregion
|
|
107
|
+
export { sameColumns as a, leadingBackingObjectName as i, identicalIndexes as n, servingKey as o, indexNodeOf as r, startsWithColumns as s, derivedBackingIndexIsRedundant as t };
|
|
108
|
+
|
|
109
|
+
//# sourceMappingURL=index-equivalence-DswCiq5l-C7wLMPwF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-equivalence-DswCiq5l-C7wLMPwF.mjs","names":[],"sources":["../../../../2-sql/1-core/contract/dist/index-equivalence-DswCiq5l.mjs"],"sourcesContent":["import { SqlIndexIR } from \"@internal/sql-schema-ir/types\";\n//#region src/index-equivalence.ts\n/** The schema node the planner builds for an index the contract states, which is what it compares. */\nfunction indexNodeOf(index) {\n\treturn new SqlIndexIR({\n\t\t...index,\n\t\tannotations: void 0,\n\t\tdependsOn: void 0,\n\t\tpartial: index.where !== void 0\n\t});\n}\n/** Whether the planner sees two indexes as the same index apart from their names. */\nfunction identicalIndexes(a, b) {\n\treturn a.contentEquals(b, {\n\t\tcolumnPresence: \"matching\",\n\t\tbodies: \"verbatim\"\n\t});\n}\n/** The index the contract build derives to back a foreign key on `columns`, as the planner sees it. */\nfunction derivedBackingIndexNode(columns) {\n\treturn new SqlIndexIR({\n\t\tnaming: {\n\t\t\tkind: \"exact\",\n\t\t\tname: \"derived backing index\"\n\t\t},\n\t\tcolumns,\n\t\twhere: void 0,\n\t\tunique: false,\n\t\ttype: void 0,\n\t\toptions: void 0,\n\t\tannotations: void 0,\n\t\tdependsOn: void 0,\n\t\tpartial: false\n\t});\n}\nfunction sameColumns(a, b) {\n\treturn a.length === b.length && startsWithColumns(a, b);\n}\n/** Whether `columns` begins with `leading`, in order: an index or key on such columns serves lookups on `leading`. */\nfunction startsWithColumns(columns, leading) {\n\treturn leading.length <= columns.length && leading.every((column, position) => column === columns[position]);\n}\n/**\n* The key that serves every lookup of `index`, when `index` is a plain non-unique index: one the planner sees as identical to an index derived on its columns. A unique index serves only when it has no predicate.\n*/\nfunction servingKey(index, table) {\n\tconst { columns } = index;\n\tif (columns === void 0 || !identicalIndexes(index, derivedBackingIndexNode(columns))) return;\n\tif (table.primaryKey !== void 0 && sameColumns(table.primaryKey.columns, columns)) return {\n\t\tkind: \"primaryKey\",\n\t\tprimaryKey: table.primaryKey\n\t};\n\tconst unique = table.uniques.find((constraint) => sameColumns(constraint.columns, columns));\n\tif (unique !== void 0) return {\n\t\tkind: \"uniqueConstraint\",\n\t\tunique\n\t};\n\tconst uniqueIndex = table.indexes.find((candidate) => {\n\t\tconst node = table.nodeOf(candidate);\n\t\treturn node.unique && node.where === void 0 && node.columns !== void 0 && sameColumns(node.columns, columns);\n\t});\n\treturn uniqueIndex === void 0 ? void 0 : {\n\t\tkind: \"index\",\n\t\tindex: uniqueIndex\n\t};\n}\n/**\n* Whether the contract build would drop the backing index it derives for a foreign key on `columns`, because the table already has an identical index or a key serving its lookups. `contract infer` asks this of a live table to decide whether a relation needs `index: false`.\n*/\nfunction derivedBackingIndexIsRedundant(columns, table) {\n\tconst derived = derivedBackingIndexNode(columns);\n\treturn table.indexes.some((index) => identicalIndexes(table.nodeOf(index), derived)) || servingKey(derived, table) !== void 0;\n}\n/** Whether the planner sees `index` as a plain index: its columns, uniqueness and nothing else. */\nfunction isPlainIndexNode(index) {\n\tif (index.columns === void 0) return false;\n\treturn identicalIndexes(index, new SqlIndexIR({\n\t\tnaming: {\n\t\t\tkind: \"exact\",\n\t\t\tname: \"plain index\"\n\t\t},\n\t\tcolumns: index.columns,\n\t\twhere: void 0,\n\t\tunique: index.unique,\n\t\ttype: void 0,\n\t\toptions: void 0,\n\t\tannotations: void 0,\n\t\tdependsOn: void 0,\n\t\tpartial: false\n\t}));\n}\n/**\n* The name of an object of the table that serves lookups on `columns` although the build would keep a derived backing index beside it: a named primary key or unique constraint, or a plain index, whose first columns are `columns`. A source that derives no backing index of its own names it on the relation instead of writing `index: false`.\n*/\nfunction leadingBackingObjectName(columns, table) {\n\tconst { primaryKey } = table;\n\tif (primaryKey?.name !== void 0 && startsWithColumns(primaryKey.columns, columns)) return primaryKey.name;\n\tconst unique = table.uniques.find((constraint) => constraint.name !== void 0 && startsWithColumns(constraint.columns, columns));\n\tif (unique?.name !== void 0) return unique.name;\n\tconst index = table.indexes.find((candidate) => {\n\t\tconst node = table.nodeOf(candidate);\n\t\treturn node.columns !== void 0 && startsWithColumns(node.columns, columns) && isPlainIndexNode(node);\n\t});\n\treturn index === void 0 ? void 0 : table.nameOf(index);\n}\n//#endregion\nexport { sameColumns as a, leadingBackingObjectName as i, identicalIndexes as n, servingKey as o, indexNodeOf as r, startsWithColumns as s, derivedBackingIndexIsRedundant as t };\n\n//# sourceMappingURL=index-equivalence-DswCiq5l.mjs.map"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { l as SqlStorage } from "./sql-storage-
|
|
2
|
-
import "./types-
|
|
3
|
-
import { h as AnyQueryAst, ht as LoweredStatement, k as ContractCodecRegistry } from "./types-Sh5HuaZE-
|
|
4
|
-
import { t as Adapter } from "./ast-
|
|
5
|
-
import { n as SqlQueryPlan } from "./plan-cGEaSXHv-
|
|
6
|
-
import { t as SqlExecutionPlan } from "./sql-execution-plan-C7XauPPu-
|
|
7
|
-
import "./plan-
|
|
8
|
-
import { t as CodecDescriptorRegistry } from "./query-lane-context-CJoNBspB-
|
|
9
|
-
import "./query-lane-context-
|
|
10
|
-
import { k as SqlMiddleware } from "./prepared-statement-YtgdlN7e-
|
|
1
|
+
import { l as SqlStorage } from "./sql-storage-BTlJLUID-O6fBB_am.mjs";
|
|
2
|
+
import "./types-BURWzacK.mjs";
|
|
3
|
+
import { h as AnyQueryAst, ht as LoweredStatement, k as ContractCodecRegistry } from "./types-Sh5HuaZE-B_FQUPng.mjs";
|
|
4
|
+
import { t as Adapter } from "./ast-Bmb-2vbO.mjs";
|
|
5
|
+
import { n as SqlQueryPlan } from "./plan-cGEaSXHv-BeW-cC5v.mjs";
|
|
6
|
+
import { t as SqlExecutionPlan } from "./sql-execution-plan-C7XauPPu-BFhGKvp4.mjs";
|
|
7
|
+
import "./plan-Dhl03MtT.mjs";
|
|
8
|
+
import { t as CodecDescriptorRegistry } from "./query-lane-context-CJoNBspB-CR_n8DNB.mjs";
|
|
9
|
+
import "./query-lane-context-BaoHpLsE.mjs";
|
|
10
|
+
import { k as SqlMiddleware } from "./prepared-statement-YtgdlN7e-CI1fD5IM.mjs";
|
|
11
11
|
import { Contract } from "@prisma/orm-framework/contract/types";
|
|
12
12
|
import { AfterExecuteResult as AfterExecuteResult$1, AfterQueryResult as AfterQueryResult$1, ExecuteInterceptResult as ExecuteInterceptResult$1, QueryInterceptResult as QueryInterceptResult$1, RuntimeLog as Log } from "@prisma/orm-framework/components/runtime";
|
|
13
13
|
//#region ../../../2-sql/5-runtime/dist/index.d.mts
|
|
@@ -81,4 +81,4 @@ interface LintsOptions {
|
|
|
81
81
|
declare function lints(options?: LintsOptions): SqlMiddleware;
|
|
82
82
|
//#endregion
|
|
83
83
|
export { LintsOptions as a, budgets as c, lints as d, lowerSqlPlan as f, ExecuteInterceptResult$1 as i, createAstCodecRegistry as l, validateContractCodecMappings as m, AfterQueryResult$1 as n, Log as o, validateCodecRegistryCompleteness as p, BudgetsOptions as r, QueryInterceptResult$1 as s, AfterExecuteResult$1 as t, extractCodecIds as u };
|
|
84
|
-
//# sourceMappingURL=index-
|
|
84
|
+
//# sourceMappingURL=index-oNRBExeI.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-oNRBExeI.d.mts","names":[],"sources":["../../../../2-sql/5-runtime/dist/index.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;iBAiBiB,uBAAuB,aAAa,0BAA0B;;;iBAG9D,gBAAgB,UAAU,SAAS,cAAc;iBACjD,8BAA8B,UAAU,yBAAyB,UAAU,SAAS;iBACpF,kCAAkC,UAAU,yBAAyB,UAAU,SAAS;;;;;;;;;;;;iBAYxF,aAAa,KAAK,SAAS,QAAQ,aAAa,SAAS,aAAa,mBAAmB,UAAU,SAAS,aAAa,WAAW,aAAa,OAAO,iBAAiB;;;UAGhL;WACC;WACA;WACA,YAAY;WACZ;WACA;aACE;aACA;;;iBAGI,QAAQ,UAAU,iBAAiB;;;UAG1C;WACC;aACE;aACA;aACA;aACA;aACA;;WAEF;;;;;;;;;;;;;;;;iBAgBM,MAAM,UAAU,eAAe"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { l as SqlStorage } from "./sql-storage-
|
|
2
|
-
import "./types-
|
|
1
|
+
import { l as SqlStorage } from "./sql-storage-BTlJLUID-O6fBB_am.mjs";
|
|
2
|
+
import "./types-DFZhLz18-C_h0u-Zx.mjs";
|
|
3
3
|
import { a as IndexTypeRegistry } from "./index-types-DPVhsW0v-D-BikM4h.mjs";
|
|
4
4
|
import { Contract } from "@prisma/orm-framework/contract/types";
|
|
5
5
|
//#region ../../../2-sql/1-core/contract/dist/index-type-validation.d.mts
|
|
@@ -7,4 +7,4 @@ import { Contract } from "@prisma/orm-framework/contract/types";
|
|
|
7
7
|
declare function validateIndexTypes(contract: Contract<SqlStorage>, indexTypeRegistry: IndexTypeRegistry): void;
|
|
8
8
|
//#endregion
|
|
9
9
|
export { validateIndexTypes as t };
|
|
10
|
-
//# sourceMappingURL=index-type-validation-
|
|
10
|
+
//# sourceMappingURL=index-type-validation-B925ye4q.d.mts.map
|
package/dist/{index-type-validation-BHppm9U-.d.mts.map → index-type-validation-B925ye4q.d.mts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-type-validation-
|
|
1
|
+
{"version":3,"file":"index-type-validation-B925ye4q.d.mts","names":[],"sources":["../../../../2-sql/1-core/contract/dist/index-type-validation.d.mts"],"mappings":";;;;;;iBAKiB,mBAAmB,UAAU,SAAS,aAAa,mBAAmB"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { n as isAuthoredIndexInput } from "./index-naming-Cj1Anq-T-NX841eiU.mjs";
|
|
2
2
|
import { n as providesPslEntityPlacement } from "./entity-handle-lowering-hook-B3atrRKX.mjs";
|
|
3
|
-
import
|
|
3
|
+
import "./foreign-key-materialization-Cv3q8Pix.mjs";
|
|
4
|
+
import { d as resolvedTypeParams, t as CODEC_INSTANCE_KIND } from "./types-C7oOtFcJ.mjs";
|
|
4
5
|
import { t as deriveValueSetFromEntity } from "./value-set-derivation-hook-Di9JZ0X7.mjs";
|
|
5
|
-
import { n as buildSqlContractFromDefinition } from "./derived-checks-
|
|
6
|
-
import { S as toNamedTypeFieldDescriptor, b as sqlAttributeSpecs, c as getAuthoringEntity, d as instantiatePslTypeConstructor, f as interpretFieldAttribute, g as modelCoordinateKey, h as modelAttributeSpecsFrom, i as contractError, l as getNamedArgument, m as mapFieldNamesToColumns, n as bareTypeConstructorOf, o as formatDbAttributeMigrationMessage, p as interpretModelAttribute, r as collectResolvedFields, s as getAttribute, t as PSL_CHECK_ON_STI_VARIANT, v as readWrittenNumberForCodec, x as storageName, y as resolveFieldTypeDescriptor } from "./psl-field-resolution-
|
|
6
|
+
import { n as buildSqlContractFromDefinition } from "./derived-checks-D5zdlyyh-CPofdm1W.mjs";
|
|
7
|
+
import { S as toNamedTypeFieldDescriptor, b as sqlAttributeSpecs, c as getAuthoringEntity, d as instantiatePslTypeConstructor, f as interpretFieldAttribute, g as modelCoordinateKey, h as modelAttributeSpecsFrom, i as contractError, l as getNamedArgument, m as mapFieldNamesToColumns, n as bareTypeConstructorOf, o as formatDbAttributeMigrationMessage, p as interpretModelAttribute, r as collectResolvedFields, s as getAttribute, t as PSL_CHECK_ON_STI_VARIANT, v as readWrittenNumberForCodec, x as storageName, y as resolveFieldTypeDescriptor } from "./psl-field-resolution-BW0ZuqBd-Dv18ERa7.mjs";
|
|
7
8
|
import { t as defaultTableName } from "./default-table-name-BfFY8qYR-lHNcVmY5.mjs";
|
|
9
|
+
import { isStructuredError } from "@prisma/orm-framework/utils/structured-error";
|
|
8
10
|
import { instantiateAuthoringEntityType, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, isAuthoringModelAttributeDescriptor } from "@prisma/orm-framework/components/authoring";
|
|
9
11
|
import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
|
|
10
12
|
import { blindCast } from "@prisma/orm-framework/utils/casts";
|
|
@@ -18,7 +20,7 @@ import { notOk, ok } from "@prisma/orm-framework/utils/result";
|
|
|
18
20
|
import { contributedTypeOf, createPslDiagnosticCollector, diagnosticSource, findBlockDescriptor, interpretExtensionBlocks, nodePslSpan, typeReferenceNode } from "@prisma/orm-framework/psl-parser";
|
|
19
21
|
import { claimedBlockKeywords, enumMemberAttributeDiagnostics, fkRelationPairKey, requiredOneToOneBackrelationDiagnostic, unsupportedBlockDiagnostic } from "@prisma/orm-framework/psl-parser/interpret";
|
|
20
22
|
import { UNBOUND_PSL_NAMESPACE_NAME, UNSPECIFIED_PSL_NAMESPACE_ID } from "@prisma/orm-framework/components/psl-ast";
|
|
21
|
-
//#region ../../../2-sql/2-authoring/contract-psl/dist/interpreter-
|
|
23
|
+
//#region ../../../2-sql/2-authoring/contract-psl/dist/interpreter-DlG-2o64.mjs
|
|
22
24
|
function baseColumnDescriptor(resolution, enumTypeDescriptors) {
|
|
23
25
|
if (resolution?.kind === "block") return enumTypeDescriptors.get(resolution.symbol);
|
|
24
26
|
const scalar = bareTypeConstructorOf(resolution);
|
|
@@ -1087,6 +1089,7 @@ function buildModelNodeFromPsl(input) {
|
|
|
1087
1089
|
throw new InternalError(`Model attribute "@@${modelAttribute.name}" is registered but has no interpreter branch`);
|
|
1088
1090
|
}
|
|
1089
1091
|
const resultFkRelationMetadata = [];
|
|
1092
|
+
const relationIndexLocations = [];
|
|
1090
1093
|
const resultInvalidFkPairings = [];
|
|
1091
1094
|
const resultCrossSpaceRelations = [];
|
|
1092
1095
|
for (const relationAttribute of relationAttributes) {
|
|
@@ -1188,6 +1191,13 @@ function buildModelNodeFromPsl(input) {
|
|
|
1188
1191
|
...ifDefined("onUpdate", onUpdate),
|
|
1189
1192
|
...ifDefined("index", parsedRelation.index)
|
|
1190
1193
|
});
|
|
1194
|
+
if (typeof parsedRelation.index === "string") relationIndexLocations.push({
|
|
1195
|
+
namespaceId: modelNamespaceId ?? input.defaultNamespaceId,
|
|
1196
|
+
tableName,
|
|
1197
|
+
columns: localColumns,
|
|
1198
|
+
index: parsedRelation.index,
|
|
1199
|
+
location: source.at(relationAttribute.relation.span)
|
|
1200
|
+
});
|
|
1191
1201
|
resultCrossSpaceRelations.push({
|
|
1192
1202
|
fieldName: relationAttribute.field.name,
|
|
1193
1203
|
toModel: fieldTypeName,
|
|
@@ -1293,6 +1303,13 @@ function buildModelNodeFromPsl(input) {
|
|
|
1293
1303
|
...ifDefined("onUpdate", onUpdate),
|
|
1294
1304
|
...ifDefined("index", parsedRelation.index)
|
|
1295
1305
|
});
|
|
1306
|
+
if (typeof parsedRelation.index === "string") relationIndexLocations.push({
|
|
1307
|
+
namespaceId: modelNamespaceId ?? input.defaultNamespaceId,
|
|
1308
|
+
tableName,
|
|
1309
|
+
columns: localColumns,
|
|
1310
|
+
index: parsedRelation.index,
|
|
1311
|
+
location: source.at(relationAttribute.relation.span)
|
|
1312
|
+
});
|
|
1296
1313
|
resultFkRelationMetadata.push({
|
|
1297
1314
|
declaringModelName: model,
|
|
1298
1315
|
declaringFieldName: relationAttribute.field.name,
|
|
@@ -1340,6 +1357,7 @@ function buildModelNodeFromPsl(input) {
|
|
|
1340
1357
|
...ifDefined("control", controlPolicy)
|
|
1341
1358
|
},
|
|
1342
1359
|
fkRelationMetadata: resultFkRelationMetadata,
|
|
1360
|
+
relationIndexLocations,
|
|
1343
1361
|
invalidFkPairings: resultInvalidFkPairings,
|
|
1344
1362
|
crossSpaceRelations: resultCrossSpaceRelations,
|
|
1345
1363
|
backrelationCandidates: resultBackrelationCandidates,
|
|
@@ -1618,7 +1636,6 @@ function materializeMtiVariantStorageLinks(modelNodes, baseDeclarations, stiVari
|
|
|
1618
1636
|
...ifDefined("namespaceId", baseNode.namespaceId)
|
|
1619
1637
|
},
|
|
1620
1638
|
constraint: true,
|
|
1621
|
-
index: false,
|
|
1622
1639
|
onDelete: "cascade"
|
|
1623
1640
|
};
|
|
1624
1641
|
return {
|
|
@@ -1733,6 +1750,19 @@ function relationTargetKindLabel(resolution) {
|
|
|
1733
1750
|
default: return;
|
|
1734
1751
|
}
|
|
1735
1752
|
}
|
|
1753
|
+
/**
|
|
1754
|
+
* The relation a refusal of `index: "<name>"` belongs to, and the message to report there; `undefined` for every other error.
|
|
1755
|
+
*/
|
|
1756
|
+
function relationIndexRefusal(error, locations) {
|
|
1757
|
+
if (!isStructuredError(error) || error.meta?.["reason"] !== "foreign-key-index-unresolved") return;
|
|
1758
|
+
const { namespaceId, tableName, columns, index } = error.meta ?? {};
|
|
1759
|
+
const at = locations.find((candidate) => candidate.namespaceId === namespaceId && candidate.tableName === tableName && candidate.index === index && Array.isArray(columns) && candidate.columns.length === columns.length && candidate.columns.every((column, position) => column === columns[position]));
|
|
1760
|
+
if (at === void 0) return void 0;
|
|
1761
|
+
return {
|
|
1762
|
+
at,
|
|
1763
|
+
message: error.fix === void 0 ? error.message : `${error.message} ${error.fix}`
|
|
1764
|
+
};
|
|
1765
|
+
}
|
|
1736
1766
|
function interpretPslDocumentToSqlContract(input) {
|
|
1737
1767
|
if (!input.target) throw new InternalError("PSL interpretation requires an explicit target context from composition.");
|
|
1738
1768
|
if (!input.scalarColumnDescriptors) throw new InternalError("PSL interpretation requires composed scalar type descriptors.");
|
|
@@ -1969,6 +1999,7 @@ function interpretPslDocumentToSqlContract(input) {
|
|
|
1969
1999
|
const storageTypes = { ...namedTypeResult.storageTypes };
|
|
1970
2000
|
const modelNodes = /* @__PURE__ */ new Map();
|
|
1971
2001
|
const fkRelationMetadata = [];
|
|
2002
|
+
const relationIndexLocations = [];
|
|
1972
2003
|
const invalidFkPairings = [];
|
|
1973
2004
|
const backrelationCandidates = [];
|
|
1974
2005
|
const crossSpaceRelationsByModel = /* @__PURE__ */ new Map();
|
|
@@ -2024,6 +2055,7 @@ function interpretPslDocumentToSqlContract(input) {
|
|
|
2024
2055
|
namespaceId
|
|
2025
2056
|
} : result.modelNode);
|
|
2026
2057
|
fkRelationMetadata.push(...result.fkRelationMetadata);
|
|
2058
|
+
relationIndexLocations.push(...result.relationIndexLocations);
|
|
2027
2059
|
invalidFkPairings.push(...result.invalidFkPairings);
|
|
2028
2060
|
backrelationCandidates.push(...result.backrelationCandidates);
|
|
2029
2061
|
if (result.crossSpaceRelations.length > 0) {
|
|
@@ -2125,17 +2157,32 @@ function interpretPslDocumentToSqlContract(input) {
|
|
|
2125
2157
|
};
|
|
2126
2158
|
return createNamespace(extended);
|
|
2127
2159
|
};
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2160
|
+
let contract;
|
|
2161
|
+
try {
|
|
2162
|
+
contract = buildSqlContractFromDefinition({
|
|
2163
|
+
target: input.target,
|
|
2164
|
+
warnings: authoringWarnings.length > 0 ? authoringWarnings : void 0,
|
|
2165
|
+
...ifDefined("extensions", buildComposedExtensionPackRefs(input.target, [...composedExtensions].sort(compareStrings), input.composedExtensionPackRefs)),
|
|
2166
|
+
...Object.keys(storageTypes).length > 0 ? { storageTypes } : {},
|
|
2167
|
+
...Object.keys(validEnumHandles).length > 0 ? { enums: validEnumHandles } : {},
|
|
2168
|
+
...namespaceExtensionEntities.size > 0 ? { namespaces: [...namespaceExtensionEntities.keys()] } : {},
|
|
2169
|
+
createNamespace: createNamespaceWithExtensions,
|
|
2170
|
+
...ifDefined("valueObjects", valueObjects.length > 0 ? valueObjects : void 0),
|
|
2171
|
+
models: stiColumnModelNodes
|
|
2172
|
+
}, input.codecLookup, input.dataTypes.lookup);
|
|
2173
|
+
} catch (error) {
|
|
2174
|
+
const refusal = relationIndexRefusal(error, relationIndexLocations);
|
|
2175
|
+
if (refusal === void 0) throw error;
|
|
2176
|
+
diagnostics.push({
|
|
2177
|
+
code: "PSL_INVALID_RELATION_ATTRIBUTE",
|
|
2178
|
+
message: refusal.message,
|
|
2179
|
+
...refusal.at.location
|
|
2180
|
+
});
|
|
2181
|
+
return notOk({
|
|
2182
|
+
summary: "PSL to SQL contract interpretation failed",
|
|
2183
|
+
diagnostics: diagnostics.toExternal()
|
|
2184
|
+
});
|
|
2185
|
+
}
|
|
2139
2186
|
const modelsByCoordinate = {};
|
|
2140
2187
|
for (const [namespaceId, namespaceSlice] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespaceSlice.models)) {
|
|
2141
2188
|
const coordinate = modelCoordinateKey(namespaceId, modelName);
|
|
@@ -2162,4 +2209,4 @@ function interpretPslDocumentToSqlContract(input) {
|
|
|
2162
2209
|
//#endregion
|
|
2163
2210
|
export { normalizeReferentialAction as a, interpretPslDocumentToSqlContract as i, buildEntityTypesByDiscriminator as n, indexFkRelations as r, applyBackrelationCandidates as t };
|
|
2164
2211
|
|
|
2165
|
-
//# sourceMappingURL=interpreter-
|
|
2212
|
+
//# sourceMappingURL=interpreter-DlG-2o64-DmykcFbp.mjs.map
|