pipework 0.284.0 → 0.285.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.285.0
4
+
5
+ - **Added: statement identity on `onStatementSettled`; changed: `query:slow`, `query:in-flight` and `query:large` log the label and the SQL side by side** (#994). The settled event named a statement only by its `pipe.labelled` label, so unlabelled statements could not be told apart or grouped. `StatementSettledEvent` now carries `statementId` and `statementPrefix`. `statementId` is `v1:` plus the first 16 hex characters of the SHA-256 of the whitespace-collapsed parameterized SQL; it is stable across calls and processes, and it never contains bound values. A change to its definition gets a new prefix. `statementPrefix` is the first 120 characters of that same text. The three log lines now carry `label` (the `pipe.labelled` label, or null) and `sql` (the same 120-character prefix) as separate fields. **Breaking for log queries:** `label` used to fall back to the SQL text when no label was set; it is now null and the text is in `sql`. The docs now say which statements the hook does not see: the driver's own BEGIN/COMMIT, the raw `client` door and the migration runner's connection.
6
+
3
7
  ## 0.284.0
4
8
 
5
9
  - **Added: `query:large`, a warning when a statement's size is over a budget** (#975). `query:slow` reports only time, so a 196 KB statement with ~20 MB of parameters and 300+ union arms, or a read draining 714k rows to keep 18k, went unnoticed. Four `observability` budgets, each a non-negative integer where 0 turns it off and nothing is measured for it: `largeQueryParamBytes` (estimated bind-parameter bytes: strings by UTF-8 length, buffers by byte length, arrays summed, scalars 8, objects by JSON length; default 8 MiB), `largeQuerySqlChars` (SQL text length; default 131072), `largeQueryArms` (UNION/INTERSECT/EXCEPT arms counted in the SQL text at every depth, quoted literals and identifiers skipped; default 50) and `largeQueryRows` (rows returned or affected; default 100000). A statement over any of them logs one `query:large` warning after it settles, with the label (as `query:slow` gives it), the database, `over` (the budgets exceeded) and every enabled measurement. Measuring never affects the statement.
package/README.md CHANGED
@@ -173,6 +173,12 @@ const server = createServer(instance, {
173
173
  })
174
174
  ```
175
175
 
176
+ ## Observability
177
+
178
+ `observability` in `pipework.config.ts` carries the query watch. `slowQueryMs`, `inFlightQueryMs` and the `largeQuery*` budgets log `query:slow`, `query:in-flight` and `query:large`; each line carries `label` (the `pipe.labelled` label, or null) and `sql` (the first 120 characters of the whitespace-collapsed statement, placeholders only).
179
+
180
+ `onStatementSettled` is called once per settled statement with `{ label, statementId, statementPrefix, durationMs, rows, connectionId, error? }`. `statementId` is `v1:` plus a stable hash of the whitespace-collapsed parameterized SQL, so one statement shape keeps one id whatever its parameter values; parameters never reach the event. The hook fires for every statement through pipework's query path (`pipe()`, `pipe.*` writes, `connection.drizzle`, transactions, savepoints, the test harness), not for the driver's own BEGIN/COMMIT, the raw `client` door or the migration runner's connection. A sum of its durations leaves those out.
181
+
176
182
  ## Documentation
177
183
 
178
184
  API documentation lives in two places:
@@ -140,7 +140,7 @@ const observabilitySchema = z.object({
140
140
  .describe('Per-statement observer — fires once per statement written to the wire, including driver-issued BEGIN/SAVEPOINT/COMMIT/ROLLBACK'),
141
141
  onStatementSettled: z.custom(v => typeof v === 'function', { message: 'Expected a function' })
142
142
  .optional()
143
- .describe('Per-statement completion hook — fires once per statement when it settles, with label, durationMs, rows, connectionId and (on failure) a sanitized error'),
143
+ .describe('Per-statement completion hook — fires once per statement when it settles, with label, statementId, statementPrefix, durationMs, rows, connectionId and (on failure) a sanitized error. Covers every statement through pipework\'s query path (pipe(), pipe.* writes, connection.drizzle, transactions, savepoints, the test harness), not the driver\'s own BEGIN/COMMIT, the raw client door or the migration runner\'s connection'),
144
144
  });
145
145
  const envVarDefSchema = z.discriminatedUnion('type', [
146
146
  z.object({ type: z.literal('string'), required: z.boolean().optional(), default: z.string().optional(), sensitive: z.boolean().optional(), defaults: z.record(z.string(), z.string()).optional() }),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"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"}
@@ -60,14 +60,39 @@ export interface StatementSettledError {
60
60
  /**
61
61
  * One statement as it settles — the completion counterpart to `StatementEvent`.
62
62
  * Fields are only ever added to this payload, never reshaped.
63
+ *
64
+ * Fires for every statement through pipework's query path (`pipe()`, `pipe.*`
65
+ * writes, `connection.drizzle`, transactions, savepoints, the test harness), not
66
+ * for the driver's own BEGIN/COMMIT, the raw `client` door or the migration
67
+ * runner's connection: a sum of `durationMs` leaves those out.
63
68
  */
64
69
  export interface StatementSettledEvent {
65
70
  /**
66
71
  * The `pipe.labelled` label in effect when the statement settled; null when
67
- * none. This is the label alone: unlike `query:slow`, it never falls back to
68
- * the statement text.
72
+ * none. This is the label alone: it never falls back to the statement text
73
+ * (`statementPrefix` carries that).
69
74
  */
70
75
  readonly label: string | null;
76
+ /**
77
+ * Which statement shape this was, stable across calls and processes:
78
+ * `v1:` followed by the first 16 hex characters of the SHA-256 of the
79
+ * statement text exactly as sent to the server (parameterized, `$1`, `$2`...
80
+ * placeholders) with every run of whitespace collapsed to one space and the
81
+ * ends trimmed, hashed as UTF-8. It holds no constants and no bound values, so
82
+ * the same statement with different parameter values or different
83
+ * formatting has the same id, and different SQL has a different one.
84
+ * `v1` names this exact definition: a change to the hash, the length or the
85
+ * normalization gets a new prefix (`v2:`), never a silent redefinition, so
86
+ * records keyed on an id never split without the prefix saying so.
87
+ */
88
+ readonly statementId: string;
89
+ /**
90
+ * The first 120 characters of the same whitespace-collapsed statement text
91
+ * (placeholders, no bound values): what `query:slow`, `query:in-flight` and
92
+ * `query:large` log as `sql`. A readable name for `statementId`; two shapes
93
+ * can share a prefix, so key on `statementId`.
94
+ */
95
+ readonly statementPrefix: string;
71
96
  /**
72
97
  * Wall-clock milliseconds the statement took, measured by the same timer as
73
98
  * `query:slow` (so for one statement the two agree exactly).
@@ -89,13 +114,12 @@ export interface StatementSettledEvent {
89
114
  readonly error?: StatementSettledError;
90
115
  }
91
116
  /**
92
- * Caller-supplied completion hook. Fires once per statement that settles, on
93
- * every statement pipework runs through its own query path: `pipe()`, every
94
- * `pipe.*` write, `connection.drizzle`, transactions and savepoints, and the
95
- * test harness's connections. It does not fire for the driver's own
96
- * transaction control (`BEGIN`/`SAVEPOINT`/`COMMIT`/`ROLLBACK`), nor for the
97
- * raw `ManagedConnection.client` door, nor for the migration runner's own
98
- * connection; `onStatement` is the hook that sees wire truth.
117
+ * Caller-supplied completion hook. Fires once per statement that settles, for
118
+ * every statement through pipework's query path (`pipe()`, `pipe.*` writes,
119
+ * `connection.drizzle`, transactions, savepoints, the test harness), not for the
120
+ * driver's own BEGIN/COMMIT, the raw `client` door or the migration runner's
121
+ * connection; `onStatement` is the hook that sees wire truth. The event names the
122
+ * statement by `statementId` and `statementPrefix`, never by its parameters.
99
123
  *
100
124
  * Pure observation, fired after the statement has settled and its result is on
101
125
  * its way back: a hook that throws, or returns a promise that rejects, is
@@ -1 +1 @@
1
- {"version":3,"file":"statement-observer.d.ts","sourceRoot":"","sources":["../../../src/core/config/statement-observer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,CAAA;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAA;CACvC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"statement-observer.d.ts","sourceRoot":"","sources":["../../../src/core/config/statement-observer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,CAAA;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAA;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -144,7 +144,7 @@ export declare const pipe: typeof getDb & {
144
144
  readonly inList: typeof import("./in-list.js").inList;
145
145
  readonly notInList: typeof import("./in-list.js").notInList;
146
146
  };
147
- /** Names every statement `fn` starts, in `query:slow`, `query:large` and `query:in-flight` log lines: `pipe.labelled('servable-footprints', async () => await ...)`. A query builder is lazy: `fn` must await it, not return it, or it runs outside the scope. */
147
+ /** Names every statement `fn` starts, in `query:slow`, `query:large` and `query:in-flight` log lines (as `label`, beside the `sql` prefix): `pipe.labelled('servable-footprints', async () => await ...)`. A query builder is lazy: `fn` must await it, not return it, or it runs outside the scope. */
148
148
  labelled: typeof labelled;
149
149
  /** Raw statement tag — for a statement pipework does not model. Interpolated values are parameters; `sql.raw` is not. Runs on the caller's connection, so inside a request it is the request transaction. Writes still go through pipe.update / insert / delete, which is what audit hooks. */
150
150
  sql: typeof sql;
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/data/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGnM,OAAO,EAAS,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGzE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE3E,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,mJAAmJ;AACnJ,eAAO,MAAM,IAAI;IACf,iQAAiQ;;IAGjQ,6QAA6Q;;IAG7Q,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7E,kQAAkQ;;IAGlQ,+RAA+R;;;;;;;;;;;;;IAkB/R,oDAAoD;;IAEpD,mDAAmD;;IAGnD,6EAA6E;;IAG7E,gFAAgF;;IAGhF,qHAAqH;;IAGrH,kHAAkH;;IAGlH,oMAAoM;;IAGpM,2GAA2G;;IAG3G,0GAA0G;;IAG1G,uVAAuV;;IAGvV,uNAAuN;;IAGvN,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;IAE9E,qMAAqM;;IAErM,6DAA6D;;IAE7D,+LAA+L;;IAG/L,2GAA2G;;IAE3G,kNAAkN;;IAElN,gHAAgH;;IAEhH,kQAAkQ;;CAElQ,CAAA"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/data/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGnM,OAAO,EAAS,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGzE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE3E,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,mJAAmJ;AACnJ,eAAO,MAAM,IAAI;IACf,iQAAiQ;;IAGjQ,6QAA6Q;;IAG7Q,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7E,wSAAwS;;IAGxS,+RAA+R;;;;;;;;;;;;;IAkB/R,oDAAoD;;IAEpD,mDAAmD;;IAGnD,6EAA6E;;IAG7E,gFAAgF;;IAGhF,qHAAqH;;IAGrH,kHAAkH;;IAGlH,oMAAoM;;IAGpM,2GAA2G;;IAG3G,0GAA0G;;IAG1G,uVAAuV;;IAGvV,uNAAuN;;IAGvN,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;IAE9E,qMAAqM;;IAErM,6DAA6D;;IAE7D,+LAA+L;;IAG/L,2GAA2G;;IAE3G,kNAAkN;;IAElN,gHAAgH;;IAEhH,kQAAkQ;;CAElQ,CAAA"}
@@ -27,7 +27,7 @@ export const pipe = Object.assign(getDb, {
27
27
  door: pipeDoor,
28
28
  /** Query operators and aggregates — eq, gt, lt, and, or, count, sum, etc. */
29
29
  filter,
30
- /** Names every statement `fn` starts, in `query:slow`, `query:large` and `query:in-flight` log lines: `pipe.labelled('servable-footprints', async () => await ...)`. A query builder is lazy: `fn` must await it, not return it, or it runs outside the scope. */
30
+ /** Names every statement `fn` starts, in `query:slow`, `query:large` and `query:in-flight` log lines (as `label`, beside the `sql` prefix): `pipe.labelled('servable-footprints', async () => await ...)`. A query builder is lazy: `fn` must await it, not return it, or it runs outside the scope. */
31
31
  labelled,
32
32
  /** Raw statement tag — for a statement pipework does not model. Interpolated values are parameters; `sql.raw` is not. Runs on the caller's connection, so inside a request it is the request transaction. Writes still go through pipe.update / insert / delete, which is what audit hooks. */
33
33
  sql,
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/data/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEnM,qBAAqB;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAKzE,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,mJAAmJ;AACnJ,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,iQAAiQ;IACjQ,MAAM,EAAE,UAAU;IAElB,6QAA6Q;IAC7Q,IAAI,EAAE,QAAQ;IAEd,6EAA6E;IAC7E,MAAM;IAEN,kQAAkQ;IAClQ,QAAQ;IAER,+RAA+R;IAC/R,GAAG;IAEH,kGAAkG;IAClG,eAAe;IACf,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,WAAW;IACX,qBAAqB;IACrB,OAAO;IAEP,qDAAqD;IACrD,UAAU;IACV,SAAS;IACT,SAAS;IAET,oDAAoD;IACpD,OAAO,EAAE,UAAU;IACnB,mDAAmD;IACnD,UAAU;IAEV,6EAA6E;IAC7E,QAAQ;IAER,gFAAgF;IAChF,YAAY;IAEZ,qHAAqH;IACrH,eAAe;IAEf,kHAAkH;IAClH,YAAY;IAEZ,oMAAoM;IACpM,YAAY;IAEZ,2GAA2G;IAC3G,OAAO;IAEP,0GAA0G;IAC1G,MAAM;IAEN,uVAAuV;IACvV,IAAI;IAEJ,uNAAuN;IACvN,EAAE;IAEF,8EAA8E;IAC9E,KAAK;IACL,qMAAqM;IACrM,MAAM;IACN,6DAA6D;IAC7D,WAAW;IACX,+LAA+L;IAC/L,QAAQ;IAER,2GAA2G;IAC3G,MAAM;IACN,kNAAkN;IAClN,MAAM;IACN,gHAAgH;IAChH,MAAM,EAAE,MAAM;IACd,kQAAkQ;IAClQ,MAAM;CACP,CAAC,CAAA"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/data/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEnM,qBAAqB;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAKzE,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,mJAAmJ;AACnJ,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,iQAAiQ;IACjQ,MAAM,EAAE,UAAU;IAElB,6QAA6Q;IAC7Q,IAAI,EAAE,QAAQ;IAEd,6EAA6E;IAC7E,MAAM;IAEN,wSAAwS;IACxS,QAAQ;IAER,+RAA+R;IAC/R,GAAG;IAEH,kGAAkG;IAClG,eAAe;IACf,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,WAAW;IACX,qBAAqB;IACrB,OAAO;IAEP,qDAAqD;IACrD,UAAU;IACV,SAAS;IACT,SAAS;IAET,oDAAoD;IACpD,OAAO,EAAE,UAAU;IACnB,mDAAmD;IACnD,UAAU;IAEV,6EAA6E;IAC7E,QAAQ;IAER,gFAAgF;IAChF,YAAY;IAEZ,qHAAqH;IACrH,eAAe;IAEf,kHAAkH;IAClH,YAAY;IAEZ,oMAAoM;IACpM,YAAY;IAEZ,2GAA2G;IAC3G,OAAO;IAEP,0GAA0G;IAC1G,MAAM;IAEN,uVAAuV;IACvV,IAAI;IAEJ,uNAAuN;IACvN,EAAE;IAEF,8EAA8E;IAC9E,KAAK;IACL,qMAAqM;IACrM,MAAM;IACN,6DAA6D;IAC7D,WAAW;IACX,+LAA+L;IAC/L,QAAQ;IAER,2GAA2G;IAC3G,MAAM;IACN,kNAAkN;IAClN,MAAM;IACN,gHAAgH;IAChH,MAAM,EAAE,MAAM;IACd,kQAAkQ;IAClQ,MAAM;CACP,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"query-watch.d.ts","sourceRoot":"","sources":["../../../src/data/db/query-watch.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,KAAK,EAAyB,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAe9G,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC,GAAG,iBAAiB,CAEpB;AAED,uHAAuH;AACvH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,wFAAwF;IACxF,QAAQ,CAAC,SAAS,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAA;IACzD,yCAAyC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAA;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACrG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AA4BD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAqIzF"}
1
+ {"version":3,"file":"query-watch.d.ts","sourceRoot":"","sources":["../../../src/data/db/query-watch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,KAAK,EAAyB,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAgB9G,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC,GAAG,iBAAiB,CAEpB;AAED,uHAAuH;AACvH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,wFAAwF;IACxF,QAAQ,CAAC,SAAS,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAA;IACzD,yCAAyC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAA;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACrG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AA0CD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAwIzF"}
@@ -1,9 +1,11 @@
1
1
  import postgres from 'postgres';
2
+ import { createHash } from 'node:crypto';
2
3
  import { getLogger } from '../../core/logging/logger.js';
3
4
  import { currentQueryLabel } from './query-label.js';
4
5
  import { DrizzleQueryError } from '../query/errors.js';
5
6
  import { parameterBytes, setOperationArms } from './query-size.js';
6
7
  const LABEL_SQL_CHARS = 120;
8
+ const STATEMENT_ID_HEX_CHARS = 16;
7
9
  const SAMPLE_TIMEOUT_MS = 2_000;
8
10
  const PG_TRUNCATED_QUERY_LENGTH = 1_000;
9
11
  const UNKNOWN_BACKEND = { pid: null, state: null, waitEventType: null, waitEvent: null };
@@ -35,8 +37,20 @@ function settledError(raw) {
35
37
  ...(typeof code === 'string' ? { code } : {}),
36
38
  };
37
39
  }
38
- function labelFor(sqlText) {
39
- return currentQueryLabel() ?? sqlText.replace(/\s+/g, ' ').trim().slice(0, LABEL_SQL_CHARS);
40
+ function collapse(sqlText) {
41
+ return sqlText.replace(/\s+/g, ' ').trim();
42
+ }
43
+ /** The first 120 characters of the whitespace-collapsed statement text: the `sql` of the log lines and `statementPrefix`. */
44
+ function sqlPrefix(sqlText) {
45
+ return collapse(sqlText).slice(0, LABEL_SQL_CHARS);
46
+ }
47
+ /**
48
+ * `v1:` + the first 16 hex characters (64 bits) of the SHA-256 of the whitespace-collapsed
49
+ * parameterized text. 64 bits keeps a collision among an app's few thousand statement shapes
50
+ * negligible (birthday bound near 4 billion shapes) while the id stays short in a log line.
51
+ */
52
+ function statementIdOf(sqlText) {
53
+ return `v1:${createHash('sha256').update(collapse(sqlText)).digest('hex').slice(0, STATEMENT_ID_HEX_CHARS)}`;
40
54
  }
41
55
  /**
42
56
  * Wraps each statement of one database's pool: a `query:slow` warning when it settles past
@@ -110,7 +124,7 @@ export function createStatementWatch(options) {
110
124
  check('arms', b.arms, () => setOperationArms(sqlText));
111
125
  check('rows', b.rows, () => (outcome !== undefined && 'result' in outcome ? rowsOf(outcome.result) : 0));
112
126
  if (over.length > 0)
113
- getLogger().warn({ label: labelFor(sqlText), database, over, ...measured }, 'query:large');
127
+ getLogger().warn({ label: currentQueryLabel() ?? null, sql: sqlPrefix(sqlText), database, over, ...measured }, 'query:large');
114
128
  }
115
129
  catch { /* a measurement must never affect the statement */ }
116
130
  }
@@ -123,14 +137,15 @@ export function createStatementWatch(options) {
123
137
  let settled = false;
124
138
  if (inFlightQueryMs !== undefined) {
125
139
  const log = getLogger();
126
- const label = labelFor(sqlText);
140
+ const label = currentQueryLabel() ?? null;
141
+ const sql = sqlPrefix(sqlText);
127
142
  interval = setInterval(() => {
128
143
  const elapsedS = Math.round((Date.now() - startedMs) / 100) / 10;
129
144
  void sampleBackend(sqlText, startedMs).then(backend => {
130
145
  if (settled)
131
146
  return;
132
147
  log.warn({
133
- label, elapsedS, database,
148
+ label, sql, elapsedS, database,
134
149
  pid: backend.pid, state: backend.state,
135
150
  waitEventType: backend.waitEventType, waitEvent: backend.waitEvent,
136
151
  }, 'query:in-flight');
@@ -155,7 +170,7 @@ export function createStatementWatch(options) {
155
170
  clearInterval(interval);
156
171
  const durationMs = Date.now() - startedMs;
157
172
  if (slowQueryMs > 0 && durationMs > slowQueryMs) {
158
- getLogger().warn({ label: labelFor(sqlText), durationMs, database }, 'query:slow');
173
+ getLogger().warn({ label: currentQueryLabel() ?? null, sql: sqlPrefix(sqlText), durationMs, database }, 'query:slow');
159
174
  }
160
175
  const parameters = pendingQuery === undefined ? undefined : pendingQuery.parameters;
161
176
  if (watchesSize)
@@ -164,6 +179,8 @@ export function createStatementWatch(options) {
164
179
  const connectionId = typeof parameters === 'object' && parameters !== null ? connections?.get(parameters) ?? null : null;
165
180
  fireSettled({
166
181
  label: currentQueryLabel() ?? null,
182
+ statementId: statementIdOf(sqlText),
183
+ statementPrefix: sqlPrefix(sqlText),
167
184
  durationMs,
168
185
  rows: 'result' in outcome ? rowsOf(outcome.result) : 0,
169
186
  connectionId,
@@ -1 +1 @@
1
- {"version":3,"file":"query-watch.js","sourceRoot":"","sources":["../../../src/data/db/query-watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-watch.js","sourceRoot":"","sources":["../../../src/data/db/query-watch.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAIlE,MAAM,eAAe,GAAG,GAAG,CAAA;AAC3B,MAAM,sBAAsB,GAAG,EAAE,CAAA;AACjC,MAAM,iBAAiB,GAAG,KAAK,CAAA;AAC/B,MAAM,yBAAyB,GAAG,KAAK,CAAA;AASvC,MAAM,eAAe,GAAkB,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAUvG,yDAAyD;AACzD,MAAM,UAAU,iBAAiB,CAAC,CAKjC;IACC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,cAAc,EAAE,CAAA;AACnI,CAAC;AAyBD,sHAAsH;AACtH,SAAS,MAAM,CAAC,MAAe;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAI,MAA8B,CAAC,KAAK,CAAA;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,6GAA6G;AAC7G,SAAS,YAAY,CAAC,GAAY;IAChC,yHAAyH;IACzH,IAAI,GAAG,GAAG,GAAG,CAAA;IACb,OAAO,GAAG,YAAY,iBAAiB,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAA;IACnF,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;IAC3F,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAA4D,CAAA;IAC5F,OAAO;QACL,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;QAC/C,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACnD,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AAC5C,CAAC;AAED,6HAA6H;AAC7H,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,EAAE,CAAA;AAC9G,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA8B;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IACnF,MAAM,WAAW,GAAG,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;IACzI,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IACxE,6FAA6F;IAC7F,+FAA+F;IAC/F,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,EAAkB,CAAC,CAAC,CAAC,SAAS,CAAA;IACzE,IAAI,OAAiC,CAAA;IACrC,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,MAAM,GAAG,KAAK,CAAA;IAElB,SAAS,aAAa,CAAC,OAAe,EAAE,SAAiB;QACvD,IAAI,QAAQ,IAAI,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAC/D,QAAQ,GAAG,IAAI,CAAA;QACf,OAAO,KAAK,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;QAClH,MAAM,MAAM,GAAG,OAAO,CAAA;QACtB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CACvB;;gDAE0C,MAAM,CAAC,yBAAyB,CAAC;0EACP,EACpE,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC,CAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACZ,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,OAAO,GAAG,KAAK,SAAS;gBACtB,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,CAAA;QACvG,CAAC,CAAC,CAAA;QACF,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,CAAA,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,CAAA,CAAC,CAAC,CAAC,CAAA;QACrE,IAAI,KAAiC,CAAA;QACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAgB,OAAO,CAAC,EAAE;YACnD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAA;YACzE,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IACzG,CAAC;IAED,SAAS,WAAW,CAAC,KAA8C;QACjE,IAAI,CAAC,SAAS;YAAE,OAAM;QACtB,MAAM,MAAM,GAAG,CAAC,GAAY,EAAQ,EAAE;YACpC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,+BAA+B,CAAC,CAAA;QACtE,CAAC,CAAA;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;YAC5B,IAAI,GAAG,KAAK,SAAS,IAAI,OAAQ,GAAqB,CAAC,IAAI,KAAK,UAAU;gBAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACrH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,CAAA;QACb,CAAC;IACH,CAAC;IAED,iHAAiH;IACjH,SAAS,WAAW,CAAC,OAAe,EAAE,UAAmB,EAAE,OAA6D,EAAE,CAAoB;QAC5I,IAAI,CAAC;YACH,MAAM,QAAQ,GAA2B,EAAE,CAAA;YAC3C,MAAM,IAAI,GAAa,EAAE,CAAA;YACzB,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,OAAqB,EAAQ,EAAE;gBAC1E,IAAI,MAAM,IAAI,CAAC;oBAAE,OAAM;gBACvB,MAAM,KAAK,GAAG,OAAO,EAAE,CAAA;gBACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;gBACtB,IAAI,KAAK,GAAG,MAAM;oBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrC,CAAC,CAAA;YACD,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;YAC3E,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACnD,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;YACtD,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACxG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAA;QACpJ,CAAC;QAAC,MAAM,CAAC,CAAC,mDAAmD,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,GAAmB,KAAK,EAAK,OAAe,EAAE,GAAoD,EAAc,EAAE;QAC3H,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,IAAI,YAAgC,CAAA;QACpC,IAAI,OAA6D,CAAA;QACjE,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE,GAAG,YAAY,GAAG,OAAO,CAAA,CAAC,CAAC,CAAA;QAClE,IAAI,QAAoC,CAAA;QACxC,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;YACvB,MAAM,KAAK,GAAG,iBAAiB,EAAE,IAAI,IAAI,CAAA;YACzC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YAC9B,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;gBAChE,KAAK,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oBACpD,IAAI,OAAO;wBAAE,OAAM;oBACnB,GAAG,CAAC,IAAI,CAAC;wBACP,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ;wBAC9B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;wBACtC,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS;qBACnE,EAAE,iBAAiB,CAAC,CAAA;gBACvB,CAAC,CAAC,CAAA;YACJ,CAAC,EAAE,eAAe,CAAC,CAAA;YACnB,QAAQ,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;YAC9B,IAAI,YAAY;gBAAE,OAAO,GAAG,EAAE,MAAM,EAAE,CAAA;YACtC,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,YAAY;gBAAE,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;YAC1C,MAAM,GAAG,CAAA;QACX,CAAC;gBAAS,CAAC;YACT,OAAO,GAAG,IAAI,CAAA;YACd,IAAI,QAAQ,KAAK,SAAS;gBAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;YACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;YACzC,IAAI,WAAW,GAAG,CAAC,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;gBAChD,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAA;YACvH,CAAC;YACD,MAAM,UAAU,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,YAAyC,CAAC,UAAU,CAAA;YACjH,IAAI,WAAW;gBAAE,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YACnE,IAAI,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;gBACxH,WAAW,CAAC;oBACV,KAAK,EAAE,iBAAiB,EAAE,IAAI,IAAI;oBAClC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC;oBACnC,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC;oBACnC,UAAU;oBACV,IAAI,EAAE,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtD,YAAY;oBACZ,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtE,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACL,KAAK;QACL,cAAc,EAAE,WAAW;YACzB,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA,CAAC,CAAC;YAC7E,CAAC,CAAC,SAAS;QACb,KAAK,CAAC,KAAK;YACT,MAAM,GAAG,IAAI,CAAA;YACb,MAAM,MAAM,GAAG,OAAO,CAAA;YACtB,OAAO,GAAG,SAAS,CAAA;YACnB,IAAI,MAAM;gBAAE,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC9D,CAAC;KACF,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.284.0",
3
+ "version": "0.285.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -187,7 +187,7 @@ const observabilitySchema = z.object({
187
187
  .describe('Per-statement observer — fires once per statement written to the wire, including driver-issued BEGIN/SAVEPOINT/COMMIT/ROLLBACK'),
188
188
  onStatementSettled: z.custom<StatementSettledObserver>(v => typeof v === 'function', { message: 'Expected a function' })
189
189
  .optional()
190
- .describe('Per-statement completion hook — fires once per statement when it settles, with label, durationMs, rows, connectionId and (on failure) a sanitized error'),
190
+ .describe('Per-statement completion hook — fires once per statement when it settles, with label, statementId, statementPrefix, durationMs, rows, connectionId and (on failure) a sanitized error. Covers every statement through pipework\'s query path (pipe(), pipe.* writes, connection.drizzle, transactions, savepoints, the test harness), not the driver\'s own BEGIN/COMMIT, the raw client door or the migration runner\'s connection'),
191
191
  })
192
192
 
193
193
  const envVarDefSchema = z.discriminatedUnion('type', [
@@ -63,14 +63,39 @@ export interface StatementSettledError {
63
63
  /**
64
64
  * One statement as it settles — the completion counterpart to `StatementEvent`.
65
65
  * Fields are only ever added to this payload, never reshaped.
66
+ *
67
+ * Fires for every statement through pipework's query path (`pipe()`, `pipe.*`
68
+ * writes, `connection.drizzle`, transactions, savepoints, the test harness), not
69
+ * for the driver's own BEGIN/COMMIT, the raw `client` door or the migration
70
+ * runner's connection: a sum of `durationMs` leaves those out.
66
71
  */
67
72
  export interface StatementSettledEvent {
68
73
  /**
69
74
  * The `pipe.labelled` label in effect when the statement settled; null when
70
- * none. This is the label alone: unlike `query:slow`, it never falls back to
71
- * the statement text.
75
+ * none. This is the label alone: it never falls back to the statement text
76
+ * (`statementPrefix` carries that).
72
77
  */
73
78
  readonly label: string | null
79
+ /**
80
+ * Which statement shape this was, stable across calls and processes:
81
+ * `v1:` followed by the first 16 hex characters of the SHA-256 of the
82
+ * statement text exactly as sent to the server (parameterized, `$1`, `$2`...
83
+ * placeholders) with every run of whitespace collapsed to one space and the
84
+ * ends trimmed, hashed as UTF-8. It holds no constants and no bound values, so
85
+ * the same statement with different parameter values or different
86
+ * formatting has the same id, and different SQL has a different one.
87
+ * `v1` names this exact definition: a change to the hash, the length or the
88
+ * normalization gets a new prefix (`v2:`), never a silent redefinition, so
89
+ * records keyed on an id never split without the prefix saying so.
90
+ */
91
+ readonly statementId: string
92
+ /**
93
+ * The first 120 characters of the same whitespace-collapsed statement text
94
+ * (placeholders, no bound values): what `query:slow`, `query:in-flight` and
95
+ * `query:large` log as `sql`. A readable name for `statementId`; two shapes
96
+ * can share a prefix, so key on `statementId`.
97
+ */
98
+ readonly statementPrefix: string
74
99
  /**
75
100
  * Wall-clock milliseconds the statement took, measured by the same timer as
76
101
  * `query:slow` (so for one statement the two agree exactly).
@@ -93,13 +118,12 @@ export interface StatementSettledEvent {
93
118
  }
94
119
 
95
120
  /**
96
- * Caller-supplied completion hook. Fires once per statement that settles, on
97
- * every statement pipework runs through its own query path: `pipe()`, every
98
- * `pipe.*` write, `connection.drizzle`, transactions and savepoints, and the
99
- * test harness's connections. It does not fire for the driver's own
100
- * transaction control (`BEGIN`/`SAVEPOINT`/`COMMIT`/`ROLLBACK`), nor for the
101
- * raw `ManagedConnection.client` door, nor for the migration runner's own
102
- * connection; `onStatement` is the hook that sees wire truth.
121
+ * Caller-supplied completion hook. Fires once per statement that settles, for
122
+ * every statement through pipework's query path (`pipe()`, `pipe.*` writes,
123
+ * `connection.drizzle`, transactions, savepoints, the test harness), not for the
124
+ * driver's own BEGIN/COMMIT, the raw `client` door or the migration runner's
125
+ * connection; `onStatement` is the hook that sees wire truth. The event names the
126
+ * statement by `statementId` and `statementPrefix`, never by its parameters.
103
127
  *
104
128
  * Pure observation, fired after the statement has settled and its result is on
105
129
  * its way back: a hook that throws, or returns a promise that rejects, is
@@ -38,7 +38,7 @@ export const pipe = Object.assign(getDb, {
38
38
  /** Query operators and aggregates — eq, gt, lt, and, or, count, sum, etc. */
39
39
  filter,
40
40
 
41
- /** Names every statement `fn` starts, in `query:slow`, `query:large` and `query:in-flight` log lines: `pipe.labelled('servable-footprints', async () => await ...)`. A query builder is lazy: `fn` must await it, not return it, or it runs outside the scope. */
41
+ /** Names every statement `fn` starts, in `query:slow`, `query:large` and `query:in-flight` log lines (as `label`, beside the `sql` prefix): `pipe.labelled('servable-footprints', async () => await ...)`. A query builder is lazy: `fn` must await it, not return it, or it runs outside the scope. */
42
42
  labelled,
43
43
 
44
44
  /** Raw statement tag — for a statement pipework does not model. Interpolated values are parameters; `sql.raw` is not. Runs on the caller's connection, so inside a request it is the request transaction. Writes still go through pipe.update / insert / delete, which is what audit hooks. */
@@ -1,4 +1,5 @@
1
1
  import postgres from 'postgres'
2
+ import { createHash } from 'node:crypto'
2
3
  import { getLogger } from '../../core/logging/logger.js'
3
4
  import { currentQueryLabel } from './query-label.js'
4
5
  import { DrizzleQueryError } from '../query/errors.js'
@@ -7,6 +8,7 @@ import type { StatementWatch } from '../query/postgres-js/session.js'
7
8
  import type { StatementSettledError, StatementSettledObserver } from '../../core/config/statement-observer.js'
8
9
 
9
10
  const LABEL_SQL_CHARS = 120
11
+ const STATEMENT_ID_HEX_CHARS = 16
10
12
  const SAMPLE_TIMEOUT_MS = 2_000
11
13
  const PG_TRUNCATED_QUERY_LENGTH = 1_000
12
14
 
@@ -82,8 +84,22 @@ function settledError(raw: unknown): StatementSettledError {
82
84
  }
83
85
  }
84
86
 
85
- function labelFor(sqlText: string): string {
86
- return currentQueryLabel() ?? sqlText.replace(/\s+/g, ' ').trim().slice(0, LABEL_SQL_CHARS)
87
+ function collapse(sqlText: string): string {
88
+ return sqlText.replace(/\s+/g, ' ').trim()
89
+ }
90
+
91
+ /** The first 120 characters of the whitespace-collapsed statement text: the `sql` of the log lines and `statementPrefix`. */
92
+ function sqlPrefix(sqlText: string): string {
93
+ return collapse(sqlText).slice(0, LABEL_SQL_CHARS)
94
+ }
95
+
96
+ /**
97
+ * `v1:` + the first 16 hex characters (64 bits) of the SHA-256 of the whitespace-collapsed
98
+ * parameterized text. 64 bits keeps a collision among an app's few thousand statement shapes
99
+ * negligible (birthday bound near 4 billion shapes) while the id stays short in a log line.
100
+ */
101
+ function statementIdOf(sqlText: string): string {
102
+ return `v1:${createHash('sha256').update(collapse(sqlText)).digest('hex').slice(0, STATEMENT_ID_HEX_CHARS)}`
87
103
  }
88
104
 
89
105
  /**
@@ -157,7 +173,7 @@ export function createStatementWatch(options: StatementWatchOptions): StatementW
157
173
  check('sqlChars', b.sqlChars, () => sqlText.length)
158
174
  check('arms', b.arms, () => setOperationArms(sqlText))
159
175
  check('rows', b.rows, () => (outcome !== undefined && 'result' in outcome ? rowsOf(outcome.result) : 0))
160
- if (over.length > 0) getLogger().warn({ label: labelFor(sqlText), database, over, ...measured }, 'query:large')
176
+ if (over.length > 0) getLogger().warn({ label: currentQueryLabel() ?? null, sql: sqlPrefix(sqlText), database, over, ...measured }, 'query:large')
161
177
  } catch { /* a measurement must never affect the statement */ }
162
178
  }
163
179
 
@@ -170,13 +186,14 @@ export function createStatementWatch(options: StatementWatchOptions): StatementW
170
186
  let settled = false
171
187
  if (inFlightQueryMs !== undefined) {
172
188
  const log = getLogger()
173
- const label = labelFor(sqlText)
189
+ const label = currentQueryLabel() ?? null
190
+ const sql = sqlPrefix(sqlText)
174
191
  interval = setInterval(() => {
175
192
  const elapsedS = Math.round((Date.now() - startedMs) / 100) / 10
176
193
  void sampleBackend(sqlText, startedMs).then(backend => {
177
194
  if (settled) return
178
195
  log.warn({
179
- label, elapsedS, database,
196
+ label, sql, elapsedS, database,
180
197
  pid: backend.pid, state: backend.state,
181
198
  waitEventType: backend.waitEventType, waitEvent: backend.waitEvent,
182
199
  }, 'query:in-flight')
@@ -196,7 +213,7 @@ export function createStatementWatch(options: StatementWatchOptions): StatementW
196
213
  if (interval !== undefined) clearInterval(interval)
197
214
  const durationMs = Date.now() - startedMs
198
215
  if (slowQueryMs > 0 && durationMs > slowQueryMs) {
199
- getLogger().warn({ label: labelFor(sqlText), durationMs, database }, 'query:slow')
216
+ getLogger().warn({ label: currentQueryLabel() ?? null, sql: sqlPrefix(sqlText), durationMs, database }, 'query:slow')
200
217
  }
201
218
  const parameters = pendingQuery === undefined ? undefined : (pendingQuery as { parameters?: unknown }).parameters
202
219
  if (watchesSize) warnIfLarge(sqlText, parameters, outcome, budgets)
@@ -204,6 +221,8 @@ export function createStatementWatch(options: StatementWatchOptions): StatementW
204
221
  const connectionId = typeof parameters === 'object' && parameters !== null ? connections?.get(parameters) ?? null : null
205
222
  fireSettled({
206
223
  label: currentQueryLabel() ?? null,
224
+ statementId: statementIdOf(sqlText),
225
+ statementPrefix: sqlPrefix(sqlText),
207
226
  durationMs,
208
227
  rows: 'result' in outcome ? rowsOf(outcome.result) : 0,
209
228
  connectionId,