@nymphjs/driver-postgresql 1.0.0-beta.67 → 1.0.0-beta.69

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 CHANGED
@@ -3,6 +3,18 @@
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.69](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.68...v1.0.0-beta.69) (2024-09-19)
7
+
8
+ ### Bug Fixes
9
+
10
+ - create postgres tables outside of transaction ([d95e320](https://github.com/sciactive/nymphjs/commit/d95e32025432540fea3523d8a6c6081122d5fc14))
11
+
12
+ # [1.0.0-beta.68](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.67...v1.0.0-beta.68) (2024-09-19)
13
+
14
+ ### Features
15
+
16
+ - add more indexes for postgres and sqlite ([704993e](https://github.com/sciactive/nymphjs/commit/704993ef10f049a886c36de15827736ef5d54c78))
17
+
6
18
  # [1.0.0-beta.67](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.66...v1.0.0-beta.67) (2024-09-03)
7
19
 
8
20
  **Note:** Version bump only for package @nymphjs/driver-postgresql
@@ -56,8 +56,10 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
56
56
  clone() {
57
57
  return new PostgreSQLDriver(this.config, this.link, this.transaction ?? undefined);
58
58
  }
59
- getConnection() {
60
- if (this.transaction != null && this.transaction.connection != null) {
59
+ getConnection(outsideTransaction = false) {
60
+ if (this.transaction != null &&
61
+ this.transaction.connection != null &&
62
+ !outsideTransaction) {
61
63
  return Promise.resolve(this.transaction.connection);
62
64
  }
63
65
  return new Promise((resolve, reject) => this.link.connect((err, client, done) => err
@@ -142,6 +144,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
142
144
  * @returns True on success, false on failure.
143
145
  */
144
146
  async createTables(etype = null) {
147
+ const connection = await this.getConnection(true);
145
148
  if (etype != null) {
146
149
  // Create the entity table.
147
150
  await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} (
@@ -150,14 +153,14 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
150
153
  "cdate" DOUBLE PRECISION NOT NULL,
151
154
  "mdate" DOUBLE PRECISION NOT NULL,
152
155
  PRIMARY KEY ("guid")
153
- ) WITH ( OIDS=FALSE );`);
154
- await this.queryRun(`ALTER TABLE ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`);
155
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_cdate`)};`);
156
- await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_cdate`)} ON ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} USING btree ("cdate");`);
157
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_mdate`)};`);
158
- await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_mdate`)} ON ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} USING btree ("mdate");`);
159
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_tags`)};`);
160
- await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_tags`)} ON ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} USING gin ("tags");`);
156
+ ) WITH ( OIDS=FALSE );`, { connection });
157
+ await this.queryRun(`ALTER TABLE ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`, { connection });
158
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_cdate`)};`, { connection });
159
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_cdate`)} ON ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} USING btree ("cdate");`, { connection });
160
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_mdate`)};`, { connection });
161
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_mdate`)} ON ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} USING btree ("mdate");`, { connection });
162
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_tags`)};`, { connection });
163
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_tags`)} ON ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} USING gin ("tags");`, { connection });
161
164
  // Create the data table.
162
165
  await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} (
163
166
  "guid" BYTEA NOT NULL,
@@ -166,16 +169,18 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
166
169
  PRIMARY KEY ("guid", "name"),
167
170
  FOREIGN KEY ("guid")
168
171
  REFERENCES ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} ("guid") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE
169
- ) WITH ( OIDS=FALSE );`);
170
- await this.queryRun(`ALTER TABLE ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`);
171
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid`)};`);
172
- await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid`)} ON ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} USING btree ("guid");`);
173
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_name`)};`);
174
- await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_name`)} ON ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} USING btree ("name");`);
175
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid_name__user`)};`);
176
- 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;`);
177
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid_name__group`)};`);
178
- 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;`);
172
+ ) WITH ( OIDS=FALSE );`, { connection });
173
+ await this.queryRun(`ALTER TABLE ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`, { connection });
174
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid`)};`, { connection });
175
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid`)} ON ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} USING btree ("guid");`, { connection });
176
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_name`)};`, { connection });
177
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_name`)} ON ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} USING btree ("name");`, { connection });
178
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid_name__user`)};`, { connection });
179
+ 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;`, { connection });
180
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid_name__group`)};`, { connection });
181
+ 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;`, { connection });
182
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_name_value`)};`, { connection });
183
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_name_value`)} ON ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} USING btree ("name", "value");`, { connection });
179
184
  // Create the data comparisons table.
180
185
  await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} (
181
186
  "guid" BYTEA NOT NULL,
@@ -186,16 +191,20 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
186
191
  PRIMARY KEY ("guid", "name"),
187
192
  FOREIGN KEY ("guid")
188
193
  REFERENCES ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} ("guid") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE
189
- ) WITH ( OIDS=FALSE );`);
190
- await this.queryRun(`ALTER TABLE ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`);
191
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid`)};`);
192
- await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("guid");`);
193
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name`)};`);
194
- await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("name");`);
195
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid_name_truthy`)};`);
196
- 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;`);
197
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid_name_falsy`)};`);
198
- 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
+ ) WITH ( OIDS=FALSE );`, { connection });
195
+ await this.queryRun(`ALTER TABLE ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`, { connection });
196
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid`)};`, { connection });
197
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("guid");`, { connection });
198
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name`)};`, { connection });
199
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("name");`, { connection });
200
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name_truthy`)};`, { connection });
201
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name_truthy`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("name") WHERE "truthy" = TRUE;`, { connection });
202
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name_falsy`)};`, { connection });
203
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name_falsy`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("name") WHERE "truthy" <> TRUE;`, { connection });
204
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name_string`)};`, { connection });
205
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name_string`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("name", "string");`, { connection });
206
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name_number`)};`, { connection });
207
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_name_number`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("name", "number");`, { connection });
199
208
  // Create the references table.
200
209
  await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} (
201
210
  "guid" BYTEA NOT NULL,
@@ -204,14 +213,14 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
204
213
  PRIMARY KEY ("guid", "name", "reference"),
205
214
  FOREIGN KEY ("guid")
206
215
  REFERENCES ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} ("guid") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE
207
- ) WITH ( OIDS=FALSE );`);
208
- await this.queryRun(`ALTER TABLE ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`);
209
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_guid`)};`);
210
- await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_guid`)} ON ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} USING btree ("guid");`);
211
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_name`)};`);
212
- await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_name`)} ON ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} USING btree ("name");`);
213
- await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_reference`)};`);
214
- await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_reference`)} ON ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} USING btree ("reference");`);
216
+ ) WITH ( OIDS=FALSE );`, { connection });
217
+ await this.queryRun(`ALTER TABLE ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`, { connection });
218
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_guid`)};`, { connection });
219
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_guid`)} ON ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} USING btree ("guid");`, { connection });
220
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_name`)};`, { connection });
221
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_name`)} ON ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} USING btree ("name");`, { connection });
222
+ await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_name_reference`)};`, { connection });
223
+ await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_name_reference`)} ON ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} USING btree ("name", "reference");`, { connection });
215
224
  // Create the unique strings table.
216
225
  await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}uniques_${etype}`)} (
217
226
  "guid" BYTEA NOT NULL,
@@ -219,7 +228,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
219
228
  PRIMARY KEY ("guid", "unique"),
220
229
  FOREIGN KEY ("guid")
221
230
  REFERENCES ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} ("guid") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE
222
- ) WITH ( OIDS=FALSE );`);
231
+ ) WITH ( OIDS=FALSE );`, { connection });
223
232
  }
224
233
  else {
225
234
  // Create the UID table.
@@ -227,9 +236,10 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
227
236
  "name" TEXT NOT NULL,
228
237
  "cur_uid" BIGINT NOT NULL,
229
238
  PRIMARY KEY ("name")
230
- ) WITH ( OIDS = FALSE );`);
231
- await this.queryRun(`ALTER TABLE ${PostgreSQLDriver.escape(`${this.prefix}uids`)} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`);
239
+ ) WITH ( OIDS = FALSE );`, { connection });
240
+ await this.queryRun(`ALTER TABLE ${PostgreSQLDriver.escape(`${this.prefix}uids`)} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`, { connection });
232
241
  }
242
+ connection.done();
233
243
  return true;
234
244
  }
235
245
  translateQuery(origQuery, origParams) {
@@ -303,12 +313,13 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
303
313
  return results.rows[0];
304
314
  }, `${query} -- ${JSON.stringify(params)}`, etypes);
305
315
  }
306
- queryRun(query, { etypes = [], params = {}, } = {}) {
316
+ queryRun(query, { etypes = [], params = {}, connection, } = {}) {
307
317
  const { query: newQuery, params: newParams } = this.translateQuery(query, params);
308
318
  return this.query(async () => {
309
319
  const results = await new Promise((resolve, reject) => {
310
320
  try {
311
- (this.transaction?.connection?.client ?? this.link)
321
+ ((connection ?? this.transaction?.connection)?.client ??
322
+ this.link)
312
323
  .query(newQuery, newParams)
313
324
  .then((results) => resolve(results), (error) => reject(error));
314
325
  }
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nymphjs/driver-postgresql",
3
- "version": "1.0.0-beta.67",
3
+ "version": "1.0.0-beta.69",
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.67",
37
- "@nymphjs/nymph": "^1.0.0-beta.67",
36
+ "@nymphjs/guid": "^1.0.0-beta.69",
37
+ "@nymphjs/nymph": "^1.0.0-beta.69",
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": "90cd05c946aff259a4ecf750a62ab501ad1f1b63"
50
+ "gitHead": "3f7d4063c71aa37a13e6fdadacb136dc9e208309"
51
51
  }
@@ -96,8 +96,14 @@ export default class PostgreSQLDriver extends NymphDriver {
96
96
  );
97
97
  }
98
98
 
99
- private getConnection(): Promise<PostgreSQLDriverConnection> {
100
- if (this.transaction != null && this.transaction.connection != null) {
99
+ private getConnection(
100
+ outsideTransaction = false,
101
+ ): Promise<PostgreSQLDriverConnection> {
102
+ if (
103
+ this.transaction != null &&
104
+ this.transaction.connection != null &&
105
+ !outsideTransaction
106
+ ) {
101
107
  return Promise.resolve(this.transaction.connection);
102
108
  }
103
109
  return new Promise((resolve, reject) =>
@@ -200,6 +206,7 @@ export default class PostgreSQLDriver extends NymphDriver {
200
206
  * @returns True on success, false on failure.
201
207
  */
202
208
  private async createTables(etype: string | null = null) {
209
+ const connection = await this.getConnection(true);
203
210
  if (etype != null) {
204
211
  // Create the entity table.
205
212
  await this.queryRun(
@@ -212,16 +219,19 @@ export default class PostgreSQLDriver extends NymphDriver {
212
219
  "mdate" DOUBLE PRECISION NOT NULL,
213
220
  PRIMARY KEY ("guid")
214
221
  ) WITH ( OIDS=FALSE );`,
222
+ { connection },
215
223
  );
216
224
  await this.queryRun(
217
225
  `ALTER TABLE ${PostgreSQLDriver.escape(
218
226
  `${this.prefix}entities_${etype}`,
219
227
  )} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`,
228
+ { connection },
220
229
  );
221
230
  await this.queryRun(
222
231
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
223
232
  `${this.prefix}entities_${etype}_id_cdate`,
224
233
  )};`,
234
+ { connection },
225
235
  );
226
236
  await this.queryRun(
227
237
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -229,11 +239,13 @@ export default class PostgreSQLDriver extends NymphDriver {
229
239
  )} ON ${PostgreSQLDriver.escape(
230
240
  `${this.prefix}entities_${etype}`,
231
241
  )} USING btree ("cdate");`,
242
+ { connection },
232
243
  );
233
244
  await this.queryRun(
234
245
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
235
246
  `${this.prefix}entities_${etype}_id_mdate`,
236
247
  )};`,
248
+ { connection },
237
249
  );
238
250
  await this.queryRun(
239
251
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -241,11 +253,13 @@ export default class PostgreSQLDriver extends NymphDriver {
241
253
  )} ON ${PostgreSQLDriver.escape(
242
254
  `${this.prefix}entities_${etype}`,
243
255
  )} USING btree ("mdate");`,
256
+ { connection },
244
257
  );
245
258
  await this.queryRun(
246
259
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
247
260
  `${this.prefix}entities_${etype}_id_tags`,
248
261
  )};`,
262
+ { connection },
249
263
  );
250
264
  await this.queryRun(
251
265
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -253,6 +267,7 @@ export default class PostgreSQLDriver extends NymphDriver {
253
267
  )} ON ${PostgreSQLDriver.escape(
254
268
  `${this.prefix}entities_${etype}`,
255
269
  )} USING gin ("tags");`,
270
+ { connection },
256
271
  );
257
272
  // Create the data table.
258
273
  await this.queryRun(
@@ -268,16 +283,19 @@ export default class PostgreSQLDriver extends NymphDriver {
268
283
  `${this.prefix}entities_${etype}`,
269
284
  )} ("guid") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE
270
285
  ) WITH ( OIDS=FALSE );`,
286
+ { connection },
271
287
  );
272
288
  await this.queryRun(
273
289
  `ALTER TABLE ${PostgreSQLDriver.escape(
274
290
  `${this.prefix}data_${etype}`,
275
291
  )} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`,
292
+ { connection },
276
293
  );
277
294
  await this.queryRun(
278
295
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
279
296
  `${this.prefix}data_${etype}_id_guid`,
280
297
  )};`,
298
+ { connection },
281
299
  );
282
300
  await this.queryRun(
283
301
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -285,11 +303,13 @@ export default class PostgreSQLDriver extends NymphDriver {
285
303
  )} ON ${PostgreSQLDriver.escape(
286
304
  `${this.prefix}data_${etype}`,
287
305
  )} USING btree ("guid");`,
306
+ { connection },
288
307
  );
289
308
  await this.queryRun(
290
309
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
291
310
  `${this.prefix}data_${etype}_id_name`,
292
311
  )};`,
312
+ { connection },
293
313
  );
294
314
  await this.queryRun(
295
315
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -297,11 +317,13 @@ export default class PostgreSQLDriver extends NymphDriver {
297
317
  )} ON ${PostgreSQLDriver.escape(
298
318
  `${this.prefix}data_${etype}`,
299
319
  )} USING btree ("name");`,
320
+ { connection },
300
321
  );
301
322
  await this.queryRun(
302
323
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
303
324
  `${this.prefix}data_${etype}_id_guid_name__user`,
304
325
  )};`,
326
+ { connection },
305
327
  );
306
328
  await this.queryRun(
307
329
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -309,11 +331,13 @@ export default class PostgreSQLDriver extends NymphDriver {
309
331
  )} ON ${PostgreSQLDriver.escape(
310
332
  `${this.prefix}data_${etype}`,
311
333
  )} USING btree ("guid") WHERE "name" = 'user'::text;`,
334
+ { connection },
312
335
  );
313
336
  await this.queryRun(
314
337
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
315
338
  `${this.prefix}data_${etype}_id_guid_name__group`,
316
339
  )};`,
340
+ { connection },
317
341
  );
318
342
  await this.queryRun(
319
343
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -321,6 +345,21 @@ export default class PostgreSQLDriver extends NymphDriver {
321
345
  )} ON ${PostgreSQLDriver.escape(
322
346
  `${this.prefix}data_${etype}`,
323
347
  )} USING btree ("guid") WHERE "name" = 'group'::text;`,
348
+ { connection },
349
+ );
350
+ await this.queryRun(
351
+ `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
352
+ `${this.prefix}data_${etype}_id_name_value`,
353
+ )};`,
354
+ { connection },
355
+ );
356
+ await this.queryRun(
357
+ `CREATE INDEX ${PostgreSQLDriver.escape(
358
+ `${this.prefix}data_${etype}_id_name_value`,
359
+ )} ON ${PostgreSQLDriver.escape(
360
+ `${this.prefix}data_${etype}`,
361
+ )} USING btree ("name", "value");`,
362
+ { connection },
324
363
  );
325
364
  // Create the data comparisons table.
326
365
  await this.queryRun(
@@ -338,16 +377,19 @@ export default class PostgreSQLDriver extends NymphDriver {
338
377
  `${this.prefix}entities_${etype}`,
339
378
  )} ("guid") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE
340
379
  ) WITH ( OIDS=FALSE );`,
380
+ { connection },
341
381
  );
342
382
  await this.queryRun(
343
383
  `ALTER TABLE ${PostgreSQLDriver.escape(
344
384
  `${this.prefix}comparisons_${etype}`,
345
385
  )} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`,
386
+ { connection },
346
387
  );
347
388
  await this.queryRun(
348
389
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
349
390
  `${this.prefix}comparisons_${etype}_id_guid`,
350
391
  )};`,
392
+ { connection },
351
393
  );
352
394
  await this.queryRun(
353
395
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -355,11 +397,13 @@ export default class PostgreSQLDriver extends NymphDriver {
355
397
  )} ON ${PostgreSQLDriver.escape(
356
398
  `${this.prefix}comparisons_${etype}`,
357
399
  )} USING btree ("guid");`,
400
+ { connection },
358
401
  );
359
402
  await this.queryRun(
360
403
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
361
404
  `${this.prefix}comparisons_${etype}_id_name`,
362
405
  )};`,
406
+ { connection },
363
407
  );
364
408
  await this.queryRun(
365
409
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -367,30 +411,63 @@ export default class PostgreSQLDriver extends NymphDriver {
367
411
  )} ON ${PostgreSQLDriver.escape(
368
412
  `${this.prefix}comparisons_${etype}`,
369
413
  )} USING btree ("name");`,
414
+ { connection },
415
+ );
416
+ await this.queryRun(
417
+ `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
418
+ `${this.prefix}comparisons_${etype}_id_name_truthy`,
419
+ )};`,
420
+ { connection },
421
+ );
422
+ await this.queryRun(
423
+ `CREATE INDEX ${PostgreSQLDriver.escape(
424
+ `${this.prefix}comparisons_${etype}_id_name_truthy`,
425
+ )} ON ${PostgreSQLDriver.escape(
426
+ `${this.prefix}comparisons_${etype}`,
427
+ )} USING btree ("name") WHERE "truthy" = TRUE;`,
428
+ { connection },
370
429
  );
371
430
  await this.queryRun(
372
431
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
373
- `${this.prefix}comparisons_${etype}_id_guid_name_truthy`,
432
+ `${this.prefix}comparisons_${etype}_id_name_falsy`,
374
433
  )};`,
434
+ { connection },
375
435
  );
376
436
  await this.queryRun(
377
437
  `CREATE INDEX ${PostgreSQLDriver.escape(
378
- `${this.prefix}comparisons_${etype}_id_guid_name_truthy`,
438
+ `${this.prefix}comparisons_${etype}_id_name_falsy`,
379
439
  )} ON ${PostgreSQLDriver.escape(
380
440
  `${this.prefix}comparisons_${etype}`,
381
- )} USING btree ("guid", "name") WHERE "truthy" = TRUE;`,
441
+ )} USING btree ("name") WHERE "truthy" <> TRUE;`,
442
+ { connection },
382
443
  );
383
444
  await this.queryRun(
384
445
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
385
- `${this.prefix}comparisons_${etype}_id_guid_name_falsy`,
446
+ `${this.prefix}comparisons_${etype}_id_name_string`,
386
447
  )};`,
448
+ { connection },
387
449
  );
388
450
  await this.queryRun(
389
451
  `CREATE INDEX ${PostgreSQLDriver.escape(
390
- `${this.prefix}comparisons_${etype}_id_guid_name_falsy`,
452
+ `${this.prefix}comparisons_${etype}_id_name_string`,
391
453
  )} ON ${PostgreSQLDriver.escape(
392
454
  `${this.prefix}comparisons_${etype}`,
393
- )} USING btree ("guid", "name") WHERE "truthy" <> TRUE;`,
455
+ )} USING btree ("name", "string");`,
456
+ { connection },
457
+ );
458
+ await this.queryRun(
459
+ `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
460
+ `${this.prefix}comparisons_${etype}_id_name_number`,
461
+ )};`,
462
+ { connection },
463
+ );
464
+ await this.queryRun(
465
+ `CREATE INDEX ${PostgreSQLDriver.escape(
466
+ `${this.prefix}comparisons_${etype}_id_name_number`,
467
+ )} ON ${PostgreSQLDriver.escape(
468
+ `${this.prefix}comparisons_${etype}`,
469
+ )} USING btree ("name", "number");`,
470
+ { connection },
394
471
  );
395
472
  // Create the references table.
396
473
  await this.queryRun(
@@ -406,16 +483,19 @@ export default class PostgreSQLDriver extends NymphDriver {
406
483
  `${this.prefix}entities_${etype}`,
407
484
  )} ("guid") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE
408
485
  ) WITH ( OIDS=FALSE );`,
486
+ { connection },
409
487
  );
410
488
  await this.queryRun(
411
489
  `ALTER TABLE ${PostgreSQLDriver.escape(
412
490
  `${this.prefix}references_${etype}`,
413
491
  )} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`,
492
+ { connection },
414
493
  );
415
494
  await this.queryRun(
416
495
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
417
496
  `${this.prefix}references_${etype}_id_guid`,
418
497
  )};`,
498
+ { connection },
419
499
  );
420
500
  await this.queryRun(
421
501
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -423,11 +503,13 @@ export default class PostgreSQLDriver extends NymphDriver {
423
503
  )} ON ${PostgreSQLDriver.escape(
424
504
  `${this.prefix}references_${etype}`,
425
505
  )} USING btree ("guid");`,
506
+ { connection },
426
507
  );
427
508
  await this.queryRun(
428
509
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
429
510
  `${this.prefix}references_${etype}_id_name`,
430
511
  )};`,
512
+ { connection },
431
513
  );
432
514
  await this.queryRun(
433
515
  `CREATE INDEX ${PostgreSQLDriver.escape(
@@ -435,18 +517,21 @@ export default class PostgreSQLDriver extends NymphDriver {
435
517
  )} ON ${PostgreSQLDriver.escape(
436
518
  `${this.prefix}references_${etype}`,
437
519
  )} USING btree ("name");`,
520
+ { connection },
438
521
  );
439
522
  await this.queryRun(
440
523
  `DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(
441
- `${this.prefix}references_${etype}_id_reference`,
524
+ `${this.prefix}references_${etype}_id_name_reference`,
442
525
  )};`,
526
+ { connection },
443
527
  );
444
528
  await this.queryRun(
445
529
  `CREATE INDEX ${PostgreSQLDriver.escape(
446
- `${this.prefix}references_${etype}_id_reference`,
530
+ `${this.prefix}references_${etype}_id_name_reference`,
447
531
  )} ON ${PostgreSQLDriver.escape(
448
532
  `${this.prefix}references_${etype}`,
449
- )} USING btree ("reference");`,
533
+ )} USING btree ("name", "reference");`,
534
+ { connection },
450
535
  );
451
536
  // Create the unique strings table.
452
537
  await this.queryRun(
@@ -461,6 +546,7 @@ export default class PostgreSQLDriver extends NymphDriver {
461
546
  `${this.prefix}entities_${etype}`,
462
547
  )} ("guid") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE
463
548
  ) WITH ( OIDS=FALSE );`,
549
+ { connection },
464
550
  );
465
551
  } else {
466
552
  // Create the UID table.
@@ -472,13 +558,16 @@ export default class PostgreSQLDriver extends NymphDriver {
472
558
  "cur_uid" BIGINT NOT NULL,
473
559
  PRIMARY KEY ("name")
474
560
  ) WITH ( OIDS = FALSE );`,
561
+ { connection },
475
562
  );
476
563
  await this.queryRun(
477
564
  `ALTER TABLE ${PostgreSQLDriver.escape(
478
565
  `${this.prefix}uids`,
479
566
  )} OWNER TO ${PostgreSQLDriver.escape(this.config.user)};`,
567
+ { connection },
480
568
  );
481
569
  }
570
+ connection.done();
482
571
  return true;
483
572
  }
484
573
 
@@ -614,9 +703,11 @@ export default class PostgreSQLDriver extends NymphDriver {
614
703
  {
615
704
  etypes = [],
616
705
  params = {},
706
+ connection,
617
707
  }: {
618
708
  etypes?: string[];
619
709
  params?: { [k: string]: any };
710
+ connection?: PostgreSQLDriverConnection;
620
711
  } = {},
621
712
  ) {
622
713
  const { query: newQuery, params: newParams } = this.translateQuery(
@@ -628,7 +719,10 @@ export default class PostgreSQLDriver extends NymphDriver {
628
719
  const results: QueryResult<any> = await new Promise(
629
720
  (resolve, reject) => {
630
721
  try {
631
- (this.transaction?.connection?.client ?? this.link)
722
+ (
723
+ (connection ?? this.transaction?.connection)?.client ??
724
+ this.link
725
+ )
632
726
  .query(newQuery, newParams)
633
727
  .then(
634
728
  (results) => resolve(results),