prostgles-server 4.2.75 → 4.2.77
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/PubSubManager/getInitQuery.d.ts.map +1 -1
- package/dist/PubSubManager/getInitQuery.js +1 -3
- package/dist/PubSubManager/getInitQuery.js.map +1 -1
- package/dist/PubSubManager/initPubSubManager.js +1 -1
- package/dist/PubSubManager/orphanTriggerCheck.d.ts.map +1 -1
- package/dist/PubSubManager/orphanTriggerCheck.js +1 -10
- package/dist/PubSubManager/orphanTriggerCheck.js.map +1 -1
- package/lib/PubSubManager/getInitQuery.ts +1 -3
- package/lib/PubSubManager/initPubSubManager.ts +1 -1
- package/lib/PubSubManager/orphanTriggerCheck.ts +2 -12
- package/package.json +1 -1
- package/tests/isomorphicQueries.spec.ts +4 -2
- package/tests/server/package-lock.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInitQuery.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIpF,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,eAAO,MAAM,YAAY,SAAwB,aAAa,KAAG,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"getInitQuery.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIpF,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,eAAO,MAAM,YAAY,SAAwB,aAAa,KAAG,QAAQ,MAAM,CA0kB9E,CAAA"}
|
|
@@ -327,7 +327,6 @@ BEGIN
|
|
|
327
327
|
|
|
328
328
|
END;
|
|
329
329
|
|
|
330
|
-
--COMMIT;
|
|
331
330
|
$$ LANGUAGE plpgsql;
|
|
332
331
|
COMMENT ON FUNCTION ${exports.DB_OBJ_NAMES.data_watch_func} IS 'Prostgles internal function used to notify when data in the table changed';
|
|
333
332
|
|
|
@@ -382,8 +381,7 @@ BEGIN
|
|
|
382
381
|
FOREACH op IN ARRAY operations
|
|
383
382
|
LOOP
|
|
384
383
|
trg_name := concat_ws('_', 'prostgles_triggers', trw.table_name, op);
|
|
385
|
-
|
|
386
|
-
--EXECUTE format(' DROP TRIGGER IF EXISTS %I ON %s ;' , trg_name, trw.table_name);
|
|
384
|
+
|
|
387
385
|
EXECUTE format(' ALTER TABLE %s DISABLE TRIGGER %I ;', trw.table_name, trg_name);
|
|
388
386
|
END LOOP;
|
|
389
387
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInitQuery.js","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":";;;AACA,mDAAoF;AACpF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAClD,6DAAwD;AAE3C,QAAA,YAAY,GAAG;IAC1B,uBAAuB,EAAE,mCAAmC;IAC5D,eAAe,EAAE,sCAAsC;IACvD,iBAAiB,EAAE,6BAA6B;IAChD,oBAAoB,EAAE,oCAAoC;CAClD,CAAC;AAEJ,MAAM,YAAY,GAAG,KAAK;IAE/B,MAAM,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAmB,EAAE;QAC9D,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,WAAW,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,8BAA8B,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElI,OAAO;;;;;;;IAOP,6BAAa,CAAC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sEA+BkB,IAAA,uBAAO,EAAC,OAAO,CAAC;yEACb,IAAA,uBAAO,EAAC,OAAO,CAAC;+BAC1D,IAAA,uBAAO,EAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BjC,IAAA,uBAAO,EAAC,OAAO,CAAC,KAAK,IAAA,uBAAO,EAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAsGpB,oBAAY,CAAC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA+GjC,IAAA,uBAAO,EAAC,6BAAa,CAAC,OAAO,CAAC;;kCAE5B,IAAA,uBAAO,EAAC,6BAAa,CAAC,SAAS,CAAC;;kCAEhC,IAAA,uBAAO,EAAC,0BAAU,CAAC,IAAI,CAAC;;;;;;;kCAOxB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAA,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;kBAgB/H,IAAA,qCAAgB,GAAE
|
|
1
|
+
{"version":3,"file":"getInitQuery.js","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ async function initPubSubManager() {
|
|
|
36
36
|
WHERE app_id = ${(0, PubSubManager_1.asValue)(this.appId)}
|
|
37
37
|
`);
|
|
38
38
|
console.log("REMOVE app check disabled");
|
|
39
|
-
if (!this.appCheck && Math.random()
|
|
39
|
+
if (!this.appCheck && Math.random() > 12) {
|
|
40
40
|
this.appCheck = setInterval(async () => {
|
|
41
41
|
let checkForStaleTriggers = "";
|
|
42
42
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphanTriggerCheck.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/orphanTriggerCheck.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orphanTriggerCheck.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/orphanTriggerCheck.ts"],"names":[],"mappings":"AAoBA,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,cA6C5B,CAAC"}
|
|
@@ -18,7 +18,6 @@ const connectedApplicationNamesQuery = `
|
|
|
18
18
|
WHERE pid = pg_backend_pid()
|
|
19
19
|
)
|
|
20
20
|
`;
|
|
21
|
-
const LAST_CHECKED_SETTING_NAME = 'prostgles.last_checked';
|
|
22
21
|
/** It is a function to prevent undefined EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID */
|
|
23
22
|
const getAppCheckQuery = () => `
|
|
24
23
|
/*
|
|
@@ -34,11 +33,6 @@ const getAppCheckQuery = () => `
|
|
|
34
33
|
WHERE table_schema = 'prostgles'
|
|
35
34
|
AND table_name = 'apps'
|
|
36
35
|
)
|
|
37
|
-
/* Ensure we don't check too often */
|
|
38
|
-
AND (
|
|
39
|
-
NULLIF(current_setting('${LAST_CHECKED_SETTING_NAME}', true), '') IS NULL
|
|
40
|
-
OR current_setting('${LAST_CHECKED_SETTING_NAME}', true)::timestamp < NOW() - INTERVAL '1 minute'
|
|
41
|
-
)
|
|
42
36
|
/* Ensure we don't check in paralel */
|
|
43
37
|
AND NOT EXISTS (
|
|
44
38
|
SELECT 1
|
|
@@ -46,10 +40,7 @@ const getAppCheckQuery = () => `
|
|
|
46
40
|
WHERE s.query ilike '%${queryIdentifier}%'
|
|
47
41
|
AND s.state = 'active'
|
|
48
42
|
)
|
|
49
|
-
THEN
|
|
50
|
-
EXECUTE format('SET LOCAL ${LAST_CHECKED_SETTING_NAME} TO %L', now());
|
|
51
|
-
--USED FOR DEBUG REMOVE
|
|
52
|
-
PERFORM pg_notify('prostgles', current_setting('${LAST_CHECKED_SETTING_NAME}', true));
|
|
43
|
+
THEN
|
|
53
44
|
|
|
54
45
|
IF EXISTS (
|
|
55
46
|
${connectedApplicationNamesQuery}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphanTriggerCheck.js","sourceRoot":"","sources":["../../lib/PubSubManager/orphanTriggerCheck.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,2DAAmE;AAEnE;;;;GAIG;AAEH,MAAM,eAAe,GAAG,sFAAsF,CAAC;AAC/G,MAAM,8BAA8B,GAAG;;;;;;;;CAQtC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"orphanTriggerCheck.js","sourceRoot":"","sources":["../../lib/PubSubManager/orphanTriggerCheck.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,2DAAmE;AAEnE;;;;GAIG;AAEH,MAAM,eAAe,GAAG,sFAAsF,CAAC;AAC/G,MAAM,8BAA8B,GAAG;;;;;;;;CAQtC,CAAC;AAEF,+EAA+E;AACxE,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC;;MAEhC,eAAe;MACf,gDAA4B;MAC5B,6BAAa,CAAC,kCAAkC;;;;;;;;;;;;;;8BAcxB,eAAe;;;;;;QAMrC,8BAA8B;;;;;;;;;;;;;;;;;;;;;CAqBrC,CAAC;AA7CW,QAAA,gBAAgB,oBA6C3B"}
|
|
@@ -329,7 +329,6 @@ BEGIN
|
|
|
329
329
|
|
|
330
330
|
END;
|
|
331
331
|
|
|
332
|
-
--COMMIT;
|
|
333
332
|
$$ LANGUAGE plpgsql;
|
|
334
333
|
COMMENT ON FUNCTION ${DB_OBJ_NAMES.data_watch_func} IS 'Prostgles internal function used to notify when data in the table changed';
|
|
335
334
|
|
|
@@ -384,8 +383,7 @@ BEGIN
|
|
|
384
383
|
FOREACH op IN ARRAY operations
|
|
385
384
|
LOOP
|
|
386
385
|
trg_name := concat_ws('_', 'prostgles_triggers', trw.table_name, op);
|
|
387
|
-
|
|
388
|
-
--EXECUTE format(' DROP TRIGGER IF EXISTS %I ON %s ;' , trg_name, trw.table_name);
|
|
386
|
+
|
|
389
387
|
EXECUTE format(' ALTER TABLE %s DISABLE TRIGGER %I ;', trw.table_name, trg_name);
|
|
390
388
|
END LOOP;
|
|
391
389
|
|
|
@@ -41,7 +41,7 @@ export async function initPubSubManager(this: PubSubManager): Promise<PubSubMana
|
|
|
41
41
|
`);
|
|
42
42
|
|
|
43
43
|
console.log("REMOVE app check disabled");
|
|
44
|
-
if (!this.appCheck && Math.random()
|
|
44
|
+
if (!this.appCheck && Math.random() > 12) {
|
|
45
45
|
|
|
46
46
|
this.appCheck = setInterval(async () => {
|
|
47
47
|
let checkForStaleTriggers = "";
|
|
@@ -16,9 +16,7 @@ const connectedApplicationNamesQuery = `
|
|
|
16
16
|
FROM pg_catalog.pg_stat_activity
|
|
17
17
|
WHERE pid = pg_backend_pid()
|
|
18
18
|
)
|
|
19
|
-
`;
|
|
20
|
-
|
|
21
|
-
const LAST_CHECKED_SETTING_NAME = 'prostgles.last_checked';
|
|
19
|
+
`;
|
|
22
20
|
|
|
23
21
|
/** It is a function to prevent undefined EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID */
|
|
24
22
|
export const getAppCheckQuery = () => `
|
|
@@ -35,11 +33,6 @@ export const getAppCheckQuery = () => `
|
|
|
35
33
|
WHERE table_schema = 'prostgles'
|
|
36
34
|
AND table_name = 'apps'
|
|
37
35
|
)
|
|
38
|
-
/* Ensure we don't check too often */
|
|
39
|
-
AND (
|
|
40
|
-
NULLIF(current_setting('${LAST_CHECKED_SETTING_NAME}', true), '') IS NULL
|
|
41
|
-
OR current_setting('${LAST_CHECKED_SETTING_NAME}', true)::timestamp < NOW() - INTERVAL '1 minute'
|
|
42
|
-
)
|
|
43
36
|
/* Ensure we don't check in paralel */
|
|
44
37
|
AND NOT EXISTS (
|
|
45
38
|
SELECT 1
|
|
@@ -47,10 +40,7 @@ export const getAppCheckQuery = () => `
|
|
|
47
40
|
WHERE s.query ilike '%${queryIdentifier}%'
|
|
48
41
|
AND s.state = 'active'
|
|
49
42
|
)
|
|
50
|
-
THEN
|
|
51
|
-
EXECUTE format('SET LOCAL ${LAST_CHECKED_SETTING_NAME} TO %L', now());
|
|
52
|
-
--USED FOR DEBUG REMOVE
|
|
53
|
-
PERFORM pg_notify('prostgles', current_setting('${LAST_CHECKED_SETTING_NAME}', true));
|
|
43
|
+
THEN
|
|
54
44
|
|
|
55
45
|
IF EXISTS (
|
|
56
46
|
${connectedApplicationNamesQuery}
|
package/package.json
CHANGED
|
@@ -486,10 +486,12 @@ export const isomorphicQueries = async (db: DBOFullyTyped | DBHandlerClient, log
|
|
|
486
486
|
{ returnType: "rows" }
|
|
487
487
|
) as { tgname: string; enabled: boolean; }[];
|
|
488
488
|
}
|
|
489
|
-
await sub.unsubscribe();
|
|
490
489
|
let validTriggers = await getTableTriggers(table_name);
|
|
490
|
+
console.log("unsubscribe start")
|
|
491
|
+
await sub.unsubscribe();
|
|
492
|
+
console.log("unsubscribe end")
|
|
491
493
|
assert.equal(validTriggers.filter(t => t.enabled).length, 3, '3 Triggers should be enabled');
|
|
492
|
-
await db.sql?.(`DELETE FROM prostgles.app_triggers`, []);
|
|
494
|
+
await db.sql?.(`DELETE FROM prostgles.app_triggers`, []);
|
|
493
495
|
validTriggers = await getTableTriggers(table_name);
|
|
494
496
|
assert.equal(validTriggers.length, 3, '3 Triggers should exist but be disabled');
|
|
495
497
|
assert.equal(validTriggers.filter(t => t.enabled).length, 0);
|