prostgles-server 3.0.130 → 3.0.131

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 (27) hide show
  1. package/dist/TableConfig/TableConfig.d.ts +2 -2
  2. package/dist/TableConfig/TableConfig.d.ts.map +1 -1
  3. package/dist/TableConfig/TableConfig.js +34 -29
  4. package/dist/TableConfig/TableConfig.js.map +1 -1
  5. package/dist/TableConfig/getColumnDefinitionQuery.d.ts +13 -1
  6. package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
  7. package/dist/TableConfig/getColumnDefinitionQuery.js +22 -10
  8. package/dist/TableConfig/getColumnDefinitionQuery.js.map +1 -1
  9. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +8 -0
  10. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -0
  11. package/dist/TableConfig/getConstraintDefinitionQueries.js +32 -0
  12. package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -0
  13. package/lib/TableConfig/TableConfig.d.ts +2 -2
  14. package/lib/TableConfig/TableConfig.d.ts.map +1 -1
  15. package/lib/TableConfig/TableConfig.js +34 -29
  16. package/lib/TableConfig/TableConfig.ts +60 -55
  17. package/lib/TableConfig/getColumnDefinitionQuery.d.ts +13 -1
  18. package/lib/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
  19. package/lib/TableConfig/getColumnDefinitionQuery.js +22 -10
  20. package/lib/TableConfig/getColumnDefinitionQuery.ts +29 -11
  21. package/lib/TableConfig/getConstraintDefinitionQueries.d.ts +8 -0
  22. package/lib/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -0
  23. package/lib/TableConfig/getConstraintDefinitionQueries.js +31 -0
  24. package/lib/TableConfig/getConstraintDefinitionQueries.ts +37 -0
  25. package/package.json +1 -1
  26. package/tests/client/PID.txt +1 -1
  27. package/tests/server/package-lock.json +1 -1
@@ -162,11 +162,11 @@ type UnionKeys<T> = T extends T ? keyof T : never;
162
162
  type StrictUnionHelper<T, TAll> = T extends any ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>> : never;
163
163
  export type StrictUnion<T> = StrictUnionHelper<T, T>;
164
164
  export declare const CONSTRAINT_TYPES: readonly ["PRIMARY KEY", "UNIQUE", "CHECK"];
165
- type TableDefinition<LANG_IDS> = {
165
+ export type TableDefinition<LANG_IDS> = {
166
166
  columns?: {
167
167
  [column_name: string]: ColumnConfig<LANG_IDS>;
168
168
  };
169
- constraints?: {
169
+ constraints?: string[] | {
170
170
  [constraint_name: string]: string | {
171
171
  type: typeof CONSTRAINT_TYPES[number];
172
172
  dropIfExists?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ const DboBuilder_1 = require("../DboBuilder");
6
6
  const PubSubManager_1 = require("../PubSubManager/PubSubManager");
7
7
  const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
8
8
  const getColumnDefinitionQuery_1 = require("./getColumnDefinitionQuery");
9
+ const getConstraintDefinitionQueries_1 = require("./getConstraintDefinitionQueries");
9
10
  const parseI18N = (params) => {
10
11
  const { config, lang, defaultLang, defaultValue } = params;
11
12
  if (config) {
@@ -195,6 +196,7 @@ class TableConfigurator {
195
196
  /* Create/Alter columns */
196
197
  for await (const tableName of (0, prostgles_types_1.getKeys)(this.config)) {
197
198
  const tableConf = this.config[tableName];
199
+ const constraintQueries = (0, getConstraintDefinitionQueries_1.getConstraintDefinitionQueries)({ tableName, tableConf: tableConf });
198
200
  if ("columns" in tableConf) {
199
201
  const colCreateLines = [];
200
202
  const tableHandler = this.dbo[tableName];
@@ -206,12 +208,7 @@ class TableConfigurator {
206
208
  /** Must install validation function */
207
209
  if (hasJSONBValidation) {
208
210
  try {
209
- const fileContent = `
210
- /* prevent duplicate key value violates unique constraint "pg_namespace_nspname_index" Key (nspname)=(prostgles) already exists.*/
211
- LOCK TABLE pg_catalog.pg_namespace IN SHARE ROW EXCLUSIVE MODE;
212
- CREATE SCHEMA IF NOT EXISTS prostgles;\n
213
- ${validate_jsonb_schema_sql_1.validate_jsonb_schema_sql}`;
214
- await this.db.any(fileContent);
211
+ await this.db.any(validate_jsonb_schema_sql_1.validate_jsonb_schema_sql);
215
212
  }
216
213
  catch (err) {
217
214
  console.error("Could not install the jsonb validation function due to error: ", err);
@@ -227,14 +224,16 @@ class TableConfigurator {
227
224
  for await (const colName of columns) {
228
225
  const colConf = tableConf.columns[colName];
229
226
  /* Add column to create statement */
230
- if (!tableHandler) {
231
- const colDef = await (0, getColumnDefinitionQuery_1.getColumnDefinitionQuery)({ colConf, column: colName, db: this.db, table: tableName });
227
+ const colDef = await (0, getColumnDefinitionQuery_1.getColumnDefinitionQuery)({ colConf, column: colName, db: this.db, table: tableName });
228
+ if (!colDef) {
229
+ // Column has only labels
230
+ }
231
+ else if (!tableHandler) {
232
232
  columnDefs.push(colDef);
233
233
  colCreateLines.push(colDef);
234
234
  /** Alter existing column */
235
235
  }
236
236
  else if (tableHandler && !tableHandler.columns?.find(c => colName === c.name)) {
237
- const colDef = await (0, getColumnDefinitionQuery_1.getColumnDefinitionQuery)({ colConf, column: colName, db: this.db, table: tableName });
238
237
  columnDefs.push(colDef);
239
238
  queries.push(`
240
239
  ALTER TABLE ${asName(tableName)}
@@ -252,21 +251,44 @@ class TableConfigurator {
252
251
  /** Remove droped/altered constraints */
253
252
  if (tableHandler && columnDefs.length) {
254
253
  let newConstraints = [];
254
+ let newCols = [];
255
255
  try {
256
256
  await this.db.tx(async (t) => {
257
257
  const { v } = await t.one("SELECT md5(random()::text) as v");
258
258
  const randomTableName = `prostgles_constr_${v}`;
259
- await t.any(`CREATE TABLE ${randomTableName} ( \n${columnDefs.join(",\n")}\n );`);
259
+ const columnDefsWithoutReferences = columnDefs.map(cdef => {
260
+ return cdef.slice(0, cdef.toLowerCase().indexOf(" references "));
261
+ });
262
+ await t.any(`CREATE TABLE ${randomTableName} ( \n${columnDefsWithoutReferences.join(",\n")}\n );\n` +
263
+ (constraintQueries ?? []).join("\n"));
260
264
  newConstraints = await (0, getColumnDefinitionQuery_1.getColConstraints)({ db: t, table: randomTableName });
265
+ newCols = await (0, getColumnDefinitionQuery_1.getTableColumns)({ db: this.db, tableName });
261
266
  return Promise.reject("Done");
262
267
  });
263
268
  }
264
269
  catch (e) {
265
270
  }
271
+ const ALTER_TABLE_Q = `ALTER TABLE ${asName(tableName)}`;
266
272
  const currConstraints = await (0, getColumnDefinitionQuery_1.getColConstraints)({ db: this.db, table: tableName });
267
273
  currConstraints.forEach(c => {
268
274
  if (!newConstraints.some(nc => nc.type === c.type && nc.definition === c.definition && nc.cols.sort().join() === c.cols.sort().join())) {
269
- queries.unshift(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(c.name)} CASCADE;`);
275
+ queries.unshift(`${ALTER_TABLE_Q} DROP CONSTRAINT ${asName(c.name)} CASCADE;`);
276
+ }
277
+ });
278
+ const currCols = await (0, getColumnDefinitionQuery_1.getTableColumns)({ db: this.db, tableName });
279
+ currCols.forEach(c => {
280
+ const newCol = newCols.find(nc => nc.column_name === c.column_name);
281
+ if (!newCol) {
282
+ queries.push(`${ALTER_TABLE_Q} DROP COLUMN ${asName(c.column_name)} CASCADE;`);
283
+ }
284
+ else if (newCol.nullable !== c.nullable) {
285
+ queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.nullable ? "SET" : "DROP"} NOT NULL;`);
286
+ }
287
+ else if (newCol.udt_name !== c.udt_name) {
288
+ queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} TYPE ${newCol.udt_name};`);
289
+ }
290
+ else if (newCol.column_default !== c.column_default) {
291
+ queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.column_default === null ? "DROP DEFAULT" : `SET DEFAULT ${newCol.column_default}`};`);
270
292
  }
271
293
  });
272
294
  }
@@ -280,24 +302,7 @@ class TableConfigurator {
280
302
  this.log("TableConfigurator: Created table: \n" + queries.at(-1));
281
303
  }
282
304
  }
283
- if ("constraints" in tableConf && tableConf.constraints) {
284
- const constraints = await getTableConstraings(this.db, tableName);
285
- const constraintNames = (0, prostgles_types_1.getKeys)(tableConf.constraints);
286
- constraintNames.map(constraintName => {
287
- const _cnstr = tableConf.constraints[constraintName];
288
- const constraintDef = typeof _cnstr === "string" ? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
289
- const canDrop = (0, prostgles_types_1.isObject)(_cnstr) && _cnstr.dropIfExists;
290
- /** Drop constraints with the same name */
291
- const existingConstraint = constraints.some(c => c.conname === constraintName);
292
- if (existingConstraint) {
293
- if (canDrop)
294
- queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
295
- }
296
- if (!existingConstraint || canDrop) {
297
- queries.push(`ALTER TABLE ${asName(tableName)} ADD CONSTRAINT ${asName(constraintName)} ${constraintDef} ;`);
298
- }
299
- });
300
- }
305
+ queries.push(...constraintQueries ?? []);
301
306
  if ("indexes" in tableConf && tableConf.indexes) {
302
307
  /*
303
308
  CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
@@ -1 +1 @@
1
- {"version":3,"file":"TableConfig.js","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableConfig.js","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ type Args = {
10
10
  /**
11
11
  * Column create statement for a given config
12
12
  */
13
- export declare const getColumnDefinitionQuery: ({ colConf, column, db, table }: Args) => Promise<string>;
13
+ export declare const getColumnDefinitionQuery: ({ colConf: colConfRaw, column, db, table }: Args) => Promise<string | undefined>;
14
14
  export type ColConstraint = {
15
15
  name: string;
16
16
  table: string;
@@ -27,5 +27,17 @@ type ColConstraintsArgs = {
27
27
  };
28
28
  export declare const getColConstraintsQuery: ({ column, table, types }: Omit<ColConstraintsArgs, "db">) => string;
29
29
  export declare const getColConstraints: ({ db, column, table, types }: ColConstraintsArgs) => Promise<ColConstraint[]>;
30
+ export type ColumnMinimalInfo = {
31
+ table_name: string;
32
+ table_schema: string;
33
+ column_name: string;
34
+ column_default: string | null;
35
+ udt_name: string;
36
+ nullable: boolean;
37
+ };
38
+ export declare const getTableColumns: ({ db, tableName }: {
39
+ db: DB;
40
+ tableName: string;
41
+ }) => Promise<ColumnMinimalInfo[]>;
30
42
  export {};
31
43
  //# sourceMappingURL=getColumnDefinitionQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,mCAA0C,IAAI,KAAG,QAAQ,MAAM,CAiFnG,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;CACjC,CAAA;AACD,eAAO,MAAM,sBAAsB,6BAA8B,KAAK,kBAAkB,EAAE,IAAI,CAAC,WAyB9F,CAAA;AACD,eAAO,MAAM,iBAAiB,iCAAkC,kBAAkB,KAAI,QAAQ,aAAa,EAAE,CAG5G,CAAA"}
1
+ {"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,+CAAsD,IAAI,KAAG,QAAQ,MAAM,GAAG,SAAS,CAiF3H,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;CACjC,CAAA;AACD,eAAO,MAAM,sBAAsB,6BAA8B,KAAK,kBAAkB,EAAE,IAAI,CAAC,WAyB9F,CAAA;AACD,eAAO,MAAM,iBAAiB,iCAAkC,kBAAkB,KAAI,QAAQ,aAAa,EAAE,CAG5G,CAAA;AACD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AACF,eAAO,MAAM,eAAe;;eAA4C,MAAM;MAAK,QAAQ,iBAAiB,EAAE,CAS7G,CAAA"}
@@ -1,30 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getColConstraints = exports.getColConstraintsQuery = exports.getColumnDefinitionQuery = void 0;
3
+ exports.getTableColumns = exports.getColConstraints = exports.getColConstraintsQuery = exports.getColumnDefinitionQuery = void 0;
4
4
  const prostgles_types_1 = require("prostgles-types");
5
5
  const PubSubManager_1 = require("../PubSubManager/PubSubManager");
6
6
  const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
7
7
  /**
8
8
  * Column create statement for a given config
9
9
  */
10
- const getColumnDefinitionQuery = async ({ colConf, column, db, table }) => {
10
+ const getColumnDefinitionQuery = async ({ colConf: colConfRaw, column, db, table }) => {
11
+ const colConf = typeof colConfRaw === "string" ? { sqlDefinition: colConfRaw } : colConfRaw;
11
12
  const colNameEsc = (0, prostgles_types_1.asName)(column);
12
13
  const getColTypeDef = (colConf, pgType) => {
13
14
  const { nullable, defaultValue } = colConf;
14
15
  return `${pgType} ${!nullable ? " NOT NULL " : ""} ${defaultValue ? ` DEFAULT ${(0, PubSubManager_1.asValue)(defaultValue)} ` : ""}`;
15
16
  };
16
- const jsonbSchema = (0, prostgles_types_1.isObject)(colConf) ? (("jsonbSchema" in colConf && colConf.jsonbSchema) ? { jsonbSchema: colConf.jsonbSchema, jsonbSchemaType: undefined } :
17
+ const jsonbSchema = ("jsonbSchema" in colConf && colConf.jsonbSchema) ? { jsonbSchema: colConf.jsonbSchema, jsonbSchemaType: undefined } :
17
18
  ("jsonbSchemaType" in colConf && colConf.jsonbSchemaType) ? { jsonbSchema: undefined, jsonbSchemaType: colConf.jsonbSchemaType } :
18
- undefined) :
19
- undefined;
20
- if ((0, prostgles_types_1.isObject)(colConf) && "references" in colConf && colConf.references) {
19
+ undefined;
20
+ if ("references" in colConf && colConf.references) {
21
21
  const { tableName: lookupTable, columnName: lookupCol = "id" } = colConf.references;
22
22
  return ` ${colNameEsc} ${getColTypeDef(colConf.references, "TEXT")} REFERENCES ${lookupTable} (${lookupCol}) `;
23
23
  }
24
- else if (typeof colConf === "string" || "sqlDefinition" in colConf && colConf.sqlDefinition) {
25
- return ` ${colNameEsc} ${typeof colConf === "string" ? colConf : colConf.sqlDefinition} `;
24
+ else if ("sqlDefinition" in colConf && colConf.sqlDefinition) {
25
+ return ` ${colNameEsc} ${colConf.sqlDefinition} `;
26
26
  }
27
- else if ((0, prostgles_types_1.isObject)(colConf) && "isText" in colConf && colConf.isText) {
27
+ else if ("isText" in colConf && colConf.isText) {
28
28
  let checks = "";
29
29
  const colChecks = [];
30
30
  if (colConf.lowerCased) {
@@ -77,7 +77,8 @@ const getColumnDefinitionQuery = async ({ colConf, column, db, table }) => {
77
77
  return ` ${colNameEsc} ${type} ${colConf.nullable ? "" : "NOT NULL"} ${"defaultValue" in colConf ? ` DEFAULT ${(0, PubSubManager_1.asValue)(colConf.defaultValue)}` : ""} CHECK(${checks})`;
78
78
  }
79
79
  else {
80
- throw "Unknown column config: " + JSON.stringify(colConf);
80
+ return undefined;
81
+ // throw "Unknown column config: " + JSON.stringify(colConf);
81
82
  }
82
83
  };
83
84
  exports.getColumnDefinitionQuery = getColumnDefinitionQuery;
@@ -115,4 +116,15 @@ const getColConstraints = ({ db, column, table, types }) => {
115
116
  return db.manyOrNone((0, exports.getColConstraintsQuery)({ column, table, types }));
116
117
  };
117
118
  exports.getColConstraints = getColConstraints;
119
+ const getTableColumns = ({ db, tableName }) => {
120
+ return db.manyOrNone(`
121
+ SELECT table_name,
122
+ table_schema, column_name,
123
+ column_default, udt_name,
124
+ is_nullable = 'YES' as nullable
125
+ FROM information_schema.columns
126
+ WHERE table_name = $1
127
+ `, [tableName]);
128
+ };
129
+ exports.getTableColumns = getTableColumns;
118
130
  //# sourceMappingURL=getColumnDefinitionQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getColumnDefinitionQuery.js","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getColumnDefinitionQuery.js","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { TableConfig } from "./TableConfig";
2
+ type Args = {
3
+ tableName: string;
4
+ tableConf: TableConfig[string];
5
+ };
6
+ export declare const getConstraintDefinitionQueries: ({ tableConf, tableName }: Args) => string[] | undefined;
7
+ export {};
8
+ //# sourceMappingURL=getConstraintDefinitionQueries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConstraintDefinitionQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getConstraintDefinitionQueries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAE/B,CAAC;AAEF,eAAO,MAAM,8BAA8B,6BAA8B,IAAI,KAAG,MAAM,EAAE,GAAG,SA2B1F,CAAA"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConstraintDefinitionQueries = void 0;
4
+ const prostgles_types_1 = require("prostgles-types");
5
+ const getConstraintDefinitionQueries = ({ tableConf, tableName }) => {
6
+ if ("constraints" in tableConf && tableConf.constraints) {
7
+ const { constraints } = tableConf;
8
+ if (!constraints) {
9
+ return undefined;
10
+ }
11
+ const queries = [];
12
+ if (Array.isArray(constraints)) {
13
+ return constraints.map(c => `ALTER TABLE ${(0, prostgles_types_1.asName)(tableName)} ADD ${c}`);
14
+ }
15
+ else {
16
+ const constraintNames = (0, prostgles_types_1.getKeys)(tableConf.constraints);
17
+ constraintNames.map(constraintName => {
18
+ const _cnstr = constraints[constraintName];
19
+ const constraintDef = typeof _cnstr === "string" ? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
20
+ /** Drop constraints with the same name */
21
+ // const existingConstraint = constraints.some(c => c.conname === constraintName);
22
+ // if(existingConstraint){
23
+ // if(canDrop) queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
24
+ // }
25
+ queries.push(`ALTER TABLE ${(0, prostgles_types_1.asName)(tableName)} ADD CONSTRAINT ${(0, prostgles_types_1.asName)(constraintName)} ${constraintDef} ;`);
26
+ });
27
+ return queries;
28
+ }
29
+ }
30
+ };
31
+ exports.getConstraintDefinitionQueries = getConstraintDefinitionQueries;
32
+ //# sourceMappingURL=getConstraintDefinitionQueries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConstraintDefinitionQueries.js","sourceRoot":"","sources":["../../lib/TableConfig/getConstraintDefinitionQueries.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAS3C,MAAM,8BAA8B,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAQ,EAAwB,EAAE;IAErG,IAAI,aAAa,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE;QACvD,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QAClC,IAAG,CAAC,WAAW,EAAC;YACd,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAC;YAC5B,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,IAAA,wBAAM,EAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC1E;aAAM;YACL,MAAM,eAAe,GAAG,IAAA,yBAAO,EAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACvD,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;gBACnC,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;gBAC3C,MAAM,aAAa,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,GAAG,CAAC;gBAEhG,0CAA0C;gBAC1C,kFAAkF;gBAClF,0BAA0B;gBAC1B,6GAA6G;gBAC7G,IAAI;gBAEJ,OAAO,CAAC,IAAI,CAAC,eAAe,IAAA,wBAAM,EAAC,SAAS,CAAC,mBAAmB,IAAA,wBAAM,EAAC,cAAc,CAAC,IAAI,aAAa,IAAI,CAAC,CAAC;YAC/G,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;SAChB;KACF;AACH,CAAC,CAAA;AA3BY,QAAA,8BAA8B,kCA2B1C"}
@@ -162,11 +162,11 @@ type UnionKeys<T> = T extends T ? keyof T : never;
162
162
  type StrictUnionHelper<T, TAll> = T extends any ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>> : never;
163
163
  export type StrictUnion<T> = StrictUnionHelper<T, T>;
164
164
  export declare const CONSTRAINT_TYPES: readonly ["PRIMARY KEY", "UNIQUE", "CHECK"];
165
- type TableDefinition<LANG_IDS> = {
165
+ export type TableDefinition<LANG_IDS> = {
166
166
  columns?: {
167
167
  [column_name: string]: ColumnConfig<LANG_IDS>;
168
168
  };
169
- constraints?: {
169
+ constraints?: string[] | {
170
170
  [constraint_name: string]: string | {
171
171
  type: typeof CONSTRAINT_TYPES[number];
172
172
  dropIfExists?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["TableConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["TableConfig.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ const DboBuilder_1 = require("../DboBuilder");
6
6
  const PubSubManager_1 = require("../PubSubManager/PubSubManager");
7
7
  const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
8
8
  const getColumnDefinitionQuery_1 = require("./getColumnDefinitionQuery");
9
+ const getConstraintDefinitionQueries_1 = require("./getConstraintDefinitionQueries");
9
10
  const parseI18N = (params) => {
10
11
  const { config, lang, defaultLang, defaultValue } = params;
11
12
  if (config) {
@@ -193,6 +194,7 @@ class TableConfigurator {
193
194
  /* Create/Alter columns */
194
195
  for await (const tableName of (0, prostgles_types_1.getKeys)(this.config)) {
195
196
  const tableConf = this.config[tableName];
197
+ const constraintQueries = (0, getConstraintDefinitionQueries_1.getConstraintDefinitionQueries)({ tableName, tableConf: tableConf });
196
198
  if ("columns" in tableConf) {
197
199
  const colCreateLines = [];
198
200
  const tableHandler = this.dbo[tableName];
@@ -204,12 +206,7 @@ class TableConfigurator {
204
206
  /** Must install validation function */
205
207
  if (hasJSONBValidation) {
206
208
  try {
207
- const fileContent = `
208
- /* prevent duplicate key value violates unique constraint "pg_namespace_nspname_index" Key (nspname)=(prostgles) already exists.*/
209
- LOCK TABLE pg_catalog.pg_namespace IN SHARE ROW EXCLUSIVE MODE;
210
- CREATE SCHEMA IF NOT EXISTS prostgles;\n
211
- ${validate_jsonb_schema_sql_1.validate_jsonb_schema_sql}`;
212
- await this.db.any(fileContent);
209
+ await this.db.any(validate_jsonb_schema_sql_1.validate_jsonb_schema_sql);
213
210
  }
214
211
  catch (err) {
215
212
  console.error("Could not install the jsonb validation function due to error: ", err);
@@ -225,14 +222,16 @@ class TableConfigurator {
225
222
  for await (const colName of columns) {
226
223
  const colConf = tableConf.columns[colName];
227
224
  /* Add column to create statement */
228
- if (!tableHandler) {
229
- const colDef = await (0, getColumnDefinitionQuery_1.getColumnDefinitionQuery)({ colConf, column: colName, db: this.db, table: tableName });
225
+ const colDef = await (0, getColumnDefinitionQuery_1.getColumnDefinitionQuery)({ colConf, column: colName, db: this.db, table: tableName });
226
+ if (!colDef) {
227
+ // Column has only labels
228
+ }
229
+ else if (!tableHandler) {
230
230
  columnDefs.push(colDef);
231
231
  colCreateLines.push(colDef);
232
232
  /** Alter existing column */
233
233
  }
234
234
  else if (tableHandler && !tableHandler.columns?.find(c => colName === c.name)) {
235
- const colDef = await (0, getColumnDefinitionQuery_1.getColumnDefinitionQuery)({ colConf, column: colName, db: this.db, table: tableName });
236
235
  columnDefs.push(colDef);
237
236
  queries.push(`
238
237
  ALTER TABLE ${asName(tableName)}
@@ -250,21 +249,44 @@ class TableConfigurator {
250
249
  /** Remove droped/altered constraints */
251
250
  if (tableHandler && columnDefs.length) {
252
251
  let newConstraints = [];
252
+ let newCols = [];
253
253
  try {
254
254
  await this.db.tx(async (t) => {
255
255
  const { v } = await t.one("SELECT md5(random()::text) as v");
256
256
  const randomTableName = `prostgles_constr_${v}`;
257
- await t.any(`CREATE TABLE ${randomTableName} ( \n${columnDefs.join(",\n")}\n );`);
257
+ const columnDefsWithoutReferences = columnDefs.map(cdef => {
258
+ return cdef.slice(0, cdef.toLowerCase().indexOf(" references "));
259
+ });
260
+ await t.any(`CREATE TABLE ${randomTableName} ( \n${columnDefsWithoutReferences.join(",\n")}\n );\n` +
261
+ (constraintQueries ?? []).join("\n"));
258
262
  newConstraints = await (0, getColumnDefinitionQuery_1.getColConstraints)({ db: t, table: randomTableName });
263
+ newCols = await (0, getColumnDefinitionQuery_1.getTableColumns)({ db: this.db, tableName });
259
264
  return Promise.reject("Done");
260
265
  });
261
266
  }
262
267
  catch (e) {
263
268
  }
269
+ const ALTER_TABLE_Q = `ALTER TABLE ${asName(tableName)}`;
264
270
  const currConstraints = await (0, getColumnDefinitionQuery_1.getColConstraints)({ db: this.db, table: tableName });
265
271
  currConstraints.forEach(c => {
266
272
  if (!newConstraints.some(nc => nc.type === c.type && nc.definition === c.definition && nc.cols.sort().join() === c.cols.sort().join())) {
267
- queries.unshift(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(c.name)} CASCADE;`);
273
+ queries.unshift(`${ALTER_TABLE_Q} DROP CONSTRAINT ${asName(c.name)} CASCADE;`);
274
+ }
275
+ });
276
+ const currCols = await (0, getColumnDefinitionQuery_1.getTableColumns)({ db: this.db, tableName });
277
+ currCols.forEach(c => {
278
+ const newCol = newCols.find(nc => nc.column_name === c.column_name);
279
+ if (!newCol) {
280
+ queries.push(`${ALTER_TABLE_Q} DROP COLUMN ${asName(c.column_name)} CASCADE;`);
281
+ }
282
+ else if (newCol.nullable !== c.nullable) {
283
+ queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.nullable ? "SET" : "DROP"} NOT NULL;`);
284
+ }
285
+ else if (newCol.udt_name !== c.udt_name) {
286
+ queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} TYPE ${newCol.udt_name};`);
287
+ }
288
+ else if (newCol.column_default !== c.column_default) {
289
+ queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.column_default === null ? "DROP DEFAULT" : `SET DEFAULT ${newCol.column_default}`};`);
268
290
  }
269
291
  });
270
292
  }
@@ -278,24 +300,7 @@ class TableConfigurator {
278
300
  this.log("TableConfigurator: Created table: \n" + queries.at(-1));
279
301
  }
280
302
  }
281
- if ("constraints" in tableConf && tableConf.constraints) {
282
- const constraints = await getTableConstraings(this.db, tableName);
283
- const constraintNames = (0, prostgles_types_1.getKeys)(tableConf.constraints);
284
- constraintNames.map(constraintName => {
285
- const _cnstr = tableConf.constraints[constraintName];
286
- const constraintDef = typeof _cnstr === "string" ? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
287
- const canDrop = (0, prostgles_types_1.isObject)(_cnstr) && _cnstr.dropIfExists;
288
- /** Drop constraints with the same name */
289
- const existingConstraint = constraints.some(c => c.conname === constraintName);
290
- if (existingConstraint) {
291
- if (canDrop)
292
- queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
293
- }
294
- if (!existingConstraint || canDrop) {
295
- queries.push(`ALTER TABLE ${asName(tableName)} ADD CONSTRAINT ${asName(constraintName)} ${constraintDef} ;`);
296
- }
297
- });
298
- }
303
+ queries.push(...constraintQueries ?? []);
299
304
  if ("indexes" in tableConf && tableConf.indexes) {
300
305
  /*
301
306
  CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
@@ -3,8 +3,8 @@ import { isPlainObject, JoinInfo } from "../DboBuilder";
3
3
  import { DB, DBHandlerServer, Prostgles } from "../Prostgles";
4
4
  import { asValue } from "../PubSubManager/PubSubManager";
5
5
  import { validate_jsonb_schema_sql } from "../JSONBValidation/validate_jsonb_schema_sql";
6
- import { ColConstraint, getColConstraints, getColumnDefinitionQuery } from "./getColumnDefinitionQuery";
7
- import { stringify } from "querystring";
6
+ import { ColConstraint, ColumnMinimalInfo, getColConstraints, getColumnDefinitionQuery, getTableColumns } from "./getColumnDefinitionQuery";
7
+ import { getConstraintDefinitionQueries } from "./getConstraintDefinitionQueries";
8
8
 
9
9
  type ColExtraInfo = {
10
10
  min?: string | number;
@@ -208,33 +208,35 @@ type StrictUnionHelper<T, TAll> = T extends any ? T & Partial<Record<Exclude<Uni
208
208
  export type StrictUnion<T> = StrictUnionHelper<T, T>
209
209
 
210
210
  export const CONSTRAINT_TYPES = ["PRIMARY KEY", "UNIQUE", "CHECK"] as const; // "FOREIGN KEY",
211
- type TableDefinition<LANG_IDS> = {
211
+ export type TableDefinition<LANG_IDS> = {
212
212
  columns?: {
213
213
  [column_name: string]: ColumnConfig<LANG_IDS>
214
214
  },
215
- constraints?: {
216
- [constraint_name: string]:
217
- | string
218
- | {
219
- type: typeof CONSTRAINT_TYPES[number];
220
- dropIfExists?: boolean;
221
- /**
222
- * E.g.:
223
- * colname
224
- * col1, col2
225
- * col1 > col3
226
- */
227
- content: string;
228
- }
229
- // & ({
230
- // }
231
- // | {
232
- // type: "FOREIGN KEY",
233
- // columns: string[];
234
- // ftable: string;
235
- // fcols: string[];
236
- // }
237
- // )
215
+ constraints?:
216
+ | string[]
217
+ | {
218
+ [constraint_name: string]:
219
+ | string
220
+ | {
221
+ type: typeof CONSTRAINT_TYPES[number];
222
+ dropIfExists?: boolean;
223
+ /**
224
+ * E.g.:
225
+ * colname
226
+ * col1, col2
227
+ * col1 > col3
228
+ */
229
+ content: string;
230
+ }
231
+ // & ({
232
+ // }
233
+ // | {
234
+ // type: "FOREIGN KEY",
235
+ // columns: string[];
236
+ // ftable: string;
237
+ // fcols: string[];
238
+ // }
239
+ // )
238
240
  },
239
241
 
240
242
  /**
@@ -492,6 +494,7 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
492
494
  /* Create/Alter columns */
493
495
  for await (const tableName of getKeys(this.config)){
494
496
  const tableConf = this.config![tableName];
497
+ const constraintQueries = getConstraintDefinitionQueries({ tableName, tableConf: tableConf as any });
495
498
  if ("columns" in tableConf) {
496
499
  const colCreateLines: string[] = [];
497
500
  const tableHandler = this.dbo[tableName];
@@ -504,13 +507,7 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
504
507
  /** Must install validation function */
505
508
  if(hasJSONBValidation){
506
509
  try {
507
-
508
- const fileContent = `
509
- /* prevent duplicate key value violates unique constraint "pg_namespace_nspname_index" Key (nspname)=(prostgles) already exists.*/
510
- LOCK TABLE pg_catalog.pg_namespace IN SHARE ROW EXCLUSIVE MODE;
511
- CREATE SCHEMA IF NOT EXISTS prostgles;\n
512
- ${validate_jsonb_schema_sql}`;
513
- await this.db.any(fileContent);
510
+ await this.db.any(validate_jsonb_schema_sql);
514
511
  } catch(err: any){
515
512
  console.error("Could not install the jsonb validation function due to error: ", err);
516
513
  throw err;
@@ -528,14 +525,15 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
528
525
  const colConf = tableConf.columns![colName];
529
526
 
530
527
  /* Add column to create statement */
531
- if (!tableHandler) {
532
- const colDef = await getColumnDefinitionQuery({ colConf, column: colName, db: this.db, table: tableName });
528
+ const colDef = await getColumnDefinitionQuery({ colConf, column: colName, db: this.db, table: tableName });
529
+ if(!colDef){
530
+ // Column has only labels
531
+ } else if (!tableHandler) {
533
532
  columnDefs.push(colDef);
534
533
  colCreateLines.push(colDef);
535
534
 
536
535
  /** Alter existing column */
537
536
  } else if (tableHandler && !tableHandler.columns?.find(c => colName === c.name)) {
538
- const colDef = await getColumnDefinitionQuery({ colConf, column: colName, db: this.db, table: tableName });
539
537
  columnDefs.push(colDef);
540
538
 
541
539
  queries.push(`
@@ -555,24 +553,47 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
555
553
  /** Remove droped/altered constraints */
556
554
  if(tableHandler && columnDefs.length){
557
555
  let newConstraints: ColConstraint[] = [];
556
+ let newCols: ColumnMinimalInfo[] = [];
558
557
  try {
559
558
  await this.db.tx(async t => {
560
559
  const { v } = await t.one("SELECT md5(random()::text) as v");
561
560
  const randomTableName = `prostgles_constr_${v}`;
562
- await t.any(`CREATE TABLE ${randomTableName} ( \n${columnDefs.join(",\n")}\n );`);
561
+ const columnDefsWithoutReferences = columnDefs.map(cdef => {
562
+ return cdef.slice(0, cdef.toLowerCase().indexOf(" references "));
563
+ });
564
+ await t.any(
565
+ `CREATE TABLE ${randomTableName} ( \n${columnDefsWithoutReferences.join(",\n")}\n );\n` +
566
+ (constraintQueries ?? []).join("\n")
567
+ );
563
568
  newConstraints = await getColConstraints({ db: t, table: randomTableName });
569
+ newCols = await getTableColumns({ db: this.db, tableName });
564
570
  return Promise.reject("Done");
565
571
  });
566
572
 
567
573
  } catch(e){
568
574
 
569
575
  }
576
+ const ALTER_TABLE_Q = `ALTER TABLE ${asName(tableName)}`;
570
577
  const currConstraints = await getColConstraints({ db: this.db, table: tableName });
571
578
  currConstraints.forEach(c => {
572
579
  if(!newConstraints.some(nc => nc.type === c.type && nc.definition === c.definition && nc.cols.sort().join() === c.cols.sort().join())){
573
- queries.unshift(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(c.name)} CASCADE;`);
580
+ queries.unshift(`${ALTER_TABLE_Q} DROP CONSTRAINT ${asName(c.name)} CASCADE;`);
574
581
  }
575
582
  });
583
+
584
+ const currCols = await getTableColumns({ db: this.db, tableName });
585
+ currCols.forEach(c => {
586
+ const newCol = newCols.find(nc => nc.column_name === c.column_name);
587
+ if(!newCol){
588
+ queries.push(`${ALTER_TABLE_Q} DROP COLUMN ${asName(c.column_name)} CASCADE;`)
589
+ } else if(newCol.nullable !== c.nullable){
590
+ queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.nullable? "SET" : "DROP"} NOT NULL;`)
591
+ } else if(newCol.udt_name !== c.udt_name){
592
+ queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} TYPE ${newCol.udt_name};`)
593
+ } else if(newCol.column_default !== c.column_default){
594
+ queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.column_default === null? "DROP DEFAULT" : `SET DEFAULT ${newCol.column_default}`};`)
595
+ }
596
+ })
576
597
  }
577
598
  }
578
599
 
@@ -585,23 +606,7 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
585
606
  this.log("TableConfigurator: Created table: \n" + queries.at(-1))
586
607
  }
587
608
  }
588
- if ("constraints" in tableConf && tableConf.constraints) {
589
- const constraints = await getTableConstraings(this.db, tableName);
590
- const constraintNames = getKeys(tableConf.constraints);
591
- constraintNames.map(constraintName => {
592
- const _cnstr = tableConf.constraints![constraintName];
593
- const constraintDef = typeof _cnstr === "string"? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
594
- const canDrop = isObject(_cnstr) && _cnstr.dropIfExists;
595
- /** Drop constraints with the same name */
596
- const existingConstraint = constraints.some(c => c.conname === constraintName);
597
- if(existingConstraint){
598
- if(canDrop) queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
599
- }
600
- if(!existingConstraint || canDrop){
601
- queries.push(`ALTER TABLE ${asName(tableName)} ADD CONSTRAINT ${asName(constraintName)} ${constraintDef} ;`);
602
- }
603
- });
604
- }
609
+ queries.push(...constraintQueries ?? []);
605
610
  if ("indexes" in tableConf && tableConf.indexes) {
606
611
  /*
607
612
  CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
@@ -10,7 +10,7 @@ type Args = {
10
10
  /**
11
11
  * Column create statement for a given config
12
12
  */
13
- export declare const getColumnDefinitionQuery: ({ colConf, column, db, table }: Args) => Promise<string>;
13
+ export declare const getColumnDefinitionQuery: ({ colConf: colConfRaw, column, db, table }: Args) => Promise<string | undefined>;
14
14
  export type ColConstraint = {
15
15
  name: string;
16
16
  table: string;
@@ -27,5 +27,17 @@ type ColConstraintsArgs = {
27
27
  };
28
28
  export declare const getColConstraintsQuery: ({ column, table, types }: Omit<ColConstraintsArgs, "db">) => string;
29
29
  export declare const getColConstraints: ({ db, column, table, types }: ColConstraintsArgs) => Promise<ColConstraint[]>;
30
+ export type ColumnMinimalInfo = {
31
+ table_name: string;
32
+ table_schema: string;
33
+ column_name: string;
34
+ column_default: string | null;
35
+ udt_name: string;
36
+ nullable: boolean;
37
+ };
38
+ export declare const getTableColumns: ({ db, tableName }: {
39
+ db: DB;
40
+ tableName: string;
41
+ }) => Promise<ColumnMinimalInfo[]>;
30
42
  export {};
31
43
  //# sourceMappingURL=getColumnDefinitionQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,mCAA0C,IAAI,KAAG,QAAQ,MAAM,CAiFnG,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;CACjC,CAAA;AACD,eAAO,MAAM,sBAAsB,6BAA8B,KAAK,kBAAkB,EAAE,IAAI,CAAC,WAyB9F,CAAA;AACD,eAAO,MAAM,iBAAiB,iCAAkC,kBAAkB,KAAI,QAAQ,aAAa,EAAE,CAG5G,CAAA"}
1
+ {"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,+CAAsD,IAAI,KAAG,QAAQ,MAAM,GAAG,SAAS,CAiF3H,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;CACjC,CAAA;AACD,eAAO,MAAM,sBAAsB,6BAA8B,KAAK,kBAAkB,EAAE,IAAI,CAAC,WAyB9F,CAAA;AACD,eAAO,MAAM,iBAAiB,iCAAkC,kBAAkB,KAAI,QAAQ,aAAa,EAAE,CAG5G,CAAA;AACD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AACF,eAAO,MAAM,eAAe;;eAA4C,MAAM;MAAK,QAAQ,iBAAiB,EAAE,CAS7G,CAAA"}
@@ -1,30 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getColConstraints = exports.getColConstraintsQuery = exports.getColumnDefinitionQuery = void 0;
3
+ exports.getTableColumns = exports.getColConstraints = exports.getColConstraintsQuery = exports.getColumnDefinitionQuery = void 0;
4
4
  const prostgles_types_1 = require("prostgles-types");
5
5
  const PubSubManager_1 = require("../PubSubManager/PubSubManager");
6
6
  const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
7
7
  /**
8
8
  * Column create statement for a given config
9
9
  */
10
- const getColumnDefinitionQuery = async ({ colConf, column, db, table }) => {
10
+ const getColumnDefinitionQuery = async ({ colConf: colConfRaw, column, db, table }) => {
11
+ const colConf = typeof colConfRaw === "string" ? { sqlDefinition: colConfRaw } : colConfRaw;
11
12
  const colNameEsc = (0, prostgles_types_1.asName)(column);
12
13
  const getColTypeDef = (colConf, pgType) => {
13
14
  const { nullable, defaultValue } = colConf;
14
15
  return `${pgType} ${!nullable ? " NOT NULL " : ""} ${defaultValue ? ` DEFAULT ${(0, PubSubManager_1.asValue)(defaultValue)} ` : ""}`;
15
16
  };
16
- const jsonbSchema = (0, prostgles_types_1.isObject)(colConf) ? (("jsonbSchema" in colConf && colConf.jsonbSchema) ? { jsonbSchema: colConf.jsonbSchema, jsonbSchemaType: undefined } :
17
+ const jsonbSchema = ("jsonbSchema" in colConf && colConf.jsonbSchema) ? { jsonbSchema: colConf.jsonbSchema, jsonbSchemaType: undefined } :
17
18
  ("jsonbSchemaType" in colConf && colConf.jsonbSchemaType) ? { jsonbSchema: undefined, jsonbSchemaType: colConf.jsonbSchemaType } :
18
- undefined) :
19
- undefined;
20
- if ((0, prostgles_types_1.isObject)(colConf) && "references" in colConf && colConf.references) {
19
+ undefined;
20
+ if ("references" in colConf && colConf.references) {
21
21
  const { tableName: lookupTable, columnName: lookupCol = "id" } = colConf.references;
22
22
  return ` ${colNameEsc} ${getColTypeDef(colConf.references, "TEXT")} REFERENCES ${lookupTable} (${lookupCol}) `;
23
23
  }
24
- else if (typeof colConf === "string" || "sqlDefinition" in colConf && colConf.sqlDefinition) {
25
- return ` ${colNameEsc} ${typeof colConf === "string" ? colConf : colConf.sqlDefinition} `;
24
+ else if ("sqlDefinition" in colConf && colConf.sqlDefinition) {
25
+ return ` ${colNameEsc} ${colConf.sqlDefinition} `;
26
26
  }
27
- else if ((0, prostgles_types_1.isObject)(colConf) && "isText" in colConf && colConf.isText) {
27
+ else if ("isText" in colConf && colConf.isText) {
28
28
  let checks = "";
29
29
  const colChecks = [];
30
30
  if (colConf.lowerCased) {
@@ -77,7 +77,8 @@ const getColumnDefinitionQuery = async ({ colConf, column, db, table }) => {
77
77
  return ` ${colNameEsc} ${type} ${colConf.nullable ? "" : "NOT NULL"} ${"defaultValue" in colConf ? ` DEFAULT ${(0, PubSubManager_1.asValue)(colConf.defaultValue)}` : ""} CHECK(${checks})`;
78
78
  }
79
79
  else {
80
- throw "Unknown column config: " + JSON.stringify(colConf);
80
+ return undefined;
81
+ // throw "Unknown column config: " + JSON.stringify(colConf);
81
82
  }
82
83
  };
83
84
  exports.getColumnDefinitionQuery = getColumnDefinitionQuery;
@@ -115,3 +116,14 @@ const getColConstraints = ({ db, column, table, types }) => {
115
116
  return db.manyOrNone((0, exports.getColConstraintsQuery)({ column, table, types }));
116
117
  };
117
118
  exports.getColConstraints = getColConstraints;
119
+ const getTableColumns = ({ db, tableName }) => {
120
+ return db.manyOrNone(`
121
+ SELECT table_name,
122
+ table_schema, column_name,
123
+ column_default, udt_name,
124
+ is_nullable = 'YES' as nullable
125
+ FROM information_schema.columns
126
+ WHERE table_name = $1
127
+ `, [tableName]);
128
+ };
129
+ exports.getTableColumns = getTableColumns;
@@ -1,4 +1,4 @@
1
- import { asName, isObject, pickKeys } from "prostgles-types";
1
+ import { asName, pickKeys } from "prostgles-types";
2
2
  import { DB } from "../Prostgles";
3
3
  import { asValue } from "../PubSubManager/PubSubManager";
4
4
  import { VALIDATE_SCHEMA_FUNCNAME } from "../JSONBValidation/validate_jsonb_schema_sql";
@@ -15,7 +15,8 @@ type Args = {
15
15
  /**
16
16
  * Column create statement for a given config
17
17
  */
18
- export const getColumnDefinitionQuery = async ({ colConf, column, db, table }: Args): Promise<string> => {
18
+ export const getColumnDefinitionQuery = async ({ colConf: colConfRaw, column, db, table }: Args): Promise<string | undefined> => {
19
+ const colConf = typeof colConfRaw === "string"? { sqlDefinition: colConfRaw } : colConfRaw;
19
20
  const colNameEsc = asName(column);
20
21
  const getColTypeDef = (colConf: BaseColumnTypes, pgType: "TEXT" | "JSONB") => {
21
22
  const { nullable, defaultValue } = colConf;
@@ -23,23 +24,21 @@ export const getColumnDefinitionQuery = async ({ colConf, column, db, table }: A
23
24
  }
24
25
 
25
26
  const jsonbSchema =
26
- isObject(colConf) ? (
27
27
  ("jsonbSchema" in colConf && colConf.jsonbSchema) ? { jsonbSchema: colConf.jsonbSchema, jsonbSchemaType: undefined } :
28
28
  ("jsonbSchemaType" in colConf && colConf.jsonbSchemaType) ? { jsonbSchema: undefined, jsonbSchemaType: colConf.jsonbSchemaType } :
29
- undefined
30
- ) :
31
- undefined;
29
+ undefined;
30
+
32
31
 
33
- if (isObject(colConf) && "references" in colConf && colConf.references) {
32
+ if ("references" in colConf && colConf.references) {
34
33
 
35
34
  const { tableName: lookupTable, columnName: lookupCol = "id" } = colConf.references;
36
35
  return ` ${colNameEsc} ${getColTypeDef(colConf.references, "TEXT")} REFERENCES ${lookupTable} (${lookupCol}) `;
37
36
 
38
- } else if (typeof colConf === "string" || "sqlDefinition" in colConf && colConf.sqlDefinition) {
37
+ } else if ("sqlDefinition" in colConf && colConf.sqlDefinition) {
39
38
 
40
- return ` ${colNameEsc} ${typeof colConf === "string" ? colConf : colConf.sqlDefinition} `;
39
+ return ` ${colNameEsc} ${colConf.sqlDefinition} `;
41
40
 
42
- } else if (isObject(colConf) && "isText" in colConf && colConf.isText) {
41
+ } else if ("isText" in colConf && colConf.isText) {
43
42
  let checks = "";
44
43
  const colChecks: string[] = [];
45
44
  if (colConf.lowerCased) {
@@ -94,7 +93,8 @@ export const getColumnDefinitionQuery = async ({ colConf, column, db, table }: A
94
93
  return ` ${colNameEsc} ${type} ${colConf.nullable ? "" : "NOT NULL"} ${"defaultValue" in colConf ? ` DEFAULT ${asValue(colConf.defaultValue)}` : ""} CHECK(${checks})`;
95
94
 
96
95
  } else {
97
- throw "Unknown column config: " + JSON.stringify(colConf);
96
+ return undefined;
97
+ // throw "Unknown column config: " + JSON.stringify(colConf);
98
98
  }
99
99
  }
100
100
 
@@ -141,4 +141,22 @@ export const getColConstraintsQuery = ({ column, table, types }: Omit<ColConstra
141
141
  export const getColConstraints = ({ db, column, table, types }: ColConstraintsArgs ): Promise<ColConstraint[]> => {
142
142
 
143
143
  return db.manyOrNone(getColConstraintsQuery({ column, table, types }));
144
+ }
145
+ export type ColumnMinimalInfo = {
146
+ table_name: string;
147
+ table_schema: string;
148
+ column_name: string;
149
+ column_default: string | null;
150
+ udt_name: string;
151
+ nullable: boolean;
152
+ };
153
+ export const getTableColumns = ({ db, tableName }: { db: DB; tableName: string;}): Promise<ColumnMinimalInfo[]> => {
154
+ return db.manyOrNone(`
155
+ SELECT table_name,
156
+ table_schema, column_name,
157
+ column_default, udt_name,
158
+ is_nullable = 'YES' as nullable
159
+ FROM information_schema.columns
160
+ WHERE table_name = $1
161
+ `, [tableName]);
144
162
  }
@@ -0,0 +1,8 @@
1
+ import { TableConfig } from "./TableConfig";
2
+ type Args = {
3
+ tableName: string;
4
+ tableConf: TableConfig[string];
5
+ };
6
+ export declare const getConstraintDefinitionQueries: ({ tableConf, tableName }: Args) => string[] | undefined;
7
+ export {};
8
+ //# sourceMappingURL=getConstraintDefinitionQueries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConstraintDefinitionQueries.d.ts","sourceRoot":"","sources":["getConstraintDefinitionQueries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAE/B,CAAC;AAEF,eAAO,MAAM,8BAA8B,6BAA8B,IAAI,KAAG,MAAM,EAAE,GAAG,SA2B1F,CAAA"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConstraintDefinitionQueries = void 0;
4
+ const prostgles_types_1 = require("prostgles-types");
5
+ const getConstraintDefinitionQueries = ({ tableConf, tableName }) => {
6
+ if ("constraints" in tableConf && tableConf.constraints) {
7
+ const { constraints } = tableConf;
8
+ if (!constraints) {
9
+ return undefined;
10
+ }
11
+ const queries = [];
12
+ if (Array.isArray(constraints)) {
13
+ return constraints.map(c => `ALTER TABLE ${(0, prostgles_types_1.asName)(tableName)} ADD ${c}`);
14
+ }
15
+ else {
16
+ const constraintNames = (0, prostgles_types_1.getKeys)(tableConf.constraints);
17
+ constraintNames.map(constraintName => {
18
+ const _cnstr = constraints[constraintName];
19
+ const constraintDef = typeof _cnstr === "string" ? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
20
+ /** Drop constraints with the same name */
21
+ // const existingConstraint = constraints.some(c => c.conname === constraintName);
22
+ // if(existingConstraint){
23
+ // if(canDrop) queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
24
+ // }
25
+ queries.push(`ALTER TABLE ${(0, prostgles_types_1.asName)(tableName)} ADD CONSTRAINT ${(0, prostgles_types_1.asName)(constraintName)} ${constraintDef} ;`);
26
+ });
27
+ return queries;
28
+ }
29
+ }
30
+ };
31
+ exports.getConstraintDefinitionQueries = getConstraintDefinitionQueries;
@@ -0,0 +1,37 @@
1
+ import { asName, getKeys } from "prostgles-types";
2
+ import { TableConfig } from "./TableConfig";
3
+
4
+ type Args = {
5
+ tableName: string;
6
+ tableConf: TableConfig[string]
7
+ // tableConf: BaseTableDefinition<LANG_IDS> & (TableDefinition<LANG_IDS> | LookupTableDefinition<LANG_IDS>)
8
+ };
9
+
10
+ export const getConstraintDefinitionQueries = ({ tableConf, tableName }: Args): string[] | undefined => {
11
+
12
+ if ("constraints" in tableConf && tableConf.constraints) {
13
+ const { constraints } = tableConf;
14
+ if(!constraints){
15
+ return undefined;
16
+ }
17
+ const queries: string[] = [];
18
+ if(Array.isArray(constraints)){
19
+ return constraints.map(c => `ALTER TABLE ${asName(tableName)} ADD ${c}`);
20
+ } else {
21
+ const constraintNames = getKeys(tableConf.constraints);
22
+ constraintNames.map(constraintName => {
23
+ const _cnstr = constraints[constraintName];
24
+ const constraintDef = typeof _cnstr === "string"? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
25
+
26
+ /** Drop constraints with the same name */
27
+ // const existingConstraint = constraints.some(c => c.conname === constraintName);
28
+ // if(existingConstraint){
29
+ // if(canDrop) queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
30
+ // }
31
+
32
+ queries.push(`ALTER TABLE ${asName(tableName)} ADD CONSTRAINT ${asName(constraintName)} ${constraintDef} ;`);
33
+ });
34
+ return queries;
35
+ }
36
+ }
37
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "3.0.130",
3
+ "version": "3.0.131",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +1 @@
1
- 120983
1
+ 34106
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "3.0.129",
24
+ "version": "3.0.130",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@aws-sdk/client-s3": "^3.272.0",