prostgles-server 3.0.150 → 3.0.152

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.
@@ -0,0 +1,20 @@
1
+ import { AnyObject, SubscribeParams } from "prostgles-types";
2
+ import { ExistsFilterConfig, Filter, LocalParams } from "../DboBuilder";
3
+ import { TableRule } from "../PublishParser";
4
+ import { ViewSubscriptionOptions } from "../PubSubManager/PubSubManager";
5
+ import { ViewHandler } from "./ViewHandler";
6
+ type Args = {
7
+ selectParams: Omit<SubscribeParams<any>, "throttle">;
8
+ filter: Filter;
9
+ table_rules: TableRule<AnyObject, void> | undefined;
10
+ localParams: LocalParams | undefined;
11
+ condition: string;
12
+ filterOpts: {
13
+ where: string;
14
+ filter: AnyObject;
15
+ exists: ExistsFilterConfig[];
16
+ };
17
+ };
18
+ export declare function getSubscribeRelatedTables(this: ViewHandler, { selectParams, filter, localParams, table_rules, condition, filterOpts }: Args): Promise<ViewSubscriptionOptions | undefined>;
19
+ export {};
20
+ //# sourceMappingURL=getSubscribeRelatedTables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSubscribeRelatedTables.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/getSubscribeRelatedTables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAwB,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAO,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,IAAI,GAAG;IACV,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IACpD,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,SAAS,CAAC;QAClB,MAAM,EAAE,kBAAkB,EAAE,CAAC;KAC9B,CAAC;CACH,CAAA;AACD,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,IAAI,gDAmKjJ"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSubscribeRelatedTables = void 0;
4
+ const prostgles_types_1 = require("prostgles-types");
5
+ const DboBuilder_1 = require("../DboBuilder");
6
+ const PubSubManager_1 = require("../PubSubManager/PubSubManager");
7
+ async function getSubscribeRelatedTables({ selectParams, filter, localParams, table_rules, condition, filterOpts }) {
8
+ let viewOptions = undefined;
9
+ if (this.is_view) {
10
+ const viewName = this.name;
11
+ const viewNameEscaped = this.escapedName;
12
+ const { current_schema } = await this.db.oneOrNone("SELECT current_schema");
13
+ /** Get list of used columns and their parent tables */
14
+ let { def } = (await this.db.oneOrNone("SELECT pg_get_viewdef(${viewName}) as def", { viewName }));
15
+ def = def.trim();
16
+ if (def.endsWith(";")) {
17
+ def = def.slice(0, -1);
18
+ }
19
+ if (!def || typeof def !== "string") {
20
+ throw (0, DboBuilder_1.makeErrorFromPGError)("Could get view definition");
21
+ }
22
+ const { fields } = await this.dboBuilder.dbo.sql(`SELECT * FROM ( \n ${def} \n ) prostgles_subscribe_view_definition LIMIT 0`, {});
23
+ const tableColumns = fields.filter(f => f.tableName && f.columnName);
24
+ /** Create exists filters for each table */
25
+ const tableIds = Array.from(new Set(tableColumns.map(tc => tc.tableID.toString())));
26
+ viewOptions = {
27
+ type: "view",
28
+ viewName,
29
+ definition: def,
30
+ relatedTables: []
31
+ };
32
+ viewOptions.relatedTables = await Promise.all(tableIds.map(async (tableID) => {
33
+ const table = this.dboBuilder.USER_TABLES.find(t => t.relid === +tableID);
34
+ let tableCols = tableColumns.filter(tc => tc.tableID.toString() === tableID);
35
+ /** If table has primary keys and they are all in this view then use only primary keys */
36
+ if (table?.pkey_columns?.every(pkey => tableCols.some(c => c.columnName === pkey))) {
37
+ tableCols = tableCols.filter(c => table?.pkey_columns?.includes(c.columnName));
38
+ }
39
+ else {
40
+ /** Exclude non comparable data types */
41
+ tableCols = tableCols.filter(c => !["json", "xml"].includes(c.udt_name));
42
+ }
43
+ const { relname: tableName, schemaname: tableSchema } = table;
44
+ if (tableCols.length) {
45
+ const tableNameEscaped = tableSchema === current_schema ? table.relname : [tableSchema, tableName].map(v => JSON.stringify(v)).join(".");
46
+ const fullCondition = `EXISTS (
47
+ SELECT 1
48
+ FROM ${viewNameEscaped}
49
+ WHERE ${tableCols.map(c => `${tableNameEscaped}.${JSON.stringify(c.columnName)} = ${viewNameEscaped}.${JSON.stringify(c.name)}`).join(" AND \n")}
50
+ AND ${condition || "TRUE"}
51
+ )`;
52
+ try {
53
+ const { count } = await this.db.oneOrNone(`
54
+ WITH ${(0, prostgles_types_1.asName)(tableName)} AS (
55
+ SELECT *
56
+ FROM ${(0, prostgles_types_1.asName)(tableName)}
57
+ LIMIT 0
58
+ )
59
+
60
+ SELECT COUNT(*) as count
61
+ FROM (
62
+ ${def}
63
+ ) prostgles_view_ref_table_test
64
+ `);
65
+ const relatedTableSubscription = {
66
+ tableName: tableName,
67
+ tableNameEscaped,
68
+ condition: fullCondition,
69
+ };
70
+ if (count.toString() === '0') {
71
+ return relatedTableSubscription;
72
+ }
73
+ }
74
+ catch (e) {
75
+ (0, PubSubManager_1.log)(`Could not not override subscribed view (${this.name}) table (${tableName}). Will not check condition`, e);
76
+ }
77
+ }
78
+ return {
79
+ tableName,
80
+ tableNameEscaped: JSON.stringify(tableName),
81
+ condition: "TRUE"
82
+ };
83
+ }));
84
+ /** Get list of remaining used inner tables */
85
+ const allUsedTables = await this.db.any("SELECT distinct table_name, table_schema FROM information_schema.view_column_usage WHERE view_name = ${viewName}", { viewName });
86
+ /** Remaining tables will have listeners on all records (condition = "TRUE") */
87
+ const remainingInnerTables = allUsedTables.filter(at => !tableColumns.some(dc => dc.tableName === at.table_name && dc.tableSchema === at.table_schema));
88
+ viewOptions.relatedTables = [
89
+ ...viewOptions.relatedTables,
90
+ ...remainingInnerTables.map(t => ({
91
+ tableName: t.table_name,
92
+ tableNameEscaped: [t.table_name, t.table_schema].map(v => JSON.stringify(v)).join("."),
93
+ condition: "TRUE"
94
+ }))
95
+ ];
96
+ if (!viewOptions.relatedTables.length) {
97
+ throw "Could not subscribe to this view: no related tables found";
98
+ }
99
+ /** Any joined table used within select or filter must also be added a trigger for this recordset */
100
+ }
101
+ else {
102
+ const newQuery = await this.find(filter, { ...selectParams, limit: 0 }, undefined, table_rules, { ...localParams, returnNewQuery: true });
103
+ viewOptions = {
104
+ type: "table",
105
+ relatedTables: []
106
+ };
107
+ /**
108
+ * Avoid nested exists error. Will affect performance
109
+ */
110
+ const nonExistsFilter = filterOpts.exists.length ? {} : filter;
111
+ for await (const j of (newQuery.joins ?? [])) {
112
+ if (!viewOptions.relatedTables.find(rt => rt.tableName === j.table)) {
113
+ viewOptions.relatedTables.push({
114
+ tableName: j.table,
115
+ tableNameEscaped: (0, prostgles_types_1.asName)(j.table),
116
+ condition: (await this.dboBuilder.dbo[j.table].prepareWhere({
117
+ filter: {
118
+ $existsJoined: {
119
+ [[this.name, ...j.$path ?? [].slice(0).reverse()].join(".")]: nonExistsFilter
120
+ }
121
+ },
122
+ addKeywords: false,
123
+ localParams: undefined,
124
+ tableRule: undefined
125
+ })).where
126
+ });
127
+ }
128
+ }
129
+ for await (const e of newQuery.whereOpts.exists) {
130
+ const eTable = e.tables.at(-1);
131
+ viewOptions.relatedTables.push({
132
+ tableName: eTable,
133
+ tableNameEscaped: (0, prostgles_types_1.asName)(eTable),
134
+ condition: (await this.dboBuilder.dbo[eTable].prepareWhere({
135
+ filter: {
136
+ $existsJoined: {
137
+ [[this.name, ...e.tables ?? [].slice(0, -1).reverse()].join(".")]: nonExistsFilter
138
+ }
139
+ },
140
+ addKeywords: false,
141
+ localParams: undefined,
142
+ tableRule: undefined
143
+ })).where
144
+ });
145
+ }
146
+ if (!viewOptions.relatedTables.length) {
147
+ viewOptions = undefined;
148
+ }
149
+ }
150
+ return viewOptions;
151
+ }
152
+ exports.getSubscribeRelatedTables = getSubscribeRelatedTables;
153
+ //# sourceMappingURL=getSubscribeRelatedTables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSubscribeRelatedTables.js","sourceRoot":"","sources":["../../lib/DboBuilder/getSubscribeRelatedTables.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/insert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAqC,YAAY,EAAY,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,WAAW,EAAyC,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,wBAAsB,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,CAqL1N"}
1
+ {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/insert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAqC,YAAY,EAAY,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,WAAW,EAAyC,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,wBAAsB,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,CAsL1N"}
@@ -77,7 +77,7 @@ async function insert(rowOrRows, param2, param3_unused, tableRules, localParams)
77
77
  fullReturning.concat(originalReturning.filter(s => !fullReturning.some(f => f.alias === s.alias)));
78
78
  const finalSelect = tableRules?.[ACTION]?.postValidate ? fullReturning : originalReturning;
79
79
  const returningSelect = this.makeReturnQuery(finalSelect);
80
- const makeQuery = async (_row, isOne = false) => {
80
+ const makeQuery = async (_row) => {
81
81
  const row = { ..._row };
82
82
  if (!(0, prostgles_types_1.isObject)(row)) {
83
83
  console.trace(row);
@@ -85,9 +85,6 @@ async function insert(rowOrRows, param2, param3_unused, tableRules, localParams)
85
85
  }
86
86
  const { data, allowedCols } = this.validateNewData({ row, forcedData, allowedFields: fields, tableRules, fixIssues });
87
87
  const _data = { ...data };
88
- if (Array.isArray(_data) && !_data.length) {
89
- throw "Emprty insert. Provide data";
90
- }
91
88
  let insertQ = "";
92
89
  if (!Array.isArray(_data) && !(0, prostgles_types_1.getKeys)(_data).length || Array.isArray(_data) && !_data.length) {
93
90
  await tableRules?.[ACTION]?.validate?.(_data, this.dbTX || this.dboBuilder.dbo);
@@ -110,6 +107,9 @@ async function insert(rowOrRows, param2, param3_unused, tableRules, localParams)
110
107
  return insertResult;
111
108
  }
112
109
  if (Array.isArray(data)) {
110
+ if (!data.length) {
111
+ throw "Empty insert. Provide data";
112
+ }
113
113
  const queries = await Promise.all(data.map(async (p) => {
114
114
  const q = await makeQuery(p);
115
115
  return q;
@@ -119,7 +119,7 @@ async function insert(rowOrRows, param2, param3_unused, tableRules, localParams)
119
119
  queryType = "many";
120
120
  }
121
121
  else {
122
- query = await makeQuery(data, true);
122
+ query = await makeQuery(data);
123
123
  if (returningSelect)
124
124
  queryType = "one";
125
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../lib/DboBuilder/insert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../lib/DboBuilder/insert.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAoC,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC;AAEpD,iBAAe,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,GAAG,CAAA;CAAE,CAAC,CAAA;AAC/I,iBAAe,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,GAAG,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAwPzL,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAc,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC;AAEpD,iBAAe,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,GAAG,CAAA;CAAE,CAAC,CAAA;AAC/I,iBAAe,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,GAAG,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAsFzL,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.subscribe = void 0;
4
- const prostgles_types_1 = require("prostgles-types");
5
4
  const DboBuilder_1 = require("../DboBuilder");
6
5
  const PubSubManager_1 = require("../PubSubManager/PubSubManager");
6
+ const getSubscribeRelatedTables_1 = require("./getSubscribeRelatedTables");
7
7
  async function subscribe(filter, params, localFunc, table_rules, localParams) {
8
8
  try {
9
9
  // if (this.is_view) throw "Cannot subscribe to a view";
@@ -25,186 +25,40 @@ async function subscribe(filter, params, localFunc, table_rules, localParams) {
25
25
  if (filterSize * 4 > 2704) {
26
26
  throw "filter too big. Might exceed the btree version 4 maximum 2704. Use a primary key or a $rowhash filter instead";
27
27
  }
28
+ if (!this.dboBuilder.prostgles.isSuperUser) {
29
+ throw "Subscribe not possible. Must be superuser to add triggers 1856";
30
+ }
31
+ /** Ensure request is valid */
32
+ await this.find(filter, { ...selectParams, limit: 0 }, undefined, table_rules, localParams);
33
+ const viewOptions = await getSubscribeRelatedTables_1.getSubscribeRelatedTables.bind(this)({ filter, selectParams, table_rules, localParams, condition, filterOpts });
34
+ const commonSubOpts = {
35
+ table_info: this.tableOrViewInfo,
36
+ viewOptions,
37
+ table_rules,
38
+ condition,
39
+ table_name: this.name,
40
+ filter: { ...filter },
41
+ params: { ...selectParams },
42
+ throttle,
43
+ last_throttled: 0,
44
+ };
28
45
  if (!localFunc) {
29
- if (!this.dboBuilder.prostgles.isSuperUser) {
30
- throw "Subscribe not possible. Must be superuser to add triggers 1856";
31
- }
32
- return await this.find(filter, { ...selectParams, limit: 0 }, undefined, table_rules, localParams)
33
- .then(async (_isValid) => {
34
- let viewOptions = undefined;
35
- if (this.is_view) {
36
- const viewName = this.name;
37
- const viewNameEscaped = this.escapedName;
38
- const { current_schema } = await this.db.oneOrNone("SELECT current_schema");
39
- /** Get list of used columns and their parent tables */
40
- let { def } = (await this.db.oneOrNone("SELECT pg_get_viewdef(${viewName}) as def", { viewName }));
41
- def = def.trim();
42
- if (def.endsWith(";")) {
43
- def = def.slice(0, -1);
44
- }
45
- if (!def || typeof def !== "string") {
46
- throw (0, DboBuilder_1.makeErrorFromPGError)("Could get view definition");
47
- }
48
- const { fields } = await this.dboBuilder.dbo.sql(`SELECT * FROM ( \n ${def} \n ) prostgles_subscribe_view_definition LIMIT 0`, {});
49
- const tableColumns = fields.filter(f => f.tableName && f.columnName);
50
- /** Create exists filters for each table */
51
- const tableIds = Array.from(new Set(tableColumns.map(tc => tc.tableID.toString())));
52
- viewOptions = {
53
- type: "view",
54
- viewName,
55
- definition: def,
56
- relatedTables: []
57
- };
58
- viewOptions.relatedTables = await Promise.all(tableIds.map(async (tableID) => {
59
- const table = this.dboBuilder.USER_TABLES.find(t => t.relid === +tableID);
60
- let tableCols = tableColumns.filter(tc => tc.tableID.toString() === tableID);
61
- /** If table has primary keys and they are all in this view then use only primary keys */
62
- if (table?.pkey_columns?.every(pkey => tableCols.some(c => c.columnName === pkey))) {
63
- tableCols = tableCols.filter(c => table?.pkey_columns?.includes(c.columnName));
64
- }
65
- else {
66
- /** Exclude non comparable data types */
67
- tableCols = tableCols.filter(c => !["json", "xml"].includes(c.udt_name));
68
- }
69
- const { relname: tableName, schemaname: tableSchema } = table;
70
- if (tableCols.length) {
71
- const tableNameEscaped = tableSchema === current_schema ? table.relname : [tableSchema, tableName].map(v => JSON.stringify(v)).join(".");
72
- const fullCondition = `EXISTS (
73
- SELECT 1
74
- FROM ${viewNameEscaped}
75
- WHERE ${tableCols.map(c => `${tableNameEscaped}.${JSON.stringify(c.columnName)} = ${viewNameEscaped}.${JSON.stringify(c.name)}`).join(" AND \n")}
76
- AND ${condition || "TRUE"}
77
- )`;
78
- try {
79
- const { count } = await this.db.oneOrNone(`
80
- WITH ${(0, prostgles_types_1.asName)(tableName)} AS (
81
- SELECT *
82
- FROM ${(0, prostgles_types_1.asName)(tableName)}
83
- LIMIT 0
84
- )
85
-
86
- SELECT COUNT(*) as count
87
- FROM (
88
- ${def}
89
- ) prostgles_view_ref_table_test
90
- `);
91
- const relatedTableSubscription = {
92
- tableName: tableName,
93
- tableNameEscaped,
94
- condition: fullCondition,
95
- };
96
- if (count.toString() === '0') {
97
- return relatedTableSubscription;
98
- }
99
- }
100
- catch (e) {
101
- (0, PubSubManager_1.log)(`Could not not override subscribed view (${this.name}) table (${tableName}). Will not check condition`, e);
102
- }
103
- }
104
- return {
105
- tableName,
106
- tableNameEscaped: JSON.stringify(tableName),
107
- condition: "TRUE"
108
- };
109
- }));
110
- /** Get list of remaining used inner tables */
111
- const allUsedTables = await this.db.any("SELECT distinct table_name, table_schema FROM information_schema.view_column_usage WHERE view_name = ${viewName}", { viewName });
112
- /** Remaining tables will have listeners on all records (condition = "TRUE") */
113
- const remainingInnerTables = allUsedTables.filter(at => !tableColumns.some(dc => dc.tableName === at.table_name && dc.tableSchema === at.table_schema));
114
- viewOptions.relatedTables = [
115
- ...viewOptions.relatedTables,
116
- ...remainingInnerTables.map(t => ({
117
- tableName: t.table_name,
118
- tableNameEscaped: [t.table_name, t.table_schema].map(v => JSON.stringify(v)).join("."),
119
- condition: "TRUE"
120
- }))
121
- ];
122
- if (!viewOptions.relatedTables.length) {
123
- throw "Could not subscribe to this view: no related tables found";
124
- }
125
- }
126
- /** Any joined table used within select or filter must also be added a trigger for this recordset */
127
- if (!this.is_view) {
128
- const newQuery = await this.find(filter, { ...selectParams, limit: 0 }, undefined, table_rules, { ...localParams, returnNewQuery: true });
129
- viewOptions = {
130
- type: "table",
131
- relatedTables: []
132
- };
133
- /**
134
- * Avoid nested exists error. Will affect performance
135
- */
136
- const nonExistsFilter = filterOpts.exists.length ? {} : filter;
137
- for await (const j of (newQuery.joins ?? [])) {
138
- if (!viewOptions.relatedTables.find(rt => rt.tableName === j.table)) {
139
- viewOptions.relatedTables.push({
140
- tableName: j.table,
141
- tableNameEscaped: (0, prostgles_types_1.asName)(j.table),
142
- condition: (await this.dboBuilder.dbo[j.table].prepareWhere({
143
- filter: {
144
- $existsJoined: {
145
- [[this.name, ...j.$path ?? [].slice(0).reverse()].join(".")]: nonExistsFilter
146
- }
147
- },
148
- addKeywords: false,
149
- localParams: undefined,
150
- tableRule: undefined
151
- })).where
152
- });
153
- }
154
- }
155
- for await (const e of newQuery.whereOpts.exists) {
156
- const eTable = e.tables.at(-1);
157
- viewOptions.relatedTables.push({
158
- tableName: eTable,
159
- tableNameEscaped: (0, prostgles_types_1.asName)(eTable),
160
- condition: (await this.dboBuilder.dbo[eTable].prepareWhere({
161
- filter: {
162
- $existsJoined: {
163
- [[this.name, ...e.tables ?? [].slice(0, -1).reverse()].join(".")]: nonExistsFilter
164
- }
165
- },
166
- addKeywords: false,
167
- localParams: undefined,
168
- tableRule: undefined
169
- })).where
170
- });
171
- }
172
- if (!viewOptions.relatedTables.length) {
173
- viewOptions = undefined;
174
- }
175
- }
176
- const { socket } = localParams ?? {};
177
- const pubSubManager = await this.dboBuilder.getPubSubManager();
178
- return pubSubManager.addSub({
179
- table_info: this.tableOrViewInfo,
180
- socket,
181
- table_rules,
182
- table_name: this.name,
183
- condition: condition,
184
- viewOptions,
185
- func: undefined,
186
- filter: { ...filter },
187
- params: { ...selectParams },
188
- socket_id: socket?.id,
189
- throttle,
190
- last_throttled: 0,
191
- }).then(channelName => ({ channelName }));
192
- });
46
+ const { socket } = localParams ?? {};
47
+ const pubSubManager = await this.dboBuilder.getPubSubManager();
48
+ return pubSubManager.addSub({
49
+ ...commonSubOpts,
50
+ socket,
51
+ func: undefined,
52
+ socket_id: socket?.id,
53
+ }).then(channelName => ({ channelName }));
193
54
  }
194
55
  else {
195
56
  const pubSubManager = await this.dboBuilder.getPubSubManager();
196
57
  pubSubManager.addSub({
197
- table_info: this.tableOrViewInfo,
58
+ ...commonSubOpts,
198
59
  socket: undefined,
199
- table_rules,
200
- condition,
201
60
  func: localFunc,
202
- filter: { ...filter },
203
- params: { ...selectParams },
204
61
  socket_id: undefined,
205
- table_name: this.name,
206
- throttle,
207
- last_throttled: 0,
208
62
  }).then(channelName => ({ channelName }));
209
63
  const unsubscribe = async () => {
210
64
  const pubSubManager = await this.dboBuilder.getPubSubManager();
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../lib/DboBuilder/subscribe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../lib/DboBuilder/subscribe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { AnyObject, SubscribeParams } from "prostgles-types";
2
+ import { ExistsFilterConfig, Filter, LocalParams } from "../DboBuilder";
3
+ import { TableRule } from "../PublishParser";
4
+ import { ViewSubscriptionOptions } from "../PubSubManager/PubSubManager";
5
+ import { ViewHandler } from "./ViewHandler";
6
+ type Args = {
7
+ selectParams: Omit<SubscribeParams<any>, "throttle">;
8
+ filter: Filter;
9
+ table_rules: TableRule<AnyObject, void> | undefined;
10
+ localParams: LocalParams | undefined;
11
+ condition: string;
12
+ filterOpts: {
13
+ where: string;
14
+ filter: AnyObject;
15
+ exists: ExistsFilterConfig[];
16
+ };
17
+ };
18
+ export declare function getSubscribeRelatedTables(this: ViewHandler, { selectParams, filter, localParams, table_rules, condition, filterOpts }: Args): Promise<ViewSubscriptionOptions>;
19
+ export {};
20
+ //# sourceMappingURL=getSubscribeRelatedTables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSubscribeRelatedTables.d.ts","sourceRoot":"","sources":["getSubscribeRelatedTables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAwB,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAO,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,IAAI,GAAG;IACV,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IACpD,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,SAAS,CAAC;QAClB,MAAM,EAAE,kBAAkB,EAAE,CAAC;KAC9B,CAAC;CACH,CAAA;AACD,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,IAAI,oCAmKjJ"}