prostgles-server 4.2.296 → 4.2.298
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/DboBuilder/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilder.js +5 -3
- package/dist/DboBuilder/DboBuilder.js.map +1 -1
- package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/update.js +2 -2
- package/dist/DboBuilder/TableHandler/update.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getValidatedSubscribeOptions.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getValidatedSubscribeOptions.js +3 -1
- package/dist/DboBuilder/ViewHandler/getValidatedSubscribeOptions.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/subscribe.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/subscribe.js +4 -3
- package/dist/DboBuilder/ViewHandler/subscribe.js.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.js +5 -5
- package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts +6 -13
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js +2 -2
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/dist/PubSubManager/addSub.d.ts.map +1 -1
- package/dist/PubSubManager/addSub.js +7 -7
- package/dist/PubSubManager/addSub.js.map +1 -1
- package/dist/PubSubManager/addSync.d.ts.map +1 -1
- package/dist/PubSubManager/addSync.js +1 -1
- package/dist/PubSubManager/addSync.js.map +1 -1
- package/dist/PubSubManager/addTrigger.d.ts +4 -2
- package/dist/PubSubManager/addTrigger.d.ts.map +1 -1
- package/dist/PubSubManager/addTrigger.js +55 -3
- package/dist/PubSubManager/addTrigger.js.map +1 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.js +1 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.d.ts +5 -0
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.d.ts.map +1 -1
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.js +80 -51
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.js.map +1 -1
- package/dist/PubSubManager/{getPubSubManagerInitQuery.d.ts → init/getPubSubManagerInitQuery.d.ts} +1 -1
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.d.ts.map +1 -0
- package/dist/PubSubManager/{getPubSubManagerInitQuery.js → init/getPubSubManagerInitQuery.js} +22 -19
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.js.map +1 -0
- package/dist/PubSubManager/{initPubSubManager.d.ts → init/initPubSubManager.d.ts} +1 -1
- package/dist/PubSubManager/init/initPubSubManager.d.ts.map +1 -0
- package/dist/PubSubManager/{initPubSubManager.js → init/initPubSubManager.js} +3 -3
- package/dist/PubSubManager/init/initPubSubManager.js.map +1 -0
- package/dist/PubSubManager/initialiseEventTriggers.js +1 -1
- package/dist/PubSubManager/initialiseEventTriggers.js.map +1 -1
- package/dist/PubSubManager/notifListener.d.ts.map +1 -1
- package/dist/PubSubManager/notifListener.js +15 -15
- package/dist/PubSubManager/notifListener.js.map +1 -1
- package/dist/PubSubManager/orphanTriggerCheck.js +1 -1
- package/dist/PubSubManager/orphanTriggerCheck.js.map +1 -1
- package/dist/TableConfig/runSQLFile.d.ts +3 -0
- package/dist/TableConfig/runSQLFile.d.ts.map +1 -1
- package/dist/TableConfig/runSQLFile.js +11 -1
- package/dist/TableConfig/runSQLFile.js.map +1 -1
- package/lib/DboBuilder/DboBuilder.ts +13 -3
- package/lib/DboBuilder/TableHandler/update.ts +2 -3
- package/lib/DboBuilder/ViewHandler/getValidatedSubscribeOptions.ts +9 -1
- package/lib/DboBuilder/ViewHandler/subscribe.ts +5 -3
- package/lib/DboBuilder/getSubscribeRelatedTables.ts +8 -5
- package/lib/PubSubManager/PubSubManager.ts +7 -12
- package/lib/PubSubManager/addSub.ts +10 -9
- package/lib/PubSubManager/addSync.ts +5 -1
- package/lib/PubSubManager/addTrigger.ts +77 -6
- package/lib/PubSubManager/getCreatePubSubManagerError.ts +1 -1
- package/lib/PubSubManager/init/getDataWatchFunctionQuery.ts +80 -50
- package/lib/PubSubManager/{getPubSubManagerInitQuery.ts → init/getPubSubManagerInitQuery.ts} +23 -20
- package/lib/PubSubManager/{initPubSubManager.ts → init/initPubSubManager.ts} +4 -4
- package/lib/PubSubManager/initialiseEventTriggers.ts +1 -1
- package/lib/PubSubManager/notifListener.ts +19 -28
- package/lib/PubSubManager/orphanTriggerCheck.ts +1 -1
- package/lib/TableConfig/runSQLFile.ts +19 -2
- package/package.json +2 -2
- package/dist/PubSubManager/getPubSubManagerInitQuery.d.ts.map +0 -1
- package/dist/PubSubManager/getPubSubManagerInitQuery.js.map +0 -1
- package/dist/PubSubManager/initPubSubManager.d.ts.map +0 -1
- package/dist/PubSubManager/initPubSubManager.js.map +0 -1
|
@@ -4,6 +4,7 @@ exports.addTrigger = void 0;
|
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const crypto = require("crypto");
|
|
6
6
|
const PubSubManagerUtils_1 = require("./PubSubManagerUtils");
|
|
7
|
+
const getDataWatchFunctionQuery_1 = require("./init/getDataWatchFunctionQuery");
|
|
7
8
|
async function addTrigger(params, viewOptions, socket) {
|
|
8
9
|
const addedTrigger = await (0, prostgles_types_1.tryCatchV2)(async () => {
|
|
9
10
|
const { table_name } = { ...params };
|
|
@@ -21,6 +22,10 @@ async function addTrigger(params, viewOptions, socket) {
|
|
|
21
22
|
cond: (0, PubSubManagerUtils_1.asValue)(condition),
|
|
22
23
|
condHash: (0, PubSubManagerUtils_1.asValue)(crypto.createHash("md5").update(condition).digest("hex")),
|
|
23
24
|
};
|
|
25
|
+
const tableHandler = this.dbo[table_name];
|
|
26
|
+
if (!tableHandler) {
|
|
27
|
+
throw `Cannot add trigger. Tablehandler for ${table_name} not found`;
|
|
28
|
+
}
|
|
24
29
|
await this.db.tx((t) => t.any(`
|
|
25
30
|
BEGIN WORK;
|
|
26
31
|
/* ${PubSubManagerUtils_1.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
|
|
@@ -43,7 +48,8 @@ async function addTrigger(params, viewOptions, socket) {
|
|
|
43
48
|
condition_hash,
|
|
44
49
|
app_id,
|
|
45
50
|
related_view_name,
|
|
46
|
-
related_view_def
|
|
51
|
+
related_view_def,
|
|
52
|
+
columns_info
|
|
47
53
|
)
|
|
48
54
|
VALUES (
|
|
49
55
|
${trgVals.tbl},
|
|
@@ -51,9 +57,20 @@ async function addTrigger(params, viewOptions, socket) {
|
|
|
51
57
|
${trgVals.condHash},
|
|
52
58
|
${(0, PubSubManagerUtils_1.asValue)(this.appId)},
|
|
53
59
|
${(0, PubSubManagerUtils_1.asValue)(viewOptions?.viewName ?? null)},
|
|
54
|
-
${(0, PubSubManagerUtils_1.asValue)(viewOptions?.definition ?? null)}
|
|
60
|
+
${(0, PubSubManagerUtils_1.asValue)(viewOptions?.definition ?? null)},
|
|
61
|
+
${(0, PubSubManagerUtils_1.asValue)(getColumnsInfo(params, tableHandler))}
|
|
55
62
|
)
|
|
56
|
-
ON CONFLICT
|
|
63
|
+
ON CONFLICT (app_id, table_name, condition_hash)
|
|
64
|
+
DO UPDATE /* upsert tracked_columns where necessary */
|
|
65
|
+
SET columns_info = CASE WHEN EXCLUDED.columns_info IS NOT NULL THEN
|
|
66
|
+
jsonb_set(
|
|
67
|
+
prostgles.app_triggers.columns_info,
|
|
68
|
+
'{tracked_columns}',
|
|
69
|
+
prostgles.app_triggers.columns_info->'tracked_columns' || EXCLUDED.columns_info->'tracked_columns'
|
|
70
|
+
)
|
|
71
|
+
END
|
|
72
|
+
WHERE prostgles.app_triggers.columns_info IS NOT NULL
|
|
73
|
+
;
|
|
57
74
|
|
|
58
75
|
COMMIT WORK;
|
|
59
76
|
`));
|
|
@@ -80,4 +97,39 @@ async function addTrigger(params, viewOptions, socket) {
|
|
|
80
97
|
return addedTrigger;
|
|
81
98
|
}
|
|
82
99
|
exports.addTrigger = addTrigger;
|
|
100
|
+
const getColumnsInfo = ({ tracked_columns, table_name }, tableHandler) => {
|
|
101
|
+
if (tracked_columns && !tracked_columns.length) {
|
|
102
|
+
throw "tracked_columns cannot be defined and empty";
|
|
103
|
+
}
|
|
104
|
+
let hasPkey = false;
|
|
105
|
+
const cols = tableHandler.columns?.map((c) => {
|
|
106
|
+
hasPkey = hasPkey || c.is_pkey;
|
|
107
|
+
return {
|
|
108
|
+
...(0, prostgles_types_1.pickKeys)(c, ["name", "is_pkey"]),
|
|
109
|
+
cast_to: getDataWatchFunctionQuery_1.udtNamesWithoutEqualityComparison.includes(c.udt_name) ? "::TEXT" : "",
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
tracked_columns?.forEach((colName) => {
|
|
113
|
+
if (!cols?.some((c) => c.name === colName)) {
|
|
114
|
+
throw `tracked_columns ${colName} not found in table ${table_name}`;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
const columns_info = !hasPkey || !cols || !tracked_columns?.length || tracked_columns.length === cols.length ?
|
|
118
|
+
null
|
|
119
|
+
: {
|
|
120
|
+
join_condition: cols
|
|
121
|
+
.filter((c) => c.is_pkey)
|
|
122
|
+
.map((c) => `n.${(0, prostgles_types_1.asName)(c.name)} = o.${(0, prostgles_types_1.asName)(c.name)}`)
|
|
123
|
+
.join(" AND "),
|
|
124
|
+
tracked_columns: tracked_columns.reduce((acc, colName) => ({
|
|
125
|
+
...acc,
|
|
126
|
+
[colName]: 1,
|
|
127
|
+
}), {}),
|
|
128
|
+
where_statement: cols
|
|
129
|
+
.filter((c) => !c.is_pkey && tracked_columns.includes(c.name))
|
|
130
|
+
.map((c) => `column_name = ${(0, PubSubManagerUtils_1.asValue)(c.name)} AND n.${(0, prostgles_types_1.asName)(c.name)}${c.cast_to} IS DISTINCT FROM o.${(0, prostgles_types_1.asName)(c.name)}${c.cast_to}`)
|
|
131
|
+
.join(" OR \n"),
|
|
132
|
+
};
|
|
133
|
+
return columns_info;
|
|
134
|
+
};
|
|
83
135
|
//# sourceMappingURL=addTrigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addTrigger.js","sourceRoot":"","sources":["../../lib/PubSubManager/addTrigger.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"addTrigger.js","sourceRoot":"","sources":["../../lib/PubSubManager/addTrigger.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCreatePubSubManagerError = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
-
const getPubSubManagerInitQuery_1 = require("./getPubSubManagerInitQuery");
|
|
5
|
+
const getPubSubManagerInitQuery_1 = require("./init/getPubSubManagerInitQuery");
|
|
6
6
|
const dboBuilderUtils_1 = require("../DboBuilder/dboBuilderUtils");
|
|
7
7
|
const getCreatePubSubManagerError = async (dboBuilder) => {
|
|
8
8
|
const db = dboBuilder.db;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCreatePubSubManagerError.js","sourceRoot":"","sources":["../../lib/PubSubManager/getCreatePubSubManagerError.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"getCreatePubSubManagerError.js","sourceRoot":"","sources":["../../lib/PubSubManager/getCreatePubSubManagerError.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AACvD,gFAA6E;AAC7E,mEAA8D;AAGvD,MAAM,2BAA2B,GAAG,KAAK,EAC9C,UAAsB,EACO,EAAE;IAC/B,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IAEzB,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAa,EAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU;QAAE,OAAO,kDAAkD,CAAC;IAE3E,uCAAuC;IACvC,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC;;;;GAI/B,CAAC,CAAC;IAEH,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAC3C,IAAA,4BAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC;gBACH,MAAM,CAAC,CAAC,IAAI,CAAC;;;;;SAKd,CAAC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEL,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,+BAA+B,EAAE,CAAC;QACpE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACjD,OAAO,oEAAoE,MAAM,OAAO,IAAI,EAAE,CAAC;QACjG,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,MAAM,eAAe,GAAG,MAAM,IAAA,4BAAU,EAAC,KAAK,IAAI,EAAE;YAClD,MAAM,EAAE,CAAC,GAAG,CAAC;;OAEZ,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CACX,8DAA8D,EAC9D,eAAe,CAAC,KAAK,CACtB,CAAC;YACF,OAAO,8DAA8D,CAAC;QACxE,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,IAAA,4BAAU,EAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9C,KAAK,EAAE,MAAM,qDAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;KAC1D,CAAC,CAAC,CAAC;IACJ,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,qCAAqC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AA1EW,QAAA,2BAA2B,+BA0EtC"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error:
|
|
3
|
+
* could not identify an equality operator for type json', code: '42883'
|
|
4
|
+
*/
|
|
5
|
+
export declare const udtNamesWithoutEqualityComparison: string[];
|
|
1
6
|
export declare const getDataWatchFunctionQuery: (debugMode: boolean | undefined) => string;
|
|
2
7
|
//# sourceMappingURL=getDataWatchFunctionQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDataWatchFunctionQuery.d.ts","sourceRoot":"","sources":["../../../lib/PubSubManager/init/getDataWatchFunctionQuery.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,yBAAyB,cAAe,OAAO,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"getDataWatchFunctionQuery.d.ts","sourceRoot":"","sources":["../../../lib/PubSubManager/init/getDataWatchFunctionQuery.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,iCAAiC,UAAkB,CAAC;AACjE,eAAO,MAAM,yBAAyB,cAAe,OAAO,GAAG,SAAS,WAyJvE,CAAC"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDataWatchFunctionQuery = void 0;
|
|
4
|
-
const getPubSubManagerInitQuery_1 = require("
|
|
3
|
+
exports.getDataWatchFunctionQuery = exports.udtNamesWithoutEqualityComparison = void 0;
|
|
4
|
+
const getPubSubManagerInitQuery_1 = require("./getPubSubManagerInitQuery");
|
|
5
5
|
const orphanTriggerCheck_1 = require("../orphanTriggerCheck");
|
|
6
6
|
const PubSubManagerUtils_1 = require("../PubSubManagerUtils");
|
|
7
|
+
/**
|
|
8
|
+
* Error:
|
|
9
|
+
* could not identify an equality operator for type json', code: '42883'
|
|
10
|
+
*/
|
|
11
|
+
exports.udtNamesWithoutEqualityComparison = ["json", "xml"];
|
|
7
12
|
const getDataWatchFunctionQuery = (debugMode) => {
|
|
8
13
|
return `
|
|
9
14
|
|
|
@@ -13,7 +18,7 @@ const getDataWatchFunctionQuery = (debugMode) => {
|
|
|
13
18
|
DECLARE t_ids TEXT[];
|
|
14
19
|
DECLARE c_ids INTEGER[];
|
|
15
20
|
DECLARE err_c_ids INTEGER[];
|
|
16
|
-
DECLARE
|
|
21
|
+
DECLARE condition_checks_union_query TEXT := '';
|
|
17
22
|
DECLARE query TEXT := '';
|
|
18
23
|
DECLARE v_trigger RECORD;
|
|
19
24
|
DECLARE has_errors BOOLEAN := FALSE;
|
|
@@ -25,38 +30,15 @@ const getDataWatchFunctionQuery = (debugMode) => {
|
|
|
25
30
|
DECLARE view_def_query TEXT := '';
|
|
26
31
|
|
|
27
32
|
DECLARE escaped_table TEXT;
|
|
33
|
+
|
|
34
|
+
DECLARE _columns_info JSONB := NULL;
|
|
28
35
|
|
|
29
|
-
DECLARE changed_columns
|
|
30
|
-
|
|
36
|
+
DECLARE changed_columns _TEXT := NULL;
|
|
31
37
|
BEGIN
|
|
32
|
-
|
|
33
|
-
--PERFORM pg_notify('debug', concat_ws(' ', 'TABLE', TG_TABLE_NAME, TG_OP));
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-- Determine changed columns for UPDATE operations
|
|
37
|
-
IF TG_OP = 'UPDATE' THEN
|
|
38
|
-
WITH cols AS (
|
|
39
|
-
SELECT column_name::text
|
|
40
|
-
FROM information_schema.columns
|
|
41
|
-
WHERE table_schema = TG_TABLE_SCHEMA
|
|
42
|
-
AND table_name = TG_TABLE_NAME
|
|
43
|
-
),
|
|
44
|
-
changed AS (
|
|
45
|
-
SELECT column_name
|
|
46
|
-
FROM cols
|
|
47
|
-
WHERE EXISTS (
|
|
48
|
-
SELECT 1 FROM new_table n
|
|
49
|
-
JOIN old_table o ON TRUE
|
|
50
|
-
WHERE n.* IS DISTINCT FROM o.*
|
|
51
|
-
LIMIT 1
|
|
52
|
-
)
|
|
53
|
-
)
|
|
54
|
-
SELECT string_agg(column_name, ',') INTO changed_columns
|
|
55
|
-
FROM changed;
|
|
56
|
-
END IF;
|
|
57
|
-
|
|
58
|
-
|
|
38
|
+
|
|
59
39
|
escaped_table := concat_ws('.', CASE WHEN TG_TABLE_SCHEMA <> CURRENT_SCHEMA THEN format('%I', TG_TABLE_SCHEMA) END, format('%I', TG_TABLE_NAME));
|
|
40
|
+
|
|
41
|
+
${CHANGED_COLUMNS_CHECK}
|
|
60
42
|
|
|
61
43
|
SELECT string_agg(
|
|
62
44
|
format(
|
|
@@ -65,7 +47,7 @@ const getDataWatchFunctionQuery = (debugMode) => {
|
|
|
65
47
|
SELECT 1
|
|
66
48
|
FROM %s
|
|
67
49
|
WHERE %s
|
|
68
|
-
) THEN %s::text END AS
|
|
50
|
+
) THEN %s::text END AS t_id
|
|
69
51
|
$c$,
|
|
70
52
|
table_name,
|
|
71
53
|
condition,
|
|
@@ -73,13 +55,13 @@ const getDataWatchFunctionQuery = (debugMode) => {
|
|
|
73
55
|
),
|
|
74
56
|
E' UNION \n '
|
|
75
57
|
)
|
|
76
|
-
INTO
|
|
58
|
+
INTO condition_checks_union_query
|
|
77
59
|
FROM prostgles.v_triggers
|
|
78
60
|
WHERE table_name = escaped_table;
|
|
79
61
|
|
|
80
62
|
|
|
81
|
-
/*
|
|
82
|
-
IF
|
|
63
|
+
/* condition_checks_union_query = 'old_table union new_table' or any one of the tables */
|
|
64
|
+
IF condition_checks_union_query IS NOT NULL THEN
|
|
83
65
|
|
|
84
66
|
SELECT
|
|
85
67
|
format(
|
|
@@ -105,33 +87,31 @@ const getDataWatchFunctionQuery = (debugMode) => {
|
|
|
105
87
|
||
|
|
106
88
|
format(
|
|
107
89
|
$c$
|
|
108
|
-
SELECT ARRAY_AGG(DISTINCT t.
|
|
90
|
+
SELECT ARRAY_AGG(DISTINCT t.t_id)
|
|
109
91
|
FROM (
|
|
110
92
|
%s
|
|
111
93
|
) t
|
|
112
94
|
$c$,
|
|
113
|
-
|
|
95
|
+
condition_checks_union_query
|
|
114
96
|
)
|
|
115
97
|
INTO query;
|
|
116
98
|
|
|
117
|
-
BEGIN
|
|
118
|
-
EXECUTE query INTO t_ids;
|
|
99
|
+
BEGIN
|
|
100
|
+
EXECUTE query INTO t_ids;
|
|
119
101
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
has_errors := TRUE;
|
|
102
|
+
EXCEPTION WHEN OTHERS THEN
|
|
103
|
+
|
|
104
|
+
has_errors := TRUE;
|
|
125
105
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
106
|
+
GET STACKED DIAGNOSTICS
|
|
107
|
+
err_text = MESSAGE_TEXT,
|
|
108
|
+
err_detail = PG_EXCEPTION_DETAIL,
|
|
109
|
+
err_hint = PG_EXCEPTION_HINT;
|
|
130
110
|
|
|
131
111
|
END;
|
|
132
112
|
|
|
133
113
|
--RAISE NOTICE 'has_errors: % ', has_errors;
|
|
134
|
-
--RAISE NOTICE '
|
|
114
|
+
--RAISE NOTICE 'condition_checks_union_query: % , cids: %', condition_checks_union_query, c_ids;
|
|
135
115
|
|
|
136
116
|
IF (t_ids IS NOT NULL OR has_errors) THEN
|
|
137
117
|
|
|
@@ -155,7 +135,7 @@ const getDataWatchFunctionQuery = (debugMode) => {
|
|
|
155
135
|
THEN concat_ws('; ', 'error', err_text, err_detail, err_hint, 'query: ' || query )
|
|
156
136
|
ELSE COALESCE(v_trigger.cids, '')
|
|
157
137
|
END,
|
|
158
|
-
COALESCE(changed_columns, '')
|
|
138
|
+
COALESCE(changed_columns::TEXT, '')
|
|
159
139
|
${debugMode ? ", COALESCE(current_query(), 'current_query ??'), ' ', query" : ""}
|
|
160
140
|
), 7999/4) -- Some chars are 2bytes -> 'Ω'
|
|
161
141
|
);
|
|
@@ -184,4 +164,53 @@ const getDataWatchFunctionQuery = (debugMode) => {
|
|
|
184
164
|
`;
|
|
185
165
|
};
|
|
186
166
|
exports.getDataWatchFunctionQuery = getDataWatchFunctionQuery;
|
|
167
|
+
const CHANGED_COLUMNS_CHECK = `
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
-- Determine changed columns for UPDATE operations
|
|
171
|
+
IF TG_OP = 'UPDATE' THEN
|
|
172
|
+
|
|
173
|
+
SELECT columns_info
|
|
174
|
+
INTO _columns_info
|
|
175
|
+
FROM prostgles.v_triggers
|
|
176
|
+
WHERE table_name = escaped_table
|
|
177
|
+
AND columns_info IS NOT NULL;
|
|
178
|
+
|
|
179
|
+
IF _columns_info IS NOT NULL THEN
|
|
180
|
+
query := format(
|
|
181
|
+
$c$
|
|
182
|
+
WITH changed AS (
|
|
183
|
+
SELECT column_name
|
|
184
|
+
FROM jsonb_object_keys(%L) as column_name
|
|
185
|
+
WHERE EXISTS (
|
|
186
|
+
SELECT 1
|
|
187
|
+
FROM old_table o
|
|
188
|
+
LEFT JOIN new_table n
|
|
189
|
+
ON %s
|
|
190
|
+
WHERE %s
|
|
191
|
+
)
|
|
192
|
+
)
|
|
193
|
+
SELECT array_agg(column_name)
|
|
194
|
+
FROM changed;
|
|
195
|
+
$c$,
|
|
196
|
+
_columns_info->>'tracked_columns',
|
|
197
|
+
_columns_info->>'join_condition',
|
|
198
|
+
_columns_info->>'where_statement'
|
|
199
|
+
);
|
|
200
|
+
|
|
201
|
+
BEGIN
|
|
202
|
+
EXECUTE query INTO changed_columns;
|
|
203
|
+
END;
|
|
204
|
+
|
|
205
|
+
/* It is possible to get no changes */
|
|
206
|
+
changed_columns := COALESCE(changed_columns, '{}');
|
|
207
|
+
|
|
208
|
+
IF NOT starts_with(changed_columns::TEXT, '{') THEN
|
|
209
|
+
RAISE EXCEPTION 'changed_columns is not a JSON array: %', changed_columns;
|
|
210
|
+
END IF;
|
|
211
|
+
|
|
212
|
+
END IF;
|
|
213
|
+
END IF;
|
|
214
|
+
|
|
215
|
+
`;
|
|
187
216
|
//# sourceMappingURL=getDataWatchFunctionQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDataWatchFunctionQuery.js","sourceRoot":"","sources":["../../../lib/PubSubManager/init/getDataWatchFunctionQuery.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"getDataWatchFunctionQuery.js","sourceRoot":"","sources":["../../../lib/PubSubManager/init/getDataWatchFunctionQuery.ts"],"names":[],"mappings":";;;AAAA,2EAA2D;AAC3D,8DAAyD;AACzD,8DAAsF;AAEtF;;;GAGG;AACU,QAAA,iCAAiC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC1D,MAAM,yBAAyB,GAAG,CAAC,SAA8B,EAAE,EAAE;IAC1E,OAAO;;qCAE4B,wCAAY,CAAC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0B/C,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAsFP,IAAA,4BAAO,EAAC,kCAAa,CAAC,OAAO,CAAC;;kCAE5B,IAAA,4BAAO,EAAC,8BAAS,CAAC;;kCAElB,IAAA,4BAAO,EAAC,+BAAU,CAAC,IAAI,CAAC;;;;;;;;kCAQxB,SAAS,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;kBAgB9F,IAAA,qCAAgB,GAAE;;;;;;;8BAON,wCAAY,CAAC,eAAe;;GAEvD,CAAC;AACJ,CAAC,CAAC;AAzJW,QAAA,yBAAyB,6BAyJpC;AAEF,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgD7B,CAAC"}
|
package/dist/PubSubManager/{getPubSubManagerInitQuery.d.ts → init/getPubSubManagerInitQuery.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DboBuilder } from "
|
|
1
|
+
import { DboBuilder } from "../../DboBuilder/DboBuilder";
|
|
2
2
|
export declare const DB_OBJ_NAMES: {
|
|
3
3
|
readonly trigger_add_remove_func: "prostgles.trigger_add_remove_func";
|
|
4
4
|
readonly data_watch_func: "prostgles.prostgles_trigger_function";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPubSubManagerInitQuery.d.ts","sourceRoot":"","sources":["../../../lib/PubSubManager/init/getPubSubManagerInitQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAazD,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AA+dX;;;GAGG;AACH,eAAO,MAAM,yBAAyB,SAC9B,UAAU,KACf,QAAQ,MAAM,GAAG,SAAS,CAyB5B,CAAC"}
|
package/dist/PubSubManager/{getPubSubManagerInitQuery.js → init/getPubSubManagerInitQuery.js}
RENAMED
|
@@ -2,11 +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 DboBuilderTypes_1 = require("
|
|
6
|
-
const PubSubManagerUtils_1 = require("
|
|
7
|
-
const orphanTriggerCheck_1 = require("
|
|
8
|
-
const package_json_1 = require("
|
|
9
|
-
const getDataWatchFunctionQuery_1 = require("./
|
|
5
|
+
const DboBuilderTypes_1 = require("../../DboBuilder/DboBuilderTypes");
|
|
6
|
+
const PubSubManagerUtils_1 = require("../PubSubManagerUtils");
|
|
7
|
+
const orphanTriggerCheck_1 = require("../orphanTriggerCheck");
|
|
8
|
+
const package_json_1 = require("../../../package.json");
|
|
9
|
+
const getDataWatchFunctionQuery_1 = require("./getDataWatchFunctionQuery");
|
|
10
10
|
exports.DB_OBJ_NAMES = {
|
|
11
11
|
trigger_add_remove_func: "prostgles.trigger_add_remove_func",
|
|
12
12
|
data_watch_func: "prostgles.prostgles_trigger_function",
|
|
@@ -188,8 +188,8 @@ BEGIN
|
|
|
188
188
|
condition TEXT NOT NULL,
|
|
189
189
|
condition_hash TEXT NOT NULL,
|
|
190
190
|
|
|
191
|
-
/** If defined, will check the
|
|
192
|
-
|
|
191
|
+
/** If defined, will check which columns changed which will then be used in the sub notification logic */
|
|
192
|
+
columns_info JSONB ,
|
|
193
193
|
|
|
194
194
|
/* The view from the root subscription, found in the condition.
|
|
195
195
|
We need this because old_table/new_table data is not reflected in the view inside the AFTER trigger
|
|
@@ -328,25 +328,28 @@ BEGIN
|
|
|
328
328
|
COMMENT ON TRIGGER %1$I ON %2$s IS 'Prostgles internal trigger used to notify when data in the table changed';
|
|
329
329
|
*/
|
|
330
330
|
$q$,
|
|
331
|
-
'prostgles_triggers_' || trw.table_name || '_insert',
|
|
332
|
-
|
|
331
|
+
'prostgles_triggers_' || trw.table_name || '_insert',
|
|
332
|
+
trw.table_name
|
|
333
|
+
) ||
|
|
334
|
+
format(
|
|
333
335
|
$q$
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
--COMMENT ON TRIGGER %1$I ON %2$s IS 'Prostgles internal trigger used to notify when data in the table changed';
|
|
336
|
+
${createTriggerQuery}
|
|
337
|
+
AFTER UPDATE ON %2$s
|
|
338
|
+
REFERENCING OLD TABLE AS old_table NEW TABLE AS new_table
|
|
339
|
+
FOR EACH STATEMENT EXECUTE PROCEDURE ${exports.DB_OBJ_NAMES.data_watch_func}();
|
|
339
340
|
$q$,
|
|
340
|
-
'prostgles_triggers_' || trw.table_name || '_update',
|
|
341
|
-
|
|
341
|
+
'prostgles_triggers_' || trw.table_name || '_update',
|
|
342
|
+
trw.table_name
|
|
343
|
+
) ||
|
|
344
|
+
format(
|
|
342
345
|
$q$
|
|
343
346
|
${createTriggerQuery}
|
|
344
347
|
AFTER DELETE ON %2$s
|
|
345
348
|
REFERENCING OLD TABLE AS old_table
|
|
346
|
-
FOR EACH STATEMENT EXECUTE PROCEDURE ${exports.DB_OBJ_NAMES.data_watch_func}();
|
|
347
|
-
--COMMENT ON TRIGGER %1$I ON %2$s IS 'Prostgles internal trigger used to notify when data in the table changed';
|
|
349
|
+
FOR EACH STATEMENT EXECUTE PROCEDURE ${exports.DB_OBJ_NAMES.data_watch_func}();
|
|
348
350
|
$q$,
|
|
349
|
-
'prostgles_triggers_' || trw.table_name || '_delete',
|
|
351
|
+
'prostgles_triggers_' || trw.table_name || '_delete',
|
|
352
|
+
trw.table_name
|
|
350
353
|
);
|
|
351
354
|
END IF;
|
|
352
355
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPubSubManagerInitQuery.js","sourceRoot":"","sources":["../../../lib/PubSubManager/init/getPubSubManagerInitQuery.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAE7C,sEAAuD;AACvD,8DAM+B;AAC/B,8DAAyD;AACzD,wDAAgD;AAChD,2EAAwE;AAE3D,QAAA,YAAY,GAAG;IAC1B,uBAAuB,EAAE,mCAAmC;IAC5D,eAAe,EAAE,sCAAsC;IACvD,iBAAiB,EAAE,6BAA6B;IAChD,oBAAoB,EAAE,oCAAoC;IAC1D,yBAAyB,EAAE,yCAAyC;CAC5D,CAAC;AAEX,MAAM,6BAA6B,GAAG;;;;;;CAMrC,CAAC;AACF,MAAM,iCAAiC,GAAG;;;;;;CAMzC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,SAA8B,EAAE,SAAiB,EAAE,EAAE;IACzE,MAAM,kBAAkB,GAAG,SAAS,IAAI,MAAM,CAAC;IAC/C,MAAM,kBAAkB,GACtB,kBAAkB,CAAC,CAAC;QAClB,gCAAgC;QAClC,CAAC,CAAC;;;KAGD,CAAC;IAEJ,OAAO;;;;;;IAML,uDAAkC;;;;;;;;;;;;;;YAc1B,6BAA6B;;;;;;;YAO7B,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4B5B,IAAA,4BAAO,EAAC,sBAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwHvB,IAAA,qDAAyB,EAAC,SAAS,CAAC;;qCAET,oBAAY,CAAC,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA2GrC,kBAAkB;;;yEAGmB,oBAAY,CAAC,eAAe;;;;;;;;;;kCAUnE,kBAAkB;;;uEAGmB,oBAAY,CAAC,eAAe;;;;;;;oCAO/D,kBAAkB;;;yEAGmB,oBAAY,CAAC,eAAe;;;;;;;;;;;;;;;yCAe5D,uDAAkC;;;;;;;;;;;;;;;;;;;;;wBAqBnD,IAAA,4BAAO,EAAC,kCAAa,CAAC,OAAO,CAAC;;0BAE5B,IAAA,4BAAO,EAAC,8BAAS,CAAC;0BAClB,IAAA,4BAAO,EAAC,+BAAU,CAAC,mBAAmB,CAAC;;;;qCAI5B,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,4BAA4B;;;;;;;;;;;8BAW9E,oBAAY,CAAC,uBAAuB;;;;;;+CAMnB,oBAAY,CAAC,uBAAuB;;;;;;+CAMpC,oBAAY,CAAC,uBAAuB;;;qCAG9C,oBAAY,CAAC,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDA0ChB,uDAAkC;;;0BAG3D,IAAA,4BAAO,EAAC,kCAAa,CAAC,OAAO,CAAC;;4BAE5B,IAAA,4BAAO,EAAC,8BAAS,CAAC;4BAClB,IAAA,4BAAO,EAAC,+BAAU,CAAC,MAAM,CAAC;;;4BAG1B,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,4BAA4B;;;;;sBAK7D,IAAA,qCAAgB,GAAE;;;;;;8BAMV,oBAAY,CAAC,iBAAiB;;;;;;;;CAQ3D,CAAC;AACF,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,yBAAyB,GAAG,KAAK;IAG5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACjG,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/E,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,8BAA8B,EAAE;QACtF,SAAS,CAAC,IAAI,EAAE;KACjB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,qBAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,EAAP,sBAAO,EAAE,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACxE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,MAAM,IAAA,4BAAU,EAAC,KAAK,IAAI,EAAE;QACnE,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,iCAAiC,EAAE;YAClF,UAAU;YACV,OAAO,EAAP,sBAAO;SACR,CAAC,CAAC;QACH,OAAO,sBAAsB,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AA3BW,QAAA,yBAAyB,6BA2BpC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type PubSubManager } from "
|
|
1
|
+
import { type PubSubManager } from "../PubSubManager";
|
|
2
2
|
export declare const REALTIME_TRIGGER_CHECK_QUERY = "prostgles-server internal query used to manage realtime triggers";
|
|
3
3
|
export declare const tout: (ms: number) => Promise<unknown>;
|
|
4
4
|
export declare function initPubSubManager(this: PubSubManager): Promise<PubSubManager | undefined>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initPubSubManager.d.ts","sourceRoot":"","sources":["../../../lib/PubSubManager/init/initPubSubManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,eAAO,MAAM,4BAA4B,qEAC2B,CAAC;AAErE,eAAO,MAAM,IAAI,OAAQ,MAAM,qBAA8C,CAAC;AAE9E,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA0E/F"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.initPubSubManager = exports.tout = exports.REALTIME_TRIGGER_CHECK_QUERY = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
-
const PostgresNotifListenManager_1 = require("
|
|
6
|
-
const getWatchSchemaTagList_1 = require("
|
|
5
|
+
const PostgresNotifListenManager_1 = require("../../PostgresNotifListenManager");
|
|
6
|
+
const getWatchSchemaTagList_1 = require("../../SchemaWatch/getWatchSchemaTagList");
|
|
7
7
|
const getPubSubManagerInitQuery_1 = require("./getPubSubManagerInitQuery");
|
|
8
|
-
const PubSubManagerUtils_1 = require("
|
|
8
|
+
const PubSubManagerUtils_1 = require("../PubSubManagerUtils");
|
|
9
9
|
exports.REALTIME_TRIGGER_CHECK_QUERY = "prostgles-server internal query used to manage realtime triggers";
|
|
10
10
|
const tout = (ms) => new Promise((res) => setTimeout(res, ms));
|
|
11
11
|
exports.tout = tout;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initPubSubManager.js","sourceRoot":"","sources":["../../../lib/PubSubManager/init/initPubSubManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const pgp = require("pg-promise");
|
|
|
5
5
|
const Prostgles_1 = require("../Prostgles");
|
|
6
6
|
const Event_Trigger_Tags_1 = require("../Event_Trigger_Tags");
|
|
7
7
|
const orphanTriggerCheck_1 = require("./orphanTriggerCheck");
|
|
8
|
-
const getPubSubManagerInitQuery_1 = require("./getPubSubManagerInitQuery");
|
|
8
|
+
const getPubSubManagerInitQuery_1 = require("./init/getPubSubManagerInitQuery");
|
|
9
9
|
const PubSubManagerUtils_1 = require("./PubSubManagerUtils");
|
|
10
10
|
const asValue = (v) => pgp.as.format("$1", [v]);
|
|
11
11
|
async function initialiseEventTriggers() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialiseEventTriggers.js","sourceRoot":"","sources":["../../lib/PubSubManager/initialiseEventTriggers.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAElC,4CAA8C;AAC9C,8DAA2D;AAC3D,6DAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"initialiseEventTriggers.js","sourceRoot":"","sources":["../../lib/PubSubManager/initialiseEventTriggers.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAElC,4CAA8C;AAC9C,8DAA2D;AAC3D,6DAAsE;AACtE,gFAAgE;AAChE,6DAA0E;AAE1E,MAAM,OAAO,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9C,KAAK,UAAU,uBAAuB;IAC3C,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;IACvD,IAAI,WAAW,IAAI,CAAC,CAAC,MAAM,IAAA,0BAAc,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,CACV,uFAAuF,CACxF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,qEAAqE;QACrE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QACxF,MAAM,gBAAgB,GACpB,aAAa,CAAC,MAAM,CAAC,CAAC;YACpB,yBAAyB,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACzF,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,CACzB;;;;aAIO,uDAAkC;;;;;;;;;;;;;;;cAejC,mDAA8B;;;;cAI9B,gBAAgB;;;;;;;;;;;;;;;;;;;kBAmBZ,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;;;cAGrC,gCAAgC;;;;;;;OAOvC,EACD,EAAE,kBAAkB,EAAlB,uCAAkB,EAAE,CACvB,CAAC;QAEF,MAAM,IAAI,CAAC,EAAE;aACV,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACvB,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEL,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AApFD,0DAoFC;AAED,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;sBAmBnB,OAAO,CAAC,wCAAY,CAAC,oBAAoB,CAAC;;;;;;;;;;;;;;;YAepD,OAAO,CAAC,wCAAY,CAAC,oBAAoB,CAAC;YAC1C,OAAO,CAAC,wCAAY,CAAC,yBAAyB,CAAC;;;;;;;;;;;;qCAYtB,wCAAY,CAAC,oBAAoB;6BACzC,wCAAY,CAAC,oBAAoB;;;0BAGpC,wCAAY,CAAC,iBAAiB;;qCAEnB,wCAAY,CAAC,yBAAyB;6BAC9C,wCAAY,CAAC,yBAAyB;;;0BAGzC,wCAAY,CAAC,iBAAiB;;;CAGvD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifListener.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/notifListener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"notifListener.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/notifListener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,iBAuLjF"}
|
|
@@ -4,7 +4,6 @@ exports.notifListener = void 0;
|
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const parseFieldFilter_1 = require("../DboBuilder/ViewHandler/parseFieldFilter");
|
|
6
6
|
const PubSubManagerUtils_1 = require("./PubSubManagerUtils");
|
|
7
|
-
const JSONBValidation_1 = require("../JSONBValidation/JSONBValidation");
|
|
8
7
|
/* Relay relevant data to relevant subscriptions */
|
|
9
8
|
async function notifListener(data) {
|
|
10
9
|
const str = data.payload;
|
|
@@ -60,15 +59,14 @@ async function notifListener(data) {
|
|
|
60
59
|
if (dataArr.length < 3) {
|
|
61
60
|
throw "notifListener: dataArr length < 3";
|
|
62
61
|
}
|
|
63
|
-
const [_, table_name, op_name, condition_ids_str,
|
|
64
|
-
const
|
|
62
|
+
const [_, table_name, op_name, condition_ids_str, raw_changed_columns_str = ""] = dataArr;
|
|
63
|
+
const changedColumns = !raw_changed_columns_str ? undefined : raw_changed_columns_str.slice(1, -1).split(",");
|
|
64
|
+
const conditionIds = condition_ids_str?.split(",").map((v) => +v);
|
|
65
65
|
if (!table_name) {
|
|
66
66
|
throw "table_name undef";
|
|
67
67
|
}
|
|
68
68
|
const tableTriggerConditions = this.getTriggerInfo(table_name);
|
|
69
69
|
let state = "ok";
|
|
70
|
-
// const triggers = await this.db.any("SELECT * FROM prostgles.triggers WHERE table_name = $1 AND id IN ($2:csv)", [table_name, condition_ids_str.split(",").map(v => +v)]);
|
|
71
|
-
// const conditions: string[] = triggers.map(t => t.condition);
|
|
72
70
|
if (!tableTriggerConditions?.length) {
|
|
73
71
|
state = "no-triggers";
|
|
74
72
|
/* Trigger error */
|
|
@@ -85,10 +83,10 @@ async function notifListener(data) {
|
|
|
85
83
|
});
|
|
86
84
|
/* Trigger ok */
|
|
87
85
|
}
|
|
88
|
-
else if (
|
|
86
|
+
else if (conditionIds?.every((id) => Number.isInteger(id))) {
|
|
89
87
|
state = "ok";
|
|
90
|
-
const firedTableConditions = tableTriggerConditions.filter(({ idx }) =>
|
|
91
|
-
const orphanedTableConditions =
|
|
88
|
+
const firedTableConditions = tableTriggerConditions.filter(({ idx }) => conditionIds.includes(idx));
|
|
89
|
+
const orphanedTableConditions = conditionIds.filter((condId) => {
|
|
92
90
|
const tc = tableTriggerConditions.at(condId);
|
|
93
91
|
return !tc || (tc.subs.length === 0 && tc.syncs.length === 0);
|
|
94
92
|
});
|
|
@@ -104,18 +102,20 @@ async function notifListener(data) {
|
|
|
104
102
|
const activeAndReadySubs = subs.filter((sub) => sub.triggers.some((trg) => this.dbo[trg.table_name] &&
|
|
105
103
|
sub.is_ready &&
|
|
106
104
|
((sub.socket_id && this.sockets[sub.socket_id]) || sub.localFuncs)));
|
|
107
|
-
const { data: changedColValidation } = (0, prostgles_types_1.tryCatchV2)(() => (0, JSONBValidation_1.getJSONBObjectSchemaValidationError)({ cols: "string[]" }, { cols: JSON.parse(`[${changed_columns_str}]`) }, "cols"));
|
|
108
|
-
const changedColumns = changedColValidation?.data?.cols;
|
|
109
105
|
activeAndReadySubs.forEach((sub) => {
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
106
|
+
const operation = (op_name?.toLowerCase() || "insert");
|
|
107
|
+
const { tracked_columns, subscribeOptions } = sub;
|
|
108
|
+
const { throttle = 0, throttleOpts, actions, skipChangedColumnsCheck } = subscribeOptions;
|
|
109
|
+
if (!skipChangedColumnsCheck &&
|
|
110
|
+
changedColumns &&
|
|
111
|
+
operation === "update" &&
|
|
112
|
+
tracked_columns) {
|
|
113
|
+
const subFieldsHaveChanged = changedColumns.some((changedColumn) => tracked_columns.includes(changedColumn));
|
|
113
114
|
if (!subFieldsHaveChanged)
|
|
114
115
|
return;
|
|
115
116
|
}
|
|
116
|
-
const commandLowerCase = (op_name?.toLowerCase() || "insert");
|
|
117
117
|
const actionIsIgnored = actions &&
|
|
118
|
-
!(0, prostgles_types_1.includes)((0, parseFieldFilter_1.parseFieldFilter)(actions, false, ["insert", "update", "delete"]),
|
|
118
|
+
!(0, prostgles_types_1.includes)((0, parseFieldFilter_1.parseFieldFilter)(actions, false, ["insert", "update", "delete"]), operation);
|
|
119
119
|
if (actionIsIgnored) {
|
|
120
120
|
return;
|
|
121
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifListener.js","sourceRoot":"","sources":["../../lib/PubSubManager/notifListener.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"notifListener.js","sourceRoot":"","sources":["../../lib/PubSubManager/notifListener.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getAppCheckQuery = exports.DELETE_DISCONNECTED_APPS_QUERY = void 0;
|
|
4
4
|
const PubSubManagerUtils_1 = require("./PubSubManagerUtils");
|
|
5
|
-
const initPubSubManager_1 = require("./initPubSubManager");
|
|
5
|
+
const initPubSubManager_1 = require("./init/initPubSubManager");
|
|
6
6
|
/**
|
|
7
7
|
* Schema and Data watch triggers (DB_OBJ_NAMES.schema_watch_func, DB_OBJ_NAMES.data_watch_func)
|
|
8
8
|
* survive and continue to user resources even after the client disconnects.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphanTriggerCheck.js","sourceRoot":"","sources":["../../lib/PubSubManager/orphanTriggerCheck.ts"],"names":[],"mappings":";;;AACA,6DAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"orphanTriggerCheck.js","sourceRoot":"","sources":["../../lib/PubSubManager/orphanTriggerCheck.ts"],"names":[],"mappings":";;;AACA,6DAA0E;AAC1E,gEAAwE;AAExE;;;;GAIG;AAEH,MAAM,eAAe,GACnB,sFAAsF,CAAC;AACzF,MAAM,8BAA8B,GAAG;;;;;;;CAOtC,CAAC;AAEW,QAAA,8BAA8B,GAAG;;;;;;;CAO7C,CAAC;AAEF,+EAA+E;AACxE,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC;;MAEhC,eAAe;MACf,gDAA4B;MAC5B,uDAAkC;;;;;;;;;;;;;;8BAcV,eAAe;;;;;;QAMrC,8BAA8B;;;;;UAK5B,sCAA8B;;;;;;;;;;;CAWvC,CAAC;AAxCW,QAAA,gBAAgB,oBAwC3B"}
|