pipework 0.286.0 → 0.288.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.
Files changed (43) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +1 -1
  3. package/REFERENCE.md +5 -1
  4. package/dist/async/jobs/claims.d.ts +5 -1
  5. package/dist/async/jobs/claims.d.ts.map +1 -1
  6. package/dist/async/jobs/claims.js.map +1 -1
  7. package/dist/async/jobs/queue.d.ts.map +1 -1
  8. package/dist/async/jobs/queue.js +3 -3
  9. package/dist/async/jobs/queue.js.map +1 -1
  10. package/dist/cli/commands/migrate.d.ts.map +1 -1
  11. package/dist/cli/commands/migrate.js +4 -0
  12. package/dist/cli/commands/migrate.js.map +1 -1
  13. package/dist/data/db/namespace.d.ts +1 -1
  14. package/dist/data/db/namespace.d.ts.map +1 -1
  15. package/dist/data/db/namespace.js +1 -1
  16. package/dist/data/db/namespace.js.map +1 -1
  17. package/dist/data/db/query-label.d.ts +15 -1
  18. package/dist/data/db/query-label.d.ts.map +1 -1
  19. package/dist/data/db/query-label.js +26 -1
  20. package/dist/data/db/query-label.js.map +1 -1
  21. package/dist/data/db/query-watch.js +2 -2
  22. package/dist/data/db/query-watch.js.map +1 -1
  23. package/dist/data/migrate/apply.d.ts +16 -0
  24. package/dist/data/migrate/apply.d.ts.map +1 -1
  25. package/dist/data/migrate/apply.js +49 -2
  26. package/dist/data/migrate/apply.js.map +1 -1
  27. package/dist/data/migrate/run.d.ts +9 -0
  28. package/dist/data/migrate/run.d.ts.map +1 -1
  29. package/dist/data/migrate/run.js +3 -0
  30. package/dist/data/migrate/run.js.map +1 -1
  31. package/dist/data/query/postgres-js/session.d.ts.map +1 -1
  32. package/dist/data/query/postgres-js/session.js +2 -1
  33. package/dist/data/query/postgres-js/session.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/async/jobs/claims.ts +3 -1
  36. package/src/async/jobs/queue.ts +4 -3
  37. package/src/cli/commands/migrate.ts +6 -0
  38. package/src/data/db/namespace.ts +1 -1
  39. package/src/data/db/query-label.ts +28 -1
  40. package/src/data/db/query-watch.ts +2 -2
  41. package/src/data/migrate/apply.ts +62 -2
  42. package/src/data/migrate/run.ts +13 -0
  43. package/src/data/query/postgres-js/session.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/apply.ts"],"names":[],"mappings":"AASA,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjE;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACxG;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtE;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;CACjG;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAkK5E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,EAAE,CA8BjE;AAeD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAErD;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACpD,eAAe,EAAE,MAAM,GACtB,MAAM,CAiBR;AAMD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/apply.ts"],"names":[],"mappings":"AASA,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjE;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACxG;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtE;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5E;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;CACjG;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA2K5E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,EAAE,CA8BjE;AAeD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAErD;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACpD,eAAe,EAAE,MAAM,GACtB,MAAM,CAiBR;AAYD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIvG;AA6BD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -1,7 +1,7 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { createHash } from 'node:crypto';
3
- import postgres from 'postgres';
4
- import { scanStatements } from './statements.js';
3
+ import postgres, {} from 'postgres';
4
+ import { scanStatements, stripComments } from './statements.js';
5
5
  import { stripPragmaLines } from './pragma.js';
6
6
  import { listMigrations } from './history.js';
7
7
  const NO_TRANSACTION_PRAGMA = '-- pipework:no-transaction';
@@ -114,6 +114,16 @@ export async function applyMigrations(options) {
114
114
  if (from > 0)
115
115
  options.onResume?.(migration.tag, from + 1, migration.statements.length);
116
116
  for (let i = from; i < migration.statements.length; i++) {
117
+ // Only the statement the cut interrupted (the first one run on a
118
+ // resume), and only its own index: a cut CREATE INDEX CONCURRENTLY
119
+ // leaves the name held by an INVALID index, which the plain form
120
+ // fails on ("already exists") and IF NOT EXISTS silently keeps.
121
+ // A valid index of that name is left alone. Issue #1003.
122
+ if (i === from && from > 0) {
123
+ const dropped = await dropInvalidIndexOf(client, migration.statements[i]);
124
+ if (dropped !== null)
125
+ options.onDropInvalidIndex?.(migration.tag, i + 1, dropped);
126
+ }
117
127
  await inStatement(migration.tag, i + 1, migration.statements.length, () => client.unsafe(migration.statements[i]));
118
128
  // Recorded AFTER the statement it describes: marking first would let
119
129
  // a death between the mark and the statement skip work silently,
@@ -221,6 +231,43 @@ export function resumePoint(migration, recorded, migrationsTable) {
221
231
  // was missed: nothing left to run, and the caller writes the row.
222
232
  return Math.min(recorded.done, migration.statements.length);
223
233
  }
234
+ const IDENT = String.raw `"(?:[^"]|"")+"|[A-Za-z_][A-Za-z0-9_$]*`;
235
+ const CREATE_INDEX_CONCURRENTLY_RE = new RegExp(String.raw `^\s*CREATE\s+(?:UNIQUE\s+)?INDEX\s+CONCURRENTLY\s+(?:IF\s+NOT\s+EXISTS\s+)?(${IDENT})\s+ON\s+(?:ONLY\s+)?((?:${IDENT})(?:\s*\.\s*(?:${IDENT}))?)`, 'i');
236
+ function unquoteIdent(token) {
237
+ return token.startsWith('"') ? token.slice(1, -1).replace(/""/g, '"') : token.toLowerCase();
238
+ }
239
+ /**
240
+ * The index name and table a CREATE [UNIQUE] INDEX CONCURRENTLY statement
241
+ * names, or null for any other statement (or an unnamed index). The table is
242
+ * kept as written so Postgres resolves it against the search path itself.
243
+ */
244
+ export function parseCreateIndexConcurrently(statement) {
245
+ const match = CREATE_INDEX_CONCURRENTLY_RE.exec(stripComments(statement));
246
+ if (match === null)
247
+ return null;
248
+ return { index: unquoteIdent(match[1]), table: match[2] };
249
+ }
250
+ /**
251
+ * Drop the INVALID index a cut CREATE INDEX CONCURRENTLY left under the name
252
+ * this statement is about to create, on the statement's own table. Returns the
253
+ * schema-qualified name dropped, or null when the statement is not such a
254
+ * create or the index is absent or valid. Issue #1003.
255
+ */
256
+ async function dropInvalidIndexOf(client, statement) {
257
+ const target = parseCreateIndexConcurrently(statement);
258
+ if (target === null)
259
+ return null;
260
+ const found = await client.unsafe(`SELECT n.nspname AS schema, c.relname AS name
261
+ FROM pg_index i
262
+ JOIN pg_class c ON c.oid = i.indexrelid
263
+ JOIN pg_namespace n ON n.oid = c.relnamespace
264
+ WHERE c.relname = $1 AND NOT i.indisvalid AND i.indrelid = to_regclass($2)`, [target.index, target.table]);
265
+ if (found.length === 0)
266
+ return null;
267
+ const qualified = `${quoteIdent(found[0].schema)}.${quoteIdent(found[0].name)}`;
268
+ await client.unsafe(`DROP INDEX CONCURRENTLY IF EXISTS ${qualified}`);
269
+ return qualified;
270
+ }
224
271
  function quoteIdent(name) {
225
272
  return `"${name.replace(/"/g, '""')}"`;
226
273
  }
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/data/migrate/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/data/migrate/apply.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,20 @@ export interface MigrateResult {
14
14
  safetyCheck: MigrationCheckResult;
15
15
  /** No-transaction files picked up half applied and finished. Issue #378. */
16
16
  resumed: ResumedMigration[];
17
+ /** INVALID indexes a cut CREATE INDEX CONCURRENTLY left, dropped before the resumed statement reran. Issue #1003. */
18
+ droppedInvalidIndexes: DroppedInvalidIndex[];
17
19
  /** Notices and warnings raised by migration statements, in arrival order. Issue #970. */
18
20
  notices: MigrateNotice[];
19
21
  /** Trace/audit tables, columns and day partitions this run provisioned. */
20
22
  frameworkTables: FrameworkTablesResult;
21
23
  }
24
+ export interface DroppedInvalidIndex {
25
+ tag: string;
26
+ /** 1-based statement that rebuilt it. */
27
+ statement: number;
28
+ /** Schema-qualified, quoted. */
29
+ index: string;
30
+ }
22
31
  export interface ResumedMigration {
23
32
  tag: string;
24
33
  /** 1-based statement the rerun started from. */
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAGlE,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEvE,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAM/F,MAAM,WAAW,cAAc;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAA;CAC3C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,EAAE,oBAAoB,CAAA;IACjC,4EAA4E;IAC5E,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,yFAAyF;IACzF,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,2EAA2E;IAC3E,eAAe,EAAE,qBAAqB,CAAA;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,KAAK,EAAE,oBAAoB;IAF7C,SAAkB,IAAI,0BAAyB;gBAE7B,KAAK,EAAE,oBAAoB,EAC3C,OAAO,EAAE,MAAM;CAIlB;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAU3G;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAsErI"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAGlE,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEvE,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAM/F,MAAM,WAAW,cAAc;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAA;CAC3C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,EAAE,oBAAoB,CAAA;IACjC,4EAA4E;IAC5E,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,qHAAqH;IACrH,qBAAqB,EAAE,mBAAmB,EAAE,CAAA;IAC5C,yFAAyF;IACzF,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,2EAA2E;IAC3E,eAAe,EAAE,qBAAqB,CAAA;CACvC;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,KAAK,EAAE,oBAAoB;IAF7C,SAAkB,IAAI,0BAAyB;gBAE7B,KAAK,EAAE,oBAAoB,EAC3C,OAAO,EAAE,MAAM;CAIlB;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAU3G;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAyErI"}
@@ -48,12 +48,14 @@ export async function migrateOne(instance, dbConfig, options = {}) {
48
48
  extensionsCreated = [...dbConfig.extensions];
49
49
  }
50
50
  const resumed = [];
51
+ const droppedInvalidIndexes = [];
51
52
  const notices = [];
52
53
  const migrationsRun = await applyMigrations({
53
54
  migrationsFolder: dbConfig.migrations,
54
55
  migrationsTable: dbConfig.migrationTable,
55
56
  connectionUrl: dbConfig.url,
56
57
  onResume: (tag, fromStatement, totalStatements) => resumed.push({ tag, fromStatement, totalStatements }),
58
+ onDropInvalidIndex: (tag, statement, index) => droppedInvalidIndexes.push({ tag, statement, index }),
57
59
  onNotice: (tag, statement, statements, notice) => {
58
60
  const full = { tag, statement, statements, ...notice };
59
61
  notices.push(full);
@@ -74,6 +76,7 @@ export async function migrateOne(instance, dbConfig, options = {}) {
74
76
  extensions: extensionsCreated,
75
77
  safetyCheck,
76
78
  resumed,
79
+ droppedInvalidIndexes,
77
80
  notices,
78
81
  frameworkTables,
79
82
  };
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/data/migrate/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/data/migrate/run.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/data/query/postgres-js/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/data/query/postgres-js/session.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { PgPreparedQuery, PgSession } from '../pg-core/session.js';
6
6
  import { fillPlaceholders } from '../sql/sql.js';
7
7
  import { tracer } from '../tracing.js';
8
8
  import { mapResultRow } from '../utils.js';
9
+ import { withLabelComment } from '../../db/query-label.js';
9
10
  import { propagateObserved, throughErrorBoundary } from './driver-error-boundary.js';
10
11
  function watched(watch, query, run) {
11
12
  return watch === undefined ? run(noteSeen) : watch(query, run);
@@ -13,7 +14,7 @@ function watched(watch, query, run) {
13
14
  function noteSeen() { }
14
15
  /** Starts the statement and tells the watch which pending query it is, so it can learn the connection it runs on. */
15
16
  function startUnsafe(client, query, params, seen) {
16
- const pending = client.unsafe(query, params);
17
+ const pending = client.unsafe(withLabelComment(query), params);
17
18
  seen(pending);
18
19
  return pending;
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/data/query/postgres-js/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/data/query/postgres-js/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.286.0",
3
+ "version": "0.288.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -11,7 +11,7 @@ export type JobClaimReason = 'completed' | 'failed' | 'shutdown-returned' | 'rea
11
11
 
12
12
  /**
13
13
  * One claim of a job. `releasedAt`, `reason` and `progressMark` are null while the claim is held.
14
- * A failed claim may also carry keys its caller added through `fail(..., { claim })`, such as `errorClass`; they read
14
+ * A reaped claim carries `error: { name: 'WorkerLost', message }`; a failed claim may also carry keys its caller added through `fail(..., { claim })`, such as `errorClass`; they read
15
15
  * as `unknown` through a cast (`(claim as Record<string, unknown>)['errorClass']`), since an index signature here
16
16
  * would loosen every typed field.
17
17
  */
@@ -30,6 +30,8 @@ export interface JobClaim {
30
30
  * `claimErrorMessageMaxChars`; `code` is the error's own string `code`, else the nearest one on its `cause` chain.
31
31
  */
32
32
  readonly error?: { readonly name: string; readonly message: string; readonly code?: string }
33
+ /** Why a `later` claim was deferred: the `JobLaterError` message, cut to `claimErrorMessageMaxChars`; set only when `reason` is 'later'. */
34
+ readonly later?: { readonly message: string }
33
35
  }
34
36
 
35
37
  /** The SET fragment that appends the claim being made. */
@@ -165,7 +165,7 @@ export interface ReapedJob {
165
165
 
166
166
  /** Claim keys the queue owns; `FailOptions.claim` may not set them. */
167
167
  const RESERVED_CLAIM_KEYS = [
168
- 'claimedAt', 'workerId', 'workerRelease', 'releasedAt', 'reason', 'progressMark', 'error', 'cancel',
168
+ 'claimedAt', 'workerId', 'workerRelease', 'releasedAt', 'reason', 'progressMark', 'error', 'cancel', 'later',
169
169
  ] as const
170
170
 
171
171
  /** Options of `fail` / `failAttempt`. */
@@ -900,7 +900,8 @@ export function createQueue(config: QueueConfig = {}): Queue {
900
900
  await lockPendingKeyOf(tx, jobId)
901
901
  const updated = await tx.execute(
902
902
  sql`UPDATE ${sql.raw(tableQ)} SET
903
- ${returnToPending('later', sql`jsonb_build_object('reason', 'later', 'message', ${error.message}::text, 'workerId', worker_id)`)},
903
+ ${returnToPending('later', sql`jsonb_build_object('reason', 'later', 'message', ${error.message}::text, 'workerId', worker_id)`,
904
+ sql`${JSON.stringify({ later: { message: cutText(error.message, claimErrorMaxChars) } })}::jsonb`)},
904
905
  next_retry_at = now() + make_interval(secs => ${delayMs / 1000}::double precision),
905
906
  claimed_at = NULL,
906
907
  heartbeat_at = NULL,
@@ -1004,7 +1005,7 @@ export function createQueue(config: QueueConfig = {}): Queue {
1004
1005
  attemptCount,
1005
1006
  maxAttempts: jobMaxAttempts,
1006
1007
  flow: flowOf(row),
1007
- }, errorJson, 'reaped-stale', {})
1008
+ }, errorJson, 'reaped-stale', { error: { name: 'WorkerLost', message: cutText('worker lost: heartbeat timeout', claimErrorMaxChars) } })
1008
1009
  reaped.push({
1009
1010
  jobId: id,
1010
1011
  type: row['job_type'] as string,
@@ -119,6 +119,12 @@ function reportResumed(result: MigrateResult): void {
119
119
  `${r.totalStatements} — a previous run stopped mid-file.`,
120
120
  )
121
121
  }
122
+ for (const d of result.droppedInvalidIndexes) {
123
+ warn(
124
+ `${result.database}: resumed "${d.tag}" at statement ${d.statement}; dropped INVALID index ${d.index} ` +
125
+ `left by the cut build.`,
126
+ )
127
+ }
122
128
  }
123
129
 
124
130
  function reportFrameworkTables(result: MigrateResult): void {
@@ -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 (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. */
41
+ /** Names every statement `fn` starts, in `query:slow`, `query:large` and `query:in-flight` log lines (as `label`, beside the `sql` prefix) and, as a leading block comment on the SQL sent, in `pg_stat_activity.query`, server logs and `pg_stat_statements` text (the comment does not change the statement's queryid). In the comment the label is made safe: comment delimiters are split with a space, control characters become spaces, and it is cut to 80 characters; the log lines carry it as given. `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. */
@@ -2,7 +2,34 @@ import { AsyncLocalStorage } from 'node:async_hooks'
2
2
 
3
3
  const scope = new AsyncLocalStorage<string>()
4
4
 
5
- /** Runs `fn` with `label` naming every statement it starts, in slow-query and in-flight-query log lines. */
5
+ const COMMENT_LABEL_CHARS = 80
6
+
7
+ /**
8
+ * Makes a label safe to sit inside a `/* ... *\/` comment. Postgres block comments nest, so both `*\/`
9
+ * and `/*` are broken apart by a space (repeated, so `*\/*` cannot recombine), control characters
10
+ * (newlines, NUL) become spaces, and the text is cut to 80 characters so it leaves room in
11
+ * `pg_stat_activity.query` (1024 bytes by default). Returns undefined when nothing printable is left.
12
+ */
13
+ export function commentSafeLabel(label: string): string | undefined {
14
+ let safe = label.replace(/[\u0000-\u001f\u007f\u2028\u2029]+/g, ' ').trim().slice(0, COMMENT_LABEL_CHARS)
15
+ while (/\*\/|\/\*/.test(safe)) safe = safe.replace(/\*\/|\/\*/g, m => `${m[0]!} ${m[1]!}`)
16
+ safe = safe.trim()
17
+ return safe === '' ? undefined : safe
18
+ }
19
+
20
+ /**
21
+ * `sqlText` with the enclosing `labelled` label as a leading `/* label *\/` comment, so the label shows in
22
+ * `pg_stat_activity.query`, server logs and `pg_stat_statements` text. Unchanged outside a scope.
23
+ * A comment is chosen over `application_name` because it costs no round trip, needs no transaction
24
+ * and does not change `pg_stat_statements`' queryid (which ignores comments), so labels never split a statement's stats.
25
+ */
26
+ export function withLabelComment(sqlText: string): string {
27
+ const label = scope.getStore()
28
+ const safe = label === undefined ? undefined : commentSafeLabel(label)
29
+ return safe === undefined ? sqlText : `/* ${safe} */ ${sqlText}`
30
+ }
31
+
32
+ /** Runs `fn` with `label` naming every statement it starts, in slow-query and in-flight-query log lines and as a leading SQL comment (see `withLabelComment`). */
6
33
  export function labelled<T>(label: string, fn: () => T): T {
7
34
  return scope.run(label, fn)
8
35
  }
@@ -1,7 +1,7 @@
1
1
  import postgres from 'postgres'
2
2
  import { createHash } from 'node:crypto'
3
3
  import { getLogger } from '../../core/logging/logger.js'
4
- import { currentQueryLabel } from './query-label.js'
4
+ import { currentQueryLabel, withLabelComment } from './query-label.js'
5
5
  import { DrizzleQueryError } from '../query/errors.js'
6
6
  import { parameterBytes, setOperationArms } from './query-size.js'
7
7
  import type { StatementWatch } from '../query/postgres-js/session.js'
@@ -129,7 +129,7 @@ export function createStatementWatch(options: StatementWatchOptions): StatementW
129
129
  WHERE datname = current_database() AND pid <> pg_backend_pid() AND state <> 'idle'
130
130
  AND (query = $1 OR (length(query) >= ${String(PG_TRUNCATED_QUERY_LENGTH)} AND left($1, length(query)) = query))
131
131
  ORDER BY abs(extract(epoch FROM query_start) - $2::float8) LIMIT 1`,
132
- [sqlText, startedMs / 1000],
132
+ [withLabelComment(sqlText), startedMs / 1000],
133
133
  ).then(rows => {
134
134
  const row = rows[0]
135
135
  return row === undefined
@@ -1,7 +1,7 @@
1
1
  import { readFileSync } from 'node:fs'
2
2
  import { createHash } from 'node:crypto'
3
- import postgres from 'postgres'
4
- import { scanStatements } from './statements.js'
3
+ import postgres, { type Sql } from 'postgres'
4
+ import { scanStatements, stripComments } from './statements.js'
5
5
  import { stripPragmaLines } from './pragma.js'
6
6
  import { listMigrations } from './history.js'
7
7
 
@@ -52,6 +52,13 @@ export interface ApplyOptions {
52
52
  * Issue #378.
53
53
  */
54
54
  onResume?: (tag: string, fromStatement: number, total: number) => void
55
+ /**
56
+ * Called when a resumed no-transaction file's first statement is a
57
+ * CREATE [UNIQUE] INDEX CONCURRENTLY whose index was left INVALID by the cut
58
+ * build, after it was dropped and before the statement reruns. `index` is
59
+ * the schema-qualified name. Issue #1003.
60
+ */
61
+ onDropInvalidIndex?: (tag: string, statement: number, index: string) => void
55
62
  /**
56
63
  * Called for each notice or warning a migration file's own statement raises,
57
64
  * with the file's tag, the 1-based statement and the file's statement count.
@@ -193,6 +200,15 @@ export async function applyMigrations(options: ApplyOptions): Promise<number> {
193
200
  if (from > 0) options.onResume?.(migration.tag, from + 1, migration.statements.length)
194
201
 
195
202
  for (let i = from; i < migration.statements.length; i++) {
203
+ // Only the statement the cut interrupted (the first one run on a
204
+ // resume), and only its own index: a cut CREATE INDEX CONCURRENTLY
205
+ // leaves the name held by an INVALID index, which the plain form
206
+ // fails on ("already exists") and IF NOT EXISTS silently keeps.
207
+ // A valid index of that name is left alone. Issue #1003.
208
+ if (i === from && from > 0) {
209
+ const dropped = await dropInvalidIndexOf(client, migration.statements[i]!)
210
+ if (dropped !== null) options.onDropInvalidIndex?.(migration.tag, i + 1, dropped)
211
+ }
196
212
  await inStatement(migration.tag, i + 1, migration.statements.length, () => client.unsafe(migration.statements[i]!))
197
213
  // Recorded AFTER the statement it describes: marking first would let
198
214
  // a death between the mark and the statement skip work silently,
@@ -327,6 +343,50 @@ export function resumePoint(
327
343
  return Math.min(recorded.done, migration.statements.length)
328
344
  }
329
345
 
346
+ const IDENT = String.raw`"(?:[^"]|"")+"|[A-Za-z_][A-Za-z0-9_$]*`
347
+ const CREATE_INDEX_CONCURRENTLY_RE = new RegExp(
348
+ String.raw`^\s*CREATE\s+(?:UNIQUE\s+)?INDEX\s+CONCURRENTLY\s+(?:IF\s+NOT\s+EXISTS\s+)?(${IDENT})\s+ON\s+(?:ONLY\s+)?((?:${IDENT})(?:\s*\.\s*(?:${IDENT}))?)`,
349
+ 'i',
350
+ )
351
+
352
+ function unquoteIdent(token: string): string {
353
+ return token.startsWith('"') ? token.slice(1, -1).replace(/""/g, '"') : token.toLowerCase()
354
+ }
355
+
356
+ /**
357
+ * The index name and table a CREATE [UNIQUE] INDEX CONCURRENTLY statement
358
+ * names, or null for any other statement (or an unnamed index). The table is
359
+ * kept as written so Postgres resolves it against the search path itself.
360
+ */
361
+ export function parseCreateIndexConcurrently(statement: string): { index: string; table: string } | null {
362
+ const match = CREATE_INDEX_CONCURRENTLY_RE.exec(stripComments(statement))
363
+ if (match === null) return null
364
+ return { index: unquoteIdent(match[1]!), table: match[2]! }
365
+ }
366
+
367
+ /**
368
+ * Drop the INVALID index a cut CREATE INDEX CONCURRENTLY left under the name
369
+ * this statement is about to create, on the statement's own table. Returns the
370
+ * schema-qualified name dropped, or null when the statement is not such a
371
+ * create or the index is absent or valid. Issue #1003.
372
+ */
373
+ async function dropInvalidIndexOf(client: Sql, statement: string): Promise<string | null> {
374
+ const target = parseCreateIndexConcurrently(statement)
375
+ if (target === null) return null
376
+ const found = await client.unsafe<{ schema: string; name: string }[]>(
377
+ `SELECT n.nspname AS schema, c.relname AS name
378
+ FROM pg_index i
379
+ JOIN pg_class c ON c.oid = i.indexrelid
380
+ JOIN pg_namespace n ON n.oid = c.relnamespace
381
+ WHERE c.relname = $1 AND NOT i.indisvalid AND i.indrelid = to_regclass($2)`,
382
+ [target.index, target.table],
383
+ )
384
+ if (found.length === 0) return null
385
+ const qualified = `${quoteIdent(found[0]!.schema)}.${quoteIdent(found[0]!.name)}`
386
+ await client.unsafe(`DROP INDEX CONCURRENTLY IF EXISTS ${qualified}`)
387
+ return qualified
388
+ }
389
+
330
390
  function quoteIdent(name: string): string {
331
391
  return `"${name.replace(/"/g, '""')}"`
332
392
  }
@@ -24,12 +24,22 @@ export interface MigrateResult {
24
24
  safetyCheck: MigrationCheckResult
25
25
  /** No-transaction files picked up half applied and finished. Issue #378. */
26
26
  resumed: ResumedMigration[]
27
+ /** INVALID indexes a cut CREATE INDEX CONCURRENTLY left, dropped before the resumed statement reran. Issue #1003. */
28
+ droppedInvalidIndexes: DroppedInvalidIndex[]
27
29
  /** Notices and warnings raised by migration statements, in arrival order. Issue #970. */
28
30
  notices: MigrateNotice[]
29
31
  /** Trace/audit tables, columns and day partitions this run provisioned. */
30
32
  frameworkTables: FrameworkTablesResult
31
33
  }
32
34
 
35
+ export interface DroppedInvalidIndex {
36
+ tag: string
37
+ /** 1-based statement that rebuilt it. */
38
+ statement: number
39
+ /** Schema-qualified, quoted. */
40
+ index: string
41
+ }
42
+
33
43
  export interface ResumedMigration {
34
44
  tag: string
35
45
  /** 1-based statement the rerun started from. */
@@ -99,12 +109,14 @@ export async function migrateOne(instance: Manifold, dbConfig: ResolvedDatabase,
99
109
  }
100
110
 
101
111
  const resumed: ResumedMigration[] = []
112
+ const droppedInvalidIndexes: DroppedInvalidIndex[] = []
102
113
  const notices: MigrateNotice[] = []
103
114
  const migrationsRun = await applyMigrations({
104
115
  migrationsFolder: dbConfig.migrations!,
105
116
  migrationsTable: dbConfig.migrationTable,
106
117
  connectionUrl: dbConfig.url,
107
118
  onResume: (tag, fromStatement, totalStatements) => resumed.push({ tag, fromStatement, totalStatements }),
119
+ onDropInvalidIndex: (tag, statement, index) => droppedInvalidIndexes.push({ tag, statement, index }),
108
120
  onNotice: (tag, statement, statements, notice) => {
109
121
  const full: MigrateNotice = { tag, statement, statements, ...notice }
110
122
  notices.push(full)
@@ -133,6 +145,7 @@ export async function migrateOne(instance: Manifold, dbConfig: ResolvedDatabase,
133
145
  extensions: extensionsCreated,
134
146
  safetyCheck,
135
147
  resumed,
148
+ droppedInvalidIndexes,
136
149
  notices,
137
150
  frameworkTables,
138
151
  }
@@ -13,6 +13,7 @@ import type { RelationalSchemaConfig, TablesRelationalConfig } from '../relation
13
13
  import { fillPlaceholders, type Query } from '../sql/sql.js';
14
14
  import { tracer } from '../tracing.js';
15
15
  import { type Assume, mapResultRow } from '../utils.js';
16
+ import { withLabelComment } from '../../db/query-label.js';
16
17
  import { propagateObserved, throughErrorBoundary } from './driver-error-boundary.js';
17
18
 
18
19
  /** Wraps one statement's execution; installed by the pool to time it and report it while it runs. */
@@ -26,7 +27,7 @@ function noteSeen(): void {}
26
27
 
27
28
  /** Starts the statement and tells the watch which pending query it is, so it can learn the connection it runs on. */
28
29
  function startUnsafe(client: Sql, query: string, params: unknown[], seen: (pending: object) => void) {
29
- const pending = client.unsafe(query, params as any[]);
30
+ const pending = client.unsafe(withLabelComment(query), params as any[]);
30
31
  seen(pending);
31
32
  return pending;
32
33
  }