prostgles-server 4.2.430 → 4.2.431

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.
@@ -2,6 +2,7 @@ import type { DB } from "../Prostgles";
2
2
  import type { ColumnMinimalInfo } from "./getColumnSQLDefinitionQuery";
3
3
  import type { ConstraintDef } from "./getConstraintDefinitionQueries";
4
4
  import { type PGConstraint } from "./fetchTableConstraints";
5
+ import type pgPromise from "pg-promise";
5
6
  type Args = {
6
7
  db: DB;
7
8
  columnDefs: string[];
@@ -16,5 +17,6 @@ export declare const getFutureTableSchema: ({ columnDefs, tableName, constraintD
16
17
  constraints: PGConstraint[];
17
18
  cols: ColumnMinimalInfo[];
18
19
  }>;
20
+ export declare const executeSqlWithRollback: <R>(db: DB, txHandler: (t: pgPromise.ITask<{}>) => Promise<R>) => Promise<R>;
19
21
  export {};
20
22
  //# sourceMappingURL=getFutureTableSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFutureTableSchema.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getFutureTableSchema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,KAAK,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAEnF,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,EAAE,CAAC;IACP,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAU,gDAKxC,IAAI,KAAG,OAAO,CAAC;IAChB,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,IAAI,EAAE,iBAAiB,EAAE,CAAC;CAC3B,CAsCA,CAAC"}
1
+ {"version":3,"file":"getFutureTableSchema.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getFutureTableSchema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,KAAK,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AACnF,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,EAAE,CAAC;IACP,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAU,gDAKxC,IAAI,KAAG,OAAO,CAAC;IAChB,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,IAAI,EAAE,iBAAiB,EAAE,CAAC;CAC3B,CA+BA,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,CAAC,EAC5C,IAAI,EAAE,EACN,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAChD,OAAO,CAAC,CAAC,CAYX,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFutureTableSchema = void 0;
3
+ exports.executeSqlWithRollback = exports.getFutureTableSchema = void 0;
4
4
  const prostgles_types_1 = require("prostgles-types");
5
5
  const DboBuilder_1 = require("../DboBuilder/DboBuilder");
6
6
  const getColumnSQLDefinitionQuery_1 = require("./getColumnSQLDefinitionQuery");
@@ -10,13 +10,7 @@ const fetchTableConstraints_1 = require("./fetchTableConstraints");
10
10
  * returns resulting column definitions and constraints of the table
11
11
  */
12
12
  const getFutureTableSchema = async ({ columnDefs, tableName, constraintDefs = [], db, }) => {
13
- const { TransactionMode, isolationLevel } = DboBuilder_1.pgp.txMode;
14
- let constraints = [];
15
- let cols = [];
16
- const txMode = new TransactionMode({
17
- tiLevel: isolationLevel.serializable,
18
- });
19
- await db.tx({ mode: txMode }, async (t) => {
13
+ const { constraints, cols } = await (0, exports.executeSqlWithRollback)(db, async (t) => {
20
14
  /** To prevent deadlocks we use a random table name -> Not feasible because named constraints cannot be recreated without dropping the existing ones from actual table */
21
15
  // const tableEsc = asName(tableName.slice(0, 12) + (await t.oneOrNone(`SELECT md5(now()::text) as md5`)).md5);
22
16
  const tableEsc = (0, prostgles_types_1.asName)(tableName);
@@ -31,11 +25,24 @@ const getFutureTableSchema = async ({ columnDefs, tableName, constraintDefs = []
31
25
  ${consQueries}
32
26
  `;
33
27
  await t.any(query);
34
- constraints = await (0, fetchTableConstraints_1.fetchTableConstraints)({ db: t, table: tableName });
35
- cols = await (0, getColumnSQLDefinitionQuery_1.getTableColumns)({ db: t, table: tableName });
36
- return t.any("ROLLBACK");
28
+ const constraints = await (0, fetchTableConstraints_1.fetchTableConstraints)({ db: t, table: tableName });
29
+ const cols = await (0, getColumnSQLDefinitionQuery_1.getTableColumns)({ db: t, table: tableName });
30
+ return { constraints, cols };
37
31
  });
38
32
  return { cols, constraints };
39
33
  };
40
34
  exports.getFutureTableSchema = getFutureTableSchema;
35
+ const executeSqlWithRollback = async (db, txHandler) => {
36
+ const { TransactionMode, isolationLevel } = DboBuilder_1.pgp.txMode;
37
+ const txMode = new TransactionMode({
38
+ tiLevel: isolationLevel.serializable,
39
+ });
40
+ const res = await db.tx({ mode: txMode }, async (t) => {
41
+ const result = await txHandler(t);
42
+ await t.any("ROLLBACK");
43
+ return result;
44
+ });
45
+ return res;
46
+ };
47
+ exports.executeSqlWithRollback = executeSqlWithRollback;
41
48
  //# sourceMappingURL=getFutureTableSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFutureTableSchema.js","sourceRoot":"","sources":["../../lib/TableConfig/getFutureTableSchema.ts"],"names":[],"mappings":";;;AAAA,qDAAyC;AACzC,yDAA+C;AAG/C,+EAAgE;AAEhE,mEAAmF;AASnF;;;GAGG;AACI,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,UAAU,EACV,SAAS,EACT,cAAc,GAAG,EAAE,EACnB,EAAE,GACG,EAGJ,EAAE;IACH,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,gBAAG,CAAC,MAAM,CAAC;IAEvD,IAAI,WAAW,GAAmB,EAAE,CAAC;IACrC,IAAI,IAAI,GAAwB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,OAAO,EAAE,cAAc,CAAC,YAAY;KACrC,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxC,yKAAyK;QACzK,+GAA+G;QAE/G,MAAM,QAAQ,GAAG,IAAA,wBAAM,EAAC,SAAS,CAAC,CAAC;QAEnC,MAAM,WAAW,GAAG,cAAc;aAC/B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,eAAe,QAAQ,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,IAAA,wBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,CAC/F;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,KAAK,GAAG;+BACa,QAAQ;uBAChB,QAAQ;YACnB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;UAExB,WAAW;OACd,CAAC;QAEJ,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEnB,WAAW,GAAG,MAAM,IAAA,6CAAqB,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,IAAI,GAAG,MAAM,IAAA,6CAAe,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAE1D,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC/B,CAAC,CAAC;AA9CW,QAAA,oBAAoB,wBA8C/B"}
1
+ {"version":3,"file":"getFutureTableSchema.js","sourceRoot":"","sources":["../../lib/TableConfig/getFutureTableSchema.ts"],"names":[],"mappings":";;;AAAA,qDAAyC;AACzC,yDAA+C;AAG/C,+EAAgE;AAEhE,mEAAmF;AAUnF;;;GAGG;AACI,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,UAAU,EACV,SAAS,EACT,cAAc,GAAG,EAAE,EACnB,EAAE,GACG,EAGJ,EAAE;IACH,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,8BAAsB,EAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzE,yKAAyK;QACzK,+GAA+G;QAE/G,MAAM,QAAQ,GAAG,IAAA,wBAAM,EAAC,SAAS,CAAC,CAAC;QAEnC,MAAM,WAAW,GAAG,cAAc;aAC/B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,eAAe,QAAQ,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,IAAA,wBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,CAC/F;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,KAAK,GAAG;+BACa,QAAQ;uBAChB,QAAQ;YACnB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;UAExB,WAAW;OACd,CAAC;QAEJ,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEnB,MAAM,WAAW,GAAG,MAAM,IAAA,6CAAqB,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,MAAM,IAAA,6CAAe,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAEhE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC/B,CAAC,CAAC;AAvCW,QAAA,oBAAoB,wBAuC/B;AAEK,MAAM,sBAAsB,GAAG,KAAK,EACzC,EAAM,EACN,SAAiD,EACrC,EAAE;IACd,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,gBAAG,CAAC,MAAM,CAAC;IAEvD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,OAAO,EAAE,cAAc,CAAC,YAAY;KACrC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAfW,QAAA,sBAAsB,0BAejC"}
@@ -12,6 +12,6 @@ type PGIndex = {
12
12
  size: string;
13
13
  description: string | null;
14
14
  };
15
- export declare const getPGIndexes: (db: DB, tableName: string, schema: string) => Promise<PGIndex[]>;
15
+ export declare const getPGIndexes: (db: Pick<DB, "any">, tableName: string, schema: string) => Promise<PGIndex[]>;
16
16
  export {};
17
17
  //# sourceMappingURL=getPGIndexes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPGIndexes.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getPGIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAEvC,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AACF,eAAO,MAAM,YAAY,GACvB,IAAI,EAAE,EACN,WAAW,MAAM,EACjB,QAAQ,MAAM,KACb,OAAO,CAAC,OAAO,EAAE,CAoCnB,CAAC"}
1
+ {"version":3,"file":"getPGIndexes.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getPGIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAEvC,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AACF,eAAO,MAAM,YAAY,GACvB,IAAI,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EACnB,WAAW,MAAM,EACjB,QAAQ,MAAM,KACb,OAAO,CAAC,OAAO,EAAE,CAoCnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPGIndexes.js","sourceRoot":"","sources":["../../lib/TableConfig/getPGIndexes.ts"],"names":[],"mappings":";;;AAeO,MAAM,YAAY,GAAG,KAAK,EAC/B,EAAM,EACN,SAAiB,EACjB,MAAc,EACM,EAAE;IACtB,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiChB,CAAC;IACJ,OAAO,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAxCW,QAAA,YAAY,gBAwCvB"}
1
+ {"version":3,"file":"getPGIndexes.js","sourceRoot":"","sources":["../../lib/TableConfig/getPGIndexes.ts"],"names":[],"mappings":";;;AAeO,MAAM,YAAY,GAAG,KAAK,EAC/B,EAAmB,EACnB,SAAiB,EACjB,MAAc,EACM,EAAE;IACtB,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiChB,CAAC;IACJ,OAAO,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAxCW,QAAA,YAAY,gBAwCvB"}
@@ -0,0 +1,10 @@
1
+ import type { DB } from "../../initProstgles";
2
+ import type { TableConfig } from "../TableConfig";
3
+ /**
4
+ * Keep Postgres indexes in sync with table configuration
5
+ * Save index definition hash in comment to detect changes
6
+ * If no comment exists, create index in a transaction to compare definitions and then update comment
7
+ * This ensures we don't drop and recreate indexes unnecessarily (which might also bring foreign key constraints issues)
8
+ */
9
+ export declare const getIndexesQueries: (db: DB, tableName: string, tableConf: TableConfig[string]) => Promise<string[]>;
10
+ //# sourceMappingURL=getIndexesQueries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIndexesQueries.d.ts","sourceRoot":"","sources":["../../../lib/TableConfig/indexes/getIndexesQueries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAI9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,IAAI,EAAE,EACN,WAAW,MAAM,EACjB,WAAW,WAAW,CAAC,MAAM,CAAC,sBA0D/B,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIndexesQueries = void 0;
4
+ const prostgles_types_1 = require("prostgles-types");
5
+ const md5_1 = require("prostgles-types/dist/md5");
6
+ const PubSubManagerUtils_1 = require("../../PubSubManager/PubSubManagerUtils");
7
+ const getFutureTableSchema_1 = require("../getFutureTableSchema");
8
+ const getPGIndexes_1 = require("../getPGIndexes");
9
+ /**
10
+ * Keep Postgres indexes in sync with table configuration
11
+ * Save index definition hash in comment to detect changes
12
+ * If no comment exists, create index in a transaction to compare definitions and then update comment
13
+ * This ensures we don't drop and recreate indexes unnecessarily (which might also bring foreign key constraints issues)
14
+ */
15
+ const getIndexesQueries = async (db, tableName, tableConf) => {
16
+ const queries = [];
17
+ if ("indexes" in tableConf && tableConf.indexes) {
18
+ const currIndexes = await (0, getPGIndexes_1.getPGIndexes)(db, tableName, "public");
19
+ for (const [indexName, { columns, concurrently, replace, unique, using, where = "" },] of Object.entries(tableConf.indexes)) {
20
+ const indexDefinition = [
21
+ "CREATE",
22
+ unique && "UNIQUE",
23
+ concurrently && "CONCURRENTLY",
24
+ `INDEX ${(0, prostgles_types_1.asName)(indexName)} ON ${(0, prostgles_types_1.asName)(tableName)}`,
25
+ using && "USING " + using,
26
+ `(${columns})`,
27
+ where && `WHERE ${where}`,
28
+ ]
29
+ .filter((v) => v)
30
+ .join(" ") + ";";
31
+ const indexDefinitionHash = (0, md5_1.md5)(indexDefinition);
32
+ const matchingIndex = currIndexes.find((idx) => idx.indexname === indexName);
33
+ const indexExistsWithDifferentComment = matchingIndex && matchingIndex.description !== indexDefinitionHash;
34
+ let indexExistsWithDifferentDefinition = indexExistsWithDifferentComment;
35
+ if (indexExistsWithDifferentComment && !matchingIndex.description) {
36
+ const futureIndexes = await (0, getFutureTableSchema_1.executeSqlWithRollback)(db, async (t) => {
37
+ await t.any(`DROP INDEX IF EXISTS ${(0, prostgles_types_1.asName)(indexName)};`);
38
+ await t.any(indexDefinition);
39
+ return (0, getPGIndexes_1.getPGIndexes)(t, tableName, "public");
40
+ });
41
+ indexExistsWithDifferentDefinition = futureIndexes.some((idx) => idx.indexname === indexName && matchingIndex.indexdef === idx.indexdef);
42
+ }
43
+ const indexShouldBeReplaced = replace ||
44
+ (typeof replace !== "boolean" && tableConf.replaceUniqueIndexes) ||
45
+ indexExistsWithDifferentDefinition;
46
+ if (indexShouldBeReplaced) {
47
+ queries.push(`DROP INDEX IF EXISTS ${(0, prostgles_types_1.asName)(indexName)};`);
48
+ }
49
+ if (indexExistsWithDifferentDefinition ||
50
+ indexShouldBeReplaced ||
51
+ !currIndexes.some((idx) => idx.indexname === indexName)) {
52
+ queries.push(indexDefinition);
53
+ queries.push(`COMMENT ON INDEX ${(0, prostgles_types_1.asName)(indexName)} IS ${(0, PubSubManagerUtils_1.asValue)(indexDefinitionHash)};`);
54
+ }
55
+ else if (!matchingIndex?.description) {
56
+ queries.push(`COMMENT ON INDEX ${(0, prostgles_types_1.asName)(indexName)} IS ${(0, PubSubManagerUtils_1.asValue)(indexDefinitionHash)};`);
57
+ }
58
+ }
59
+ }
60
+ return queries;
61
+ };
62
+ exports.getIndexesQueries = getIndexesQueries;
63
+ //# sourceMappingURL=getIndexesQueries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIndexesQueries.js","sourceRoot":"","sources":["../../../lib/TableConfig/indexes/getIndexesQueries.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"initTableConfig.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/initTableConfig.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,iBAAiB,MAAM,eAAe,CAAC;AASnD,eAAO,MAAM,eAAe,GAAmB,MAAM,iBAAiB,uBA0XrE,CAAC"}
1
+ {"version":3,"file":"initTableConfig.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/initTableConfig.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,iBAAiB,MAAM,eAAe,CAAC;AAUnD,eAAO,MAAM,eAAe,GAAmB,MAAM,iBAAiB,uBA+UrE,CAAC"}
@@ -6,10 +6,9 @@ const PubSubManagerUtils_1 = require("../PubSubManager/PubSubManagerUtils");
6
6
  const getConstraintDefinitionQueries_1 = require("./getConstraintDefinitionQueries");
7
7
  const fetchTableConstraints_1 = require("./fetchTableConstraints");
8
8
  const getFutureTableSchema_1 = require("./getFutureTableSchema");
9
- const getPGIndexes_1 = require("./getPGIndexes");
10
9
  const getTableColumnQueries_1 = require("./getTableColumnQueries");
11
10
  const runMigrations_1 = require("./runMigrations");
12
- const md5_1 = require("prostgles-types/dist/md5");
11
+ const getIndexesQueries_1 = require("./indexes/getIndexesQueries");
13
12
  const initTableConfig = async function () {
14
13
  this.initialising = true;
15
14
  // WIP - applyTableConfig
@@ -189,40 +188,8 @@ const initTableConfig = async function () {
189
188
  queries.push(`${ALTER_TABLE_Q} ADD ${c.definition};`);
190
189
  });
191
190
  }
192
- if ("indexes" in tableConf && tableConf.indexes) {
193
- const currIndexes = await (0, getPGIndexes_1.getPGIndexes)(this.db, tableName, "public");
194
- Object.entries(tableConf.indexes).forEach(([indexName, { columns, concurrently, replace, unique, using, where = "" }]) => {
195
- const indexDefinition = [
196
- "CREATE",
197
- unique && "UNIQUE",
198
- concurrently && "CONCURRENTLY",
199
- `INDEX ${asName(indexName)} ON ${asName(tableName)}`,
200
- using && "USING " + using,
201
- `(${columns})`,
202
- where && `WHERE ${where}`,
203
- ]
204
- .filter((v) => v)
205
- .join(" ") + ";";
206
- const indexDefinitionHash = (0, md5_1.md5)(indexDefinition);
207
- const indexExistsWithDifferentDefinition = currIndexes.some((idx) => idx.indexname === indexName && idx.description !== indexDefinitionHash);
208
- const indexShouldBeReplaced = replace || (typeof replace !== "boolean" && tableConf.replaceUniqueIndexes);
209
- const oldIndexToBeDroppedName = "idx_" + indexDefinitionHash;
210
- if (indexShouldBeReplaced) {
211
- queries.push(`DROP INDEX IF EXISTS ${asName(indexName)};`);
212
- }
213
- else if (indexExistsWithDifferentDefinition) {
214
- /** Try to prevent cascading dependency issues when removing it */
215
- queries.push(`ALTER INDEX ${asName(indexName)} RENAME TO ${asName(oldIndexToBeDroppedName)};`);
216
- }
217
- if (indexExistsWithDifferentDefinition ||
218
- indexShouldBeReplaced ||
219
- !currIndexes.some((idx) => idx.indexname === indexName)) {
220
- queries.push(indexDefinition);
221
- queries.push(`COMMENT ON INDEX ${asName(indexName)} IS ${(0, PubSubManagerUtils_1.asValue)(indexDefinitionHash)};`);
222
- queries.push(`DROP INDEX IF EXISTS ${asName(oldIndexToBeDroppedName)};`);
223
- }
224
- });
225
- }
191
+ const indexQueries = await (0, getIndexesQueries_1.getIndexesQueries)(this.db, tableName, tableConf);
192
+ queries.push(...indexQueries);
226
193
  const { triggers, dropIfExists, dropIfExistsCascade } = tableConf;
227
194
  if (triggers) {
228
195
  const isDropped = dropIfExists || dropIfExistsCascade;
@@ -1 +1 @@
1
- {"version":3,"file":"initTableConfig.js","sourceRoot":"","sources":["../../lib/TableConfig/initTableConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initTableConfig.js","sourceRoot":"","sources":["../../lib/TableConfig/initTableConfig.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { ColumnMinimalInfo } from "./getColumnSQLDefinitionQuery";
5
5
  import { getTableColumns } from "./getColumnSQLDefinitionQuery";
6
6
  import type { ConstraintDef } from "./getConstraintDefinitionQueries";
7
7
  import { type PGConstraint, fetchTableConstraints } from "./fetchTableConstraints";
8
+ import type pgPromise from "pg-promise";
8
9
 
9
10
  type Args = {
10
11
  db: DB;
@@ -26,14 +27,7 @@ export const getFutureTableSchema = async ({
26
27
  constraints: PGConstraint[];
27
28
  cols: ColumnMinimalInfo[];
28
29
  }> => {
29
- const { TransactionMode, isolationLevel } = pgp.txMode;
30
-
31
- let constraints: PGConstraint[] = [];
32
- let cols: ColumnMinimalInfo[] = [];
33
- const txMode = new TransactionMode({
34
- tiLevel: isolationLevel.serializable,
35
- });
36
- await db.tx({ mode: txMode }, async (t) => {
30
+ const { constraints, cols } = await executeSqlWithRollback(db, async (t) => {
37
31
  /** To prevent deadlocks we use a random table name -> Not feasible because named constraints cannot be recreated without dropping the existing ones from actual table */
38
32
  // const tableEsc = asName(tableName.slice(0, 12) + (await t.oneOrNone(`SELECT md5(now()::text) as md5`)).md5);
39
33
 
@@ -42,7 +36,7 @@ export const getFutureTableSchema = async ({
42
36
  const consQueries = constraintDefs
43
37
  .map(
44
38
  (c) =>
45
- `ALTER TABLE ${tableEsc} ADD ${c.name ? ` CONSTRAINT ${asName(c.name)}` : ""} ${c.content};`
39
+ `ALTER TABLE ${tableEsc} ADD ${c.name ? ` CONSTRAINT ${asName(c.name)}` : ""} ${c.content};`,
46
40
  )
47
41
  .join("\n");
48
42
 
@@ -56,11 +50,28 @@ export const getFutureTableSchema = async ({
56
50
 
57
51
  await t.any(query);
58
52
 
59
- constraints = await fetchTableConstraints({ db: t, table: tableName });
60
- cols = await getTableColumns({ db: t, table: tableName });
53
+ const constraints = await fetchTableConstraints({ db: t, table: tableName });
54
+ const cols = await getTableColumns({ db: t, table: tableName });
61
55
 
62
- return t.any("ROLLBACK");
56
+ return { constraints, cols };
63
57
  });
64
58
 
65
59
  return { cols, constraints };
66
60
  };
61
+
62
+ export const executeSqlWithRollback = async <R>(
63
+ db: DB,
64
+ txHandler: (t: pgPromise.ITask<{}>) => Promise<R>,
65
+ ): Promise<R> => {
66
+ const { TransactionMode, isolationLevel } = pgp.txMode;
67
+
68
+ const txMode = new TransactionMode({
69
+ tiLevel: isolationLevel.serializable,
70
+ });
71
+ const res = await db.tx({ mode: txMode }, async (t) => {
72
+ const result = await txHandler(t);
73
+ await t.any("ROLLBACK");
74
+ return result;
75
+ });
76
+ return res;
77
+ };
@@ -14,7 +14,7 @@ type PGIndex = {
14
14
  description: string | null;
15
15
  };
16
16
  export const getPGIndexes = async (
17
- db: DB,
17
+ db: Pick<DB, "any">,
18
18
  tableName: string,
19
19
  schema: string,
20
20
  ): Promise<PGIndex[]> => {
@@ -0,0 +1,76 @@
1
+ import { asName } from "prostgles-types";
2
+ import { md5 } from "prostgles-types/dist/md5";
3
+ import type { DB } from "../../initProstgles";
4
+ import { asValue } from "../../PubSubManager/PubSubManagerUtils";
5
+ import { executeSqlWithRollback } from "../getFutureTableSchema";
6
+ import { getPGIndexes } from "../getPGIndexes";
7
+ import type { TableConfig } from "../TableConfig";
8
+
9
+ /**
10
+ * Keep Postgres indexes in sync with table configuration
11
+ * Save index definition hash in comment to detect changes
12
+ * If no comment exists, create index in a transaction to compare definitions and then update comment
13
+ * This ensures we don't drop and recreate indexes unnecessarily (which might also bring foreign key constraints issues)
14
+ */
15
+ export const getIndexesQueries = async (
16
+ db: DB,
17
+ tableName: string,
18
+ tableConf: TableConfig[string],
19
+ ) => {
20
+ const queries: string[] = [];
21
+ if ("indexes" in tableConf && tableConf.indexes) {
22
+ const currIndexes = await getPGIndexes(db, tableName, "public");
23
+
24
+ for (const [
25
+ indexName,
26
+ { columns, concurrently, replace, unique, using, where = "" },
27
+ ] of Object.entries(tableConf.indexes)) {
28
+ const indexDefinition =
29
+ [
30
+ "CREATE",
31
+ unique && "UNIQUE",
32
+ concurrently && "CONCURRENTLY",
33
+ `INDEX ${asName(indexName)} ON ${asName(tableName)}`,
34
+ using && "USING " + using,
35
+ `(${columns})`,
36
+ where && `WHERE ${where}`,
37
+ ]
38
+ .filter((v) => v)
39
+ .join(" ") + ";";
40
+ const indexDefinitionHash = md5(indexDefinition) as string;
41
+ const matchingIndex = currIndexes.find((idx) => idx.indexname === indexName);
42
+ const indexExistsWithDifferentComment =
43
+ matchingIndex && matchingIndex.description !== indexDefinitionHash;
44
+ let indexExistsWithDifferentDefinition = indexExistsWithDifferentComment;
45
+ if (indexExistsWithDifferentComment && !matchingIndex.description) {
46
+ const futureIndexes = await executeSqlWithRollback(db, async (t) => {
47
+ await t.any(`DROP INDEX IF EXISTS ${asName(indexName)};`);
48
+ await t.any(indexDefinition);
49
+ return getPGIndexes(t, tableName, "public");
50
+ });
51
+ indexExistsWithDifferentDefinition = futureIndexes.some(
52
+ (idx) => idx.indexname === indexName && matchingIndex.indexdef === idx.indexdef,
53
+ );
54
+ }
55
+ const indexShouldBeReplaced =
56
+ replace ||
57
+ (typeof replace !== "boolean" && tableConf.replaceUniqueIndexes) ||
58
+ indexExistsWithDifferentDefinition;
59
+ if (indexShouldBeReplaced) {
60
+ queries.push(`DROP INDEX IF EXISTS ${asName(indexName)};`);
61
+ }
62
+
63
+ if (
64
+ indexExistsWithDifferentDefinition ||
65
+ indexShouldBeReplaced ||
66
+ !currIndexes.some((idx) => idx.indexname === indexName)
67
+ ) {
68
+ queries.push(indexDefinition);
69
+ queries.push(`COMMENT ON INDEX ${asName(indexName)} IS ${asValue(indexDefinitionHash)};`);
70
+ } else if (!matchingIndex?.description) {
71
+ queries.push(`COMMENT ON INDEX ${asName(indexName)} IS ${asValue(indexDefinitionHash)};`);
72
+ }
73
+ }
74
+ }
75
+ return queries;
76
+ };
@@ -13,6 +13,7 @@ import { getPGIndexes } from "./getPGIndexes";
13
13
  import { getTableColumnQueries } from "./getTableColumnQueries";
14
14
  import { runMigrations } from "./runMigrations";
15
15
  import { md5 } from "prostgles-types/dist/md5";
16
+ import { getIndexesQueries } from "./indexes/getIndexesQueries";
16
17
 
17
18
  export const initTableConfig = async function (this: TableConfigurator) {
18
19
  this.initialising = true;
@@ -232,51 +233,8 @@ export const initTableConfig = async function (this: TableConfigurator) {
232
233
  });
233
234
  }
234
235
 
235
- if ("indexes" in tableConf && tableConf.indexes) {
236
- const currIndexes = await getPGIndexes(this.db, tableName, "public");
237
- Object.entries(tableConf.indexes).forEach(
238
- ([indexName, { columns, concurrently, replace, unique, using, where = "" }]) => {
239
- const indexDefinition =
240
- [
241
- "CREATE",
242
- unique && "UNIQUE",
243
- concurrently && "CONCURRENTLY",
244
- `INDEX ${asName(indexName)} ON ${asName(tableName)}`,
245
- using && "USING " + using,
246
- `(${columns})`,
247
- where && `WHERE ${where}`,
248
- ]
249
- .filter((v) => v)
250
- .join(" ") + ";";
251
- const indexDefinitionHash = md5(indexDefinition) as string;
252
- const indexExistsWithDifferentDefinition = currIndexes.some(
253
- (idx) => idx.indexname === indexName && idx.description !== indexDefinitionHash,
254
- );
255
- const indexShouldBeReplaced =
256
- replace || (typeof replace !== "boolean" && tableConf.replaceUniqueIndexes);
257
- const oldIndexToBeDroppedName = "idx_" + indexDefinitionHash;
258
- if (indexShouldBeReplaced) {
259
- queries.push(`DROP INDEX IF EXISTS ${asName(indexName)};`);
260
- } else if (indexExistsWithDifferentDefinition) {
261
- /** Try to prevent cascading dependency issues when removing it */
262
- queries.push(
263
- `ALTER INDEX ${asName(indexName)} RENAME TO ${asName(oldIndexToBeDroppedName)};`,
264
- );
265
- }
266
- if (
267
- indexExistsWithDifferentDefinition ||
268
- indexShouldBeReplaced ||
269
- !currIndexes.some((idx) => idx.indexname === indexName)
270
- ) {
271
- queries.push(indexDefinition);
272
- queries.push(
273
- `COMMENT ON INDEX ${asName(indexName)} IS ${asValue(indexDefinitionHash)};`,
274
- );
275
- queries.push(`DROP INDEX IF EXISTS ${asName(oldIndexToBeDroppedName)};`);
276
- }
277
- },
278
- );
279
- }
236
+ const indexQueries = await getIndexesQueries(this.db, tableName, tableConf);
237
+ queries.push(...indexQueries);
280
238
 
281
239
  const { triggers, dropIfExists, dropIfExistsCascade } = tableConf;
282
240
  if (triggers) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.430",
3
+ "version": "4.2.431",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",