prostgles-server 4.2.302 → 4.2.303
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/getSubscribeRelatedTables.d.ts +2 -2
- package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.js +5 -4
- package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js +1 -1
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.d.ts +25 -0
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.d.ts.map +1 -1
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.js +114 -0
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.js.map +1 -1
- package/lib/DboBuilder/getSubscribeRelatedTables.ts +5 -4
- package/lib/DboBuilder/parseUpdateRules.ts +1 -1
- package/lib/PubSubManager/init/getDataWatchFunctionQuery.ts +116 -0
- package/package.json +1 -1
|
@@ -12,8 +12,8 @@ type Args = {
|
|
|
12
12
|
newQuery: NewQuery;
|
|
13
13
|
};
|
|
14
14
|
/**
|
|
15
|
-
* When subscribing to a view:
|
|
16
|
-
* When subscribing to a table:
|
|
15
|
+
* When subscribing to a view: identify underlying tables to subscribe to them
|
|
16
|
+
* When subscribing to a table: identify joined tables to subscribe to them
|
|
17
17
|
*/
|
|
18
18
|
export declare function getSubscribeRelatedTables(this: ViewHandler, { filter, localParams, newQuery }: Args): Promise<ViewSubscriptionOptions | undefined>;
|
|
19
19
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSubscribeRelatedTables.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/getSubscribeRelatedTables.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAIT,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,MAAM,EAAuC,WAAW,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,KAAK,IAAI,GAAG;IACV,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,WAAW,EACjB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"getSubscribeRelatedTables.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/getSubscribeRelatedTables.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAIT,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,MAAM,EAAuC,WAAW,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,KAAK,IAAI,GAAG;IACV,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,WAAW,EACjB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,gDAwMxC"}
|
|
@@ -5,8 +5,8 @@ const prostgles_types_1 = require("prostgles-types");
|
|
|
5
5
|
const DboBuilder_1 = require("./DboBuilder");
|
|
6
6
|
const PubSubManagerUtils_1 = require("../PubSubManager/PubSubManagerUtils");
|
|
7
7
|
/**
|
|
8
|
-
* When subscribing to a view:
|
|
9
|
-
* When subscribing to a table:
|
|
8
|
+
* When subscribing to a view: identify underlying tables to subscribe to them
|
|
9
|
+
* When subscribing to a table: identify joined tables to subscribe to them
|
|
10
10
|
*/
|
|
11
11
|
async function getSubscribeRelatedTables({ filter, localParams, newQuery }) {
|
|
12
12
|
let viewOptions = undefined;
|
|
@@ -157,8 +157,9 @@ async function getSubscribeRelatedTables({ filter, localParams, newQuery }) {
|
|
|
157
157
|
for (const e of newQuery.whereOpts.exists.filter((e) => e.isJoined)) {
|
|
158
158
|
if (!e.isJoined)
|
|
159
159
|
throw `Not possible`;
|
|
160
|
-
const
|
|
161
|
-
|
|
160
|
+
for (const [index, pathItem] of e.parsedPath.entries()) {
|
|
161
|
+
await pushRelatedTable(pathItem.table, e.parsedPath.slice(0, index + 1));
|
|
162
|
+
}
|
|
162
163
|
}
|
|
163
164
|
if (!viewOptions.relatedTables.length) {
|
|
164
165
|
viewOptions = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSubscribeRelatedTables.js","sourceRoot":"","sources":["../../lib/DboBuilder/getSubscribeRelatedTables.ts"],"names":[],"mappings":";;;AAAA,qDAMyB;AAGzB,6CAAwF;AAGxF,4EAA0D;AAU1D;;;GAGG;AACI,KAAK,UAAU,yBAAyB,CAE7C,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAQ;IAEvC,IAAI,WAAW,GAAwC,SAAS,CAAC;IACjE,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC;IACzC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,sDAAsD;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;QACzC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAC1C,uBAAuB,CACxB,CAAC;QAEF,uDAAuD;QACvD,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAkB,2CAA2C,EAAE;YAC5F,QAAQ;SACT,CAAC,CAAC;QACH,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAA,gDAAmC,EAAC,2BAA2B,EAAE;gBACrE,IAAI,EAAE,aAAa;gBACnB,WAAW;gBACX,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAI,CAC/C,sBAAsB,GAAG,mDAAmD,EAC5E,EAAE,EACF,EAAE,UAAU,EAAE,uBAAuB,EAAE,CACxC,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;QAEvE,2CAA2C;QAC3C,MAAM,QAAQ,GAAa,KAAK,CAAC,IAAI,CACnC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC1D,CAAC;QACF,WAAW,GAAG;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ;YACR,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,EAAE;SAClB,CAAC;QACF,WAAW,CAAC,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3C,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,WAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAE,CAAC;YAC9E,IAAI,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAQ,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC;YAEhF,yFAAyF;YACzF,IAAI,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;gBACtF,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAW,CAAC,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;YAE9D,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM,gBAAgB,GACpB,WAAW,KAAK,cAAc,CAAC,CAAC;oBAC9B,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAErE,MAAM,aAAa,GAAG;;qBAEX,eAAe;sBACd,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,eAAe,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAC5I,SAAS,IAAI,MAAM;cACzB,CAAC;gBAEL,IAAI,CAAC;oBACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAoB;mBAChD,IAAA,wBAAM,EAAC,SAAS,CAAC;;qBAEf,IAAA,wBAAM,EAAC,SAAS,CAAC;;;;;;gBAMtB,GAAG;;WAER,CAAC,CAAC;oBAED,MAAM,wBAAwB,GAAG;wBAC/B,SAAS,EAAE,SAAS;wBACpB,gBAAgB;wBAChB,SAAS,EAAE,aAAa;qBACzB,CAAC;oBAEF,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC;wBAC7B,OAAO,wBAAwB,CAAC;oBAClC,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAA,wBAAG,EACD,2CAA2C,IAAI,CAAC,IAAI,YAAY,SAAS,6BAA6B,EACtG,CAAC,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO;gBACL,SAAS;gBACT,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,2EAA2E;gBACxH,SAAS,EAAE,MAAM;aAClB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,8CAA8C;QAC9C,MAAM,aAAa,GAAmD,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CACrF,kHAAkH,EAClH,EAAE,QAAQ,EAAE,CACb,CAAC;QAEF,+EAA+E;QAC/E,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAC/C,CAAC,EAAE,EAAE,EAAE,CACL,CAAC,YAAY,CAAC,IAAI,CAChB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,WAAW,KAAK,EAAE,CAAC,YAAY,CAC7E,CACJ,CAAC;QACF,WAAW,CAAC,aAAa,GAAG;YAC1B,GAAG,WAAW,CAAC,aAAa;YAC5B,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,SAAS,EAAE,CAAC,CAAC,UAAU;gBACvB,gBAAgB,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACxF,SAAS,EAAE,MAAM;aAClB,CAAC,CAAC;SACJ,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,2DAA2D,CAAC;QACpE,CAAC;QAED,oGAAoG;IACtG,CAAC;SAAM,CAAC;QACN,WAAW,GAAG;YACZ,IAAI,EAAE,OAAO;YACb,aAAa,EAAE,EAAE;SAClB,CAAC;QAEF,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACvE,MAAM,gBAAgB,GAAG,KAAK,EAAE,gBAAwB,EAAE,QAA0B,EAAE,EAAE;YACtF,MAAM,yBAAyB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACxE,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBAC/B,MAAM,SAAS,gBAAgB,YAAY,CAAC;YAC9C,CAAC;YAED,MAAM,aAAa,GAAG,WAAW,EAAE,aAAa,CAAC,IAAI,CACnD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,gBAAgB,CAC1C,CAAC;YACF,IAAI,aAAa,IAAI,yBAAyB,CAAC,OAAO,EAAE,CAAC;gBACvD,OAAO;YACT,CAAC;YAED,WAAW,KAAK;gBACd,IAAI,EAAE,OAAO;gBACb,aAAa,EAAE,EAAE;aAClB,CAAC;YACF,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC;gBAC7B,SAAS,EAAE,gBAAgB;gBAC3B,gBAAgB,EAAE,IAAA,wBAAM,EAAC,gBAAgB,CAAC;gBAC1C,SAAS,EAAE,CACT,MAAM,yBAAyB,CAAC,YAAa,CAAC;oBAC5C,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE;wBACN,aAAa,EAAE;4BACb,IAAI,EAAE,IAAA,mCAAiB,EAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;4BAC5C,MAAM,EAAE,eAAe;yBACxB;qBACF;oBACD,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,SAAS;oBACtB,SAAS,EAAE,SAAS;iBACrB,CAAC,CACH,CAAC,KAAK;aACR,CAAC,CAAC;QACL,CAAC,CAAC;QAEF;;WAEG;QACH,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACrC,MAAM,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,CAAC,CAAC,QAAQ;gBAAE,MAAM,cAAc,CAAC;YACtC,MAAM,
|
|
1
|
+
{"version":3,"file":"getSubscribeRelatedTables.js","sourceRoot":"","sources":["../../lib/DboBuilder/getSubscribeRelatedTables.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,7 +106,7 @@ async function parseUpdateRules(filter, params, tableRules, localParams) {
|
|
|
106
106
|
});
|
|
107
107
|
if (forcedData) {
|
|
108
108
|
try {
|
|
109
|
-
const { data, allowedCols } =
|
|
109
|
+
const { data, allowedCols } = (0, DataValidator_1.prepareNewData)({
|
|
110
110
|
row: forcedData,
|
|
111
111
|
forcedData: undefined,
|
|
112
112
|
allowedFields: "*",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseUpdateRules.js","sourceRoot":"","sources":["../../lib/DboBuilder/parseUpdateRules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parseUpdateRules.js","sourceRoot":"","sources":["../../lib/DboBuilder/parseUpdateRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,29 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare const udtNamesWithoutEqualityComparison: string[];
|
|
6
6
|
export declare const getDataWatchFunctionQuery: (debugMode: boolean | undefined) => string;
|
|
7
|
+
/**
|
|
8
|
+
* Test cases:
|
|
9
|
+
*
|
|
10
|
+
1. Condition not present in both tables (cond B).
|
|
11
|
+
Expected result:
|
|
12
|
+
- cond_id_1: [email]
|
|
13
|
+
- cond_status_B_for_id_10: [id, email, status]
|
|
14
|
+
|
|
15
|
+
WITH
|
|
16
|
+
old_table AS (
|
|
17
|
+
SELECT 10 as id, 'A' as status, 100 as val, 'user@example.com' as email UNION ALL
|
|
18
|
+
SELECT 1 as id, 'a' as status, 0 as val, '@dw1' as email -- Original data for other conditions
|
|
19
|
+
),
|
|
20
|
+
new_table AS (
|
|
21
|
+
SELECT 10 as id, 'B' as status, 200 as val, 'user_new@example.com' as email UNION ALL
|
|
22
|
+
SELECT 1 as id, 'a' as status, 0 as val, '@dw12' as email -- Original data for other conditions
|
|
23
|
+
),
|
|
24
|
+
|
|
25
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
26
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
27
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
28
|
+
]) conds
|
|
29
|
+
ON TRUE
|
|
30
|
+
|
|
31
|
+
*/
|
|
7
32
|
//# sourceMappingURL=getDataWatchFunctionQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,WA0JvE,CAAC"}
|
|
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,WA0JvE,CAAC;AAqJF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}
|
|
@@ -221,4 +221,118 @@ IF TG_OP = 'UPDATE' THEN
|
|
|
221
221
|
END IF;
|
|
222
222
|
|
|
223
223
|
`;
|
|
224
|
+
/**
|
|
225
|
+
* Given:
|
|
226
|
+
* 1. two transition tables (old_table and new_table)
|
|
227
|
+
* 2. a list of primary keys
|
|
228
|
+
* 3. a list of trigger conditions and their tracked columns
|
|
229
|
+
*
|
|
230
|
+
* Identify which conditions which columns have changed for each condition.
|
|
231
|
+
* - If a condition is met in only one of the transition tables, it is considered that all columns changed for that condition
|
|
232
|
+
* - If a condition is met in both transition tables, we need to check which columns have changed
|
|
233
|
+
*/
|
|
234
|
+
const CHANGED_COLUMNS_CHECK_V2 = `
|
|
235
|
+
WITH
|
|
236
|
+
old_table AS (
|
|
237
|
+
SELECT 10 as id, 'A' as status, 100 as val, 'user@example.com' as email UNION ALL
|
|
238
|
+
SELECT 1 as id, 'a' as status, 0 as val, '@dw1' as email -- Original data for other conditions
|
|
239
|
+
),
|
|
240
|
+
new_table AS (
|
|
241
|
+
SELECT 10 as id, 'B' as status, 200 as val, 'user_new@example.com' as email UNION ALL
|
|
242
|
+
SELECT 1 as id, 'a' as status, 0 as val, '@dw12' as email -- Original data for other conditions
|
|
243
|
+
),
|
|
244
|
+
unioned_tables AS (
|
|
245
|
+
SELECT *, 'old' as "ctid" FROM old_table UNION ALL
|
|
246
|
+
SELECT *, 'old' as "ctid" FROM new_table
|
|
247
|
+
),
|
|
248
|
+
changed_conditions AS (
|
|
249
|
+
SELECT o.*, cond
|
|
250
|
+
FROM unioned_tables o
|
|
251
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
252
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
253
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
254
|
+
]) cond
|
|
255
|
+
ON TRUE
|
|
256
|
+
),
|
|
257
|
+
result AS (
|
|
258
|
+
SELECT o.*, n.*, conds, cc
|
|
259
|
+
FROM unioned_tables o
|
|
260
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
261
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
262
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
263
|
+
]) conds
|
|
264
|
+
ON TRUE
|
|
265
|
+
/**
|
|
266
|
+
* Join only to records AND conditions that exist in both tables.
|
|
267
|
+
* This will inevitably show which columns changed for matching rows.
|
|
268
|
+
* Non matching rows will show that all columns changed
|
|
269
|
+
*/
|
|
270
|
+
LEFT JOIN (
|
|
271
|
+
SELECT *
|
|
272
|
+
FROM unioned_tables ut
|
|
273
|
+
WHERE EXISTS (
|
|
274
|
+
SELECT 1
|
|
275
|
+
FROM old_table _ot
|
|
276
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
277
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
278
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
279
|
+
]) conds2
|
|
280
|
+
ON TRUE
|
|
281
|
+
WHERE _ot.id = ut.id
|
|
282
|
+
AND conds2 IS NOT NULL
|
|
283
|
+
)
|
|
284
|
+
AND EXISTS (
|
|
285
|
+
select 1
|
|
286
|
+
from new_table _nt
|
|
287
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
288
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
289
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
290
|
+
]) conds2
|
|
291
|
+
ON TRUE
|
|
292
|
+
WHERE _nt.id = ut.id
|
|
293
|
+
AND conds2 IS NOT NULL
|
|
294
|
+
)
|
|
295
|
+
) n
|
|
296
|
+
ON o.id = n.id
|
|
297
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
298
|
+
CASE WHEN ROW(n.*) IS NULL OR o.id IS DISTINCT FROM n.id THEN 'id' END ,
|
|
299
|
+
CASE WHEN ROW(n.*) IS NULL OR o.status IS DISTINCT FROM n.status THEN 'status' END ,
|
|
300
|
+
CASE WHEN ROW(n.*) IS NULL OR o.email IS DISTINCT FROM n.email THEN 'email' END
|
|
301
|
+
]) cc
|
|
302
|
+
ON TRUE
|
|
303
|
+
WHERE conds IS NOT NULL
|
|
304
|
+
AND cc IS NOT NULL
|
|
305
|
+
)
|
|
306
|
+
-- SELECT *
|
|
307
|
+
-- FROM result
|
|
308
|
+
SELECT conds
|
|
309
|
+
, array_agg(DISTINCT cc)
|
|
310
|
+
FROM result
|
|
311
|
+
GROUP BY 1
|
|
312
|
+
`;
|
|
313
|
+
/**
|
|
314
|
+
* Test cases:
|
|
315
|
+
*
|
|
316
|
+
1. Condition not present in both tables (cond B).
|
|
317
|
+
Expected result:
|
|
318
|
+
- cond_id_1: [email]
|
|
319
|
+
- cond_status_B_for_id_10: [id, email, status]
|
|
320
|
+
|
|
321
|
+
WITH
|
|
322
|
+
old_table AS (
|
|
323
|
+
SELECT 10 as id, 'A' as status, 100 as val, 'user@example.com' as email UNION ALL
|
|
324
|
+
SELECT 1 as id, 'a' as status, 0 as val, '@dw1' as email -- Original data for other conditions
|
|
325
|
+
),
|
|
326
|
+
new_table AS (
|
|
327
|
+
SELECT 10 as id, 'B' as status, 200 as val, 'user_new@example.com' as email UNION ALL
|
|
328
|
+
SELECT 1 as id, 'a' as status, 0 as val, '@dw12' as email -- Original data for other conditions
|
|
329
|
+
),
|
|
330
|
+
|
|
331
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
332
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
333
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
334
|
+
]) conds
|
|
335
|
+
ON TRUE
|
|
336
|
+
|
|
337
|
+
*/
|
|
224
338
|
//# sourceMappingURL=getDataWatchFunctionQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2B/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;AA1JW,QAAA,yBAAyB,6BA0JpC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoD7B,CAAC"}
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2B/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;AA1JW,QAAA,yBAAyB,6BA0JpC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoD7B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EhC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}
|
|
@@ -21,8 +21,8 @@ type Args = {
|
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
* When subscribing to a view:
|
|
25
|
-
* When subscribing to a table:
|
|
24
|
+
* When subscribing to a view: identify underlying tables to subscribe to them
|
|
25
|
+
* When subscribing to a table: identify joined tables to subscribe to them
|
|
26
26
|
*/
|
|
27
27
|
export async function getSubscribeRelatedTables(
|
|
28
28
|
this: ViewHandler,
|
|
@@ -216,8 +216,9 @@ export async function getSubscribeRelatedTables(
|
|
|
216
216
|
}
|
|
217
217
|
for (const e of newQuery.whereOpts.exists.filter((e) => e.isJoined)) {
|
|
218
218
|
if (!e.isJoined) throw `Not possible`;
|
|
219
|
-
const
|
|
220
|
-
|
|
219
|
+
for (const [index, pathItem] of e.parsedPath.entries()) {
|
|
220
|
+
await pushRelatedTable(pathItem.table, e.parsedPath.slice(0, index + 1));
|
|
221
|
+
}
|
|
221
222
|
}
|
|
222
223
|
if (!viewOptions.relatedTables.length) {
|
|
223
224
|
viewOptions = undefined;
|
|
@@ -144,7 +144,7 @@ export async function parseUpdateRules(
|
|
|
144
144
|
});
|
|
145
145
|
if (forcedData) {
|
|
146
146
|
try {
|
|
147
|
-
const { data, allowedCols } =
|
|
147
|
+
const { data, allowedCols } = prepareNewData({
|
|
148
148
|
row: forcedData,
|
|
149
149
|
forcedData: undefined,
|
|
150
150
|
allowedFields: "*",
|
|
@@ -219,3 +219,119 @@ IF TG_OP = 'UPDATE' THEN
|
|
|
219
219
|
END IF;
|
|
220
220
|
|
|
221
221
|
`;
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Given:
|
|
225
|
+
* 1. two transition tables (old_table and new_table)
|
|
226
|
+
* 2. a list of primary keys
|
|
227
|
+
* 3. a list of trigger conditions and their tracked columns
|
|
228
|
+
*
|
|
229
|
+
* Identify which conditions which columns have changed for each condition.
|
|
230
|
+
* - If a condition is met in only one of the transition tables, it is considered that all columns changed for that condition
|
|
231
|
+
* - If a condition is met in both transition tables, we need to check which columns have changed
|
|
232
|
+
*/
|
|
233
|
+
const CHANGED_COLUMNS_CHECK_V2 = `
|
|
234
|
+
WITH
|
|
235
|
+
old_table AS (
|
|
236
|
+
SELECT 10 as id, 'A' as status, 100 as val, 'user@example.com' as email UNION ALL
|
|
237
|
+
SELECT 1 as id, 'a' as status, 0 as val, '@dw1' as email -- Original data for other conditions
|
|
238
|
+
),
|
|
239
|
+
new_table AS (
|
|
240
|
+
SELECT 10 as id, 'B' as status, 200 as val, 'user_new@example.com' as email UNION ALL
|
|
241
|
+
SELECT 1 as id, 'a' as status, 0 as val, '@dw12' as email -- Original data for other conditions
|
|
242
|
+
),
|
|
243
|
+
unioned_tables AS (
|
|
244
|
+
SELECT *, 'old' as "ctid" FROM old_table UNION ALL
|
|
245
|
+
SELECT *, 'old' as "ctid" FROM new_table
|
|
246
|
+
),
|
|
247
|
+
changed_conditions AS (
|
|
248
|
+
SELECT o.*, cond
|
|
249
|
+
FROM unioned_tables o
|
|
250
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
251
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
252
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
253
|
+
]) cond
|
|
254
|
+
ON TRUE
|
|
255
|
+
),
|
|
256
|
+
result AS (
|
|
257
|
+
SELECT o.*, n.*, conds, cc
|
|
258
|
+
FROM unioned_tables o
|
|
259
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
260
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
261
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
262
|
+
]) conds
|
|
263
|
+
ON TRUE
|
|
264
|
+
/**
|
|
265
|
+
* Join only to records AND conditions that exist in both tables.
|
|
266
|
+
* This will inevitably show which columns changed for matching rows.
|
|
267
|
+
* Non matching rows will show that all columns changed
|
|
268
|
+
*/
|
|
269
|
+
LEFT JOIN (
|
|
270
|
+
SELECT *
|
|
271
|
+
FROM unioned_tables ut
|
|
272
|
+
WHERE EXISTS (
|
|
273
|
+
SELECT 1
|
|
274
|
+
FROM old_table _ot
|
|
275
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
276
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
277
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
278
|
+
]) conds2
|
|
279
|
+
ON TRUE
|
|
280
|
+
WHERE _ot.id = ut.id
|
|
281
|
+
AND conds2 IS NOT NULL
|
|
282
|
+
)
|
|
283
|
+
AND EXISTS (
|
|
284
|
+
select 1
|
|
285
|
+
from new_table _nt
|
|
286
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
287
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
288
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
289
|
+
]) conds2
|
|
290
|
+
ON TRUE
|
|
291
|
+
WHERE _nt.id = ut.id
|
|
292
|
+
AND conds2 IS NOT NULL
|
|
293
|
+
)
|
|
294
|
+
) n
|
|
295
|
+
ON o.id = n.id
|
|
296
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
297
|
+
CASE WHEN ROW(n.*) IS NULL OR o.id IS DISTINCT FROM n.id THEN 'id' END ,
|
|
298
|
+
CASE WHEN ROW(n.*) IS NULL OR o.status IS DISTINCT FROM n.status THEN 'status' END ,
|
|
299
|
+
CASE WHEN ROW(n.*) IS NULL OR o.email IS DISTINCT FROM n.email THEN 'email' END
|
|
300
|
+
]) cc
|
|
301
|
+
ON TRUE
|
|
302
|
+
WHERE conds IS NOT NULL
|
|
303
|
+
AND cc IS NOT NULL
|
|
304
|
+
)
|
|
305
|
+
-- SELECT *
|
|
306
|
+
-- FROM result
|
|
307
|
+
SELECT conds
|
|
308
|
+
, array_agg(DISTINCT cc)
|
|
309
|
+
FROM result
|
|
310
|
+
GROUP BY 1
|
|
311
|
+
`;
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Test cases:
|
|
315
|
+
*
|
|
316
|
+
1. Condition not present in both tables (cond B).
|
|
317
|
+
Expected result:
|
|
318
|
+
- cond_id_1: [email]
|
|
319
|
+
- cond_status_B_for_id_10: [id, email, status]
|
|
320
|
+
|
|
321
|
+
WITH
|
|
322
|
+
old_table AS (
|
|
323
|
+
SELECT 10 as id, 'A' as status, 100 as val, 'user@example.com' as email UNION ALL
|
|
324
|
+
SELECT 1 as id, 'a' as status, 0 as val, '@dw1' as email -- Original data for other conditions
|
|
325
|
+
),
|
|
326
|
+
new_table AS (
|
|
327
|
+
SELECT 10 as id, 'B' as status, 200 as val, 'user_new@example.com' as email UNION ALL
|
|
328
|
+
SELECT 1 as id, 'a' as status, 0 as val, '@dw12' as email -- Original data for other conditions
|
|
329
|
+
),
|
|
330
|
+
|
|
331
|
+
LEFT JOIN UNNEST(ARRAY[
|
|
332
|
+
CASE WHEN id = 1 THEN 'cond_id_1' END, -- Original condition
|
|
333
|
+
CASE WHEN status = 'B' AND id = 10 THEN 'cond_status_B_for_id_10' END -- Condition specific to new state of updated row
|
|
334
|
+
]) conds
|
|
335
|
+
ON TRUE
|
|
336
|
+
|
|
337
|
+
*/
|