litedbmodel 2.2.1 → 2.2.3
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/README.md +2 -1
- package/dist/DBModel.d.ts.map +1 -1
- package/dist/DBModel.js +3 -0
- package/dist/DBModel.js.map +1 -1
- package/dist/Middleware.d.ts +19 -2
- package/dist/Middleware.d.ts.map +1 -1
- package/dist/Middleware.js +1 -0
- package/dist/Middleware.js.map +1 -1
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +8 -0
- package/dist/decorators.js.map +1 -1
- package/dist/drivers/MysqlHelper.d.ts +1 -1
- package/dist/drivers/MysqlHelper.d.ts.map +1 -1
- package/dist/drivers/MysqlHelper.js.map +1 -1
- package/dist/drivers/PostgresHelper.d.ts +1 -1
- package/dist/drivers/PostgresHelper.d.ts.map +1 -1
- package/dist/drivers/PostgresHelper.js.map +1 -1
- package/dist/drivers/SqliteHelper.d.ts +1 -1
- package/dist/drivers/SqliteHelper.d.ts.map +1 -1
- package/dist/drivers/SqliteHelper.js.map +1 -1
- package/dist/index.cjs +99 -33
- package/dist/scp/connection-routing.d.ts +38 -1
- package/dist/scp/connection-routing.d.ts.map +1 -1
- package/dist/scp/connection-routing.js +64 -5
- package/dist/scp/connection-routing.js.map +1 -1
- package/dist/scp/dbmodel-runtime.d.ts +2 -1
- package/dist/scp/dbmodel-runtime.d.ts.map +1 -1
- package/dist/scp/dbmodel-runtime.js +2 -1
- package/dist/scp/dbmodel-runtime.js.map +1 -1
- package/dist/scp/decorator-adapter.d.ts +22 -0
- package/dist/scp/decorator-adapter.d.ts.map +1 -1
- package/dist/scp/decorator-adapter.js +26 -0
- package/dist/scp/decorator-adapter.js.map +1 -1
- package/dist/scp/emit/emitter.d.ts +21 -8
- package/dist/scp/emit/emitter.d.ts.map +1 -1
- package/dist/scp/emit/emitter.js +121 -39
- package/dist/scp/emit/emitter.js.map +1 -1
- package/dist/scp/emit/endpoint.d.ts +3 -8
- package/dist/scp/emit/endpoint.d.ts.map +1 -1
- package/dist/scp/exec-context.d.ts +39 -17
- package/dist/scp/exec-context.d.ts.map +1 -1
- package/dist/scp/exec-context.js +69 -35
- package/dist/scp/exec-context.js.map +1 -1
- package/dist/scp/grouping.d.ts.map +1 -1
- package/dist/scp/grouping.js +0 -0
- package/dist/scp/grouping.js.map +1 -1
- package/dist/scp/index.cjs +251 -624
- package/dist/scp/index.d.ts +8 -12
- package/dist/scp/index.d.ts.map +1 -1
- package/dist/scp/index.js +10 -28
- package/dist/scp/index.js.map +1 -1
- package/dist/scp/index.mjs +251 -612
- package/dist/scp/leaf-transport.d.ts +155 -12
- package/dist/scp/leaf-transport.d.ts.map +1 -1
- package/dist/scp/leaf-transport.js +31 -12
- package/dist/scp/leaf-transport.js.map +1 -1
- package/dist/scp/leaves.d.ts +59 -33
- package/dist/scp/leaves.d.ts.map +1 -1
- package/dist/scp/leaves.js +225 -65
- package/dist/scp/leaves.js.map +1 -1
- package/dist/scp/makesql/compile-select.d.ts +28 -1
- package/dist/scp/makesql/compile-select.d.ts.map +1 -1
- package/dist/scp/makesql/compile-select.js +19 -17
- package/dist/scp/makesql/compile-select.js.map +1 -1
- package/dist/scp/makesql/index.d.ts +2 -2
- package/dist/scp/makesql/index.d.ts.map +1 -1
- package/dist/scp/makesql/index.js +4 -6
- package/dist/scp/makesql/index.js.map +1 -1
- package/dist/scp/makesql/tx.d.ts +27 -69
- package/dist/scp/makesql/tx.d.ts.map +1 -1
- package/dist/scp/makesql/tx.js +26 -448
- package/dist/scp/makesql/tx.js.map +1 -1
- package/dist/scp/middleware.d.ts +4 -4
- package/dist/scp/middleware.d.ts.map +1 -1
- package/dist/scp/middleware.js +2 -2
- package/dist/scp/middleware.js.map +1 -1
- package/dist/scp/relation.d.ts +31 -12
- package/dist/scp/relation.d.ts.map +1 -1
- package/dist/scp/relation.js +16 -6
- package/dist/scp/relation.js.map +1 -1
- package/dist/scp/typed-object.d.ts +23 -19
- package/dist/scp/typed-object.d.ts.map +1 -1
- package/dist/scp/typed-object.js +24 -30
- package/dist/scp/typed-object.js.map +1 -1
- package/dist/scp/write-bundle.d.ts +21 -70
- package/dist/scp/write-bundle.d.ts.map +1 -1
- package/dist/scp/write-bundle.js +15 -79
- package/dist/scp/write-bundle.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/docs/architecture.md +452 -0
- package/docs/design/phase-a-execution-context.md +2 -0
- package/package.json +15 -4
- package/dist/scp/writes.d.ts +0 -251
- package/dist/scp/writes.d.ts.map +0 -1
- package/dist/scp/writes.js +0 -176
- package/dist/scp/writes.js.map +0 -1
- package/docs/proposal/contracts-architecture-feasibility.md +0 -328
- package/docs/proposal/contracts-architecture.md +0 -579
- package/docs/proposal/litedbmodel-v2-scp-architecture.md +0 -433
- package/docs/proposal/sql-dynamic-expansion-spec.md +0 -175
- package/docs/proposal/v0-coverage-matrix.md +0 -157
- package/docs/proposal/v2-completeness-plan.md +0 -90
- package/docs/proposal/v2-sql-parity-checklist.md +0 -162
package/dist/scp/emit/emitter.js
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
* | row types | `makesql/outtype.deriveReadRow` over the model's `@column` SoT |
|
|
30
30
|
* | column SQL types | `decorator-adapter.deriveModelColumns` / `modelColumnResolver` |
|
|
31
31
|
* | relation declarations | `decorator-adapter.relationDeclOf` |
|
|
32
|
+
* | the statement's NAMED db | `decorator-adapter.connectionOf` (a relation's: the op's own) |
|
|
32
33
|
* | find hard-limit cap | `limit-config.resolveFindHardLimit` |
|
|
33
34
|
* | the leaf catalog | `leaf-transport.Db` (imported by the emitted module) |
|
|
34
35
|
*
|
|
@@ -43,15 +44,27 @@
|
|
|
43
44
|
* ## SKIP / dynamic WHERE (CLAUDE.md §2 — settled)
|
|
44
45
|
*
|
|
45
46
|
* A predicate declared `optional` is present-or-absent PER CALL, so the final SQL can only be
|
|
46
|
-
* determined at execution time.
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
47
|
+
* determined at execution time. A BOUNDED predicate is not — it is the same on every call — so it is
|
|
48
|
+
* lowered into the static `sql` HERE, at emit time (native-clean), exactly as it is on a read that
|
|
49
|
+
* declares no optional predicate at all. A read's WHERE therefore splits by that ONE property: the
|
|
50
|
+
* bounded predicates ARE the emitted statement's WHERE, and only the ACTUALLY-optional ones accumulate
|
|
51
|
+
* a plan — one `{skipped, sql, params}` FRAGMENT each, which the `executeSQL` leaf continues the static
|
|
52
|
+
* WHERE with when it runs ({@link import('../leaves').assembleDynamicWhere}); the `?`→`$N` render
|
|
53
|
+
* happens after that, on the final SQL. There is no intermediate IR vocabulary: a fragment is SQL text
|
|
54
|
+
* + params + a SKIP FLAG (`skipped` = `param === null`). Every fragment is the SAME struct — never a
|
|
55
|
+
* `cond`-to-null element — so the go/rust native-codegen emitters resolve the plan (a variant/nullable
|
|
56
|
+
* array element is the one shape they reject).
|
|
52
57
|
*
|
|
53
|
-
* A
|
|
54
|
-
*
|
|
58
|
+
* A read with NO optional predicate carries no plan at all. One statement, one plan holding exactly the
|
|
59
|
+
* predicates that are optional.
|
|
60
|
+
*
|
|
61
|
+
* The plan also carries WHERE the clause goes, because the emitter is what put the WHERE there: a SKIP
|
|
62
|
+
* read's `sql` port is the statement's HEAD (up to the end of its WHERE region) and the plan carries the
|
|
63
|
+
* connector plus the `tail` text and its bound values, straight off the same
|
|
64
|
+
* {@link import('../makesql/compile-select').SelectBundle} this read compiled. The leaf concatenates the
|
|
65
|
+
* three pieces; it never scans the statement to find the boundary again — a scan that took a NESTED
|
|
66
|
+
* statement's tail keyword for the outer one's (#198) and counted a QUOTED `?` the placeholder render
|
|
67
|
+
* skips (#202).
|
|
55
68
|
*/
|
|
56
69
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
70
|
exports.emitBehaviorModule = emitBehaviorModule;
|
|
@@ -133,6 +146,20 @@ class EmitContext {
|
|
|
133
146
|
bindTypeOf(model, column) {
|
|
134
147
|
return tsScalar((0, coltype_1.sqlTypeToBcScalar)(this.sqlTypeOf(model, column)));
|
|
135
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* The NAMED connection every statement of an endpoint declared over `model` runs on — read from the
|
|
151
|
+
* model, the ONE authority ({@link connectionOf}), and handed to {@link execOptions} as its `db`
|
|
152
|
+
* field. `{}` ⇒ the DEFAULT connection, which leaves a bounded read's option record unspelled
|
|
153
|
+
* entirely (native-clean).
|
|
154
|
+
*
|
|
155
|
+
* A RELATION's child fetch does NOT come through here: its connection is the TARGET model's, which
|
|
156
|
+
* `relationDeclOf` already resolved onto the compiled op (`RelationOp.connection`) — the emitter
|
|
157
|
+
* consumes that rather than re-deriving it from a second model handle.
|
|
158
|
+
*/
|
|
159
|
+
dbOf(model) {
|
|
160
|
+
const db = (0, decorator_adapter_1.connectionOf)(model);
|
|
161
|
+
return db !== undefined ? { db } : {};
|
|
162
|
+
}
|
|
136
163
|
// ── methods ────────────────────────────────────────────────────────────────────────────────
|
|
137
164
|
method(name, endpoint) {
|
|
138
165
|
assertIdentifier(name, `endpoint name '${name}'`);
|
|
@@ -200,12 +227,9 @@ class EmitContext {
|
|
|
200
227
|
const readResolve = endpoint.view !== undefined ? (t, c) => resolve(t === alias ? baseTable : t, c) : resolve;
|
|
201
228
|
const cap = this.bakedFindCap(endpoint);
|
|
202
229
|
const where = endpoint.where ?? [];
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
`dynamic (SKIP) WHERE is assembled at execution time — the two cannot share one param order. ` +
|
|
207
|
-
`Declare the view's own predicate inside the view query, or drop the optional predicate.`);
|
|
208
|
-
}
|
|
230
|
+
// CLAUDE.md §2: the WHERE splits by ONE property — a BOUNDED predicate is lowered into the static
|
|
231
|
+
// statement below, only an ACTUALLY-optional one accumulates a plan the leaf assembles per call.
|
|
232
|
+
const optional = where.filter(isOptional);
|
|
209
233
|
const params = [];
|
|
210
234
|
for (const p of where)
|
|
211
235
|
this.declareWhereParams(model, p, params);
|
|
@@ -213,21 +237,30 @@ class EmitContext {
|
|
|
213
237
|
// therefore the order the parameters are declared in.
|
|
214
238
|
const limit = this.page(endpoint.limit ?? (cap !== null ? cap + 1 : undefined), params);
|
|
215
239
|
const offset = this.page(endpoint.offset, params);
|
|
216
|
-
// A read with ANY optional predicate carries its WHOLE WHERE as fragments (the leaf assembles the
|
|
217
|
-
// survivors at execution time); a fully-bounded read lowers its WHERE into the static `sql` here.
|
|
218
240
|
const compiled = (0, compile_select_1.compileSelect)({
|
|
219
241
|
dialect: this.spec.dialect,
|
|
220
242
|
tableName: table,
|
|
221
243
|
select: projection.join(', '),
|
|
222
|
-
|
|
244
|
+
// The BOUNDED predicates — this read's static WHERE, whatever else it declares. (An all-optional
|
|
245
|
+
// read compiles an EMPTY condition set, which is the same no-WHERE statement it always was.)
|
|
246
|
+
conditions: this.conditions(model, where.filter((p) => !isOptional(p))),
|
|
223
247
|
...(endpoint.view !== undefined ? { cte: cteOf(endpoint.view) } : {}),
|
|
224
248
|
...(endpoint.order !== undefined ? { order: endpoint.order } : {}),
|
|
225
249
|
...(limit !== undefined ? { limit } : {}),
|
|
226
250
|
...(offset !== undefined ? { offset } : {}),
|
|
227
251
|
...(endpoint.lock === 'update' ? { forUpdate: true } : endpoint.lock === 'share' ? { forShare: true } : {}),
|
|
228
252
|
});
|
|
229
|
-
|
|
230
|
-
|
|
253
|
+
// A SKIP read hands the leaf the statement's HEAD (up to the end of its WHERE region) and puts the
|
|
254
|
+
// rest — the connector, the tail text and the tail's own bound values — in the plan, so the leaf
|
|
255
|
+
// CONCATENATES instead of scanning the finished statement for the boundary (#198 / #202). The split
|
|
256
|
+
// comes from the builder that created the boundary (`compileSelect`), never from re-reading its
|
|
257
|
+
// output. A read with no optional predicate carries no plan and therefore the WHOLE statement.
|
|
258
|
+
const plan = optional.length > 0 ? this.dynamicWherePlan(model, optional, compiled) : undefined;
|
|
259
|
+
const [sql, slots] = plan === undefined ? [compiled.sql, compiled.params] : [compiled.head, compiled.headParams];
|
|
260
|
+
const call = `${quote(sql)}, [${slots.map(renderSlot).join(', ')}]${execOptions({
|
|
261
|
+
...this.dbOf(model),
|
|
262
|
+
...(plan !== undefined ? { whereDynamic: plan } : {}),
|
|
263
|
+
})}`;
|
|
231
264
|
const rowObj = objOf((0, outtype_1.deriveReadRow)(table, projection, readResolve, `endpoint '${name}'`).outType, name);
|
|
232
265
|
const selections = normalizeSelections(endpoint.with ?? []);
|
|
233
266
|
const fresh = freshNames(params.map((p) => p.name));
|
|
@@ -245,7 +278,7 @@ class EmitContext {
|
|
|
245
278
|
const lines = [];
|
|
246
279
|
const parentVar = fresh('rows');
|
|
247
280
|
lines.push(`const ${parentVar}: WireValue[] = Db.executeSQL(${call});`);
|
|
248
|
-
const graph = this.relations(model, parentVar, rowObj, selections, lines, fresh,
|
|
281
|
+
const graph = this.relations(model, parentVar, rowObj, selections, lines, fresh, `endpoint '${name}'`);
|
|
249
282
|
const rowType = this.declareInterface(`${cap1(name)}Row`, graph.obj);
|
|
250
283
|
// The terminal binding is the SINGLE de-box point: the annotation is what bc reads, the one
|
|
251
284
|
// assertion is what narrows the opaque wire value for tsc.
|
|
@@ -254,17 +287,29 @@ class EmitContext {
|
|
|
254
287
|
return { name, params, returnType: `${rowType}[]`, lines };
|
|
255
288
|
}
|
|
256
289
|
/**
|
|
257
|
-
* The DYNAMIC WHERE plan expression:
|
|
258
|
-
*
|
|
259
|
-
*
|
|
290
|
+
* The DYNAMIC WHERE plan expression: ONE fragment per OPTIONAL predicate — never a bounded one, which
|
|
291
|
+
* is already in the static statement (CLAUDE.md §2) — every fragment the SAME struct
|
|
292
|
+
* `{skipped, sql, params}`, with `sql`/`params` from the SAME `compileWhere` that produces a bounded
|
|
293
|
+
* WHERE and `skipped` the per-call SKIP decision carried as DATA (`param === null`). That is the whole
|
|
294
|
+
* fragment vocabulary (SQL + params + a SKIP flag). The array is HOMOGENEOUS — never a `cond`-to-null
|
|
295
|
+
* element — so the go/rust native-codegen emitters resolve it (a variant/nullable array element is the
|
|
296
|
+
* one shape they reject); the `executeSQL` leaf drops the `skipped` fragments at run and continues the
|
|
297
|
+
* static WHERE with the survivors.
|
|
298
|
+
*
|
|
299
|
+
* The plan also carries what FINISHES the statement, taken straight off the bundle this same read
|
|
300
|
+
* compiled ({@link import('../makesql/compile-select').SelectBundle}): `lead` — the connector the first
|
|
301
|
+
* survivor joins with, which is `AND` exactly when the builder emitted a static WHERE — and `tail` /
|
|
302
|
+
* `tailParams`, the text and bound values that follow the WHERE region. The leaf then concatenates
|
|
303
|
+
* `head` + clause + `tail`; nothing on the run side has to find the boundary again, which is what a
|
|
304
|
+
* lexical scan got wrong on a nested statement (#198) and on a quoted `?` (#202).
|
|
260
305
|
*/
|
|
261
|
-
dynamicWherePlan(model,
|
|
262
|
-
const frags =
|
|
306
|
+
dynamicWherePlan(model, optional, compiled) {
|
|
307
|
+
const frags = optional.map((p) => {
|
|
263
308
|
const w = (0, compile_1.compileWhere)(this.conditions(model, [p]), this.spec.dialect);
|
|
264
|
-
|
|
265
|
-
return isParameterised(p) && p.optional === true ? `${p.param} !== null ? ${frag} : null` : frag;
|
|
309
|
+
return `{ skipped: ${p.param} === null, sql: ${quote(w.sql)}, params: [${w.params.map(renderSlot).join(', ')}] }`;
|
|
266
310
|
});
|
|
267
|
-
return `{ frags: [${frags.join(', ')}] }
|
|
311
|
+
return (`{ frags: [${frags.join(', ')}], lead: ${quote(compiled.lead)}, tail: ${quote(compiled.tail)}, ` +
|
|
312
|
+
`tailParams: [${compiled.tailParams.map(renderSlot).join(', ')}] }`);
|
|
268
313
|
}
|
|
269
314
|
/**
|
|
270
315
|
* Emit ONE relation LEVEL: for each selected relation, pluck the parent key set, run the ONE batched
|
|
@@ -272,7 +317,7 @@ class EmitContext {
|
|
|
272
317
|
* selection recurses FIRST, so a grandchild level is grouped into its own parent before that parent
|
|
273
318
|
* is grouped into ours (one query per depth — never one per parent).
|
|
274
319
|
*/
|
|
275
|
-
relations(model, parentVar, parentObj, selections, lines, fresh,
|
|
320
|
+
relations(model, parentVar, parentObj, selections, lines, fresh, at) {
|
|
276
321
|
let acc = parentVar;
|
|
277
322
|
const obj = { ...parentObj };
|
|
278
323
|
let terminalCall = '';
|
|
@@ -284,17 +329,30 @@ class EmitContext {
|
|
|
284
329
|
lines.push(`const ${keysVar}: WireValue[] = Db.pluck(${acc}, ${jsonArray((0, relation_1.parentKeyCols)(op))});`);
|
|
285
330
|
const childVar = fresh(sel.name);
|
|
286
331
|
// The runaway guard the compiled op resolved (`hasManyHardLimit` / the per-relation override):
|
|
287
|
-
// baked onto the child fetch so the `executeSQL` transport asserts the RAW child row count —
|
|
288
|
-
//
|
|
289
|
-
//
|
|
290
|
-
//
|
|
332
|
+
// baked onto the child fetch so the `executeSQL` transport asserts the RAW child row count — the
|
|
333
|
+
// only point they are visible, since `group` receives an already-nested graph. A relation batch
|
|
334
|
+
// never carries a dynamic WHERE (its SQL is fully static), and it says so with the `whereDynamic:
|
|
335
|
+
// null` FIELD of the option record — an uncapped batch on the DEFAULT connection carries no
|
|
336
|
+
// record at all.
|
|
291
337
|
const guard = (0, relation_1.relationGuard)(op);
|
|
292
|
-
|
|
293
|
-
|
|
338
|
+
// The guard rides as a CONCRETE `CapGuard` struct (leaf-transport), so the native emitters build
|
|
339
|
+
// it directly: `limit` is an `Int` LITERAL (a plain `number` would emit as a float and the wire
|
|
340
|
+
// int-probe would miss the cap). EVERY field is spelled — bc types a port by the literal wired
|
|
341
|
+
// into it, so a struct with a field left out is a DIFFERENT type and `bc generate` rejects the
|
|
342
|
+
// module (#208); `relationGuard` is total in `model` so there is nothing to branch on.
|
|
343
|
+
const guardExpr = guard !== null ? `{ limit: ${guard.limit} as Int, model: ${quote(guard.model)}, relation: ${quote(guard.relation)} }` : undefined;
|
|
344
|
+
// CROSS-DB (V0 R1): the batch runs on the TARGET model's connection, which `relationDeclOf`
|
|
345
|
+
// already resolved onto the compiled op — v1 `LazyRelation.ts:236` runs a relation on
|
|
346
|
+
// `TargetClass.getDriverType()`'s driver, so a relation whose target lives in another database is
|
|
347
|
+
// fetched THERE and not against the parent's (which would read a missing / same-named table).
|
|
348
|
+
lines.push(`const ${childVar}: WireValue[] = Db.executeSQL(${quote(op.sql)}, [${keysVar}]${execOptions({
|
|
349
|
+
...(op.connection !== undefined ? { db: op.connection } : {}),
|
|
350
|
+
...(guardExpr !== undefined ? { guard: guardExpr } : {}),
|
|
351
|
+
})});`);
|
|
294
352
|
let childRows = childVar;
|
|
295
353
|
let childObj = objOf((0, outtype_1.deriveReadRow)(decl.targetTable, decl.select, this.resolver(targetModel), `${at} relation '${sel.name}'`).outType, `${at} relation '${sel.name}'`);
|
|
296
354
|
if (sel.with.length > 0) {
|
|
297
|
-
const nested = this.relations(targetModel, childVar, childObj, normalizeSelections(sel.with), lines, fresh,
|
|
355
|
+
const nested = this.relations(targetModel, childVar, childObj, normalizeSelections(sel.with), lines, fresh, `${at}.${sel.name}`);
|
|
298
356
|
childObj = nested.obj;
|
|
299
357
|
childRows = nested.terminalVar;
|
|
300
358
|
}
|
|
@@ -353,7 +411,7 @@ class EmitContext {
|
|
|
353
411
|
params,
|
|
354
412
|
returnType: `${rowType}[]`,
|
|
355
413
|
lines: [
|
|
356
|
-
`const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${op.params.map(renderSlot).join(', ')}]
|
|
414
|
+
`const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${op.params.map(renderSlot).join(', ')}]${execOptions({ ...this.dbOf(model), write: { returning: returning !== undefined } })}) as ${rowType}[];`,
|
|
357
415
|
`return ${out};`,
|
|
358
416
|
],
|
|
359
417
|
};
|
|
@@ -443,7 +501,7 @@ class EmitContext {
|
|
|
443
501
|
params,
|
|
444
502
|
returnType: `${rowType}[]`,
|
|
445
503
|
lines: [
|
|
446
|
-
`const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${slots.join(', ')}]
|
|
504
|
+
`const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${slots.join(', ')}]${execOptions({ ...this.dbOf(model), write: { returning: endpoint.returning !== undefined } })}) as ${rowType}[];`,
|
|
447
505
|
`return ${out};`,
|
|
448
506
|
],
|
|
449
507
|
};
|
|
@@ -471,7 +529,7 @@ class EmitContext {
|
|
|
471
529
|
params,
|
|
472
530
|
returnType: `${rowType}[]`,
|
|
473
531
|
lines: [
|
|
474
|
-
`const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${op.params.map(renderSlot).join(', ')}]
|
|
532
|
+
`const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${op.params.map(renderSlot).join(', ')}]${execOptions({ ...this.dbOf(model), write: { returning: endpoint.returning !== undefined } })}) as ${rowType}[];`,
|
|
475
533
|
`return ${out};`,
|
|
476
534
|
],
|
|
477
535
|
};
|
|
@@ -693,6 +751,30 @@ function isParameterised(p) {
|
|
|
693
751
|
function isOptional(p) {
|
|
694
752
|
return isParameterised(p) && p.optional === true;
|
|
695
753
|
}
|
|
754
|
+
/**
|
|
755
|
+
* Render the OPTIONAL `opts` argument of `Db.executeSQL` — the ONE place the option record
|
|
756
|
+
* ({@link import('../leaf-transport').ExecOptions}) is spelled, for every emitted statement of every op.
|
|
757
|
+
*
|
|
758
|
+
* A statement that carries NO option at all (a bounded read of a DEFAULT-connection model, an uncapped
|
|
759
|
+
* relation child of one) renders NOTHING: the port is omitted and the payload stays `sql` + `params`
|
|
760
|
+
* (native-clean). ONLY those statements are unchanged by named-DB routing — every statement that ALREADY
|
|
761
|
+
* carried a record (a write, a SKIP read, a guarded relation child) now spells `db: null` in it too. The
|
|
762
|
+
* frozen conformance vectors are unaffected for a different reason: a vector carries the statements the
|
|
763
|
+
* transport handed the driver (`sql` + `params`) and no control record at all (`grep -c opts
|
|
764
|
+
* conformance/vectors/*.json` = 0). Any other statement spells the WHOLE record — bc types a port by the
|
|
765
|
+
* literal wired into it
|
|
766
|
+
* and rejects a partial one — so each absent fact is the `null` VALUE of its own NAMED field. That is
|
|
767
|
+
* what removed the positional filler #193 is about: nothing has to be passed to reach the field after it.
|
|
768
|
+
*
|
|
769
|
+
* `write` is ONE field carrying the write's own `returning` (the `WriteMode` struct), so "returns rows
|
|
770
|
+
* but is not a write" is not a state the ABI can hold — three statement shapes, three values.
|
|
771
|
+
*/
|
|
772
|
+
function execOptions(o) {
|
|
773
|
+
if (o.db === undefined && o.write === undefined && o.whereDynamic === undefined && o.guard === undefined)
|
|
774
|
+
return '';
|
|
775
|
+
const write = o.write === undefined ? 'null' : `{ returning: ${o.write.returning} }`;
|
|
776
|
+
return `, { db: ${o.db === undefined ? 'null' : quote(o.db)}, write: ${write}, whereDynamic: ${o.whereDynamic ?? 'null'}, guard: ${o.guard ?? 'null'} }`;
|
|
777
|
+
}
|
|
696
778
|
/**
|
|
697
779
|
* Render ONE bound slot: a parameter sentinel becomes its identifier, anything else a TS literal.
|
|
698
780
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/scp/emit/emitter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/scp/emit/emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,9 +21,9 @@ export type ComparisonOp = 'eq' | 'ne' | 'lt' | 'le' | 'gt' | 'ge' | 'like';
|
|
|
21
21
|
/**
|
|
22
22
|
* `<column> <op> <param>`. The parameter's TS type is resolved from the column's declared SQL type.
|
|
23
23
|
*
|
|
24
|
-
* `optional: true` makes the predicate a SKIP member: the parameter is nullable and the
|
|
25
|
-
* DROPPED when it is null.
|
|
26
|
-
*
|
|
24
|
+
* `optional: true` makes the predicate a SKIP member: the parameter is nullable and the predicate is
|
|
25
|
+
* DROPPED when it is null. Only such a predicate rides the dynamic-WHERE plan the `executeSQL` leaf
|
|
26
|
+
* assembles per call; a BOUNDED one is lowered into the emitted statement's static WHERE (CLAUDE.md §2).
|
|
27
27
|
*/
|
|
28
28
|
export interface ComparePredicate {
|
|
29
29
|
readonly kind?: 'compare';
|
|
@@ -161,11 +161,6 @@ export interface ReadEndpoint {
|
|
|
161
161
|
readonly with?: readonly RelationSelection[];
|
|
162
162
|
/** #98 — read from a derived CTE (a QUERY view-model) instead of the base table. */
|
|
163
163
|
readonly view?: QueryView;
|
|
164
|
-
/**
|
|
165
|
-
* Read the row set in EXACT-integer mode (`bigint` port). Set when the projection carries a
|
|
166
|
-
* 64-bit column so the driver hands over exact values rather than rounded doubles.
|
|
167
|
-
*/
|
|
168
|
-
readonly bigint?: boolean;
|
|
169
164
|
}
|
|
170
165
|
/** `column ← param` for a write's VALUES / SET list. */
|
|
171
166
|
export interface ValueBinding {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../../src/scp/emit/endpoint.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../../src/scp/emit/endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* 2. a **middleware chain** — {@link ExecutionContext.middleware}, wrapping every SQL (empty in
|
|
13
13
|
* Phase A = passthrough; the registration API is Phase D — this is only the hook point);
|
|
14
14
|
* 3. {@link ExecutionContext.withConnection}`(conn, tx)` — derive a tx-scoped ctx that pins ONE
|
|
15
|
-
* connection so every statement in a transaction body runs on it.
|
|
15
|
+
* connection so every statement in a transaction body of the tx's own database (an unnamed one, or one naming that database) runs on it.
|
|
16
16
|
*
|
|
17
17
|
* ## The central seam (§2 of the design) — ALL SQL funnels through here
|
|
18
18
|
*
|
|
@@ -46,7 +46,8 @@
|
|
|
46
46
|
* ## Per-execution connection ownership (§3) — the concurrent-tx fix
|
|
47
47
|
*
|
|
48
48
|
* A transaction acquires ONE connection, scopes it into an {@link AsyncLocalStorage} ctx, runs its
|
|
49
|
-
* body (every statement resolves that connection via `connectionFor
|
|
49
|
+
* body (every statement of the tx's own database resolves that connection via `connectionFor`, and a statement
|
|
50
|
+
* naming a DIFFERENT database is rejected), COMMITs/ROLLBACKs, and
|
|
50
51
|
* releases it. Concurrent transactions each run in their own ALS ctx with their own connection —
|
|
51
52
|
* **isolated**. There is NO driver-global single-slot writer (the shared-slot model — `pool.query`
|
|
52
53
|
* per statement, or a `Mutex<Option<writer>>` — is what corrupts concurrent transactions; see the
|
|
@@ -151,7 +152,7 @@ export interface ExecutionContext {
|
|
|
151
152
|
connectionFor(intent: StatementIntent): SyncConnection;
|
|
152
153
|
/** The middleware chain wrapping every SQL (§4). Empty in Phase A. */
|
|
153
154
|
readonly middleware: MiddlewareChain;
|
|
154
|
-
/** Derive a tx-scoped ctx pinning `conn` (every statement resolves it while `tx` is true). */
|
|
155
|
+
/** Derive a tx-scoped ctx pinning `conn` (every statement of the tx's own database (an unnamed one, or one naming that database) resolves it while `tx` is true). */
|
|
155
156
|
withConnection(conn: SyncConnection, tx: boolean): ExecutionContext;
|
|
156
157
|
}
|
|
157
158
|
/** The ASYNC execution context (live PG / MySQL) — the same contract, async connections. */
|
|
@@ -236,12 +237,26 @@ export interface AsyncConnectionPool {
|
|
|
236
237
|
/** Return a connection to the pool. `destroy` ⇒ drop it (a poisoned/aborted connection). */
|
|
237
238
|
release(conn: AsyncConnection, destroy?: boolean): Promise<void>;
|
|
238
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* What the ALS pin carries: the transaction's OWNED connection and the NAME of the database it opened
|
|
242
|
+
* on (`null` ⇒ the default connection). The name has to ride HERE and nowhere else on this plane,
|
|
243
|
+
* because {@link PooledAsyncContext.withConnection} returns `this` — the tx-scoped ctx is not a distinct
|
|
244
|
+
* object, so a per-scope fact cannot be a field on it. `connectionFor` reads both: the connection to run
|
|
245
|
+
* on, and the name a NAMED statement must agree with ({@link assertTxDbAgrees}). The four ports carry the
|
|
246
|
+
* same pair on their tx-scoped ctx (the go / python / rust `connection` field, php's).
|
|
247
|
+
*/
|
|
248
|
+
export interface PinnedTx {
|
|
249
|
+
readonly conn: AsyncConnection;
|
|
250
|
+
/** The connection NAME the transaction opened on (`null` ⇒ the default connection). */
|
|
251
|
+
readonly db: string | null;
|
|
252
|
+
}
|
|
239
253
|
/**
|
|
240
254
|
* A pooled async {@link AsyncExecutionContext}. Outside a transaction, `connectionFor` acquires a
|
|
241
255
|
* fresh pooled connection per statement (the existing read fan-out model — each concurrent sibling
|
|
242
256
|
* on its own connection). Inside a transaction, {@link withTransactionAsync} pins ONE acquired
|
|
243
|
-
* connection into the ALS store; `connectionFor` returns THAT for every statement in the body
|
|
244
|
-
*
|
|
257
|
+
* connection into the ALS store; `connectionFor` returns THAT for every statement in the body of the tx's own database
|
|
258
|
+
* (an unnamed one, or one naming that database — a statement naming a DIFFERENT database is rejected), so the
|
|
259
|
+
* whole tx runs on one owned connection — isolated from concurrent transactions.
|
|
245
260
|
*
|
|
246
261
|
* NB: outside a tx, `connectionFor` returns a **per-statement** owned connection wrapper that
|
|
247
262
|
* acquires-runs-releases; the read walker issues one statement per `executeAsync`, matching the
|
|
@@ -277,21 +292,26 @@ export declare class PooledAsyncContext implements AsyncExecutionContext {
|
|
|
277
292
|
get stickyClock(): WriterStickyClock;
|
|
278
293
|
}
|
|
279
294
|
/**
|
|
280
|
-
* Run `fn` inside the ALS scope with `conn` pinned as the ambient tx connection (§3)
|
|
281
|
-
* `
|
|
282
|
-
*
|
|
295
|
+
* Run `fn` inside the ALS scope with `conn` pinned as the ambient tx connection (§3), together with
|
|
296
|
+
* `db` — the connection NAME the transaction opened on. Every `connectionFor` inside `fn` (async
|
|
297
|
+
* boundaries included) returns `conn` for a statement of the tx's own database — an unnamed one, or
|
|
298
|
+
* one naming `db`; one naming a DIFFERENT database is REJECTED there (`assertTxDbAgrees`), because a
|
|
299
|
+
* transaction is ONE connection on ONE database. This is the TS per-execution ownership mechanism
|
|
300
|
+
* (v1 `DBModel.ts` `txContext.run`); the native ports use
|
|
283
301
|
* task-local (rust) / `context.Context` (go) / contextvars (py) / an explicit arg (php) for the
|
|
284
302
|
* SAME effect.
|
|
285
303
|
*/
|
|
286
|
-
export declare function runWithPinnedAsyncConnection<R>(conn: AsyncConnection, fn: () => Promise<R>): Promise<R>;
|
|
304
|
+
export declare function runWithPinnedAsyncConnection<R>(conn: AsyncConnection, db: string | null, fn: () => Promise<R>): Promise<R>;
|
|
287
305
|
/**
|
|
288
|
-
* The
|
|
289
|
-
*
|
|
306
|
+
* The transaction pinned in the CURRENT async scope — its owned connection AND the connection NAME it
|
|
307
|
+
* opened on ({@link PinnedTx}) — or `undefined` if not inside a transaction.
|
|
308
|
+
* {@link withTransactionAsync} reads this to detect a NESTED transaction (an inner
|
|
290
309
|
* `withTransactionAsync` running inside an outer's ALS scope joins the outer instead of opening a
|
|
291
|
-
* new physical transaction)
|
|
292
|
-
*
|
|
310
|
+
* new physical transaction), and `connectionFor` reads the name to reject a statement that names a
|
|
311
|
+
* DIFFERENT database than the transaction opened on. The native ports read their task-local /
|
|
312
|
+
* contextvar / `context.Context` for the SAME nested detection.
|
|
293
313
|
*/
|
|
294
|
-
export declare function currentPinnedAsyncConnection():
|
|
314
|
+
export declare function currentPinnedAsyncConnection(): PinnedTx | undefined;
|
|
295
315
|
/**
|
|
296
316
|
* Transaction options for {@link withTransactionAsync}. The full Phase B contract (isolation / retry
|
|
297
317
|
* / rollbackOnly) lives in {@link import('./tx-options').TransactionOptions}; this re-exports it so
|
|
@@ -308,7 +328,8 @@ export type TxOptions = TransactionOptions;
|
|
|
308
328
|
* **Per attempt** (up to `retryLimit`):
|
|
309
329
|
* 1. acquire ONE fresh connection from the pool (a retry after a connection error thus RECONNECTS);
|
|
310
330
|
* 2. pin it into the ALS ctx (`runWithPinnedAsyncConnection`) so EVERY statement `fn` issues
|
|
311
|
-
* resolves THAT connection — never a fresh pooled one
|
|
331
|
+
* of the tx's own database resolves THAT connection — never a fresh pooled one, and a statement
|
|
332
|
+
* naming a DIFFERENT database is rejected instead;
|
|
312
333
|
* 3. issue the isolation-aware BEGIN ({@link beginStatements}: PG `BEGIN ISOLATION LEVEL …`;
|
|
313
334
|
* MySQL a preceding `SET TRANSACTION ISOLATION LEVEL …` then `BEGIN`);
|
|
314
335
|
* 4. run `fn(txCtx)` → `COMMIT` (or `ROLLBACK` if `rollbackOnly`, still returning the body result);
|
|
@@ -378,8 +399,9 @@ export declare function transaction<R>(ctx: PooledAsyncContext, fn: () => Promis
|
|
|
378
399
|
* no committed change, but the body result is still returned, e.g. the short-circuit reason);
|
|
379
400
|
* - a THROW from `fn` → best-effort `ROLLBACK`, re-raise (the caller maps the driver error).
|
|
380
401
|
*
|
|
381
|
-
* Every statement `fn` issues resolves the pinned tx connection via
|
|
382
|
-
* conn), so the whole body runs atomically on one connection
|
|
402
|
+
* Every statement `fn` issues of the tx's own database (an unnamed one, or one naming that database) resolves the pinned tx connection via
|
|
403
|
+
* `connectionFor` (the tx-owned conn), so the whole body runs atomically on one connection; one naming a
|
|
404
|
+
* DIFFERENT database is rejected instead of joining it. This is the boundary the write/tx leaf
|
|
383
405
|
* path runs inside; the tx-control statements (BEGIN/COMMIT/ROLLBACK) go through the seam here, while
|
|
384
406
|
* the body's data statements ride the `executeSQL` transport leaf.
|
|
385
407
|
*/
|