@quereus/quereus 4.14.0 → 4.15.2

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.
Files changed (59) hide show
  1. package/dist/src/core/statement.d.ts +30 -0
  2. package/dist/src/core/statement.d.ts.map +1 -1
  3. package/dist/src/core/statement.js +49 -0
  4. package/dist/src/core/statement.js.map +1 -1
  5. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  6. package/dist/src/emit/ast-stringify.js +0 -4
  7. package/dist/src/emit/ast-stringify.js.map +1 -1
  8. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  9. package/dist/src/func/builtins/explain.js +88 -61
  10. package/dist/src/func/builtins/explain.js.map +1 -1
  11. package/dist/src/func/registration.d.ts +7 -0
  12. package/dist/src/func/registration.d.ts.map +1 -1
  13. package/dist/src/func/registration.js +7 -0
  14. package/dist/src/func/registration.js.map +1 -1
  15. package/dist/src/index.d.ts +3 -0
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +1 -0
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/parser/ast.d.ts +0 -2
  20. package/dist/src/parser/ast.d.ts.map +1 -1
  21. package/dist/src/parser/parser.d.ts +1 -0
  22. package/dist/src/parser/parser.d.ts.map +1 -1
  23. package/dist/src/parser/parser.js +29 -28
  24. package/dist/src/parser/parser.js.map +1 -1
  25. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  26. package/dist/src/runtime/emit/dml-executor.js +23 -0
  27. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  28. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  29. package/dist/src/runtime/emit/scan.js +52 -9
  30. package/dist/src/runtime/emit/scan.js.map +1 -1
  31. package/dist/src/runtime/emit/set-object-tags.js +4 -4
  32. package/dist/src/runtime/emit/set-object-tags.js.map +1 -1
  33. package/dist/src/runtime/emitters.d.ts.map +1 -1
  34. package/dist/src/runtime/emitters.js +6 -0
  35. package/dist/src/runtime/emitters.js.map +1 -1
  36. package/dist/src/runtime/parallel-driver.d.ts +5 -0
  37. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  38. package/dist/src/runtime/parallel-driver.js +6 -0
  39. package/dist/src/runtime/parallel-driver.js.map +1 -1
  40. package/dist/src/runtime/scheduler.d.ts +9 -0
  41. package/dist/src/runtime/scheduler.d.ts.map +1 -1
  42. package/dist/src/runtime/scheduler.js +27 -11
  43. package/dist/src/runtime/scheduler.js.map +1 -1
  44. package/dist/src/runtime/types.d.ts +19 -0
  45. package/dist/src/runtime/types.d.ts.map +1 -1
  46. package/dist/src/runtime/types.js.map +1 -1
  47. package/dist/src/runtime/work-counters.d.ts +180 -0
  48. package/dist/src/runtime/work-counters.d.ts.map +1 -0
  49. package/dist/src/runtime/work-counters.js +210 -0
  50. package/dist/src/runtime/work-counters.js.map +1 -0
  51. package/dist/src/vtab/alter-event-shape.d.ts +35 -0
  52. package/dist/src/vtab/alter-event-shape.d.ts.map +1 -0
  53. package/dist/src/vtab/alter-event-shape.js +47 -0
  54. package/dist/src/vtab/alter-event-shape.js.map +1 -0
  55. package/dist/src/vtab/memory/module.d.ts +0 -8
  56. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  57. package/dist/src/vtab/memory/module.js +2 -25
  58. package/dist/src/vtab/memory/module.js.map +1 -1
  59. package/package.json +6 -3
@@ -2,6 +2,7 @@ import { isAsyncIterable } from "./utils.js";
2
2
  import { hrtimeNs } from "../util/hrtime.js";
3
3
  import { createLogger } from "../common/logger.js";
4
4
  import { DefaultContextTracker } from './types.js';
5
+ import { recordOutput } from './work-counters.js';
5
6
  const log = createLogger('runtime:metrics');
6
7
  const contextLog = createLogger('runtime:context');
7
8
  /** Symbol to mark wrapped iterables to prevent double-wrapping */
@@ -59,7 +60,7 @@ export class Scheduler {
59
60
  }
60
61
  let result;
61
62
  if (ctx.enableMetrics) {
62
- result = this.runSyncLoop(ctx, this.metricsHooks());
63
+ result = this.runSyncLoop(ctx, this.metricsHooks(ctx));
63
64
  }
64
65
  else if (!ctx.tracer) {
65
66
  result = this.runSyncLoop(ctx, this.optimizedHooks());
@@ -133,7 +134,7 @@ export class Scheduler {
133
134
  instrArgs[i] = undefined; // Clear args as we go to minimize memory usage.
134
135
  hooks.onInput?.(i, instruction, args);
135
136
  try {
136
- output = hooks.runInstruction(instruction, ctx, args);
137
+ output = hooks.runInstruction(i, instruction, ctx, args);
137
138
  // If the instruction returned a promise, switch to async mode for the rest.
138
139
  if (output instanceof Promise) {
139
140
  return this.runAsyncLoop(ctx, instrArgs, i, output, hooks);
@@ -197,7 +198,7 @@ export class Scheduler {
197
198
  }
198
199
  hooks.onInput?.(i, instruction, args);
199
200
  try {
200
- output = hooks.runInstruction(instruction, ctx, args);
201
+ output = hooks.runInstruction(i, instruction, ctx, args);
201
202
  if (hooks.onAsyncOutput) {
202
203
  output = await hooks.onAsyncOutput(i, instruction, output);
203
204
  }
@@ -255,7 +256,7 @@ export class Scheduler {
255
256
  /** Optimized mode: plain dispatch, no tracing or metrics overhead. */
256
257
  optimizedHooks() {
257
258
  return {
258
- runInstruction: (instruction, ctx, args) => instruction.run(ctx, ...args),
259
+ runInstruction: (_index, instruction, ctx, args) => instruction.run(ctx, ...args),
259
260
  };
260
261
  }
261
262
  /**
@@ -270,7 +271,7 @@ export class Scheduler {
270
271
  const tracer = ctx.tracer;
271
272
  return {
272
273
  onInput: (i, instruction, args) => tracer.traceInput(i, instruction, args),
273
- runInstruction: (instruction, rctx, args) => instruction.run(rctx, ...args),
274
+ runInstruction: (_index, instruction, rctx, args) => instruction.run(rctx, ...args),
274
275
  onSyncOutput: (i, instruction, output) => {
275
276
  let traced = output;
276
277
  if (isAsyncIterable(traced)) {
@@ -301,8 +302,18 @@ export class Scheduler {
301
302
  * destination — like optimized — so no separate async instruction runner is
302
303
  * needed. `onComplete` logs the aggregate on the normal-completion path only
303
304
  * (never on throw), matching the pre-collapse behavior.
305
+ *
306
+ * When the context carries a work-counter collector
307
+ * (`Statement._iterateRowsRawInternal` builds one per execution), each
308
+ * instruction also feeds its counter slot. Unlike `runtimeStats`, slots are
309
+ * never reset here — they accumulate across sub-program re-invocations for the
310
+ * whole execution. Deliberately NOT fed via an `onAsyncOutput` hook: the async
311
+ * loop `await`s that hook's return, which would eagerly settle every promise
312
+ * output at the producing instruction and serialize work that today runs
313
+ * concurrently via parked promises + destination `Promise.all`.
304
314
  */
305
- metricsHooks() {
315
+ metricsHooks(ctx) {
316
+ const counters = ctx.workCounters?.countersFor(this);
306
317
  return {
307
318
  onStart: () => {
308
319
  // Reset (not create-if-absent): a cached scheduler is reused across
@@ -330,15 +341,20 @@ export class Scheduler {
330
341
  }
331
342
  }
332
343
  },
333
- runInstruction: (instruction, ctx, args) => this.runInstructionWithMetrics(instruction, ctx, args),
344
+ runInstruction: (i, instruction, rctx, args) => this.runInstructionWithMetrics(instruction, rctx, args, counters?.[i]),
334
345
  onComplete: () => this.logAggregateMetrics(),
335
346
  };
336
347
  }
337
- runInstructionWithMetrics(instruction, ctx, args) {
348
+ runInstructionWithMetrics(instruction, ctx, args, slot) {
338
349
  const stats = instruction.runtimeStats;
339
350
  const start = hrtimeNs();
351
+ const inputCount = this.countInputs(args);
340
352
  stats.executions++;
341
- stats.in += this.countInputs(args);
353
+ stats.in += inputCount;
354
+ if (slot) {
355
+ slot.executions++;
356
+ slot.in += inputCount;
357
+ }
342
358
  try {
343
359
  const result = instruction.run(ctx, ...args);
344
360
  if (result instanceof Promise) {
@@ -346,7 +362,7 @@ export class Scheduler {
346
362
  return result.then(resolved => {
347
363
  stats.out += this.countOutputs(resolved);
348
364
  stats.elapsedNs += hrtimeNs() - start;
349
- return resolved;
365
+ return slot ? recordOutput(slot, resolved) : resolved;
350
366
  }).catch(error => {
351
367
  stats.elapsedNs += hrtimeNs() - start;
352
368
  throw error;
@@ -354,7 +370,7 @@ export class Scheduler {
354
370
  }
355
371
  stats.out += this.countOutputs(result);
356
372
  stats.elapsedNs += hrtimeNs() - start;
357
- return result;
373
+ return slot ? recordOutput(slot, result) : result;
358
374
  }
359
375
  catch (error) {
360
376
  stats.elapsedNs += hrtimeNs() - start;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/runtime/scheduler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAInD,kEAAkE;AAClE,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAExD;;GAEG;AACH,SAAS,sBAAsB,CAC9B,GAAqB,EACrB,GAAmB,EACnB,gBAAwB,EACxB,WAAwB;IAExB,0BAA0B;IAC1B,IAAK,GAA0C,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACzE,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAO,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,KAAK,SAAS,CAAC;QAC/B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YAC7B,+DAA+D;YAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,GAAU,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IAEL,0BAA0B;IACzB,OAA8C,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;IAC/E,OAAO,OAAO,CAAC;AAChB,CAAC;AAsCD,MAAM,OAAO,SAAS;IACZ,YAAY,GAAkB,EAAE,CAAC;IAC1C,6EAA6E;IACpE,YAAY,CAAsB;IAE3C,YAAY,IAAiB;QAC5B,MAAM,UAAU,GAAe,EAAE,CAAC;QAElC,MAAM,SAAS,GAAG,CAAC,IAAiB,EAAU,EAAE;YAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtD,UAAU,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC;YAC1C,OAAO,YAAY,CAAC;QACrB,CAAC,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhB,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtF,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC;YAC3E,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,cAAc,EAAE,CAAC;gBACpB,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC;oBACrE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC;gBACzD,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,GAAG,CAAC,GAAmB;QACtB,oDAAoD;QACpD,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACzB,GAAG,CAAC,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAClD,CAAC;QAED,IAAI,MAAmB,CAAC;QAExB,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,0EAA0E;QAC1E,+EAA+E;QAC/E,6EAA6E;QAC7E,4EAA4E;QAC5E,sEAAsE;QACtE,6EAA6E;QAC7E,2CAA2C;QAC3C,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,yBAAyB,CAAC,GAAmB,EAAE,MAAmB;QACzE,MAAM,KAAK,GAAG,GAAS,EAAE;YACxB,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxD,UAAU,CAAC,wEAAwE,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAChI,CAAC;YACD,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBACrE,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;gBAC5D,UAAU,CAAC,iDAAiD,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7F,CAAC;QACF,CAAC,CAAC;QAEF,IAAI,eAAe,CAAM,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAuB,MAAM,CAAC;YAC5C,OAAO,CAAC,KAAK,SAAS,CAAC;gBACtB,IAAI,CAAC;oBACJ,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAClC,MAAM,GAAG,CAAC;oBACX,CAAC;gBACF,CAAC;wBAAS,CAAC;oBACV,KAAK,EAAE,CAAC;gBACT,CAAC;YACF,CAAC,CAAC,EAAE,CAAC;QACN,CAAC;QAED,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,KAAK,EAAE,CAAC;QACR,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACK,WAAW,CAAC,GAAmB,EAAE,KAAe;QACvD,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAElB,uCAAuC;QACvC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAA+B,CAAC,CAAC;QAC5G,iBAAiB;QACjB,IAAI,MAA+B,CAAC;QAEpC,2CAA2C;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC,qCAAqC;YACjE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,gDAAgD;YAE1E,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAsB,CAAC,CAAC;YAExD,IAAI,CAAC;gBACJ,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,IAAsB,CAAC,CAAC;gBAExE,4EAA4E;gBAC5E,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC5D,CAAC;gBAED,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACxB,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBACrD,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM,KAAK,CAAC;YACb,CAAC;YAED,2BAA2B;YAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC1B,SAAS,CAAC,WAAW,CAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;QAED,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;QAErB,OAAO,MAAqB,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,YAAY,CACzB,GAAmB,EACnB,SAAwC,EACxC,UAAkB,EAClB,aAA0B,EAC1B,KAAe;QAEf,kDAAkD;QAClD,MAAM,UAAU,GAAc,EAAE,CAAC;QAEjC,IAAI,MAA+B,CAAC;QAEpC,IAAI,CAAC;YACJ,sEAAsE;YACtE,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,GAAG,KAAK,CAAC,aAAa;gBAC3B,CAAC,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,gBAAgB,EAAE,aAAa,CAAC;gBACxE,CAAC,CAAC,aAAa,CAAC;YAEjB,0EAA0E;YAC1E,kEAAkE;YAClE,wDAAwD;YACxD,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAC5D,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;gBACpC,SAAS,CAAC,qBAAqB,CAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/C,UAAU,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;YAC1C,CAAC;YAED,sDAAsD;YACtD,KAAK,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBAChE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;gBACzB,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBAEzB,gCAAgC;gBAChC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnB,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAED,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAsB,CAAC,CAAC;gBAExD,IAAI,CAAC;oBACJ,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,IAAsB,CAAC,CAAC;oBACxE,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;wBACzB,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;oBAC5D,CAAC;gBACF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;oBACvC,MAAM,KAAK,CAAC;gBACb,CAAC;gBAED,mBAAmB;gBACnB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBAC1B,SAAS,CAAC,WAAW,CAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;wBAC/B,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;oBAChC,CAAC;gBACF,CAAC;YACF,CAAC;YAED,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;YAErB,OAAO,MAAsB,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,wEAAwE;YACxE,mDAAmD;YACnD,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,sBAAsB,CAAC,SAAwC;QAC5E,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,GAAG,YAAY,OAAO,EAAE,CAAC;oBAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;YACF,CAAC;QACF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAClC,GAAG,CAAC,6EAA6E,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACnG,CAAC;QACF,CAAC;IACF,CAAC;IAED,sEAAsE;IAC9D,cAAc;QACrB,OAAO;YACN,cAAc,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;SACzE,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,YAAY,CAAC,GAAmB;QACvC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAO,CAAC;QAC3B,OAAO;YACN,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC;YAC1E,cAAc,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;YAC3E,YAAY,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;gBACxC,IAAI,MAAM,GAAG,MAAM,CAAC;gBACpB,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7B,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBAC3C,OAAO,MAAM,CAAC;YACf,CAAC;YACD,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;gBAC/C,IAAI,QAAQ,GAAG,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBACjE,kEAAkE;gBAClE,+CAA+C;gBAC/C,IAAI,SAAS,GAAgB,MAAM,CAAC;gBACpC,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/B,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;oBACjE,SAAS,GAAG,QAAQ,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC7C,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,KAAc,CAAC;SACrF,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,YAAY;QACnB,OAAO;YACN,OAAO,EAAE,GAAG,EAAE;gBACb,oEAAoE;gBACpE,uEAAuE;gBACvE,gDAAgD;gBAChD,0EAA0E;gBAC1E,6EAA6E;gBAC7E,8EAA8E;gBAC9E,8EAA8E;gBAC9E,iDAAiD;gBACjD,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC7C,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;wBAC9B,WAAW,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;wBAChC,WAAW,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC;wBACjC,WAAW,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;wBACxC,WAAW,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;oBACzC,CAAC;yBAAM,CAAC;wBACP,WAAW,CAAC,YAAY,GAAG;4BAC1B,EAAE,EAAE,CAAC;4BACL,GAAG,EAAE,CAAC;4BACN,SAAS,EAAE,EAAE;4BACb,UAAU,EAAE,CAAC;yBACb,CAAC;oBACH,CAAC;gBACF,CAAC;YACF,CAAC;YACD,cAAc,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC;YAClG,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;SAC5C,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,WAAwB,EAAE,GAAmB,EAAE,IAAoB;QACpG,MAAM,KAAK,GAAG,WAAW,CAAC,YAAa,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QAEzB,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAE7C,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC/B,kCAAkC;gBAClC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAC7B,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACzC,KAAK,CAAC,SAAS,IAAI,QAAQ,EAAE,GAAG,KAAK,CAAC;oBACtC,OAAO,QAAQ,CAAC;gBACjB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAChB,KAAK,CAAC,SAAS,IAAI,QAAQ,EAAE,GAAG,KAAK,CAAC;oBACtC,MAAM,KAAK,CAAC;gBACb,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,KAAK,CAAC,SAAS,IAAI,QAAQ,EAAE,GAAG,KAAK,CAAC;YAEtC,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,KAAK,CAAC,SAAS,IAAI,QAAQ,EAAE,GAAG,KAAK,CAAC;YACtC,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAEO,WAAW,CAAC,IAAoB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,GAAG,EAAE,EAAE;YACvC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,sDAAsD;YACvE,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACP,OAAO,GAAG,GAAG,CAAC,CAAC;YAChB,CAAC;QACF,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,YAAY,CAAC,MAAmB;QACvC,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,CAAC,sDAAsD;QACjE,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC,MAAM,CAAC;QACtB,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACV,CAAC;IACF,CAAC;IAEO,mBAAmB;QAC1B,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;YAEjB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7C,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;oBAC9B,eAAe,IAAI,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC;oBACvD,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC;oBACnD,OAAO,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;oBACvC,QAAQ,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC;gBAC1C,CAAC;YACF,CAAC;YAED,GAAG,CAAC,sBAAsB,eAAe,gBAAgB,YAAY,GAAG,KAAK,eAAe,OAAO,YAAY,QAAQ,UAAU,CAAC,CAAC;QACpI,CAAC;IACF,CAAC;IAED;;OAEG;IACH,UAAU;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,YAAY,IAAI;YACvE,EAAE,EAAE,CAAC;YACL,GAAG,EAAE,CAAC;YACN,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,CAAC;SACb,CAAC,CAAC;IACJ,CAAC;CACD"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/runtime/scheduler.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ import type { PlanNode } from '../planner/nodes/plan-node.js';
9
9
  import type { RowContextMap } from './context-helpers.js';
10
10
  import type { CacheState } from './cache/shared-cache.js';
11
11
  import type { BTree } from 'inheritree';
12
+ import type { PlanNodeType } from '../planner/nodes/plan-node-type.js';
13
+ import type { WorkCounterCollector } from './work-counters.js';
12
14
  export type { OutputValue };
13
15
  export type RuntimeContext = {
14
16
  db: Database;
@@ -140,6 +142,15 @@ export type RuntimeContext = {
140
142
  tree: BTree<SqlValue, SqlValue>;
141
143
  hasNull: boolean;
142
144
  }>;
145
+ /**
146
+ * Per-execution work-counter collector; present only when `enableMetrics` is on
147
+ * AND the execution site built one (`Statement._iterateRowsRawInternal`). The
148
+ * transient metrics-enabled contexts (database.ts exec path, deferred-constraint
149
+ * queue, assertions) leave it undefined and keep today's behavior. Fork policy
150
+ * `shared-sink`: forks share the collector by reference so branch counts roll up
151
+ * into the parent snapshot with no merge step (see parallel-driver.ts).
152
+ */
153
+ workCounters?: WorkCounterCollector;
143
154
  };
144
155
  export type InstructionRun = (ctx: RuntimeContext, ...args: RuntimeValue[]) => OutputValue;
145
156
  export type Instruction = {
@@ -151,6 +162,14 @@ export type Instruction = {
151
162
  programs?: Scheduler[];
152
163
  /** Optional runtime statistics collected during execution */
153
164
  runtimeStats?: InstructionRuntimeStats;
165
+ /**
166
+ * PlanNodeType of the plan node this instruction was emitted from; stamped
167
+ * centrally in `emitPlanNode`. Undefined for synthetic instructions (emitCall
168
+ * callbacks, fused scalars). Labels work-counter snapshot entries
169
+ * (runtime/work-counters.ts) — values are stable strings, safe in a
170
+ * machine-independent surface where a plan-node id is not.
171
+ */
172
+ nodeType?: PlanNodeType;
154
173
  };
155
174
  /**
156
175
  * Adapts an emitter's precisely-typed `run` (e.g.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ import type { OutputValue } from '../common/types.js';
2
+ import type { PlanNode } from '../planner/nodes/plan-node.js';
3
+ import type { PlanNodeType } from '../planner/nodes/plan-node-type.js';
4
+ import type { Scheduler } from './scheduler.js';
5
+ /**
6
+ * Machine-independent work counters for one statement execution.
7
+ *
8
+ * Every number here is a *count* — executions, input values, output rows — chosen
9
+ * because counts come out identical on every machine and every run of the same plan,
10
+ * where timings do not. `elapsedNs` is deliberately absent: putting a nanosecond
11
+ * figure on a surface whose premise is machine-independence invites exactly the
12
+ * cross-machine comparison this surface exists to replace.
13
+ *
14
+ * Instruction identity is a structural program address (see
15
+ * {@link WorkCounterCollector}), never a plan-node id: `PlanNode.id` is a
16
+ * process-global counter, so two runs of the same query in one process get different
17
+ * ids and any id-derived key would diverge immediately.
18
+ */
19
+ /** Plan-shape facts, available after compile without executing. */
20
+ export interface PlanShape {
21
+ nodeCount: number;
22
+ /** PlanNodeType -> how many plan nodes of that type. Keys sorted. */
23
+ nodeTypes: Record<string, number>;
24
+ }
25
+ /**
26
+ * Engine-to-module access counts for one table within one execution.
27
+ *
28
+ * These measure the **engine-to-module** boundary — the calls the runtime itself
29
+ * issued — not the **module-to-storage** boundary. A module that swaps 1000 single-key
30
+ * reads for one batched multi-key read moves neither number here: the engine issued the
31
+ * same one `query()` either way. Counting inside a module is a separate instrument
32
+ * (the counting key-value store double in `@quereus/store/testing`).
33
+ */
34
+ export interface TableWorkCounters {
35
+ /** `query()` calls the engine issued against this table. */
36
+ queryCalls: number;
37
+ /** Rows the engine pulled out of those `query()` calls. */
38
+ rowsScanned: number;
39
+ /** `update()` calls the engine issued — insert, update and delete alike. */
40
+ updateCalls: number;
41
+ }
42
+ /** JSON-serializable snapshot of one execution's work counters: no bigint, no timings. */
43
+ export interface WorkCounterSnapshot {
44
+ /** Plan-shape facts. Available after compile — no execution needed. */
45
+ plan: PlanShape;
46
+ /** One entry per instruction that ran at least once, in program-walk order. */
47
+ instructions: Array<{
48
+ /** Structural address, e.g. `r#12` or `r/12/0#3`. Never contains a plan-node id. */
49
+ key: string;
50
+ /** PlanNodeType, when the instruction came from a plan node. */
51
+ nodeType?: string;
52
+ /** Times this instruction's `run` was invoked. */
53
+ executions: number;
54
+ /**
55
+ * Argument VALUES received, summed over executions — NOT input rows: a
56
+ * streaming argument counts 1 however many rows flow through it (its row
57
+ * count is the producing instruction's `out`). So `in` and `out` of one
58
+ * entry are on different scales; don't read `out/in` as selectivity.
59
+ */
60
+ in: number;
61
+ /** Rows/values produced, summed over executions — per yield for streams. */
62
+ out: number;
63
+ }>;
64
+ /**
65
+ * Engine-to-module access, keyed `<schema>.<table>` (lowercased), keys sorted.
66
+ *
67
+ * Keyed by TABLE, not by scan site: a self-join scans one table from two sites and
68
+ * both roll into one entry — the per-site breakdown is already in `instructions`.
69
+ * A table the execution never touched is absent (same claim-vs-silence rule the
70
+ * instruction list follows).
71
+ */
72
+ tables: Record<string, TableWorkCounters>;
73
+ totals: {
74
+ instructionExecutions: number;
75
+ rowsOut: number;
76
+ /** `query()` calls summed over every table. */
77
+ queryCalls: number;
78
+ /** Rows pulled out of those calls, summed over every table. */
79
+ rowsScanned: number;
80
+ /** `update()` calls summed over every table. */
81
+ updateCalls: number;
82
+ };
83
+ }
84
+ /** Mutable per-instruction counter cell; the scheduler's metrics hooks feed these. */
85
+ export interface WorkCounterSlot {
86
+ /** Structural address (`<program-path>#<instruction-index>`); never a plan-node id. */
87
+ readonly key: string;
88
+ /**
89
+ * PlanNodeType stamped by `emitPlanNode` — the operator that PRODUCED the
90
+ * instruction, so a transparent wrapper (alias, collate, …) reports its source's
91
+ * type. Undefined for synthetic instructions (emitCall callbacks, fused scalars).
92
+ */
93
+ readonly nodeType: PlanNodeType | undefined;
94
+ executions: number;
95
+ in: number;
96
+ out: number;
97
+ }
98
+ /**
99
+ * Records one instruction output into `slot` and returns the value to park.
100
+ *
101
+ * - An async iterable is wrapped in a counting generator that increments `out` per
102
+ * yield — the scheduler's `countOutputs` reports 1 for a stream, and a "row count"
103
+ * that says 1 for every streaming operator is not a row count.
104
+ * - An array adds its length; everything else adds 1 (matching `countOutputs`).
105
+ *
106
+ * The wrap is skipped only when THIS slot already wrapped the iterable: a
107
+ * pass-through iterable re-counted by a *different* instruction's slot is correct
108
+ * double-wrapping (rows flow through both instructions), not a bug. Metrics mode and
109
+ * tracing mode are mutually exclusive in `Scheduler.run()` (metrics wins), so there
110
+ * is no interplay with the tracing wrapper's own marker symbol.
111
+ *
112
+ * NOTE: the wrap turns a re-iterable output (an object whose `[Symbol.asyncIterator]()`
113
+ * can be called more than once) into a single-shot generator, so a second pass over it
114
+ * would yield nothing WITH METRICS ON only. Safe today: every re-drive in the runtime
115
+ * goes through an `emitCall` callback that returns a fresh iterable per call, so no
116
+ * instruction output is iterated twice. If an emitter ever parks a re-iterable as its
117
+ * output, wrap per `[Symbol.asyncIterator]()` call instead of once per value.
118
+ */
119
+ export declare function recordOutput(slot: WorkCounterSlot, value: OutputValue): OutputValue;
120
+ /**
121
+ * Per-execution collector of work counters for a root scheduler and every
122
+ * sub-program reachable from it.
123
+ *
124
+ * Built once per statement execution (in `Statement._iterateRowsRawInternal`) and
125
+ * carried on the `RuntimeContext` (fork policy `shared-sink`: forks share it by
126
+ * reference, so counts from a forked branch roll up with no merge step). The
127
+ * scheduler's metrics hooks look up their slot array via {@link countersFor} once
128
+ * per program run.
129
+ *
130
+ * Instruction identity is structural: the root program is `r`, and the scheduler at
131
+ * `instructions[i].programs[j]` of program `P` is addressed `P/i/j`; instruction `i`
132
+ * of a program keys as `<path>#<i>`. This depends only on the shape of the compiled
133
+ * plan — never on execution order, which branch ran, or any plan-node id — so two
134
+ * runs of the same plan produce the same keys on any machine.
135
+ *
136
+ * Unlike `Instruction.runtimeStats` (zeroed per program invocation for the debug
137
+ * log), these slots are NEVER reset mid-execution: a correlated subquery's
138
+ * sub-program driven 100 times reports 100 executions of its inner instructions —
139
+ * the number that makes an N+1 regression visible.
140
+ */
141
+ export declare class WorkCounterCollector {
142
+ /** Slot arrays keyed by Scheduler identity — root program and every sub-program. */
143
+ private readonly slots;
144
+ /** Every slot in deterministic walk order (each sub-program right after its owning instruction). */
145
+ private readonly walkOrder;
146
+ /**
147
+ * Engine-to-module access cells, keyed `<schema>.<table>` (lowercased) and created
148
+ * on first access. Unlike the instruction slots this is NOT pre-walked: which tables
149
+ * an execution actually touches is a run-time fact (a branch never taken never
150
+ * connects), and an entry that exists means "the engine called this table".
151
+ */
152
+ private readonly tables;
153
+ constructor(root: Scheduler);
154
+ private walk;
155
+ /** The slot array for one program, index-aligned with `scheduler.instructions`. */
156
+ countersFor(scheduler: Scheduler): WorkCounterSlot[] | undefined;
157
+ /**
158
+ * The engine-to-module cell for one table, created zeroed on first access.
159
+ *
160
+ * `key` must be the lowercased `<schema>.<table>` the table carries AT RUN TIME —
161
+ * the post-remap name when a deferred constraint evaluates a plan frozen before an
162
+ * `ALTER TABLE ... RENAME TO` — so one table never splits across two entries.
163
+ */
164
+ tableCounters(key: string): TableWorkCounters;
165
+ /**
166
+ * Builds a fresh, by-value snapshot: instructions that never ran are omitted
167
+ * (a missing snapshot and an all-zero one are different claims — see
168
+ * `Statement.getWorkCounters`), and totals sum over the included entries only.
169
+ * Table entries exist only for tables the engine actually called, on the same rule.
170
+ */
171
+ snapshot(plan: PlanShape): WorkCounterSnapshot;
172
+ }
173
+ /**
174
+ * Counts plan nodes and their types with an iterative walk over `getChildren()` and
175
+ * a visited set — NOT `PlanNode.visit()`, which deliberately visits a DAG node once
176
+ * per *path* and would double-count shared subtrees (inflating `nodeCount`
177
+ * nondeterministically-looking across otherwise-identical plans).
178
+ */
179
+ export declare function computePlanShape(root: PlanNode): PlanShape;
180
+ //# sourceMappingURL=work-counters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-counters.d.ts","sourceRoot":"","sources":["../../../src/runtime/work-counters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD;;;;;;;;;;;;;GAaG;AAEH,mEAAmE;AACnE,MAAM,WAAW,SAAS;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IACjC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IACnC,uEAAuE;IACvE,IAAI,EAAE,SAAS,CAAC;IAChB,+EAA+E;IAC/E,YAAY,EAAE,KAAK,CAAC;QACnB,oFAAoF;QACpF,GAAG,EAAE,MAAM,CAAC;QACZ,gEAAgE;QAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kDAAkD;QAClD,UAAU,EAAE,MAAM,CAAC;QACnB;;;;;WAKG;QACH,EAAE,EAAE,MAAM,CAAC;QACX,4EAA4E;QAC5E,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC,CAAC;IACH;;;;;;;OAOG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,MAAM,EAAE;QACP,qBAAqB,EAAE,MAAM,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,+CAA+C;QAC/C,UAAU,EAAE,MAAM,CAAC;QACnB,+DAA+D;QAC/D,WAAW,EAAE,MAAM,CAAC;QACpB,gDAAgD;QAChD,WAAW,EAAE,MAAM,CAAC;KACpB,CAAC;CACF;AAED,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACZ;AAKD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAqBnF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,oBAAoB;IAChC,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2C;IACjE,oGAAoG;IACpG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAEnD,IAAI,EAAE,SAAS;IAI3B,OAAO,CAAC,IAAI;IAgCZ,mFAAmF;IACnF,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe,EAAE,GAAG,SAAS;IAIhE;;;;;;OAMG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB;IAS7C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,mBAAmB;CAwC9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAoB1D"}
@@ -0,0 +1,210 @@
1
+ import { isAsyncIterable } from './utils.js';
2
+ /** Marker linking a counting-wrapped iterable back to the slot that wrapped it. */
3
+ const COUNTED_ITERABLE_SYMBOL = Symbol('workCountedIterable');
4
+ /**
5
+ * Records one instruction output into `slot` and returns the value to park.
6
+ *
7
+ * - An async iterable is wrapped in a counting generator that increments `out` per
8
+ * yield — the scheduler's `countOutputs` reports 1 for a stream, and a "row count"
9
+ * that says 1 for every streaming operator is not a row count.
10
+ * - An array adds its length; everything else adds 1 (matching `countOutputs`).
11
+ *
12
+ * The wrap is skipped only when THIS slot already wrapped the iterable: a
13
+ * pass-through iterable re-counted by a *different* instruction's slot is correct
14
+ * double-wrapping (rows flow through both instructions), not a bug. Metrics mode and
15
+ * tracing mode are mutually exclusive in `Scheduler.run()` (metrics wins), so there
16
+ * is no interplay with the tracing wrapper's own marker symbol.
17
+ *
18
+ * NOTE: the wrap turns a re-iterable output (an object whose `[Symbol.asyncIterator]()`
19
+ * can be called more than once) into a single-shot generator, so a second pass over it
20
+ * would yield nothing WITH METRICS ON only. Safe today: every re-drive in the runtime
21
+ * goes through an `emitCall` callback that returns a fresh iterable per call, so no
22
+ * instruction output is iterated twice. If an emitter ever parks a re-iterable as its
23
+ * output, wrap per `[Symbol.asyncIterator]()` call instead of once per value.
24
+ */
25
+ export function recordOutput(slot, value) {
26
+ if (isAsyncIterable(value)) {
27
+ if (value[COUNTED_ITERABLE_SYMBOL] === slot) {
28
+ return value;
29
+ }
30
+ const source = value;
31
+ const wrapped = (async function* () {
32
+ for await (const item of source) {
33
+ slot.out++;
34
+ yield item;
35
+ }
36
+ })();
37
+ wrapped[COUNTED_ITERABLE_SYMBOL] = slot;
38
+ return wrapped;
39
+ }
40
+ if (Array.isArray(value)) {
41
+ slot.out += value.length;
42
+ return value;
43
+ }
44
+ slot.out += 1;
45
+ return value;
46
+ }
47
+ /**
48
+ * Per-execution collector of work counters for a root scheduler and every
49
+ * sub-program reachable from it.
50
+ *
51
+ * Built once per statement execution (in `Statement._iterateRowsRawInternal`) and
52
+ * carried on the `RuntimeContext` (fork policy `shared-sink`: forks share it by
53
+ * reference, so counts from a forked branch roll up with no merge step). The
54
+ * scheduler's metrics hooks look up their slot array via {@link countersFor} once
55
+ * per program run.
56
+ *
57
+ * Instruction identity is structural: the root program is `r`, and the scheduler at
58
+ * `instructions[i].programs[j]` of program `P` is addressed `P/i/j`; instruction `i`
59
+ * of a program keys as `<path>#<i>`. This depends only on the shape of the compiled
60
+ * plan — never on execution order, which branch ran, or any plan-node id — so two
61
+ * runs of the same plan produce the same keys on any machine.
62
+ *
63
+ * Unlike `Instruction.runtimeStats` (zeroed per program invocation for the debug
64
+ * log), these slots are NEVER reset mid-execution: a correlated subquery's
65
+ * sub-program driven 100 times reports 100 executions of its inner instructions —
66
+ * the number that makes an N+1 regression visible.
67
+ */
68
+ export class WorkCounterCollector {
69
+ /** Slot arrays keyed by Scheduler identity — root program and every sub-program. */
70
+ slots = new Map();
71
+ /** Every slot in deterministic walk order (each sub-program right after its owning instruction). */
72
+ walkOrder = [];
73
+ /**
74
+ * Engine-to-module access cells, keyed `<schema>.<table>` (lowercased) and created
75
+ * on first access. Unlike the instruction slots this is NOT pre-walked: which tables
76
+ * an execution actually touches is a run-time fact (a branch never taken never
77
+ * connects), and an entry that exists means "the engine called this table".
78
+ */
79
+ tables = new Map();
80
+ constructor(root) {
81
+ this.walk(root, 'r');
82
+ }
83
+ walk(scheduler, path) {
84
+ // Defensive: a scheduler reachable via two paths keeps its first path's keys
85
+ // (counters are per Scheduler identity, so both paths report under one key).
86
+ if (this.slots.has(scheduler))
87
+ return;
88
+ const programSlots = [];
89
+ this.slots.set(scheduler, programSlots);
90
+ for (let i = 0; i < scheduler.instructions.length; i++) {
91
+ const instruction = scheduler.instructions[i];
92
+ const slot = {
93
+ key: `${path}#${i}`,
94
+ nodeType: instruction.nodeType,
95
+ executions: 0,
96
+ in: 0,
97
+ out: 0,
98
+ };
99
+ programSlots.push(slot);
100
+ this.walkOrder.push(slot);
101
+ // NOTE: assumes `Instruction.programs` is only ever set by `emitCall`
102
+ // (runtime/emitters.ts), today's single site, and set at EMIT time — the walk
103
+ // runs once at execution start, so a Scheduler built during the run is absent
104
+ // from the map and `countersFor` returns undefined, silently counting nothing
105
+ // for it. The walk stays correct if a future emitter sets `programs` directly
106
+ // at emit time — addressing is purely structural — but that emitter's
107
+ // sub-programs silently start being counted here too.
108
+ if (instruction.programs) {
109
+ for (let j = 0; j < instruction.programs.length; j++) {
110
+ this.walk(instruction.programs[j], `${path}/${i}/${j}`);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ /** The slot array for one program, index-aligned with `scheduler.instructions`. */
116
+ countersFor(scheduler) {
117
+ return this.slots.get(scheduler);
118
+ }
119
+ /**
120
+ * The engine-to-module cell for one table, created zeroed on first access.
121
+ *
122
+ * `key` must be the lowercased `<schema>.<table>` the table carries AT RUN TIME —
123
+ * the post-remap name when a deferred constraint evaluates a plan frozen before an
124
+ * `ALTER TABLE ... RENAME TO` — so one table never splits across two entries.
125
+ */
126
+ tableCounters(key) {
127
+ let entry = this.tables.get(key);
128
+ if (entry === undefined) {
129
+ entry = { queryCalls: 0, rowsScanned: 0, updateCalls: 0 };
130
+ this.tables.set(key, entry);
131
+ }
132
+ return entry;
133
+ }
134
+ /**
135
+ * Builds a fresh, by-value snapshot: instructions that never ran are omitted
136
+ * (a missing snapshot and an all-zero one are different claims — see
137
+ * `Statement.getWorkCounters`), and totals sum over the included entries only.
138
+ * Table entries exist only for tables the engine actually called, on the same rule.
139
+ */
140
+ snapshot(plan) {
141
+ const instructions = [];
142
+ let instructionExecutions = 0;
143
+ let rowsOut = 0;
144
+ for (const slot of this.walkOrder) {
145
+ if (slot.executions === 0)
146
+ continue;
147
+ const entry = {
148
+ key: slot.key,
149
+ executions: slot.executions,
150
+ in: slot.in,
151
+ out: slot.out,
152
+ };
153
+ if (slot.nodeType !== undefined) {
154
+ entry.nodeType = slot.nodeType;
155
+ }
156
+ instructions.push(entry);
157
+ instructionExecutions += slot.executions;
158
+ rowsOut += slot.out;
159
+ }
160
+ // Sorted keys so two snapshots of the same execution serialize identically —
161
+ // Map iteration order is insertion order, which is scan-connect order, which a
162
+ // plan change can reshuffle without changing any count.
163
+ const tables = {};
164
+ let queryCalls = 0;
165
+ let rowsScanned = 0;
166
+ let updateCalls = 0;
167
+ for (const key of [...this.tables.keys()].sort()) {
168
+ const cell = this.tables.get(key);
169
+ tables[key] = { queryCalls: cell.queryCalls, rowsScanned: cell.rowsScanned, updateCalls: cell.updateCalls };
170
+ queryCalls += cell.queryCalls;
171
+ rowsScanned += cell.rowsScanned;
172
+ updateCalls += cell.updateCalls;
173
+ }
174
+ return {
175
+ plan: { nodeCount: plan.nodeCount, nodeTypes: { ...plan.nodeTypes } },
176
+ instructions,
177
+ tables,
178
+ totals: { instructionExecutions, rowsOut, queryCalls, rowsScanned, updateCalls },
179
+ };
180
+ }
181
+ }
182
+ /**
183
+ * Counts plan nodes and their types with an iterative walk over `getChildren()` and
184
+ * a visited set — NOT `PlanNode.visit()`, which deliberately visits a DAG node once
185
+ * per *path* and would double-count shared subtrees (inflating `nodeCount`
186
+ * nondeterministically-looking across otherwise-identical plans).
187
+ */
188
+ export function computePlanShape(root) {
189
+ const visited = new Set();
190
+ const stack = [root];
191
+ const counts = new Map();
192
+ let nodeCount = 0;
193
+ while (stack.length > 0) {
194
+ const node = stack.pop();
195
+ if (visited.has(node))
196
+ continue;
197
+ visited.add(node);
198
+ nodeCount++;
199
+ counts.set(node.nodeType, (counts.get(node.nodeType) ?? 0) + 1);
200
+ for (const child of node.getChildren()) {
201
+ stack.push(child);
202
+ }
203
+ }
204
+ const nodeTypes = {};
205
+ for (const key of [...counts.keys()].sort()) {
206
+ nodeTypes[key] = counts.get(key);
207
+ }
208
+ return { nodeCount, nodeTypes };
209
+ }
210
+ //# sourceMappingURL=work-counters.js.map