pogi 2.10.1 → 3.0.0-beta
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/.vscode/launch.json +47 -15
- package/CHANGELOG.md +20 -0
- package/docs/API/PgDb.md +25 -0
- package/docs/notification.md +19 -0
- package/jest.config.js +23 -0
- package/lib/bin/generateInterface.js +2 -2
- package/lib/bin/generateInterface.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/pgConverters.d.ts +2 -0
- package/lib/pgConverters.js +27 -10
- package/lib/pgConverters.js.map +1 -1
- package/lib/pgDb.d.ts +15 -6
- package/lib/pgDb.js +263 -67
- package/lib/pgDb.js.map +1 -1
- package/lib/pgTable.js +7 -7
- package/lib/pgTable.js.map +1 -1
- package/lib/pgUtils.d.ts +3 -1
- package/lib/pgUtils.js +61 -23
- package/lib/pgUtils.js.map +1 -1
- package/lib/queryAble.d.ts +16 -1
- package/lib/queryAble.js +124 -56
- package/lib/queryAble.js.map +1 -1
- package/lib/src/bin/generateInterface.d.ts +1 -0
- package/lib/src/bin/generateInterface.js +53 -0
- package/lib/src/bin/generateInterface.js.map +1 -0
- package/lib/src/connectionOptions.d.ts +34 -0
- package/lib/src/connectionOptions.js +3 -0
- package/lib/src/connectionOptions.js.map +1 -0
- package/lib/src/index.d.ts +6 -0
- package/lib/src/index.js +12 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/pgConverters.d.ts +9 -0
- package/lib/src/pgConverters.js +71 -0
- package/lib/src/pgConverters.js.map +1 -0
- package/lib/src/pgConverters.test.d.ts +1 -0
- package/lib/src/pgConverters.test.js +13 -0
- package/lib/src/pgConverters.test.js.map +1 -0
- package/lib/src/pgDb.d.ts +79 -0
- package/lib/src/pgDb.js +764 -0
- package/lib/src/pgDb.js.map +1 -0
- package/lib/src/pgDb.test.d.ts +1 -0
- package/lib/src/pgDb.test.js +1126 -0
- package/lib/src/pgDb.test.js.map +1 -0
- package/lib/src/pgDbInterface.js +11 -0
- package/lib/src/pgDbInterface.js.map +1 -0
- package/lib/src/pgDbLogger.d.ts +5 -0
- package/lib/src/pgDbLogger.js +3 -0
- package/lib/src/pgDbLogger.js.map +1 -0
- package/lib/src/pgDbOperators.d.ts +113 -0
- package/lib/src/pgDbOperators.js +41 -0
- package/lib/src/pgDbOperators.js.map +1 -0
- package/lib/src/pgDbOperators.test.d.ts +1 -0
- package/lib/src/pgDbOperators.test.js +313 -0
- package/lib/src/pgDbOperators.test.js.map +1 -0
- package/lib/src/pgSchema.d.ts +17 -0
- package/lib/src/pgSchema.js +16 -0
- package/lib/src/pgSchema.js.map +1 -0
- package/lib/src/pgSchemaInterface.d.ts +12 -0
- package/lib/src/pgSchemaInterface.js +3 -0
- package/lib/src/pgSchemaInterface.js.map +1 -0
- package/lib/src/pgTable.d.ts +105 -0
- package/lib/src/pgTable.js +322 -0
- package/lib/src/pgTable.js.map +1 -0
- package/lib/src/pgTableInterface.d.ts +102 -0
- package/lib/src/pgTableInterface.js +4 -0
- package/lib/src/pgTableInterface.js.map +1 -0
- package/lib/src/pgUtils.d.ts +41 -0
- package/lib/src/pgUtils.js +282 -0
- package/lib/src/pgUtils.js.map +1 -0
- package/lib/src/queryAble.d.ts +40 -0
- package/lib/src/queryAble.js +338 -0
- package/lib/src/queryAble.js.map +1 -0
- package/lib/src/queryAbleInterface.d.ts +59 -0
- package/lib/src/queryAbleInterface.js +7 -0
- package/lib/src/queryAbleInterface.js.map +1 -0
- package/lib/src/queryWhere.d.ts +8 -0
- package/lib/src/queryWhere.js +245 -0
- package/lib/src/queryWhere.js.map +1 -0
- package/mkdocs.yml +1 -0
- package/package.json +23 -14
- package/src/bin/generateInterface.ts +2 -2
- package/src/connectionOptions.ts +46 -13
- package/src/index.d.ts +7 -0
- package/src/pgConverters.test.ts +10 -0
- package/src/pgConverters.ts +34 -22
- package/src/pgDb.test.ts +1324 -0
- package/src/pgDb.ts +321 -125
- package/src/pgDbInterface.ts +57 -0
- package/src/pgDbOperators.test.ts +478 -0
- package/src/pgDbOperators.ts +45 -22
- package/src/pgSchema.ts +10 -9
- package/src/pgSchemaInterface.ts +12 -0
- package/src/pgTable.ts +65 -97
- package/src/pgTableInterface.ts +131 -0
- package/src/pgUtils.ts +156 -42
- package/src/queryAble.ts +167 -125
- package/src/queryAbleInterface.ts +108 -0
- package/src/queryWhere.ts +42 -43
- package/{spec/resources → src/test}/init.sql +23 -0
- package/src/test/pgServiceRestartTest.ts +1500 -0
- package/{spec/resources → src/test}/throw_exception.sql +0 -0
- package/{spec/resources → src/test}/tricky.sql +0 -0
- package/{src/tsconfig.json → tsconfig.json} +9 -6
- package/spec/run.js +0 -5
- package/spec/support/jasmine.json +0 -9
- package/src/test/pgDbOperatorSpec.ts +0 -492
- package/src/test/pgDbSpec.ts +0 -994
package/lib/pgDb.js
CHANGED
|
@@ -39,6 +39,13 @@ const LIST_SPECIAL_TYPE_FIELDS = `SELECT c.nspname as schema_name, b.relname as
|
|
|
39
39
|
JOIN pg_namespace c ON (b.relnamespace=c.oid)
|
|
40
40
|
WHERE (a.atttypid in (114, 3802, 1082, 1083, 1114, 1184, 1266, 3614) or t.typcategory='A')
|
|
41
41
|
AND reltype>0 `;
|
|
42
|
+
const TYPE2OID = `SELECT t.oid, typname FROM pg_catalog.pg_type t WHERE typname in (
|
|
43
|
+
'_bool',
|
|
44
|
+
'int8','_int2','_int4','_int8','_float4','float8','_float8',
|
|
45
|
+
'_text','_varchar',
|
|
46
|
+
'json','jsonb', '_json','_jsonb',
|
|
47
|
+
'date','time','timestamp','timestamptz','timetz','_date','_time','_timestamp','_timestamptz','_timetz',
|
|
48
|
+
'tsvector')`;
|
|
42
49
|
var FieldType;
|
|
43
50
|
(function (FieldType) {
|
|
44
51
|
FieldType[FieldType["JSON"] = 0] = "JSON";
|
|
@@ -59,12 +66,21 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
59
66
|
this.tables = {};
|
|
60
67
|
this.fn = {};
|
|
61
68
|
this.pgdbTypeParsers = {};
|
|
69
|
+
this.knownOids = {};
|
|
62
70
|
this.listeners = new EventEmitter();
|
|
71
|
+
this._needToRestartConnectionForListen = false;
|
|
72
|
+
this.restartConnectionForListen = null;
|
|
73
|
+
this.notificationListener = (notification) => this.listeners.emit(notification.channel, notification);
|
|
74
|
+
this.errorListener = (e) => {
|
|
75
|
+
this._needToRestartConnectionForListen = true;
|
|
76
|
+
this.tryToFixConnectionForListenActively();
|
|
77
|
+
};
|
|
63
78
|
this.schemas = {};
|
|
64
79
|
this.config = pgdb.config;
|
|
65
80
|
this.pool = pgdb.pool;
|
|
66
81
|
this.postProcessResult = pgdb.postProcessResult;
|
|
67
82
|
this.pgdbTypeParsers = pgdb.pgdbTypeParsers || {};
|
|
83
|
+
this.knownOids = pgdb.knownOids || {};
|
|
68
84
|
this.db = this;
|
|
69
85
|
if (pgdb.getLogger) {
|
|
70
86
|
this.setLogger(pgdb.getLogger());
|
|
@@ -120,7 +136,7 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
120
136
|
delete PgDb.instances[cs];
|
|
121
137
|
}
|
|
122
138
|
}
|
|
123
|
-
yield this.pool.end();
|
|
139
|
+
yield this.pool.end((err) => { });
|
|
124
140
|
});
|
|
125
141
|
}
|
|
126
142
|
static connect(config) {
|
|
@@ -163,7 +179,7 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
163
179
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
164
180
|
let schemasAndTables = yield this.query(LIST_SCHEMAS_TABLES);
|
|
165
181
|
let functions = yield this.query(GET_SCHEMAS_PROCEDURES);
|
|
166
|
-
this.defaultSchemas =
|
|
182
|
+
this.defaultSchemas = yield this.queryOneField(GET_CURRENT_SCHEMAS);
|
|
167
183
|
let oldSchemaNames = Object.keys(this.schemas);
|
|
168
184
|
for (let sc of oldSchemaNames) {
|
|
169
185
|
if (this[sc] === this.schemas[sc])
|
|
@@ -209,57 +225,107 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
209
225
|
this.getLogger(true).error("No readable schema found!");
|
|
210
226
|
return;
|
|
211
227
|
}
|
|
228
|
+
let type2oid = {};
|
|
229
|
+
let res = yield this.query(TYPE2OID);
|
|
230
|
+
for (let tt of res || []) {
|
|
231
|
+
type2oid[tt.typname] = +tt.oid;
|
|
232
|
+
}
|
|
212
233
|
let specialTypeFields = yield this.query(LIST_SPECIAL_TYPE_FIELDS + ' AND c.nspname in (' + schemaNames + ')');
|
|
213
234
|
for (let r of specialTypeFields) {
|
|
214
235
|
if (this.schemas[r.schema_name][r.table_name]) {
|
|
215
236
|
this.schemas[r.schema_name][r.table_name].fieldTypes[r.column_name] =
|
|
216
|
-
([
|
|
217
|
-
([
|
|
218
|
-
([
|
|
237
|
+
([type2oid['json'], type2oid['jsonb']].indexOf(r.typid) > -1) ? FieldType.JSON :
|
|
238
|
+
([type2oid['tsvector']].indexOf(r.typid) > -1) ? FieldType.TSVECTOR :
|
|
239
|
+
([type2oid['date'], type2oid['time'], type2oid['timestamp'], type2oid['timestamptz'], type2oid['timetz']].indexOf(r.typid) > -1) ? FieldType.TIME :
|
|
219
240
|
FieldType.ARRAY;
|
|
220
241
|
}
|
|
221
242
|
}
|
|
243
|
+
let builtInArrayTypeParsers = [
|
|
244
|
+
{
|
|
245
|
+
oidList: [
|
|
246
|
+
type2oid['_bool']
|
|
247
|
+
],
|
|
248
|
+
parser: PgConverters.arraySplitToBool
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
oidList: [
|
|
252
|
+
type2oid['_int2'],
|
|
253
|
+
type2oid['_int4'],
|
|
254
|
+
type2oid['_float4'],
|
|
255
|
+
],
|
|
256
|
+
parser: PgConverters.arraySplitToNum
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
oidList: [
|
|
260
|
+
type2oid['_text'],
|
|
261
|
+
type2oid['_varchar']
|
|
262
|
+
],
|
|
263
|
+
parser: PgConverters.arraySplit
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
oidList: [
|
|
267
|
+
type2oid['_json'],
|
|
268
|
+
type2oid['_jsonb']
|
|
269
|
+
],
|
|
270
|
+
parser: PgConverters.arraySplitToJson
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
oidList: [
|
|
274
|
+
type2oid['_date'],
|
|
275
|
+
type2oid['_time'],
|
|
276
|
+
type2oid['_timetz'],
|
|
277
|
+
type2oid['_timestamp'],
|
|
278
|
+
type2oid['_timestamptz'],
|
|
279
|
+
],
|
|
280
|
+
parser: PgConverters.arraySplitToDate
|
|
281
|
+
}
|
|
282
|
+
];
|
|
283
|
+
builtInArrayTypeParsers.forEach(parserObj => {
|
|
284
|
+
parserObj.oidList.forEach(oid => {
|
|
285
|
+
pg.types.setTypeParser(oid, parserObj.parser);
|
|
286
|
+
delete this.pgdbTypeParsers[oid];
|
|
287
|
+
this.knownOids[oid] = true;
|
|
288
|
+
});
|
|
289
|
+
});
|
|
222
290
|
for (let r of specialTypeFields) {
|
|
291
|
+
if (this.knownOids[r.typid] && !this.pgdbTypeParsers[r.typid]) {
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
223
294
|
switch (r.typid) {
|
|
224
|
-
case
|
|
225
|
-
case
|
|
226
|
-
case
|
|
227
|
-
case
|
|
228
|
-
case
|
|
229
|
-
case
|
|
230
|
-
case
|
|
231
|
-
case
|
|
232
|
-
|
|
233
|
-
case
|
|
234
|
-
case 1007:
|
|
235
|
-
case 1021:
|
|
236
|
-
pg.types.setTypeParser(r.typid, PgConverters.arraySplitToNum);
|
|
237
|
-
break;
|
|
238
|
-
case 1009:
|
|
239
|
-
case 1015:
|
|
240
|
-
pg.types.setTypeParser(r.typid, PgConverters.arraySplit);
|
|
241
|
-
break;
|
|
242
|
-
case 3807:
|
|
243
|
-
pg.types.setTypeParser(r.typid, PgConverters.arraySplitToJson);
|
|
244
|
-
break;
|
|
245
|
-
case 1016:
|
|
246
|
-
case 1022:
|
|
247
|
-
break;
|
|
248
|
-
case 1115:
|
|
249
|
-
case 1182:
|
|
250
|
-
case 1183:
|
|
251
|
-
case 1185:
|
|
252
|
-
case 1270:
|
|
253
|
-
pg.types.setTypeParser(r.typid, PgConverters.arraySplitToDate);
|
|
295
|
+
case type2oid['json']:
|
|
296
|
+
case type2oid['jsonb']:
|
|
297
|
+
case type2oid['date']:
|
|
298
|
+
case type2oid['time']:
|
|
299
|
+
case type2oid['timetz']:
|
|
300
|
+
case type2oid['timestamp']:
|
|
301
|
+
case type2oid['timestamptz']:
|
|
302
|
+
case type2oid['tsvector']:
|
|
303
|
+
case type2oid['_int8']:
|
|
304
|
+
case type2oid['_float8']:
|
|
254
305
|
break;
|
|
255
306
|
default:
|
|
256
307
|
pg.types.setTypeParser(r.typid, PgConverters.arraySplit);
|
|
308
|
+
delete this.pgdbTypeParsers[r.typid];
|
|
257
309
|
}
|
|
258
310
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
311
|
+
this.pgdbTypeParsers[type2oid['int8']] = PgConverters.numWithValidation;
|
|
312
|
+
this.pgdbTypeParsers[type2oid['float8']] = PgConverters.numWithValidation;
|
|
313
|
+
this.pgdbTypeParsers[type2oid['_int8']] = PgConverters.stringArrayToNumWithValidation;
|
|
314
|
+
this.pgdbTypeParsers[type2oid['_float8']] = PgConverters.stringArrayToNumWithValidation;
|
|
315
|
+
this.knownOids[type2oid['int8']] = true;
|
|
316
|
+
this.knownOids[type2oid['float8']] = true;
|
|
317
|
+
this.knownOids[type2oid['_int8']] = true;
|
|
318
|
+
this.knownOids[type2oid['_float8']] = true;
|
|
319
|
+
let allUsedTypeFields = yield this.queryOneColumn(`
|
|
320
|
+
SELECT a.atttypid as typid
|
|
321
|
+
FROM pg_attribute a
|
|
322
|
+
JOIN pg_class b ON (a.attrelid = b.oid)
|
|
323
|
+
JOIN pg_type t ON (a.atttypid = t.oid)
|
|
324
|
+
JOIN pg_namespace c ON (b.relnamespace=c.oid)
|
|
325
|
+
WHERE
|
|
326
|
+
reltype>0 AND
|
|
327
|
+
c.nspname in (${schemaNames})`);
|
|
328
|
+
allUsedTypeFields.forEach(oid => this.knownOids[oid] = true);
|
|
263
329
|
});
|
|
264
330
|
}
|
|
265
331
|
setTypeParser(typeName, parser, schemaName) {
|
|
@@ -269,17 +335,19 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
269
335
|
let oid = yield this.queryOneField(GET_OID_FOR_COLUMN_TYPE_FOR_SCHEMA, { typeName, schemaName });
|
|
270
336
|
pg.types.setTypeParser(oid, parser);
|
|
271
337
|
delete this.pgdbTypeParsers[oid];
|
|
338
|
+
this.knownOids[oid] = true;
|
|
272
339
|
}
|
|
273
340
|
else {
|
|
274
341
|
let list = yield this.queryOneColumn(GET_OID_FOR_COLUMN_TYPE, { typeName });
|
|
275
342
|
list.forEach(oid => {
|
|
276
343
|
pg.types.setTypeParser(oid, parser);
|
|
277
344
|
delete this.pgdbTypeParsers[oid];
|
|
345
|
+
this.knownOids[oid] = true;
|
|
278
346
|
});
|
|
279
347
|
}
|
|
280
348
|
}
|
|
281
349
|
catch (e) {
|
|
282
|
-
throw Error('Not existing type: ' + typeName);
|
|
350
|
+
throw new Error('Not existing type: ' + typeName);
|
|
283
351
|
}
|
|
284
352
|
});
|
|
285
353
|
}
|
|
@@ -289,28 +357,56 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
289
357
|
if (schemaName) {
|
|
290
358
|
let oid = yield this.queryOneField(GET_OID_FOR_COLUMN_TYPE_FOR_SCHEMA, { typeName, schemaName });
|
|
291
359
|
this.pgdbTypeParsers[oid] = parser;
|
|
360
|
+
this.knownOids[oid] = true;
|
|
292
361
|
}
|
|
293
362
|
else {
|
|
294
363
|
let list = yield this.queryOneColumn(GET_OID_FOR_COLUMN_TYPE, { typeName });
|
|
295
|
-
list.forEach(oid =>
|
|
364
|
+
list.forEach(oid => {
|
|
365
|
+
this.pgdbTypeParsers[oid] = parser;
|
|
366
|
+
this.knownOids[oid] = true;
|
|
367
|
+
});
|
|
296
368
|
}
|
|
297
369
|
}
|
|
298
370
|
catch (e) {
|
|
299
|
-
throw Error('Not existing type: ' + typeName);
|
|
371
|
+
throw new Error('Not existing type: ' + typeName);
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
resetMissingParsers(connection, oidList) {
|
|
376
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
377
|
+
let unknownOids = oidList.filter(oid => !this.knownOids[oid]);
|
|
378
|
+
if (unknownOids.length) {
|
|
379
|
+
let fieldsData = yield connection.query(`select oid, typcategory from pg_type where oid = ANY($1)`, [unknownOids]);
|
|
380
|
+
fieldsData.rows.forEach(fieldData => {
|
|
381
|
+
if (fieldData.typcategory == 'A') {
|
|
382
|
+
this.pgdbTypeParsers[fieldData.oid] = PgConverters.arraySplit;
|
|
383
|
+
}
|
|
384
|
+
this.knownOids[fieldData.oid] = true;
|
|
385
|
+
});
|
|
300
386
|
}
|
|
301
387
|
});
|
|
302
388
|
}
|
|
303
389
|
dedicatedConnectionBegin() {
|
|
304
390
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
391
|
+
if (this.needToFixConnectionForListen()) {
|
|
392
|
+
yield this.runRestartConnectionForListen();
|
|
393
|
+
}
|
|
305
394
|
let pgDb = new PgDb(this);
|
|
306
395
|
pgDb.connection = yield this.pool.connect();
|
|
396
|
+
pgDb.connection.on('error', queryAble_1.QueryAble.connectionErrorListener);
|
|
307
397
|
return pgDb;
|
|
308
398
|
});
|
|
309
399
|
}
|
|
310
400
|
dedicatedConnectionEnd() {
|
|
311
401
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
312
402
|
if (this.connection) {
|
|
313
|
-
|
|
403
|
+
this.connection.off('error', queryAble_1.QueryAble.connectionErrorListener);
|
|
404
|
+
try {
|
|
405
|
+
yield this.connection.release();
|
|
406
|
+
}
|
|
407
|
+
catch (err) {
|
|
408
|
+
this.getLogger().error('Error while dedicated connection end.', err);
|
|
409
|
+
}
|
|
314
410
|
this.connection = null;
|
|
315
411
|
}
|
|
316
412
|
return this;
|
|
@@ -323,7 +419,7 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
323
419
|
yield this.query(`SAVEPOINT "${name}"`);
|
|
324
420
|
}
|
|
325
421
|
else {
|
|
326
|
-
throw Error('No active transaction');
|
|
422
|
+
throw new Error('No active transaction');
|
|
327
423
|
}
|
|
328
424
|
return this;
|
|
329
425
|
});
|
|
@@ -335,7 +431,7 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
335
431
|
yield this.query(`RELEASE SAVEPOINT "${name}"`);
|
|
336
432
|
}
|
|
337
433
|
else {
|
|
338
|
-
throw Error('No active transaction');
|
|
434
|
+
throw new Error('No active transaction');
|
|
339
435
|
}
|
|
340
436
|
return this;
|
|
341
437
|
});
|
|
@@ -388,7 +484,7 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
388
484
|
let currentStatement = 0;
|
|
389
485
|
let runStatement = () => {
|
|
390
486
|
if (statementList.length == currentStatement) {
|
|
391
|
-
resolve();
|
|
487
|
+
resolve(undefined);
|
|
392
488
|
}
|
|
393
489
|
else {
|
|
394
490
|
let statement = statementList[currentStatement++];
|
|
@@ -434,7 +530,7 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
434
530
|
let s = line.slice(SQL_TOKENIZER_REGEXP.lastIndex - 1);
|
|
435
531
|
let token = s.match(SQL_$_ESCAPE_REGEXP);
|
|
436
532
|
if (!token) {
|
|
437
|
-
throw Error('Invalid sql in line: ' + line);
|
|
533
|
+
throw new Error('Invalid sql in line: ' + line);
|
|
438
534
|
}
|
|
439
535
|
inQuotedString = token[0];
|
|
440
536
|
SQL_TOKENIZER_REGEXP.lastIndex += inQuotedString.length - 1;
|
|
@@ -524,45 +620,145 @@ class PgDb extends queryAble_1.QueryAble {
|
|
|
524
620
|
}
|
|
525
621
|
listen(channel, callback) {
|
|
526
622
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
623
|
+
let restartConnectionError = null;
|
|
624
|
+
if (this.needToFixConnectionForListen()) {
|
|
625
|
+
restartConnectionError = yield this.runRestartConnectionForListen();
|
|
530
626
|
}
|
|
531
|
-
if (
|
|
532
|
-
|
|
627
|
+
if (this.listeners.listenerCount(channel)) {
|
|
628
|
+
this.listeners.on(channel, callback);
|
|
629
|
+
}
|
|
630
|
+
else {
|
|
631
|
+
if (restartConnectionError) {
|
|
632
|
+
throw restartConnectionError;
|
|
633
|
+
}
|
|
634
|
+
try {
|
|
635
|
+
if (!this.connectionForListen) {
|
|
636
|
+
yield this.initConnectionForListen();
|
|
637
|
+
}
|
|
638
|
+
yield this.connectionForListen.query(`LISTEN "${channel}"`);
|
|
639
|
+
}
|
|
640
|
+
catch (err) {
|
|
641
|
+
this._needToRestartConnectionForListen = true;
|
|
642
|
+
throw err;
|
|
643
|
+
}
|
|
644
|
+
this.listeners.on(channel, callback);
|
|
533
645
|
}
|
|
534
|
-
this.listeners.on(channel, callback);
|
|
535
646
|
});
|
|
536
647
|
}
|
|
537
648
|
unlisten(channel, callback) {
|
|
538
649
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
650
|
+
let restartConnectionError = null;
|
|
651
|
+
if (this.needToFixConnectionForListen()) {
|
|
652
|
+
restartConnectionError = yield this.runRestartConnectionForListen();
|
|
542
653
|
}
|
|
543
|
-
if (callback) {
|
|
654
|
+
if (callback && this.listeners.listenerCount(channel) > 1) {
|
|
544
655
|
this.listeners.removeListener(channel, callback);
|
|
545
656
|
}
|
|
546
657
|
else {
|
|
658
|
+
if (restartConnectionError) {
|
|
659
|
+
throw restartConnectionError;
|
|
660
|
+
}
|
|
661
|
+
try {
|
|
662
|
+
yield this.internalQuery({ connection: this.connectionForListen, sql: `UNLISTEN "${channel}"` });
|
|
663
|
+
if (this.listeners.eventNames().length == 1) {
|
|
664
|
+
this.connectionForListen.removeAllListeners('notification');
|
|
665
|
+
this.connectionForListen.release();
|
|
666
|
+
this.connectionForListen = null;
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
catch (err) {
|
|
670
|
+
this._needToRestartConnectionForListen = true;
|
|
671
|
+
throw err;
|
|
672
|
+
}
|
|
547
673
|
this.listeners.removeAllListeners(channel);
|
|
548
674
|
}
|
|
549
|
-
if (!this.listeners.listenerCount(channel)) {
|
|
550
|
-
yield this.internalQuery({ connection: this.connectionForListen, sql: 'UNLISTEN ' + channel });
|
|
551
|
-
}
|
|
552
|
-
let allListeners = this.listeners.eventNames().reduce((sum, ename) => sum + this.listeners.listenerCount(ename), 0);
|
|
553
|
-
if (!allListeners && this.connectionForListen) {
|
|
554
|
-
this.connectionForListen.removeAllListeners('notification');
|
|
555
|
-
this.connectionForListen.release();
|
|
556
|
-
this.connectionForListen = null;
|
|
557
|
-
}
|
|
558
675
|
});
|
|
559
676
|
}
|
|
560
677
|
notify(channel, payload) {
|
|
561
678
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
679
|
+
if (this.needToFixConnectionForListen()) {
|
|
680
|
+
let restartConnectionError = yield this.runRestartConnectionForListen();
|
|
681
|
+
if (restartConnectionError) {
|
|
682
|
+
throw restartConnectionError;
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
let hasConnectionForListen = !!this.connectionForListen;
|
|
562
686
|
let connection = this.connectionForListen || this.connection;
|
|
563
687
|
let sql = 'SELECT pg_notify(:channel, :payload)';
|
|
564
688
|
let params = { channel, payload };
|
|
565
|
-
|
|
689
|
+
try {
|
|
690
|
+
return this.internalQuery({ connection, sql, params });
|
|
691
|
+
}
|
|
692
|
+
catch (err) {
|
|
693
|
+
if (hasConnectionForListen) {
|
|
694
|
+
this._needToRestartConnectionForListen = true;
|
|
695
|
+
}
|
|
696
|
+
throw err;
|
|
697
|
+
}
|
|
698
|
+
});
|
|
699
|
+
}
|
|
700
|
+
runRestartConnectionForListen() {
|
|
701
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
702
|
+
if (!this._needToRestartConnectionForListen) {
|
|
703
|
+
return null;
|
|
704
|
+
}
|
|
705
|
+
let errorResult = null;
|
|
706
|
+
if (!this.restartConnectionForListen) {
|
|
707
|
+
this.restartConnectionForListen = (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
708
|
+
let eventNames = this.listeners.eventNames();
|
|
709
|
+
try {
|
|
710
|
+
this.connectionForListen.on('notification', this.notificationListener);
|
|
711
|
+
this.connectionForListen.on('error', this.errorListener);
|
|
712
|
+
}
|
|
713
|
+
catch (e) { }
|
|
714
|
+
try {
|
|
715
|
+
yield this.connectionForListen.release();
|
|
716
|
+
}
|
|
717
|
+
catch (e) { }
|
|
718
|
+
this.connectionForListen = null;
|
|
719
|
+
let error;
|
|
720
|
+
if (eventNames.length) {
|
|
721
|
+
try {
|
|
722
|
+
yield this.initConnectionForListen();
|
|
723
|
+
for (let channel of eventNames) {
|
|
724
|
+
yield this.connectionForListen.query(`LISTEN "${channel}"`);
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
catch (err) {
|
|
728
|
+
error = err;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
return error;
|
|
732
|
+
}))();
|
|
733
|
+
errorResult = yield this.restartConnectionForListen;
|
|
734
|
+
this.restartConnectionForListen = null;
|
|
735
|
+
}
|
|
736
|
+
else {
|
|
737
|
+
errorResult = yield this.restartConnectionForListen;
|
|
738
|
+
}
|
|
739
|
+
if (!errorResult) {
|
|
740
|
+
this._needToRestartConnectionForListen = false;
|
|
741
|
+
}
|
|
742
|
+
return errorResult;
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
needToFixConnectionForListen() {
|
|
746
|
+
return this._needToRestartConnectionForListen;
|
|
747
|
+
}
|
|
748
|
+
tryToFixConnectionForListenActively() {
|
|
749
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
750
|
+
yield new Promise(r => setTimeout(r, 1000));
|
|
751
|
+
let error = yield this.runRestartConnectionForListen();
|
|
752
|
+
if (error) {
|
|
753
|
+
yield this.tryToFixConnectionForListenActively();
|
|
754
|
+
}
|
|
755
|
+
});
|
|
756
|
+
}
|
|
757
|
+
initConnectionForListen() {
|
|
758
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
759
|
+
this.connectionForListen = yield this.pool.connect();
|
|
760
|
+
this.connectionForListen.on('notification', this.notificationListener);
|
|
761
|
+
this.connectionForListen.on('error', this.errorListener);
|
|
566
762
|
});
|
|
567
763
|
}
|
|
568
764
|
}
|
package/lib/pgDb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgDb.js","sourceRoot":"","sources":["../src/pgDb.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pgDb.js","sourceRoot":"","sources":["../src/pgDb.ts"],"names":[],"mappings":"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"}
|
package/lib/pgTable.js
CHANGED
|
@@ -53,7 +53,7 @@ class PgTable extends queryAble_1.QueryAble {
|
|
|
53
53
|
return [];
|
|
54
54
|
}
|
|
55
55
|
let { sql, parameters } = this.getInsertQuery(records);
|
|
56
|
-
sql += " RETURNING " + (options && options.return && Array.isArray(options.return) ? options.return.map(pgUtils_1.pgUtils.
|
|
56
|
+
sql += " RETURNING " + (options && options.return && Array.isArray(options.return) ? options.return.map(pgUtils_1.pgUtils.quoteFieldNameInsecure).join(',') : '*');
|
|
57
57
|
let result = yield this.query(sql, parameters, { logger: options.logger });
|
|
58
58
|
if (options.return && options.return.length == 0) {
|
|
59
59
|
return new Array(returnSingle ? 1 : records.length).fill({});
|
|
@@ -97,7 +97,7 @@ class PgTable extends queryAble_1.QueryAble {
|
|
|
97
97
|
updateAndGet(conditions, fields, options) {
|
|
98
98
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
99
99
|
let { sql, parameters } = this.getUpdateQuery(conditions, fields, options);
|
|
100
|
-
sql += " RETURNING " + (options && options.return && Array.isArray(options.return) ? options.return.map(pgUtils_1.pgUtils.
|
|
100
|
+
sql += " RETURNING " + (options && options.return && Array.isArray(options.return) ? options.return.map(pgUtils_1.pgUtils.quoteFieldNameInsecure).join(',') : '*');
|
|
101
101
|
return this.query(sql, parameters, options);
|
|
102
102
|
});
|
|
103
103
|
}
|
|
@@ -122,7 +122,7 @@ class PgTable extends queryAble_1.QueryAble {
|
|
|
122
122
|
throw new Error("insert should be called with data");
|
|
123
123
|
}
|
|
124
124
|
let { sql, parameters } = this.getUpsertQuery(record, options);
|
|
125
|
-
sql += " RETURNING " + (options && options.return && Array.isArray(options.return) ? options.return.map(pgUtils_1.pgUtils.
|
|
125
|
+
sql += " RETURNING " + (options && options.return && Array.isArray(options.return) ? options.return.map(pgUtils_1.pgUtils.quoteFieldNameInsecure).join(',') : '*');
|
|
126
126
|
let result = yield this.query(sql, parameters, { logger: options.logger });
|
|
127
127
|
if (options.return && options.return.length == 0) {
|
|
128
128
|
return {};
|
|
@@ -152,7 +152,7 @@ class PgTable extends queryAble_1.QueryAble {
|
|
|
152
152
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
153
153
|
options = options || {};
|
|
154
154
|
let { sql, parameters } = this.getDeleteQuery(conditions, options);
|
|
155
|
-
sql += " RETURNING " + (options && options.return && Array.isArray(options.return) ? options.return.map(pgUtils_1.pgUtils.
|
|
155
|
+
sql += " RETURNING " + (options && options.return && Array.isArray(options.return) ? options.return.map(pgUtils_1.pgUtils.quoteFieldNameInsecure).join(',') : '*');
|
|
156
156
|
return this.query(sql, parameters);
|
|
157
157
|
});
|
|
158
158
|
}
|
|
@@ -251,7 +251,7 @@ class PgTable extends queryAble_1.QueryAble {
|
|
|
251
251
|
}
|
|
252
252
|
});
|
|
253
253
|
let columns = Object.keys(columnsMap);
|
|
254
|
-
let sql = util.format("INSERT INTO %s (%s) VALUES\n", this.qualifiedName, columns.map(pgUtils_1.pgUtils.
|
|
254
|
+
let sql = util.format("INSERT INTO %s (%s) VALUES\n", this.qualifiedName, columns.map(pgUtils_1.pgUtils.quoteFieldNameInsecure).join(", "));
|
|
255
255
|
let parameters = [];
|
|
256
256
|
let placeholders = [];
|
|
257
257
|
for (let i = 0, seed = 0; i < records.length; i++) {
|
|
@@ -268,7 +268,7 @@ class PgTable extends queryAble_1.QueryAble {
|
|
|
268
268
|
_.each(fields, (value, fieldName) => {
|
|
269
269
|
if (value === undefined)
|
|
270
270
|
return;
|
|
271
|
-
f.push(util.format('%s = $%s', pgUtils_1.pgUtils.
|
|
271
|
+
f.push(util.format('%s = $%s', pgUtils_1.pgUtils.quoteFieldNameInsecure(fieldName), (++seed)));
|
|
272
272
|
params.push(pgUtils_1.pgUtils.transformInsertUpdateParams(value, this.fieldTypes[fieldName]));
|
|
273
273
|
});
|
|
274
274
|
return { snipplet: f.join(', '), parameters: params };
|
|
@@ -298,7 +298,7 @@ class PgTable extends queryAble_1.QueryAble {
|
|
|
298
298
|
let { snipplet, parameters } = this.getUpdateSetSnipplet(record, insert.parameters);
|
|
299
299
|
let sql = insert.sql;
|
|
300
300
|
if (options.columns) {
|
|
301
|
-
sql += " ON CONFLICT (" + options.columns.map(c => pgUtils_1.pgUtils.
|
|
301
|
+
sql += " ON CONFLICT (" + options.columns.map(c => pgUtils_1.pgUtils.quoteFieldNameInsecure(c)).join(', ') + ") DO UPDATE SET " + snipplet;
|
|
302
302
|
}
|
|
303
303
|
else {
|
|
304
304
|
let constraint = options.constraint || this.pkey;
|