prostgles-server 4.2.66 → 4.2.67
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 +5 -3
- package/dist/PubSubManager/getInitQuery.js.map +1 -1
- package/lib/PubSubManager/getInitQuery.ts +5 -3
- package/package.json +1 -1
- package/tests/isomorphicQueries.spec.ts +24 -6
- 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;AAGpF,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;AAGpF,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,eAAO,MAAM,YAAY,SAAwB,aAAa,KAAG,QAAQ,MAAM,CAukB9E,CAAA"}
|
|
@@ -242,7 +242,7 @@ BEGIN
|
|
|
242
242
|
)
|
|
243
243
|
||
|
|
244
244
|
COALESCE((
|
|
245
|
-
SELECT ', ' || string_agg(format(E' %
|
|
245
|
+
SELECT ', ' || string_agg(format(E' %s AS ( \n %s \n ) ', related_view_name, related_view_def), ', ')
|
|
246
246
|
FROM (
|
|
247
247
|
SELECT DISTINCT related_view_name, related_view_def
|
|
248
248
|
FROM prostgles.v_triggers
|
|
@@ -354,7 +354,9 @@ BEGIN
|
|
|
354
354
|
--RAISE NOTICE 'DELETE trigger_add_remove_func table: % ', ' ' || COALESCE((SELECT concat_ws(' ', string_agg(table_name, ' & '), count(*), min(inserted) ) FROM prostgles.app_triggers) , ' 0 ');
|
|
355
355
|
--RAISE NOTICE 'DELETE trigger_add_remove_func old_table: % ', '' || COALESCE((SELECT concat_ws(' ', string_agg(table_name, ' & '), count(*), min(inserted) ) FROM old_table), ' 0 ');
|
|
356
356
|
|
|
357
|
-
|
|
357
|
+
SELECT count(*)
|
|
358
|
+
FROM old_table
|
|
359
|
+
INTO changed_triggers_count;
|
|
358
360
|
|
|
359
361
|
/* Disable actual triggers if needed */
|
|
360
362
|
FOR trw IN
|
|
@@ -425,7 +427,7 @@ BEGIN
|
|
|
425
427
|
'prostgles_triggers_' || trw.table_name || '_update',
|
|
426
428
|
'prostgles_triggers_' || trw.table_name || '_delete'
|
|
427
429
|
)
|
|
428
|
-
) = 3
|
|
430
|
+
) = 3
|
|
429
431
|
THEN
|
|
430
432
|
query := concat_ws(E'\n',
|
|
431
433
|
format(' ALTER TABLE %s ENABLE TRIGGER %I ;', trw.table_name, 'prostgles_triggers_' || trw.table_name || '_insert'),
|
|
@@ -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;AAErC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAgHjC,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,qHAAqH,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;8BAuB3K,oBAAY,CAAC,eAAe;;qCAErB,oBAAY,CAAC,uBAAuB
|
|
1
|
+
{"version":3,"file":"getInitQuery.js","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -244,7 +244,7 @@ BEGIN
|
|
|
244
244
|
)
|
|
245
245
|
||
|
|
246
246
|
COALESCE((
|
|
247
|
-
SELECT ', ' || string_agg(format(E' %
|
|
247
|
+
SELECT ', ' || string_agg(format(E' %s AS ( \n %s \n ) ', related_view_name, related_view_def), ', ')
|
|
248
248
|
FROM (
|
|
249
249
|
SELECT DISTINCT related_view_name, related_view_def
|
|
250
250
|
FROM prostgles.v_triggers
|
|
@@ -356,7 +356,9 @@ BEGIN
|
|
|
356
356
|
--RAISE NOTICE 'DELETE trigger_add_remove_func table: % ', ' ' || COALESCE((SELECT concat_ws(' ', string_agg(table_name, ' & '), count(*), min(inserted) ) FROM prostgles.app_triggers) , ' 0 ');
|
|
357
357
|
--RAISE NOTICE 'DELETE trigger_add_remove_func old_table: % ', '' || COALESCE((SELECT concat_ws(' ', string_agg(table_name, ' & '), count(*), min(inserted) ) FROM old_table), ' 0 ');
|
|
358
358
|
|
|
359
|
-
|
|
359
|
+
SELECT count(*)
|
|
360
|
+
FROM old_table
|
|
361
|
+
INTO changed_triggers_count;
|
|
360
362
|
|
|
361
363
|
/* Disable actual triggers if needed */
|
|
362
364
|
FOR trw IN
|
|
@@ -427,7 +429,7 @@ BEGIN
|
|
|
427
429
|
'prostgles_triggers_' || trw.table_name || '_update',
|
|
428
430
|
'prostgles_triggers_' || trw.table_name || '_delete'
|
|
429
431
|
)
|
|
430
|
-
) = 3
|
|
432
|
+
) = 3
|
|
431
433
|
THEN
|
|
432
434
|
query := concat_ws(E'\n',
|
|
433
435
|
format(' ALTER TABLE %s ENABLE TRIGGER %I ;', trw.table_name, 'prostgles_triggers_' || trw.table_name || '_insert'),
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
//@ts-ignore
|
|
8
8
|
describe
|
|
9
9
|
} from "node:test";
|
|
10
|
-
import { pickKeys } from "prostgles-types";
|
|
10
|
+
import { SubscriptionHandler, pickKeys } from "prostgles-types";
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
export const isomorphicQueries = async (db: DBOFullyTyped | DBHandlerClient, log: (msg: string, extra?: any) => void) => {
|
|
@@ -466,6 +466,27 @@ export const isomorphicQueries = async (db: DBOFullyTyped | DBHandlerClient, log
|
|
|
466
466
|
assert.equal(+res, 1)
|
|
467
467
|
});
|
|
468
468
|
|
|
469
|
+
|
|
470
|
+
const testToEnsureTriggersAreDisabled = async (sub: SubscriptionHandler, table_name: string) => {
|
|
471
|
+
const getTableTriggers = async (table_name: string) => {
|
|
472
|
+
return await db.sql?.(`
|
|
473
|
+
SELECT tgname, tgenabled = 'O' as enabled
|
|
474
|
+
FROM pg_catalog.pg_trigger
|
|
475
|
+
WHERE tgname like format('prostgles_triggers_%s_', \${table_name}) || '%'
|
|
476
|
+
`,
|
|
477
|
+
{ table_name },
|
|
478
|
+
{ returnType: "rows" }
|
|
479
|
+
) as { tgname: string; enabled: boolean; }[];
|
|
480
|
+
}
|
|
481
|
+
await sub.unsubscribe();
|
|
482
|
+
let validTriggers = await getTableTriggers(table_name)
|
|
483
|
+
assert.equal(validTriggers.filter(t => t.enabled).length, 3);
|
|
484
|
+
await db.sql?.(`DELETE FROM prostgles.app_triggers`, []); // WHERE table_name = $1
|
|
485
|
+
validTriggers = await getTableTriggers(table_name)
|
|
486
|
+
assert.equal(validTriggers.length, 3);
|
|
487
|
+
assert.equal(validTriggers.filter(t => t.enabled).length, 0);
|
|
488
|
+
}
|
|
489
|
+
|
|
469
490
|
await test("subscribe", async () => {
|
|
470
491
|
await tryRunP("subscribe", async (resolve, reject) => {
|
|
471
492
|
await db.various.insert!({ id: 99 });
|
|
@@ -474,7 +495,7 @@ export const isomorphicQueries = async (db: DBOFullyTyped | DBHandlerClient, log
|
|
|
474
495
|
|
|
475
496
|
if(item && item.name === "zz3zz3"){
|
|
476
497
|
await db.various.delete!({ name: "zz3zz3" });
|
|
477
|
-
await sub
|
|
498
|
+
await testToEnsureTriggersAreDisabled(sub, "various");
|
|
478
499
|
resolve(true)
|
|
479
500
|
}
|
|
480
501
|
});
|
|
@@ -490,9 +511,6 @@ export const isomorphicQueries = async (db: DBOFullyTyped | DBHandlerClient, log
|
|
|
490
511
|
await db.various.insert!({ id: 99 });
|
|
491
512
|
const start = Date.now(); // name: "zz3zz"
|
|
492
513
|
const sub = await db.various.subscribeOne!({ id: 99 }, { throttle: 1700 }, async item => {
|
|
493
|
-
// const item = items[0]
|
|
494
|
-
// console.log(item)
|
|
495
|
-
|
|
496
514
|
const now = Date.now();
|
|
497
515
|
if(item && item.name === "zz3zz2" && now - start > 1600 && now - start < 1800){
|
|
498
516
|
await db.various.delete!({ name: "zz3zz2" });
|
|
@@ -1005,7 +1023,7 @@ export const isomorphicQueries = async (db: DBOFullyTyped | DBHandlerClient, log
|
|
|
1005
1023
|
if(runs < 2){
|
|
1006
1024
|
return;
|
|
1007
1025
|
}
|
|
1008
|
-
await sub
|
|
1026
|
+
await testToEnsureTriggersAreDisabled(sub, `"""quoted0"""`);
|
|
1009
1027
|
resolve(true);
|
|
1010
1028
|
}
|
|
1011
1029
|
});
|