@nymphjs/driver-postgresql 1.0.0-beta.55 → 1.0.0-beta.56
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/CHANGELOG.md +10 -0
- package/dist/PostgreSQLDriver.d.ts +40 -1
- package/dist/PostgreSQLDriver.js +161 -81
- package/dist/PostgreSQLDriver.js.map +1 -1
- package/dist/PostgreSQLDriver.test.js +2 -1
- package/dist/PostgreSQLDriver.test.js.map +1 -1
- package/dist/conf/d.d.ts +26 -0
- package/package.json +4 -4
- package/src/PostgreSQLDriver.ts +129 -109
- package/tsconfig.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.0.0-beta.56](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.55...v1.0.0-beta.56) (2024-06-11)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- import entities without transaction ([db56609](https://github.com/sciactive/nymphjs/commit/db56609efaadc16d5d1bbc8e9b50084aa8a076b9))
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- make transaction optional during import and off by default ([08d79f8](https://github.com/sciactive/nymphjs/commit/08d79f8f803c846ac79c0c489fc754437dae082b))
|
|
15
|
+
|
|
6
16
|
# [1.0.0-beta.55](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.54...v1.0.0-beta.55) (2024-05-26)
|
|
7
17
|
|
|
8
18
|
**Note:** Version bump only for package @nymphjs/driver-postgresql
|
|
@@ -9,6 +9,9 @@ type PostgreSQLDriverTransaction = {
|
|
|
9
9
|
connection: PostgreSQLDriverConnection | null;
|
|
10
10
|
count: number;
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* The PostgreSQL Nymph database driver.
|
|
14
|
+
*/
|
|
12
15
|
export default class PostgreSQLDriver extends NymphDriver {
|
|
13
16
|
config: PostgreSQLDriverConfig;
|
|
14
17
|
private postgresqlConfig;
|
|
@@ -19,12 +22,38 @@ export default class PostgreSQLDriver extends NymphDriver {
|
|
|
19
22
|
static escape(input: string): string;
|
|
20
23
|
static escapeValue(input: string): string;
|
|
21
24
|
constructor(config: Partial<PostgreSQLDriverConfig>, link?: Pool, transaction?: PostgreSQLDriverTransaction);
|
|
25
|
+
/**
|
|
26
|
+
* This is used internally by Nymph. Don't call it yourself.
|
|
27
|
+
*
|
|
28
|
+
* @returns A clone of this instance.
|
|
29
|
+
*/
|
|
22
30
|
clone(): PostgreSQLDriver;
|
|
23
31
|
private getConnection;
|
|
32
|
+
/**
|
|
33
|
+
* Connect to the PostgreSQL database.
|
|
34
|
+
*
|
|
35
|
+
* @returns Whether this instance is connected to a PostgreSQL database.
|
|
36
|
+
*/
|
|
24
37
|
connect(): Promise<true>;
|
|
38
|
+
/**
|
|
39
|
+
* Disconnect from the PostgreSQL database.
|
|
40
|
+
*
|
|
41
|
+
* @returns Whether this instance is connected to a PostgreSQL database.
|
|
42
|
+
*/
|
|
25
43
|
disconnect(): Promise<false>;
|
|
26
44
|
inTransaction(): Promise<boolean>;
|
|
45
|
+
/**
|
|
46
|
+
* Check connection status.
|
|
47
|
+
*
|
|
48
|
+
* @returns Whether this instance is connected to a PostgreSQL database.
|
|
49
|
+
*/
|
|
27
50
|
isConnected(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Create entity tables in the database.
|
|
53
|
+
*
|
|
54
|
+
* @param etype The entity type to create a table for. If this is blank, the default tables are created.
|
|
55
|
+
* @returns True on success, false on failure.
|
|
56
|
+
*/
|
|
28
57
|
private createTables;
|
|
29
58
|
private translateQuery;
|
|
30
59
|
private query;
|
|
@@ -35,6 +64,16 @@ export default class PostgreSQLDriver extends NymphDriver {
|
|
|
35
64
|
deleteEntityByID(guid: string, className?: EntityConstructor | string | null): Promise<boolean>;
|
|
36
65
|
deleteUID(name: string): Promise<boolean>;
|
|
37
66
|
protected exportEntities(writeLine: (line: string) => void): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Generate the PostgreSQL query.
|
|
69
|
+
* @param options The options array.
|
|
70
|
+
* @param formattedSelectors The formatted selector array.
|
|
71
|
+
* @param etype
|
|
72
|
+
* @param count Used to track internal params.
|
|
73
|
+
* @param params Used to store internal params.
|
|
74
|
+
* @param subquery Whether only a subquery should be returned.
|
|
75
|
+
* @returns The SQL query.
|
|
76
|
+
*/
|
|
38
77
|
private makeEntityQuery;
|
|
39
78
|
protected performQuery(options: Options, formattedSelectors: FormattedSelector[], etype: string): {
|
|
40
79
|
result: any;
|
|
@@ -47,7 +86,7 @@ export default class PostgreSQLDriver extends NymphDriver {
|
|
|
47
86
|
}, ...selectors: Selector[]): Promise<string[]>;
|
|
48
87
|
getEntities<T extends EntityConstructor = EntityConstructor>(options?: Options<T>, ...selectors: Selector[]): Promise<ReturnType<T['factorySync']>[]>;
|
|
49
88
|
getUID(name: string): Promise<number | null>;
|
|
50
|
-
import(filename: string): Promise<boolean>;
|
|
89
|
+
import(filename: string, transaction?: boolean): Promise<boolean>;
|
|
51
90
|
newUID(name: string): Promise<number>;
|
|
52
91
|
renameUID(oldName: string, newName: string): Promise<boolean>;
|
|
53
92
|
rollback(name: string): Promise<boolean>;
|
package/dist/PostgreSQLDriver.js
CHANGED
|
@@ -8,6 +8,9 @@ const pg_format_1 = __importDefault(require("pg-format"));
|
|
|
8
8
|
const nymph_1 = require("@nymphjs/nymph");
|
|
9
9
|
const guid_1 = require("@nymphjs/guid");
|
|
10
10
|
const conf_1 = require("./conf");
|
|
11
|
+
/**
|
|
12
|
+
* The PostgreSQL Nymph database driver.
|
|
13
|
+
*/
|
|
11
14
|
class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
12
15
|
static escape(input) {
|
|
13
16
|
return pg_format_1.default.ident(input);
|
|
@@ -40,6 +43,11 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
40
43
|
this.connect();
|
|
41
44
|
}
|
|
42
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* This is used internally by Nymph. Don't call it yourself.
|
|
48
|
+
*
|
|
49
|
+
* @returns A clone of this instance.
|
|
50
|
+
*/
|
|
43
51
|
clone() {
|
|
44
52
|
return new PostgreSQLDriver(this.config, this.link, this.transaction ?? undefined);
|
|
45
53
|
}
|
|
@@ -53,7 +61,13 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
53
61
|
? resolve({ client, done })
|
|
54
62
|
: reject('No client returned from connect.')));
|
|
55
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Connect to the PostgreSQL database.
|
|
66
|
+
*
|
|
67
|
+
* @returns Whether this instance is connected to a PostgreSQL database.
|
|
68
|
+
*/
|
|
56
69
|
async connect() {
|
|
70
|
+
// If we think we're connected, try pinging the server.
|
|
57
71
|
try {
|
|
58
72
|
if (this.connected) {
|
|
59
73
|
const connection = await new Promise((resolve, reject) => this.link.connect((err, client, done) => err
|
|
@@ -73,6 +87,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
73
87
|
catch (e) {
|
|
74
88
|
this.connected = false;
|
|
75
89
|
}
|
|
90
|
+
// Connecting, selecting database
|
|
76
91
|
if (!this.connected) {
|
|
77
92
|
try {
|
|
78
93
|
this.link = new pg_1.Pool(this.postgresqlConfig);
|
|
@@ -92,6 +107,11 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
92
107
|
}
|
|
93
108
|
return this.connected;
|
|
94
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Disconnect from the PostgreSQL database.
|
|
112
|
+
*
|
|
113
|
+
* @returns Whether this instance is connected to a PostgreSQL database.
|
|
114
|
+
*/
|
|
95
115
|
async disconnect() {
|
|
96
116
|
if (this.connected) {
|
|
97
117
|
await new Promise((resolve) => this.link.end(() => resolve(0)));
|
|
@@ -102,11 +122,23 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
102
122
|
async inTransaction() {
|
|
103
123
|
return !!this.transaction;
|
|
104
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Check connection status.
|
|
127
|
+
*
|
|
128
|
+
* @returns Whether this instance is connected to a PostgreSQL database.
|
|
129
|
+
*/
|
|
105
130
|
isConnected() {
|
|
106
131
|
return this.connected;
|
|
107
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Create entity tables in the database.
|
|
135
|
+
*
|
|
136
|
+
* @param etype The entity type to create a table for. If this is blank, the default tables are created.
|
|
137
|
+
* @returns True on success, false on failure.
|
|
138
|
+
*/
|
|
108
139
|
async createTables(etype = null) {
|
|
109
140
|
if (etype != null) {
|
|
141
|
+
// Create the entity table.
|
|
110
142
|
await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} (
|
|
111
143
|
"guid" BYTEA NOT NULL,
|
|
112
144
|
"tags" TEXT[],
|
|
@@ -121,6 +153,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
121
153
|
await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_mdate`)} ON ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} USING btree ("mdate");`);
|
|
122
154
|
await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_tags`)};`);
|
|
123
155
|
await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_tags`)} ON ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} USING gin ("tags");`);
|
|
156
|
+
// Create the data table.
|
|
124
157
|
await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} (
|
|
125
158
|
"guid" BYTEA NOT NULL,
|
|
126
159
|
"name" TEXT NOT NULL,
|
|
@@ -138,6 +171,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
138
171
|
await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid_name__user`)} ON ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} USING btree ("guid") WHERE "name" = 'user'::text;`);
|
|
139
172
|
await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid_name__group`)};`);
|
|
140
173
|
await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid_name__group`)} ON ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} USING btree ("guid") WHERE "name" = 'group'::text;`);
|
|
174
|
+
// Create the data comparisons table.
|
|
141
175
|
await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} (
|
|
142
176
|
"guid" BYTEA NOT NULL,
|
|
143
177
|
"name" TEXT NOT NULL,
|
|
@@ -157,6 +191,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
157
191
|
await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid_name_truthy`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("guid", "name") WHERE "truthy" = TRUE;`);
|
|
158
192
|
await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid_name_falsy`)};`);
|
|
159
193
|
await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid_name_falsy`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("guid", "name") WHERE "truthy" <> TRUE;`);
|
|
194
|
+
// Create the references table.
|
|
160
195
|
await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} (
|
|
161
196
|
"guid" BYTEA NOT NULL,
|
|
162
197
|
"name" TEXT NOT NULL,
|
|
@@ -174,6 +209,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
174
209
|
await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_reference`)} ON ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} USING btree ("reference");`);
|
|
175
210
|
}
|
|
176
211
|
else {
|
|
212
|
+
// Create the UID table.
|
|
177
213
|
await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}uids`)} (
|
|
178
214
|
"name" TEXT NOT NULL,
|
|
179
215
|
"cur_uid" BIGINT NOT NULL,
|
|
@@ -203,6 +239,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
203
239
|
catch (e) {
|
|
204
240
|
const errorCode = e?.code;
|
|
205
241
|
if (errorCode === '42P01' && (await this.createTables())) {
|
|
242
|
+
// If the tables don't exist yet, create them.
|
|
206
243
|
for (let etype of etypes) {
|
|
207
244
|
await this.createTables(etype);
|
|
208
245
|
}
|
|
@@ -326,6 +363,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
326
363
|
throw e;
|
|
327
364
|
}
|
|
328
365
|
await this.commit('nymph-delete');
|
|
366
|
+
// Remove any cached versions of this entity.
|
|
329
367
|
if (this.nymph.config.cache) {
|
|
330
368
|
this.cleanCache(guid);
|
|
331
369
|
}
|
|
@@ -353,6 +391,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
353
391
|
writeLine('# UIDs');
|
|
354
392
|
writeLine('#');
|
|
355
393
|
writeLine('');
|
|
394
|
+
// Export UIDs.
|
|
356
395
|
let uids = await this.queryIter(`SELECT * FROM ${PostgreSQLDriver.escape(`${this.prefix}uids`)} ORDER BY "name";`);
|
|
357
396
|
for (const uid of uids) {
|
|
358
397
|
writeLine(`<${uid.name}>[${uid.cur_uid}]`);
|
|
@@ -362,6 +401,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
362
401
|
writeLine('# Entities');
|
|
363
402
|
writeLine('#');
|
|
364
403
|
writeLine('');
|
|
404
|
+
// Get the etypes.
|
|
365
405
|
const tables = await this.queryIter('SELECT relname FROM pg_stat_user_tables ORDER BY relname;');
|
|
366
406
|
const etypes = [];
|
|
367
407
|
for (const tableRow of tables) {
|
|
@@ -371,6 +411,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
371
411
|
}
|
|
372
412
|
}
|
|
373
413
|
for (const etype of etypes) {
|
|
414
|
+
// Export entities.
|
|
374
415
|
const dataIterator = (await this.queryIter(`SELECT encode(e."guid", 'hex') AS "guid", e."tags", e."cdate", e."mdate", d."name" AS "dname", d."value" AS "dvalue", c."string", c."number"
|
|
375
416
|
FROM ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} e
|
|
376
417
|
LEFT JOIN ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} d ON e."guid"=d."guid"
|
|
@@ -386,6 +427,8 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
386
427
|
writeLine(`\tcdate=${JSON.stringify(cdate)}`);
|
|
387
428
|
writeLine(`\tmdate=${JSON.stringify(mdate)}`);
|
|
388
429
|
if (datum.value.dname != null) {
|
|
430
|
+
// This do will keep going and adding the data until the
|
|
431
|
+
// next entity is reached. $row will end on the next entity.
|
|
389
432
|
do {
|
|
390
433
|
const value = datum.value.dvalue === 'N'
|
|
391
434
|
? JSON.stringify(Number(datum.value.number))
|
|
@@ -397,12 +440,23 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
397
440
|
} while (!datum.done && datum.value.guid === guid);
|
|
398
441
|
}
|
|
399
442
|
else {
|
|
443
|
+
// Make sure that datum is incremented :)
|
|
400
444
|
datum = dataIterator.next();
|
|
401
445
|
}
|
|
402
446
|
}
|
|
403
447
|
}
|
|
404
448
|
return;
|
|
405
449
|
}
|
|
450
|
+
/**
|
|
451
|
+
* Generate the PostgreSQL query.
|
|
452
|
+
* @param options The options array.
|
|
453
|
+
* @param formattedSelectors The formatted selector array.
|
|
454
|
+
* @param etype
|
|
455
|
+
* @param count Used to track internal params.
|
|
456
|
+
* @param params Used to store internal params.
|
|
457
|
+
* @param subquery Whether only a subquery should be returned.
|
|
458
|
+
* @returns The SQL query.
|
|
459
|
+
*/
|
|
406
460
|
makeEntityQuery(options, formattedSelectors, etype, count = { i: 0 }, params = {}, subquery = false, tableSuffix = '', etypes = []) {
|
|
407
461
|
if (typeof options.class?.alterOptions === 'function') {
|
|
408
462
|
options = options.class.alterOptions(options);
|
|
@@ -1374,7 +1428,9 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
1374
1428
|
};
|
|
1375
1429
|
}
|
|
1376
1430
|
async getEntities(options = {}, ...selectors) {
|
|
1377
|
-
const { result: resultPromise, process } = this.getEntitiesRowLike(
|
|
1431
|
+
const { result: resultPromise, process } = this.getEntitiesRowLike(
|
|
1432
|
+
// @ts-ignore: options is correct here.
|
|
1433
|
+
options, selectors, (options, formattedSelectors, etype) => this.performQuery(options, formattedSelectors, etype), () => {
|
|
1378
1434
|
const next = result.next();
|
|
1379
1435
|
return next.done ? null : next.value;
|
|
1380
1436
|
}, () => undefined, (row) => Number(row.count), (row) => row.guid, (row) => ({
|
|
@@ -1407,114 +1463,136 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
1407
1463
|
});
|
|
1408
1464
|
return result?.cur_uid == null ? null : Number(result.cur_uid);
|
|
1409
1465
|
}
|
|
1410
|
-
async import(filename) {
|
|
1466
|
+
async import(filename, transaction) {
|
|
1411
1467
|
try {
|
|
1412
1468
|
const result = await this.importFromFile(filename, async (guid, tags, sdata, etype) => {
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
: Number(JSON.parse(sdata.cdate))
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
: Number(JSON.parse(sdata.mdate))
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
etypes: [etype],
|
|
1435
|
-
params: {
|
|
1436
|
-
guid,
|
|
1437
|
-
},
|
|
1438
|
-
}));
|
|
1439
|
-
promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
|
|
1440
|
-
etypes: [etype],
|
|
1441
|
-
params: {
|
|
1442
|
-
guid,
|
|
1443
|
-
},
|
|
1444
|
-
}));
|
|
1445
|
-
promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
|
|
1446
|
-
etypes: [etype],
|
|
1447
|
-
params: {
|
|
1448
|
-
guid,
|
|
1449
|
-
},
|
|
1450
|
-
}));
|
|
1451
|
-
await Promise.all(promises);
|
|
1452
|
-
delete sdata.cdate;
|
|
1453
|
-
delete sdata.mdate;
|
|
1454
|
-
for (const name in sdata) {
|
|
1455
|
-
const value = sdata[name];
|
|
1456
|
-
const uvalue = JSON.parse(value);
|
|
1457
|
-
if (value === undefined) {
|
|
1458
|
-
continue;
|
|
1459
|
-
}
|
|
1460
|
-
const storageValue = typeof uvalue === 'number'
|
|
1461
|
-
? 'N'
|
|
1462
|
-
: typeof uvalue === 'string'
|
|
1463
|
-
? 'S'
|
|
1464
|
-
: value;
|
|
1469
|
+
try {
|
|
1470
|
+
await this.internalTransaction(`nymph-import-entity-${guid}`);
|
|
1471
|
+
await this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
|
|
1472
|
+
etypes: [etype],
|
|
1473
|
+
params: {
|
|
1474
|
+
guid,
|
|
1475
|
+
},
|
|
1476
|
+
});
|
|
1477
|
+
await this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} ("guid", "tags", "cdate", "mdate") VALUES (decode(@guid, 'hex'), @tags, @cdate, @mdate);`, {
|
|
1478
|
+
etypes: [etype],
|
|
1479
|
+
params: {
|
|
1480
|
+
guid,
|
|
1481
|
+
tags,
|
|
1482
|
+
cdate: isNaN(Number(JSON.parse(sdata.cdate)))
|
|
1483
|
+
? null
|
|
1484
|
+
: Number(JSON.parse(sdata.cdate)),
|
|
1485
|
+
mdate: isNaN(Number(JSON.parse(sdata.mdate)))
|
|
1486
|
+
? null
|
|
1487
|
+
: Number(JSON.parse(sdata.mdate)),
|
|
1488
|
+
},
|
|
1489
|
+
});
|
|
1465
1490
|
const promises = [];
|
|
1466
|
-
promises.push(this.queryRun(`
|
|
1491
|
+
promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
|
|
1492
|
+
etypes: [etype],
|
|
1493
|
+
params: {
|
|
1494
|
+
guid,
|
|
1495
|
+
},
|
|
1496
|
+
}));
|
|
1497
|
+
promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
|
|
1467
1498
|
etypes: [etype],
|
|
1468
1499
|
params: {
|
|
1469
1500
|
guid,
|
|
1470
|
-
name,
|
|
1471
|
-
storageValue,
|
|
1472
1501
|
},
|
|
1473
1502
|
}));
|
|
1474
|
-
promises.push(this.queryRun(`
|
|
1503
|
+
promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
|
|
1475
1504
|
etypes: [etype],
|
|
1476
1505
|
params: {
|
|
1477
1506
|
guid,
|
|
1478
|
-
name,
|
|
1479
|
-
truthy: !!uvalue,
|
|
1480
|
-
string: `${uvalue}`,
|
|
1481
|
-
number: isNaN(Number(uvalue)) ? null : Number(uvalue),
|
|
1482
1507
|
},
|
|
1483
1508
|
}));
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1509
|
+
await Promise.all(promises);
|
|
1510
|
+
delete sdata.cdate;
|
|
1511
|
+
delete sdata.mdate;
|
|
1512
|
+
for (const name in sdata) {
|
|
1513
|
+
const value = sdata[name];
|
|
1514
|
+
const uvalue = JSON.parse(value);
|
|
1515
|
+
if (value === undefined) {
|
|
1516
|
+
continue;
|
|
1517
|
+
}
|
|
1518
|
+
const storageValue = typeof uvalue === 'number'
|
|
1519
|
+
? 'N'
|
|
1520
|
+
: typeof uvalue === 'string'
|
|
1521
|
+
? 'S'
|
|
1522
|
+
: value;
|
|
1523
|
+
const promises = [];
|
|
1524
|
+
promises.push(this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} ("guid", "name", "value") VALUES (decode(@guid, 'hex'), @name, @storageValue);`, {
|
|
1525
|
+
etypes: [etype],
|
|
1526
|
+
params: {
|
|
1527
|
+
guid,
|
|
1528
|
+
name,
|
|
1529
|
+
storageValue,
|
|
1530
|
+
},
|
|
1531
|
+
}));
|
|
1532
|
+
promises.push(this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} ("guid", "name", "truthy", "string", "number") VALUES (decode(@guid, 'hex'), @name, @truthy, @string, @number);`, {
|
|
1487
1533
|
etypes: [etype],
|
|
1488
1534
|
params: {
|
|
1489
1535
|
guid,
|
|
1490
1536
|
name,
|
|
1491
|
-
|
|
1537
|
+
truthy: !!uvalue,
|
|
1538
|
+
string: `${uvalue}`,
|
|
1539
|
+
number: isNaN(Number(uvalue)) ? null : Number(uvalue),
|
|
1492
1540
|
},
|
|
1493
1541
|
}));
|
|
1542
|
+
const references = this.findReferences(value);
|
|
1543
|
+
for (const reference of references) {
|
|
1544
|
+
promises.push(this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} ("guid", "name", "reference") VALUES (decode(@guid, 'hex'), @name, decode(@reference, 'hex'));`, {
|
|
1545
|
+
etypes: [etype],
|
|
1546
|
+
params: {
|
|
1547
|
+
guid,
|
|
1548
|
+
name,
|
|
1549
|
+
reference,
|
|
1550
|
+
},
|
|
1551
|
+
}));
|
|
1552
|
+
}
|
|
1494
1553
|
}
|
|
1554
|
+
await Promise.all(promises);
|
|
1555
|
+
await this.commit(`nymph-import-entity-${guid}`);
|
|
1556
|
+
}
|
|
1557
|
+
catch (e) {
|
|
1558
|
+
await this.rollback(`nymph-import-entity-${guid}`);
|
|
1559
|
+
throw e;
|
|
1495
1560
|
}
|
|
1496
|
-
await Promise.all(promises);
|
|
1497
1561
|
}, async (name, curUid) => {
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1562
|
+
try {
|
|
1563
|
+
await this.internalTransaction(`nymph-import-uid-${name}`);
|
|
1564
|
+
await this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}uids`)} WHERE "name"=@name;`, {
|
|
1565
|
+
params: {
|
|
1566
|
+
name,
|
|
1567
|
+
},
|
|
1568
|
+
});
|
|
1569
|
+
await this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}uids`)} ("name", "cur_uid") VALUES (@name, @curUid);`, {
|
|
1570
|
+
params: {
|
|
1571
|
+
name,
|
|
1572
|
+
curUid,
|
|
1573
|
+
},
|
|
1574
|
+
});
|
|
1575
|
+
await this.commit(`nymph-import-uid-${name}`);
|
|
1576
|
+
}
|
|
1577
|
+
catch (e) {
|
|
1578
|
+
await this.rollback(`nymph-import-uid-${name}`);
|
|
1579
|
+
throw e;
|
|
1580
|
+
}
|
|
1509
1581
|
}, async () => {
|
|
1510
|
-
|
|
1582
|
+
if (transaction) {
|
|
1583
|
+
await this.internalTransaction('nymph-import');
|
|
1584
|
+
}
|
|
1511
1585
|
}, async () => {
|
|
1512
|
-
|
|
1586
|
+
if (transaction) {
|
|
1587
|
+
await this.commit('nymph-import');
|
|
1588
|
+
}
|
|
1513
1589
|
});
|
|
1514
1590
|
return result;
|
|
1515
1591
|
}
|
|
1516
1592
|
catch (e) {
|
|
1517
|
-
|
|
1593
|
+
if (transaction) {
|
|
1594
|
+
await this.rollback('nymph-import');
|
|
1595
|
+
}
|
|
1518
1596
|
return false;
|
|
1519
1597
|
}
|
|
1520
1598
|
}
|
|
@@ -1775,10 +1853,12 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
|
|
|
1775
1853
|
throw new nymph_1.InvalidParametersError('Transaction start attempted without a name.');
|
|
1776
1854
|
}
|
|
1777
1855
|
if (!this.transaction || this.transaction.count === 0) {
|
|
1856
|
+
// Lock to one connection.
|
|
1778
1857
|
this.transaction = {
|
|
1779
1858
|
count: 0,
|
|
1780
1859
|
connection: await this.getConnection(),
|
|
1781
1860
|
};
|
|
1861
|
+
// We're not in a transaction yet, so start one.
|
|
1782
1862
|
await this.queryRun('BEGIN;');
|
|
1783
1863
|
}
|
|
1784
1864
|
await this.queryRun(`SAVEPOINT ${PostgreSQLDriver.escape(name)};`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgreSQLDriver.js","sourceRoot":"","sources":["../src/PostgreSQLDriver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PostgreSQLDriver.js","sourceRoot":"","sources":["../src/PostgreSQLDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const nymph_1 = require("@nymphjs/nymph");
|
|
7
7
|
const PostgreSQLDriver_1 = __importDefault(require("./PostgreSQLDriver"));
|
|
8
|
+
// When using remote server, this can be helpful.
|
|
8
9
|
jest.setTimeout(60000);
|
|
9
10
|
const postgresqlConfig = {
|
|
10
11
|
host: 'localhost',
|
|
@@ -18,7 +19,7 @@ describe('PostgreSQLDriver', () => {
|
|
|
18
19
|
(0, nymph_1.UIDTest)(nymph, it);
|
|
19
20
|
(0, nymph_1.ExportImportTest)(nymph, it);
|
|
20
21
|
afterAll(async () => {
|
|
21
|
-
await nymph.driver.disconnect();
|
|
22
|
+
await nymph.driver.disconnect(); // avoid jest open handle error
|
|
22
23
|
});
|
|
23
24
|
});
|
|
24
25
|
//# sourceMappingURL=PostgreSQLDriver.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgreSQLDriver.test.js","sourceRoot":"","sources":["../src/PostgreSQLDriver.test.ts"],"names":[],"mappings":";;;;;AAAA,0CAA+E;AAE/E,0EAAkD;
|
|
1
|
+
{"version":3,"file":"PostgreSQLDriver.test.js","sourceRoot":"","sources":["../src/PostgreSQLDriver.test.ts"],"names":[],"mappings":";;;;;AAAA,0CAA+E;AAE/E,0EAAkD;AAElD,iDAAiD;AACjD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvB,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,OAAO;CAClB,CAAC;AAEF,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,EAAE,IAAI,0BAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEpE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAA,mBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvB,IAAA,eAAO,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,IAAA,wBAAgB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE5B,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,+BAA+B;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/conf/d.d.ts
CHANGED
|
@@ -1,10 +1,36 @@
|
|
|
1
1
|
import type { PoolConfig } from 'pg';
|
|
2
|
+
/**
|
|
3
|
+
* PostgreSQL Driver Config
|
|
4
|
+
*/
|
|
2
5
|
export interface PostgreSQLDriverConfig {
|
|
6
|
+
/**
|
|
7
|
+
* The host on which to connect to Postgres. Can include a port, like
|
|
8
|
+
* hostname:port.
|
|
9
|
+
*/
|
|
3
10
|
host: string;
|
|
11
|
+
/**
|
|
12
|
+
* The port on which to connect to Postgres.
|
|
13
|
+
*/
|
|
4
14
|
port: number;
|
|
15
|
+
/**
|
|
16
|
+
* The Postgres user.
|
|
17
|
+
*/
|
|
5
18
|
user: string;
|
|
19
|
+
/**
|
|
20
|
+
* The Postgres password.
|
|
21
|
+
*/
|
|
6
22
|
password: string;
|
|
23
|
+
/**
|
|
24
|
+
* The Postgres database.
|
|
25
|
+
*/
|
|
7
26
|
database: string;
|
|
27
|
+
/**
|
|
28
|
+
* If you need to use custom options, like SSL, you can provide them here in
|
|
29
|
+
* place of the above options.
|
|
30
|
+
*/
|
|
8
31
|
customPoolConfig: PoolConfig | null;
|
|
32
|
+
/**
|
|
33
|
+
* The Postgres table name prefix.
|
|
34
|
+
*/
|
|
9
35
|
prefix: string;
|
|
10
36
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/driver-postgresql",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.56",
|
|
4
4
|
"description": "Nymph.js - PostgreSQL DB Driver",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
},
|
|
34
34
|
"license": "Apache-2.0",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@nymphjs/guid": "^1.0.0-beta.
|
|
37
|
-
"@nymphjs/nymph": "^1.0.0-beta.
|
|
36
|
+
"@nymphjs/guid": "^1.0.0-beta.56",
|
|
37
|
+
"@nymphjs/nymph": "^1.0.0-beta.56",
|
|
38
38
|
"pg": "^8.11.3",
|
|
39
39
|
"pg-format": "^1.0.4"
|
|
40
40
|
},
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"ts-jest": "^29.1.2",
|
|
48
48
|
"typescript": "^5.3.3"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "ec53fa4391757e66c3aca331dd97b778fcb6f913"
|
|
51
51
|
}
|
package/src/PostgreSQLDriver.ts
CHANGED
|
@@ -1960,58 +1960,16 @@ export default class PostgreSQLDriver extends NymphDriver {
|
|
|
1960
1960
|
return result?.cur_uid == null ? null : Number(result.cur_uid);
|
|
1961
1961
|
}
|
|
1962
1962
|
|
|
1963
|
-
public async import(filename: string) {
|
|
1963
|
+
public async import(filename: string, transaction?: boolean) {
|
|
1964
1964
|
try {
|
|
1965
1965
|
const result = await this.importFromFile(
|
|
1966
1966
|
filename,
|
|
1967
1967
|
async (guid, tags, sdata, etype) => {
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
)} WHERE "guid"=decode(@guid, 'hex');`,
|
|
1972
|
-
{
|
|
1973
|
-
etypes: [etype],
|
|
1974
|
-
params: {
|
|
1975
|
-
guid,
|
|
1976
|
-
},
|
|
1977
|
-
},
|
|
1978
|
-
);
|
|
1979
|
-
await this.queryRun(
|
|
1980
|
-
`INSERT INTO ${PostgreSQLDriver.escape(
|
|
1981
|
-
`${this.prefix}entities_${etype}`,
|
|
1982
|
-
)} ("guid", "tags", "cdate", "mdate") VALUES (decode(@guid, 'hex'), @tags, @cdate, @mdate);`,
|
|
1983
|
-
{
|
|
1984
|
-
etypes: [etype],
|
|
1985
|
-
params: {
|
|
1986
|
-
guid,
|
|
1987
|
-
tags,
|
|
1988
|
-
cdate: isNaN(Number(JSON.parse(sdata.cdate)))
|
|
1989
|
-
? null
|
|
1990
|
-
: Number(JSON.parse(sdata.cdate)),
|
|
1991
|
-
mdate: isNaN(Number(JSON.parse(sdata.mdate)))
|
|
1992
|
-
? null
|
|
1993
|
-
: Number(JSON.parse(sdata.mdate)),
|
|
1994
|
-
},
|
|
1995
|
-
},
|
|
1996
|
-
);
|
|
1997
|
-
const promises = [];
|
|
1998
|
-
promises.push(
|
|
1999
|
-
this.queryRun(
|
|
2000
|
-
`DELETE FROM ${PostgreSQLDriver.escape(
|
|
2001
|
-
`${this.prefix}data_${etype}`,
|
|
2002
|
-
)} WHERE "guid"=decode(@guid, 'hex');`,
|
|
2003
|
-
{
|
|
2004
|
-
etypes: [etype],
|
|
2005
|
-
params: {
|
|
2006
|
-
guid,
|
|
2007
|
-
},
|
|
2008
|
-
},
|
|
2009
|
-
),
|
|
2010
|
-
);
|
|
2011
|
-
promises.push(
|
|
2012
|
-
this.queryRun(
|
|
1968
|
+
try {
|
|
1969
|
+
await this.internalTransaction(`nymph-import-entity-${guid}`);
|
|
1970
|
+
await this.queryRun(
|
|
2013
1971
|
`DELETE FROM ${PostgreSQLDriver.escape(
|
|
2014
|
-
`${this.prefix}
|
|
1972
|
+
`${this.prefix}entities_${etype}`,
|
|
2015
1973
|
)} WHERE "guid"=decode(@guid, 'hex');`,
|
|
2016
1974
|
{
|
|
2017
1975
|
etypes: [etype],
|
|
@@ -2019,124 +1977,186 @@ export default class PostgreSQLDriver extends NymphDriver {
|
|
|
2019
1977
|
guid,
|
|
2020
1978
|
},
|
|
2021
1979
|
},
|
|
2022
|
-
)
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
`${this.prefix}references_${etype}`,
|
|
2028
|
-
)} WHERE "guid"=decode(@guid, 'hex');`,
|
|
1980
|
+
);
|
|
1981
|
+
await this.queryRun(
|
|
1982
|
+
`INSERT INTO ${PostgreSQLDriver.escape(
|
|
1983
|
+
`${this.prefix}entities_${etype}`,
|
|
1984
|
+
)} ("guid", "tags", "cdate", "mdate") VALUES (decode(@guid, 'hex'), @tags, @cdate, @mdate);`,
|
|
2029
1985
|
{
|
|
2030
1986
|
etypes: [etype],
|
|
2031
1987
|
params: {
|
|
2032
1988
|
guid,
|
|
1989
|
+
tags,
|
|
1990
|
+
cdate: isNaN(Number(JSON.parse(sdata.cdate)))
|
|
1991
|
+
? null
|
|
1992
|
+
: Number(JSON.parse(sdata.cdate)),
|
|
1993
|
+
mdate: isNaN(Number(JSON.parse(sdata.mdate)))
|
|
1994
|
+
? null
|
|
1995
|
+
: Number(JSON.parse(sdata.mdate)),
|
|
2033
1996
|
},
|
|
2034
1997
|
},
|
|
2035
|
-
)
|
|
2036
|
-
);
|
|
2037
|
-
await Promise.all(promises);
|
|
2038
|
-
delete sdata.cdate;
|
|
2039
|
-
delete sdata.mdate;
|
|
2040
|
-
for (const name in sdata) {
|
|
2041
|
-
const value = sdata[name];
|
|
2042
|
-
const uvalue = JSON.parse(value);
|
|
2043
|
-
if (value === undefined) {
|
|
2044
|
-
continue;
|
|
2045
|
-
}
|
|
2046
|
-
const storageValue =
|
|
2047
|
-
typeof uvalue === 'number'
|
|
2048
|
-
? 'N'
|
|
2049
|
-
: typeof uvalue === 'string'
|
|
2050
|
-
? 'S'
|
|
2051
|
-
: value;
|
|
1998
|
+
);
|
|
2052
1999
|
const promises = [];
|
|
2053
2000
|
promises.push(
|
|
2054
2001
|
this.queryRun(
|
|
2055
|
-
`
|
|
2002
|
+
`DELETE FROM ${PostgreSQLDriver.escape(
|
|
2056
2003
|
`${this.prefix}data_${etype}`,
|
|
2057
|
-
)}
|
|
2004
|
+
)} WHERE "guid"=decode(@guid, 'hex');`,
|
|
2058
2005
|
{
|
|
2059
2006
|
etypes: [etype],
|
|
2060
2007
|
params: {
|
|
2061
2008
|
guid,
|
|
2062
|
-
name,
|
|
2063
|
-
storageValue,
|
|
2064
2009
|
},
|
|
2065
2010
|
},
|
|
2066
2011
|
),
|
|
2067
2012
|
);
|
|
2068
2013
|
promises.push(
|
|
2069
2014
|
this.queryRun(
|
|
2070
|
-
`
|
|
2015
|
+
`DELETE FROM ${PostgreSQLDriver.escape(
|
|
2071
2016
|
`${this.prefix}comparisons_${etype}`,
|
|
2072
|
-
)}
|
|
2017
|
+
)} WHERE "guid"=decode(@guid, 'hex');`,
|
|
2018
|
+
{
|
|
2019
|
+
etypes: [etype],
|
|
2020
|
+
params: {
|
|
2021
|
+
guid,
|
|
2022
|
+
},
|
|
2023
|
+
},
|
|
2024
|
+
),
|
|
2025
|
+
);
|
|
2026
|
+
promises.push(
|
|
2027
|
+
this.queryRun(
|
|
2028
|
+
`DELETE FROM ${PostgreSQLDriver.escape(
|
|
2029
|
+
`${this.prefix}references_${etype}`,
|
|
2030
|
+
)} WHERE "guid"=decode(@guid, 'hex');`,
|
|
2073
2031
|
{
|
|
2074
2032
|
etypes: [etype],
|
|
2075
2033
|
params: {
|
|
2076
2034
|
guid,
|
|
2077
|
-
name,
|
|
2078
|
-
truthy: !!uvalue,
|
|
2079
|
-
string: `${uvalue}`,
|
|
2080
|
-
number: isNaN(Number(uvalue)) ? null : Number(uvalue),
|
|
2081
2035
|
},
|
|
2082
2036
|
},
|
|
2083
2037
|
),
|
|
2084
2038
|
);
|
|
2085
|
-
|
|
2086
|
-
|
|
2039
|
+
await Promise.all(promises);
|
|
2040
|
+
delete sdata.cdate;
|
|
2041
|
+
delete sdata.mdate;
|
|
2042
|
+
for (const name in sdata) {
|
|
2043
|
+
const value = sdata[name];
|
|
2044
|
+
const uvalue = JSON.parse(value);
|
|
2045
|
+
if (value === undefined) {
|
|
2046
|
+
continue;
|
|
2047
|
+
}
|
|
2048
|
+
const storageValue =
|
|
2049
|
+
typeof uvalue === 'number'
|
|
2050
|
+
? 'N'
|
|
2051
|
+
: typeof uvalue === 'string'
|
|
2052
|
+
? 'S'
|
|
2053
|
+
: value;
|
|
2054
|
+
const promises = [];
|
|
2055
|
+
promises.push(
|
|
2056
|
+
this.queryRun(
|
|
2057
|
+
`INSERT INTO ${PostgreSQLDriver.escape(
|
|
2058
|
+
`${this.prefix}data_${etype}`,
|
|
2059
|
+
)} ("guid", "name", "value") VALUES (decode(@guid, 'hex'), @name, @storageValue);`,
|
|
2060
|
+
{
|
|
2061
|
+
etypes: [etype],
|
|
2062
|
+
params: {
|
|
2063
|
+
guid,
|
|
2064
|
+
name,
|
|
2065
|
+
storageValue,
|
|
2066
|
+
},
|
|
2067
|
+
},
|
|
2068
|
+
),
|
|
2069
|
+
);
|
|
2087
2070
|
promises.push(
|
|
2088
2071
|
this.queryRun(
|
|
2089
2072
|
`INSERT INTO ${PostgreSQLDriver.escape(
|
|
2090
|
-
`${this.prefix}
|
|
2091
|
-
)} ("guid", "name", "
|
|
2073
|
+
`${this.prefix}comparisons_${etype}`,
|
|
2074
|
+
)} ("guid", "name", "truthy", "string", "number") VALUES (decode(@guid, 'hex'), @name, @truthy, @string, @number);`,
|
|
2092
2075
|
{
|
|
2093
2076
|
etypes: [etype],
|
|
2094
2077
|
params: {
|
|
2095
2078
|
guid,
|
|
2096
2079
|
name,
|
|
2097
|
-
|
|
2080
|
+
truthy: !!uvalue,
|
|
2081
|
+
string: `${uvalue}`,
|
|
2082
|
+
number: isNaN(Number(uvalue)) ? null : Number(uvalue),
|
|
2098
2083
|
},
|
|
2099
2084
|
},
|
|
2100
2085
|
),
|
|
2101
2086
|
);
|
|
2087
|
+
const references = this.findReferences(value);
|
|
2088
|
+
for (const reference of references) {
|
|
2089
|
+
promises.push(
|
|
2090
|
+
this.queryRun(
|
|
2091
|
+
`INSERT INTO ${PostgreSQLDriver.escape(
|
|
2092
|
+
`${this.prefix}references_${etype}`,
|
|
2093
|
+
)} ("guid", "name", "reference") VALUES (decode(@guid, 'hex'), @name, decode(@reference, 'hex'));`,
|
|
2094
|
+
{
|
|
2095
|
+
etypes: [etype],
|
|
2096
|
+
params: {
|
|
2097
|
+
guid,
|
|
2098
|
+
name,
|
|
2099
|
+
reference,
|
|
2100
|
+
},
|
|
2101
|
+
},
|
|
2102
|
+
),
|
|
2103
|
+
);
|
|
2104
|
+
}
|
|
2102
2105
|
}
|
|
2106
|
+
await Promise.all(promises);
|
|
2107
|
+
await this.commit(`nymph-import-entity-${guid}`);
|
|
2108
|
+
} catch (e: any) {
|
|
2109
|
+
await this.rollback(`nymph-import-entity-${guid}`);
|
|
2110
|
+
throw e;
|
|
2103
2111
|
}
|
|
2104
|
-
await Promise.all(promises);
|
|
2105
2112
|
},
|
|
2106
2113
|
async (name, curUid) => {
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
+
try {
|
|
2115
|
+
await this.internalTransaction(`nymph-import-uid-${name}`);
|
|
2116
|
+
await this.queryRun(
|
|
2117
|
+
`DELETE FROM ${PostgreSQLDriver.escape(
|
|
2118
|
+
`${this.prefix}uids`,
|
|
2119
|
+
)} WHERE "name"=@name;`,
|
|
2120
|
+
{
|
|
2121
|
+
params: {
|
|
2122
|
+
name,
|
|
2123
|
+
},
|
|
2114
2124
|
},
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
+
);
|
|
2126
|
+
await this.queryRun(
|
|
2127
|
+
`INSERT INTO ${PostgreSQLDriver.escape(
|
|
2128
|
+
`${this.prefix}uids`,
|
|
2129
|
+
)} ("name", "cur_uid") VALUES (@name, @curUid);`,
|
|
2130
|
+
{
|
|
2131
|
+
params: {
|
|
2132
|
+
name,
|
|
2133
|
+
curUid,
|
|
2134
|
+
},
|
|
2125
2135
|
},
|
|
2126
|
-
|
|
2127
|
-
|
|
2136
|
+
);
|
|
2137
|
+
await this.commit(`nymph-import-uid-${name}`);
|
|
2138
|
+
} catch (e: any) {
|
|
2139
|
+
await this.rollback(`nymph-import-uid-${name}`);
|
|
2140
|
+
throw e;
|
|
2141
|
+
}
|
|
2128
2142
|
},
|
|
2129
2143
|
async () => {
|
|
2130
|
-
|
|
2144
|
+
if (transaction) {
|
|
2145
|
+
await this.internalTransaction('nymph-import');
|
|
2146
|
+
}
|
|
2131
2147
|
},
|
|
2132
2148
|
async () => {
|
|
2133
|
-
|
|
2149
|
+
if (transaction) {
|
|
2150
|
+
await this.commit('nymph-import');
|
|
2151
|
+
}
|
|
2134
2152
|
},
|
|
2135
2153
|
);
|
|
2136
2154
|
|
|
2137
2155
|
return result;
|
|
2138
2156
|
} catch (e: any) {
|
|
2139
|
-
|
|
2157
|
+
if (transaction) {
|
|
2158
|
+
await this.rollback('nymph-import');
|
|
2159
|
+
}
|
|
2140
2160
|
return false;
|
|
2141
2161
|
}
|
|
2142
2162
|
}
|