prostgles-server 4.2.300 → 4.2.301

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.
@@ -114,6 +114,9 @@ const getColumnsInfo = ({ tracked_columns, table_name }, tableHandler) => {
114
114
  throw `tracked_columns ${colName} not found in table ${table_name}`;
115
115
  }
116
116
  });
117
+ /**
118
+ * TODO: finish tracked_columns by trigger condition
119
+ */
117
120
  const columns_info = !hasPkey || !cols || !tracked_columns?.length || tracked_columns.length === cols.length ?
118
121
  null
119
122
  : {
@@ -121,12 +124,12 @@ const getColumnsInfo = ({ tracked_columns, table_name }, tableHandler) => {
121
124
  .filter((c) => c.is_pkey)
122
125
  .map((c) => `n.${(0, prostgles_types_1.asName)(c.name)} = o.${(0, prostgles_types_1.asName)(c.name)}`)
123
126
  .join(" AND "),
124
- tracked_columns: tracked_columns.reduce((acc, colName) => ({
127
+ tracked_columns: cols.reduce((acc, { name }) => ({
125
128
  ...acc,
126
- [colName]: 1,
129
+ [name]: 1,
127
130
  }), {}),
128
131
  where_statement: cols
129
- .filter((c) => !c.is_pkey && tracked_columns.includes(c.name))
132
+ // .filter((c) => !c.is_pkey && tracked_columns.includes(c.name))
130
133
  .map((c) => `column_name = ${(0, PubSubManagerUtils_1.asValue)(c.name)} AND (ROW(n.*) IS NULL OR 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
134
  .join(" OR \n"),
132
135
  };
@@ -1 +1 @@
1
- {"version":3,"file":"addTrigger.js","sourceRoot":"","sources":["../../lib/PubSubManager/addTrigger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addTrigger.js","sourceRoot":"","sources":["../../lib/PubSubManager/addTrigger.ts"],"names":[],"mappings":";;;AAAA,qDAA+D;AAE/D,iCAAiC;AAEjC,6DAAmF;AACnF,gFAAqF;AAQ9E,KAAK,UAAU,UAAU,CAE9B,MAAwB,EACxB,WAAgD,EAChD,MAAgC;IAEhC,MAAM,YAAY,GAAG,MAAM,IAAA,4BAAU,EAAC,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QACrC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU;YAAE,MAAM,oBAAoB,CAAC;QAC5C,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC3C,SAAS,GAAG,MAAM,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;YACxD,MAAM,mHAAmH,CAAC;QAC5H,CAAC;QAED,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,IAAA,4BAAO,EAAC,UAAU,CAAC;YACxB,IAAI,EAAE,IAAA,4BAAO,EAAC,SAAS,CAAC;YACxB,QAAQ,EAAE,IAAA,4BAAO,EAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC5E,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,wCAAwC,UAAU,YAAY,CAAC;QACvE,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,GAAG,CAAC;;WAED,uDAAkC;;;;;;uBAMtB,IAAA,4BAAO,EAAC,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;UAkBhC,OAAO,CAAC,GAAG;UACX,OAAO,CAAC,IAAI;UACZ,OAAO,CAAC,QAAQ;UAChB,IAAA,4BAAO,EAAC,IAAI,CAAC,KAAK,CAAC;UACnB,IAAA,4BAAO,EAAC,WAAW,EAAE,QAAQ,IAAI,IAAI,CAAC;UACtC,IAAA,4BAAO,EAAC,WAAW,EAAE,UAAU,IAAI,IAAI,CAAC;UACxC,IAAA,4BAAO,EAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;;;;;;;;;;;;;;;KAelD,CAAC,CACD,CAAC;QAEF,6DAA6D;QAC7D,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,SAAS;QACtD,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,QAAQ,EAAE,MAAM,EAAE,EAAE;QACpB,KAAK,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QAC9C,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/E,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU;QACtD,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,WAAW,EAAE,MAAM,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE;QAChD,QAAQ,EAAE,IAAI,CAAC,SAAS;KACzB,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,KAAK;QAAE,MAAM,YAAY,CAAC,KAAK,CAAC;IAEjD,OAAO,YAAY,CAAC;AACtB,CAAC;AAxGD,gCAwGC;AAED,MAAM,cAAc,GAAG,CACrB,EAAE,eAAe,EAAE,UAAU,EAAoB,EACjD,YAAmC,EACnC,EAAE;IACF,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,6CAA6C,CAAC;IACtD,CAAC;IAED,IAAI,OAAO,GAAG,KAAgB,CAAC;IAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3C,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;QAC/B,OAAO;YACL,GAAG,IAAA,0BAAQ,EAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACnC,OAAO,EAAE,6DAAiC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;SAChF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,eAAe,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,mBAAmB,OAAO,uBAAuB,UAAU,EAAE,CAAC;QACtE,CAAC;IACH,CAAC,CAAC,CAAC;IACH;;OAEG;IACH,MAAM,YAAY,GAChB,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,eAAe,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;QACvF,IAAI;QACN,CAAC,CAAC;YACE,cAAc,EAAE,IAAI;iBACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;iBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAA,wBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAA,wBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;iBACvD,IAAI,CAAC,OAAO,CAAC;YAChB,eAAe,EAAE,IAAI,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClB,GAAG,GAAG;gBACN,CAAC,IAAI,CAAC,EAAE,CAAC;aACV,CAAC,EACF,EAA4B,CAC7B;YACD,eAAe,EAAE,IAAI;gBACnB,iEAAiE;iBAChE,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,iBAAiB,IAAA,4BAAO,EAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,IAAA,wBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,uBAAuB,IAAA,wBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAChJ;iBACA,IAAI,CAAC,QAAQ,CAAC;SAClB,CAAC;IAEN,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
@@ -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,WA4JvE,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"}
@@ -33,9 +33,7 @@ const getDataWatchFunctionQuery = (debugMode) => {
33
33
 
34
34
  DECLARE _columns_info JSONB := NULL;
35
35
 
36
- DECLARE changed_columns _TEXT := NULL;
37
-
38
- DECLARE tracked_columns _TEXT := NULL;
36
+ DECLARE changed_columns _TEXT := NULL;
39
37
 
40
38
  BEGIN
41
39
 
@@ -173,21 +171,14 @@ exports.getDataWatchFunctionQuery = getDataWatchFunctionQuery;
173
171
  const CHANGED_COLUMNS_CHECK = `
174
172
  -- Determine changed columns for UPDATE operations
175
173
  IF TG_OP = 'UPDATE' THEN
176
-
177
- WITH cte1 AS (
178
- SELECT array_agg(DISTINCT col) AS cols
179
- FROM prostgles.v_triggers
180
- LEFT JOIN LATERAL jsonb_object_keys(columns_info ->'tracked_columns') col
181
- ON TRUE
174
+
175
+ IF NOT EXISTS (
176
+ SELECT 1
177
+ FROM prostgles.v_triggers
182
178
  WHERE table_name = escaped_table
183
- )
184
- SELECT cols
185
- INTO tracked_columns
186
- FROM cte1
187
- /* If any value is null it means that specific condition is tracking all columns so we need to check them all */
188
- WHERE array_position(cols, null) IS NULL;
189
-
190
- IF tracked_columns IS NOT NULL THEN
179
+ /* If any value is null it means some condition is tracking all columns so we need to check them all */
180
+ AND columns_info IS NULL
181
+ ) THEN
191
182
 
192
183
  SELECT columns_info
193
184
  INTO _columns_info
@@ -200,7 +191,7 @@ IF TG_OP = 'UPDATE' THEN
200
191
  $c$
201
192
  WITH changed AS (
202
193
  SELECT column_name
203
- FROM unnest(%L::_TEXT) as column_name
194
+ FROM jsonb_object_keys(%L) as column_name
204
195
  WHERE EXISTS (
205
196
  SELECT 1
206
197
  FROM old_table o
@@ -212,7 +203,7 @@ IF TG_OP = 'UPDATE' THEN
212
203
  SELECT array_agg(column_name)
213
204
  FROM changed;
214
205
  $c$,
215
- tracked_columns,
206
+ _columns_info->'tracked_columns',
216
207
  _columns_info->>'join_condition',
217
208
  _columns_info->>'where_statement'
218
209
  );
@@ -223,10 +214,6 @@ IF TG_OP = 'UPDATE' THEN
223
214
 
224
215
  /* It is possible to get no changes */
225
216
  changed_columns := COALESCE(changed_columns, '{}');
226
-
227
- IF NOT starts_with(changed_columns::TEXT, '{') THEN
228
- RAISE EXCEPTION 'changed_columns is not a JSON array: %', changed_columns;
229
- END IF;
230
217
 
231
218
  END IF;
232
219
 
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6B/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;AA5JW,QAAA,yBAAyB,6BA4JpC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D7B,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"}
@@ -138,6 +138,9 @@ const getColumnsInfo = (
138
138
  throw `tracked_columns ${colName} not found in table ${table_name}`;
139
139
  }
140
140
  });
141
+ /**
142
+ * TODO: finish tracked_columns by trigger condition
143
+ */
141
144
  const columns_info =
142
145
  !hasPkey || !cols || !tracked_columns?.length || tracked_columns.length === cols.length ?
143
146
  null
@@ -146,15 +149,15 @@ const getColumnsInfo = (
146
149
  .filter((c) => c.is_pkey)
147
150
  .map((c) => `n.${asName(c.name)} = o.${asName(c.name)}`)
148
151
  .join(" AND "),
149
- tracked_columns: tracked_columns.reduce(
150
- (acc, colName) => ({
152
+ tracked_columns: cols.reduce(
153
+ (acc, { name }) => ({
151
154
  ...acc,
152
- [colName]: 1,
155
+ [name]: 1,
153
156
  }),
154
157
  {} as Record<string, number>
155
158
  ),
156
159
  where_statement: cols
157
- .filter((c) => !c.is_pkey && tracked_columns.includes(c.name))
160
+ // .filter((c) => !c.is_pkey && tracked_columns.includes(c.name))
158
161
  .map(
159
162
  (c) =>
160
163
  `column_name = ${asValue(c.name)} AND (ROW(n.*) IS NULL OR n.${asName(c.name)}${c.cast_to} IS DISTINCT FROM o.${asName(c.name)}${c.cast_to})`
@@ -31,9 +31,7 @@ export const getDataWatchFunctionQuery = (debugMode: boolean | undefined) => {
31
31
 
32
32
  DECLARE _columns_info JSONB := NULL;
33
33
 
34
- DECLARE changed_columns _TEXT := NULL;
35
-
36
- DECLARE tracked_columns _TEXT := NULL;
34
+ DECLARE changed_columns _TEXT := NULL;
37
35
 
38
36
  BEGIN
39
37
 
@@ -171,21 +169,14 @@ export const getDataWatchFunctionQuery = (debugMode: boolean | undefined) => {
171
169
  const CHANGED_COLUMNS_CHECK = `
172
170
  -- Determine changed columns for UPDATE operations
173
171
  IF TG_OP = 'UPDATE' THEN
174
-
175
- WITH cte1 AS (
176
- SELECT array_agg(DISTINCT col) AS cols
177
- FROM prostgles.v_triggers
178
- LEFT JOIN LATERAL jsonb_object_keys(columns_info ->'tracked_columns') col
179
- ON TRUE
172
+
173
+ IF NOT EXISTS (
174
+ SELECT 1
175
+ FROM prostgles.v_triggers
180
176
  WHERE table_name = escaped_table
181
- )
182
- SELECT cols
183
- INTO tracked_columns
184
- FROM cte1
185
- /* If any value is null it means that specific condition is tracking all columns so we need to check them all */
186
- WHERE array_position(cols, null) IS NULL;
187
-
188
- IF tracked_columns IS NOT NULL THEN
177
+ /* If any value is null it means some condition is tracking all columns so we need to check them all */
178
+ AND columns_info IS NULL
179
+ ) THEN
189
180
 
190
181
  SELECT columns_info
191
182
  INTO _columns_info
@@ -198,7 +189,7 @@ IF TG_OP = 'UPDATE' THEN
198
189
  $c$
199
190
  WITH changed AS (
200
191
  SELECT column_name
201
- FROM unnest(%L::_TEXT) as column_name
192
+ FROM jsonb_object_keys(%L) as column_name
202
193
  WHERE EXISTS (
203
194
  SELECT 1
204
195
  FROM old_table o
@@ -210,7 +201,7 @@ IF TG_OP = 'UPDATE' THEN
210
201
  SELECT array_agg(column_name)
211
202
  FROM changed;
212
203
  $c$,
213
- tracked_columns,
204
+ _columns_info->'tracked_columns',
214
205
  _columns_info->>'join_condition',
215
206
  _columns_info->>'where_statement'
216
207
  );
@@ -221,10 +212,6 @@ IF TG_OP = 'UPDATE' THEN
221
212
 
222
213
  /* It is possible to get no changes */
223
214
  changed_columns := COALESCE(changed_columns, '{}');
224
-
225
- IF NOT starts_with(changed_columns::TEXT, '{') THEN
226
- RAISE EXCEPTION 'changed_columns is not a JSON array: %', changed_columns;
227
- END IF;
228
215
 
229
216
  END IF;
230
217
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.300",
3
+ "version": "4.2.301",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",