prostgles-server 4.2.457 → 4.2.459
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.d.ts +2 -2
- package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.d.ts.map +1 -1
- package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.js +3 -88
- package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.js.map +1 -1
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.d.ts.map +1 -1
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.js +4 -1
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.js.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.js +1 -1
- package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
- package/lib/JSONBSchemaValidation/validateJSONBSchemaSQL.ts +2 -87
- package/lib/PubSubManager/init/getPubSubManagerInitQuery.ts +5 -2
- package/lib/TableConfig/getTableColumnQueries.ts +7 -5
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const VALIDATE_SCHEMA_FUNCNAME = "validate_jsonb_schema";
|
|
1
|
+
export declare const VALIDATE_SCHEMA_FUNCNAME = "prostgles.validate_jsonb_schema";
|
|
2
2
|
export declare const JSONB_DATA_TYPES: readonly ["boolean", "number", "integer", "string", "Date", "time", "timestamp", "Blob", "any", "unknown", ...("number[]" | "boolean[]" | "string[]" | "any[]" | "time[]" | "timestamp[]" | "integer[]" | "Date[]" | "Blob[]" | "unknown[]")[], "Lookup", "Lookup[]"];
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const CREATE_VALIDATE_SCHEMA_FUNCTION_SQL: string;
|
|
4
4
|
//# sourceMappingURL=validateJSONBSchemaSQL.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateJSONBSchemaSQL.d.ts","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/validateJSONBSchemaSQL.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"validateJSONBSchemaSQL.d.ts","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/validateJSONBSchemaSQL.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAC1E,eAAO,MAAM,gBAAgB,uQAAiD,CAAC;AAE/E,eAAO,MAAM,mCAAmC,QA6Y/C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CREATE_VALIDATE_SCHEMA_FUNCTION_SQL = exports.JSONB_DATA_TYPES = exports.VALIDATE_SCHEMA_FUNCNAME = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const PubSubManagerUtils_1 = require("../PubSubManager/PubSubManagerUtils");
|
|
6
6
|
const raiseException = (err) => `
|
|
@@ -10,14 +10,12 @@ ELSE
|
|
|
10
10
|
RAISE EXCEPTION ${err} USING HINT = path, COLUMN = colname, TABLE = tablename, CONSTRAINT = 'validate_jsonb_schema: ' || jsonb_pretty(jsonb_schema::JSONB);
|
|
11
11
|
END IF;
|
|
12
12
|
`;
|
|
13
|
-
exports.VALIDATE_SCHEMA_FUNCNAME = "validate_jsonb_schema";
|
|
13
|
+
exports.VALIDATE_SCHEMA_FUNCNAME = "prostgles.validate_jsonb_schema";
|
|
14
14
|
exports.JSONB_DATA_TYPES = [...prostgles_types_1.DATA_TYPES, "Lookup", "Lookup[]"];
|
|
15
|
-
exports.
|
|
16
|
-
|
|
15
|
+
exports.CREATE_VALIDATE_SCHEMA_FUNCTION_SQL = `
|
|
17
16
|
/*
|
|
18
17
|
* ${PubSubManagerUtils_1.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID}
|
|
19
18
|
*/
|
|
20
|
-
|
|
21
19
|
CREATE OR REPLACE FUNCTION ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
22
20
|
jsonb_schema TEXT,
|
|
23
21
|
data JSONB,
|
|
@@ -410,89 +408,6 @@ validate_jsonb_schema(
|
|
|
410
408
|
'{ "a": [2] }'
|
|
411
409
|
)
|
|
412
410
|
$$;
|
|
413
|
-
|
|
414
411
|
|
|
415
|
-
/* TESTS */
|
|
416
|
-
|
|
417
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
418
|
-
'{ "enum": ["a", "b", 2] }',
|
|
419
|
-
'"a"'::JSONB
|
|
420
|
-
);
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
424
|
-
'{ "record": { "keysEnum": ["a", "b"] , "values": { "enum": [1, 2] } } }',
|
|
425
|
-
'{"a": 1, "b": 2 }'::JSONB
|
|
426
|
-
);
|
|
427
|
-
|
|
428
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
429
|
-
'{ "record": { "keysEnum": ["a", "b"] , "values": { "enum": [1, 2] } } }',
|
|
430
|
-
'{"a": 1 }'::JSONB
|
|
431
|
-
);
|
|
432
|
-
|
|
433
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
434
|
-
'{ "record": { "keysEnum": ["a", "b"] , "values": { "enum": [1, 2] } } }',
|
|
435
|
-
'{ }'::JSONB
|
|
436
|
-
);
|
|
437
|
-
|
|
438
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
439
|
-
'{ "record": { "keysEnum": ["a", "b"] } }',
|
|
440
|
-
'{"a": 1, "b": 2 }'::JSONB
|
|
441
|
-
);
|
|
442
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
443
|
-
'{ "enum": ["a", "b", 2] }',
|
|
444
|
-
'2'::JSONB
|
|
445
|
-
);
|
|
446
|
-
|
|
447
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
448
|
-
'{
|
|
449
|
-
"oneOfType": [
|
|
450
|
-
{ "a": "string" } ,
|
|
451
|
-
{
|
|
452
|
-
"a": {
|
|
453
|
-
"type": "boolean",
|
|
454
|
-
"allowedValues": [false],
|
|
455
|
-
"optional": true
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
]
|
|
459
|
-
}',
|
|
460
|
-
'{ "a": false }'
|
|
461
|
-
);
|
|
462
|
-
|
|
463
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
464
|
-
'{ "arrayOfType": { "a": "string", "narr": { "arrayOfType": { "a": { "type": "string", "optional": false, "nullable": true } } } } }',
|
|
465
|
-
'[{ "a": "ddd", "narr": [{ "a": null }] }]'::JSONB
|
|
466
|
-
);
|
|
467
|
-
|
|
468
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
469
|
-
'{ "type": { "a": { "type": "integer[]", "allowedValues": [2] } } }'::TEXT,
|
|
470
|
-
'{ "a": [2, 2] }'
|
|
471
|
-
);
|
|
472
|
-
|
|
473
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
|
|
474
|
-
'{ "type": { "a": { "type": "string[]", "allowedValues": ["2"] } } }'::TEXT,
|
|
475
|
-
'{ "a": ["2"] }'
|
|
476
|
-
);
|
|
477
|
-
|
|
478
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "type": "any"}', '{}');
|
|
479
|
-
|
|
480
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "type": { "a": { "enum": ["a"] } } }', '{ "a": "a"}');
|
|
481
|
-
|
|
482
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "arrayOfType": { "a": { "enum": ["a"] } } }', '[{ "a": "a"}]');
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "data", "table": "tblName", "column": "colName" } }', '{}');
|
|
486
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "data", "table": "tblName", "column": "colName", "isArray": true } }', '[{}]');
|
|
487
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "object": "table" } }', '"tblName"'::JSONB);
|
|
488
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "object": "table", "isArray": true } }', '["tblName"]');
|
|
489
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "object": "column" } }', '{ "table": "tblName", "column": "colName" }');
|
|
490
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "object": "column", "isArray": true } }', '{ "table": "tblName", "column": ["colName"] }');
|
|
491
|
-
|
|
492
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "type": "time"}', '"22:22"');
|
|
493
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "type": "Date"}', '"2222-22-22"');
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "oneOf": ["number"]}','2');
|
|
497
412
|
`;
|
|
498
413
|
//# sourceMappingURL=validateJSONBSchemaSQL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateJSONBSchemaSQL.js","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/validateJSONBSchemaSQL.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAC7C,4EAAyF;AAEzF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC;;;;oBAIpB,GAAG;;CAEtB,CAAC;AAEW,QAAA,wBAAwB,GAAG,
|
|
1
|
+
{"version":3,"file":"validateJSONBSchemaSQL.js","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/validateJSONBSchemaSQL.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAC7C,4EAAyF;AAEzF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC;;;;oBAIpB,GAAG;;CAEtB,CAAC;AAEW,QAAA,wBAAwB,GAAG,iCAAiC,CAAC;AAC7D,QAAA,gBAAgB,GAAG,CAAC,GAAG,4BAAU,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;AAElE,QAAA,mCAAmC,GAAG;;IAE/C,uDAAkC;;6BAET,gCAAwB;;;;;;;;;;;;;6BAaxB,wBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoDjD,cAAc,CAAC,yBAAyB,CAAC;;;;;;;;;;;;;MAazC,cAAc,CAAC,2GAA2G,CAAC;;;;;;;QAOzH,cAAc,CAAC,4BAA4B,CAAC;;;;;;;;;;;QAW5C,cAAc,CAAC,8EAA8E,CAAC;;;;QAI9F,cAAc,CAAC,8DAA8D,CAAC;;;;;;;;;;;aAWzE,gCAAwB;;;;;;;;;;aAUxB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;UAwB3B,cAAc,CAAC,yEAAyE,CAAC;;;;;;;;;YASvF,cAAc,CAAC,mDAAmD,CAAC;;;;;;;mBAO5D,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;YAyB/B,cAAc,CAAC,wFAAwF,CAAC;;;;;;;;cAQtG,cAAc,CAAC,iHAAiH,CAAC;;;;;;;;cAQjI,cAAc,CAAC,oIAAoI,CAAC;;;YAGtJ,cAAc,CAAC,oEAAoE,CAAC;;;;;;;;;;UAUtF,cAAc,CAAC,oCAAoC,CAAC;;;;;;;;;;UAUpD,cAAc,CAAC,2HAA2H,CAAC;;;;;;;;;;;cAWvI,cAAc,CAAC,oFAAoF,CAAC;;;oBAG9F,gCAAwB;;;;;;;;;;;;;;QAcpC,cAAc,CAAC,sEAAsE,CAAC;;;;;;;;;QAStF,cAAc,CAAC,iGAAiG,CAAC;;;;;;;;;;;aAW5G,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAuC/B,cAAc,CAAC,gEAAgE,CAAC;;;;;;;;QAQ9E,cAAc,CAAC,4BAA4B,CAAC;;;;;;;eAOrC,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;QAuB/B,cAAc,CAAC,kIAAkI,CAAC;;;;QAIlJ,cAAc,CAAC,6BAA6B,CAAC;;;;;;;6EAOwB,gCAAwB;;;;;;;oEAOjC,gCAAwB;;;;;;;;;MAStF,cAAc,CAAC,yCAAyC,CAAC;;;;;;;sBAOzC,gCAAwB,QAAQ,uDAAkC;;;;;;;;;CASvF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPubSubManagerInitQuery.d.ts","sourceRoot":"","sources":["../../../lib/PubSubManager/init/getPubSubManagerInitQuery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getPubSubManagerInitQuery.d.ts","sourceRoot":"","sources":["../../../lib/PubSubManager/init/getPubSubManagerInitQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAa9D,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAieX;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,UAAU,KACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAyB5B,CAAC"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPubSubManagerInitQuery = exports.DB_OBJ_NAMES = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
+
const package_json_1 = require("../../../package.json");
|
|
5
6
|
const DboBuilderTypes_1 = require("../../DboBuilder/DboBuilderTypes");
|
|
7
|
+
const validateJSONBSchemaSQL_1 = require("../../JSONBSchemaValidation/validateJSONBSchemaSQL");
|
|
6
8
|
const PubSubManagerUtils_1 = require("../PubSubManagerUtils");
|
|
7
9
|
const orphanTriggerCheck_1 = require("../orphanTriggerCheck");
|
|
8
|
-
const package_json_1 = require("../../../package.json");
|
|
9
10
|
const getDataWatchFunctionQuery_1 = require("./getDataWatchFunctionQuery");
|
|
10
11
|
exports.DB_OBJ_NAMES = {
|
|
11
12
|
trigger_add_remove_func: "prostgles.trigger_add_remove_func",
|
|
@@ -83,6 +84,8 @@ BEGIN
|
|
|
83
84
|
CREATE SCHEMA IF NOT EXISTS prostgles;
|
|
84
85
|
COMMENT ON SCHEMA prostgles IS 'Used by prostgles-server to enable data/schema change tracking through subscribe/sync/watchSchema';
|
|
85
86
|
|
|
87
|
+
${validateJSONBSchemaSQL_1.CREATE_VALIDATE_SCHEMA_FUNCTION_SQL}
|
|
88
|
+
|
|
86
89
|
CREATE TABLE IF NOT EXISTS prostgles.versions(
|
|
87
90
|
version TEXT PRIMARY KEY,
|
|
88
91
|
schema_md5 TEXT NOT NULL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPubSubManagerInitQuery.js","sourceRoot":"","sources":["../../../lib/PubSubManager/init/getPubSubManagerInitQuery.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;
|
|
1
|
+
{"version":3,"file":"getPubSubManagerInitQuery.js","sourceRoot":"","sources":["../../../lib/PubSubManager/init/getPubSubManagerInitQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableColumnQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getTableColumnQueries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,EAAE,CAAC;IACP,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;CACnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAU,6CAKzC,IAAI,KAAG,OAAO,CACb,SAAS,GACT;IACE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,
|
|
1
|
+
{"version":3,"file":"getTableColumnQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getTableColumnQueries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,EAAE,CAAC;IACP,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;CACnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAU,6CAKzC,IAAI,KAAG,OAAO,CACb,SAAS,GACT;IACE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,CA8HJ,CAAC"}
|
|
@@ -26,7 +26,7 @@ const getTableColumnQueries = async ({ db, tableConf, tableName, tableHandler, }
|
|
|
26
26
|
/** Must install validation function */
|
|
27
27
|
if (hasJSONBValidation) {
|
|
28
28
|
try {
|
|
29
|
-
await db.any(validateJSONBSchemaSQL_1.
|
|
29
|
+
await db.any(`CREATE SCHEMA IF NOT EXISTS prostgles;\n` + validateJSONBSchemaSQL_1.CREATE_VALIDATE_SCHEMA_FUNCTION_SQL);
|
|
30
30
|
}
|
|
31
31
|
catch (err) {
|
|
32
32
|
console.error("Could not install the jsonb validation function due to error: ", err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableColumnQueries.js","sourceRoot":"","sources":["../../lib/TableConfig/getTableColumnQueries.ts"],"names":[],"mappings":";;;AAAA,qDAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"getTableColumnQueries.js","sourceRoot":"","sources":["../../lib/TableConfig/getTableColumnQueries.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,15 +9,13 @@ ELSE
|
|
|
9
9
|
END IF;
|
|
10
10
|
`;
|
|
11
11
|
|
|
12
|
-
export const VALIDATE_SCHEMA_FUNCNAME = "validate_jsonb_schema";
|
|
12
|
+
export const VALIDATE_SCHEMA_FUNCNAME = "prostgles.validate_jsonb_schema";
|
|
13
13
|
export const JSONB_DATA_TYPES = [...DATA_TYPES, "Lookup", "Lookup[]"] as const;
|
|
14
14
|
|
|
15
|
-
export const
|
|
16
|
-
|
|
15
|
+
export const CREATE_VALIDATE_SCHEMA_FUNCTION_SQL = `
|
|
17
16
|
/*
|
|
18
17
|
* ${EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID}
|
|
19
18
|
*/
|
|
20
|
-
|
|
21
19
|
CREATE OR REPLACE FUNCTION ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
22
20
|
jsonb_schema TEXT,
|
|
23
21
|
data JSONB,
|
|
@@ -410,88 +408,5 @@ validate_jsonb_schema(
|
|
|
410
408
|
'{ "a": [2] }'
|
|
411
409
|
)
|
|
412
410
|
$$;
|
|
413
|
-
|
|
414
411
|
|
|
415
|
-
/* TESTS */
|
|
416
|
-
|
|
417
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
418
|
-
'{ "enum": ["a", "b", 2] }',
|
|
419
|
-
'"a"'::JSONB
|
|
420
|
-
);
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
424
|
-
'{ "record": { "keysEnum": ["a", "b"] , "values": { "enum": [1, 2] } } }',
|
|
425
|
-
'{"a": 1, "b": 2 }'::JSONB
|
|
426
|
-
);
|
|
427
|
-
|
|
428
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
429
|
-
'{ "record": { "keysEnum": ["a", "b"] , "values": { "enum": [1, 2] } } }',
|
|
430
|
-
'{"a": 1 }'::JSONB
|
|
431
|
-
);
|
|
432
|
-
|
|
433
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
434
|
-
'{ "record": { "keysEnum": ["a", "b"] , "values": { "enum": [1, 2] } } }',
|
|
435
|
-
'{ }'::JSONB
|
|
436
|
-
);
|
|
437
|
-
|
|
438
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
439
|
-
'{ "record": { "keysEnum": ["a", "b"] } }',
|
|
440
|
-
'{"a": 1, "b": 2 }'::JSONB
|
|
441
|
-
);
|
|
442
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
443
|
-
'{ "enum": ["a", "b", 2] }',
|
|
444
|
-
'2'::JSONB
|
|
445
|
-
);
|
|
446
|
-
|
|
447
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
448
|
-
'{
|
|
449
|
-
"oneOfType": [
|
|
450
|
-
{ "a": "string" } ,
|
|
451
|
-
{
|
|
452
|
-
"a": {
|
|
453
|
-
"type": "boolean",
|
|
454
|
-
"allowedValues": [false],
|
|
455
|
-
"optional": true
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
]
|
|
459
|
-
}',
|
|
460
|
-
'{ "a": false }'
|
|
461
|
-
);
|
|
462
|
-
|
|
463
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
464
|
-
'{ "arrayOfType": { "a": "string", "narr": { "arrayOfType": { "a": { "type": "string", "optional": false, "nullable": true } } } } }',
|
|
465
|
-
'[{ "a": "ddd", "narr": [{ "a": null }] }]'::JSONB
|
|
466
|
-
);
|
|
467
|
-
|
|
468
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
469
|
-
'{ "type": { "a": { "type": "integer[]", "allowedValues": [2] } } }'::TEXT,
|
|
470
|
-
'{ "a": [2, 2] }'
|
|
471
|
-
);
|
|
472
|
-
|
|
473
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}(
|
|
474
|
-
'{ "type": { "a": { "type": "string[]", "allowedValues": ["2"] } } }'::TEXT,
|
|
475
|
-
'{ "a": ["2"] }'
|
|
476
|
-
);
|
|
477
|
-
|
|
478
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "type": "any"}', '{}');
|
|
479
|
-
|
|
480
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "type": { "a": { "enum": ["a"] } } }', '{ "a": "a"}');
|
|
481
|
-
|
|
482
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "arrayOfType": { "a": { "enum": ["a"] } } }', '[{ "a": "a"}]');
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "data", "table": "tblName", "column": "colName" } }', '{}');
|
|
486
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "data", "table": "tblName", "column": "colName", "isArray": true } }', '[{}]');
|
|
487
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "object": "table" } }', '"tblName"'::JSONB);
|
|
488
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "object": "table", "isArray": true } }', '["tblName"]');
|
|
489
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "object": "column" } }', '{ "table": "tblName", "column": "colName" }');
|
|
490
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "object": "column", "isArray": true } }', '{ "table": "tblName", "column": ["colName"] }');
|
|
491
|
-
|
|
492
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "type": "time"}', '"22:22"');
|
|
493
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "type": "Date"}', '"2222-22-22"');
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "oneOf": ["number"]}','2');
|
|
497
412
|
`;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { tryCatchV2 } from "prostgles-types";
|
|
2
|
+
import { version } from "../../../package.json";
|
|
2
3
|
import type { DboBuilder } from "../../DboBuilder/DboBuilder";
|
|
3
4
|
import { pgp } from "../../DboBuilder/DboBuilderTypes";
|
|
5
|
+
import { CREATE_VALIDATE_SCHEMA_FUNCTION_SQL } from "../../JSONBSchemaValidation/validateJSONBSchemaSQL";
|
|
4
6
|
import {
|
|
5
7
|
asValue,
|
|
6
8
|
DELIMITER,
|
|
@@ -9,7 +11,6 @@ import {
|
|
|
9
11
|
NOTIF_TYPE,
|
|
10
12
|
} from "../PubSubManagerUtils";
|
|
11
13
|
import { getAppCheckQuery } from "../orphanTriggerCheck";
|
|
12
|
-
import { version } from "../../../package.json";
|
|
13
14
|
import { getDataWatchFunctionQuery } from "./getDataWatchFunctionQuery";
|
|
14
15
|
|
|
15
16
|
export const DB_OBJ_NAMES = {
|
|
@@ -92,6 +93,8 @@ BEGIN
|
|
|
92
93
|
CREATE SCHEMA IF NOT EXISTS prostgles;
|
|
93
94
|
COMMENT ON SCHEMA prostgles IS 'Used by prostgles-server to enable data/schema change tracking through subscribe/sync/watchSchema';
|
|
94
95
|
|
|
96
|
+
${CREATE_VALIDATE_SCHEMA_FUNCTION_SQL}
|
|
97
|
+
|
|
95
98
|
CREATE TABLE IF NOT EXISTS prostgles.versions(
|
|
96
99
|
version TEXT PRIMARY KEY,
|
|
97
100
|
schema_md5 TEXT NOT NULL,
|
|
@@ -502,7 +505,7 @@ COMMIT;
|
|
|
502
505
|
* undefined returned if the database contains the apropriate prostgles schema
|
|
503
506
|
*/
|
|
504
507
|
export const getPubSubManagerInitQuery = async function (
|
|
505
|
-
this: DboBuilder
|
|
508
|
+
this: DboBuilder,
|
|
506
509
|
): Promise<string | undefined> {
|
|
507
510
|
const versionNum = await this.db.one("SELECT current_setting('server_version_num')::int as val");
|
|
508
511
|
const initQuery = getInitQuery(this.prostgles.opts.DEBUG_MODE, versionNum.val);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { asName, getKeys, getObjectEntries, isObject } from "prostgles-types";
|
|
2
|
-
import {
|
|
2
|
+
import { CREATE_VALIDATE_SCHEMA_FUNCTION_SQL } from "../JSONBSchemaValidation/validateJSONBSchemaSQL";
|
|
3
3
|
import type { DB, DBHandlerServer } from "../Prostgles";
|
|
4
4
|
import { getColumnSQLDefinitionQuery, getTableColumns } from "./getColumnSQLDefinitionQuery";
|
|
5
5
|
import { getFutureTableSchema } from "./getFutureTableSchema";
|
|
@@ -49,7 +49,9 @@ export const getTableColumnQueries = async ({
|
|
|
49
49
|
/** Must install validation function */
|
|
50
50
|
if (hasJSONBValidation) {
|
|
51
51
|
try {
|
|
52
|
-
await db.any(
|
|
52
|
+
await db.any(
|
|
53
|
+
`CREATE SCHEMA IF NOT EXISTS prostgles;\n` + CREATE_VALIDATE_SCHEMA_FUNCTION_SQL,
|
|
54
|
+
);
|
|
53
55
|
} catch (err: any) {
|
|
54
56
|
console.error("Could not install the jsonb validation function due to error: ", err);
|
|
55
57
|
throw err;
|
|
@@ -105,11 +107,11 @@ export const getTableColumnQueries = async ({
|
|
|
105
107
|
droppedColNames.push(c.column_name);
|
|
106
108
|
} else if (newCol.nullable !== c.nullable) {
|
|
107
109
|
alteredColQueries.push(
|
|
108
|
-
`${ALTERQ} ALTER COLUMN ${asName(c.column_name)} ${newCol.nullable ? "DROP" : "SET"} NOT NULL
|
|
110
|
+
`${ALTERQ} ALTER COLUMN ${asName(c.column_name)} ${newCol.nullable ? "DROP" : "SET"} NOT NULL;`,
|
|
109
111
|
);
|
|
110
112
|
} else if (newCol.udt_name !== c.udt_name) {
|
|
111
113
|
alteredColQueries.push(
|
|
112
|
-
`${ALTERQ} ALTER COLUMN ${asName(c.column_name)} TYPE ${newCol.udt_name} USING ${asName(c.column_name)}::${newCol.udt_name}
|
|
114
|
+
`${ALTERQ} ALTER COLUMN ${asName(c.column_name)} TYPE ${newCol.udt_name} USING ${asName(c.column_name)}::${newCol.udt_name};`,
|
|
113
115
|
);
|
|
114
116
|
} else if (newCol.column_default !== c.column_default) {
|
|
115
117
|
const colConfig = colDefs.find((cd) => cd.name === c.column_name);
|
|
@@ -120,7 +122,7 @@ export const getTableColumnQueries = async ({
|
|
|
120
122
|
/** Ignore SERIAL/BIGSERIAL <> nextval mismatch */
|
|
121
123
|
} else {
|
|
122
124
|
alteredColQueries.push(
|
|
123
|
-
`${ALTERQ} ALTER COLUMN ${asName(c.column_name)} ${newCol.column_default === null ? "DROP DEFAULT" : `SET DEFAULT ${newCol.column_default}`}
|
|
125
|
+
`${ALTERQ} ALTER COLUMN ${asName(c.column_name)} ${newCol.column_default === null ? "DROP DEFAULT" : `SET DEFAULT ${newCol.column_default}`};`,
|
|
124
126
|
);
|
|
125
127
|
}
|
|
126
128
|
}
|