@typed-sql/postgres 1.0.0-beta.2 → 1.0.0
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 +78 -0
- package/README.md +31 -64
- package/dist/packages/postgres/src/pg.d.ts +12 -3
- package/dist/packages/postgres/src/pg.d.ts.map +1 -1
- package/dist/packages/postgres/src/pg.js +114 -14
- package/dist/packages/postgres/src/pg.js.map +1 -1
- package/dist/packages/postgres/src/prepared.d.ts +20 -0
- package/dist/packages/postgres/src/prepared.d.ts.map +1 -0
- package/dist/packages/postgres/src/prepared.js +47 -0
- package/dist/packages/postgres/src/prepared.js.map +1 -0
- package/dist/packages/postgres/src/runtime.d.ts +21 -3
- package/dist/packages/postgres/src/runtime.d.ts.map +1 -1
- package/dist/packages/postgres/src/runtime.js +509 -20
- package/dist/packages/postgres/src/runtime.js.map +1 -1
- package/dist/packages/postgres/src/stream.d.ts +34 -0
- package/dist/packages/postgres/src/stream.d.ts.map +1 -0
- package/dist/packages/postgres/src/stream.js +124 -0
- package/dist/packages/postgres/src/stream.js.map +1 -0
- package/package.json +4 -4
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
var _a;
|
|
2
|
-
import { renderQuery } from "@typed-sql/core";
|
|
2
|
+
import { renderQuery, } from "@typed-sql/core";
|
|
3
|
+
import { createPostgresPreparedQueryState, preparePostgresQuery, } from "./prepared.js";
|
|
4
|
+
import { PostgresQueryStream, validatePostgresStreamBatchSize } from "./stream.js";
|
|
3
5
|
import { defaultPostgresTypePolicy } from "./type-policy.js";
|
|
4
6
|
const defaultPolicy = defaultPostgresTypePolicy;
|
|
7
|
+
const emptyBatchResults = Object.freeze([]);
|
|
5
8
|
const oids = {
|
|
6
9
|
int8: 20,
|
|
7
10
|
date: 1082,
|
|
@@ -121,61 +124,547 @@ class PostgresDatabaseImplementation {
|
|
|
121
124
|
#client;
|
|
122
125
|
#parsers;
|
|
123
126
|
#ownsPool;
|
|
127
|
+
#prepared;
|
|
124
128
|
#transactionDepth;
|
|
125
|
-
|
|
129
|
+
#transactionScopeOpen = true;
|
|
130
|
+
#transactionOperationFailed = false;
|
|
131
|
+
#transactionOperationError;
|
|
132
|
+
#transactionState;
|
|
133
|
+
#transactionExecutes = new Set();
|
|
134
|
+
#transactionStreams = new Set();
|
|
135
|
+
constructor(pool, client, parsers, ownsPool, depth, prepared, transactionState = {
|
|
136
|
+
activeBatch: undefined,
|
|
137
|
+
activeExecutes: new Set(),
|
|
138
|
+
activePipeline: undefined,
|
|
139
|
+
activeStreams: new Set(),
|
|
140
|
+
discardLease: false,
|
|
141
|
+
firstDatabaseOperationError: undefined,
|
|
142
|
+
unsafe: false,
|
|
143
|
+
unsafeDepth: undefined,
|
|
144
|
+
unsafeError: undefined,
|
|
145
|
+
valid: true,
|
|
146
|
+
}) {
|
|
126
147
|
this.#pool = pool;
|
|
127
148
|
this.#client = client;
|
|
128
149
|
this.#parsers = parsers;
|
|
129
150
|
this.#ownsPool = ownsPool;
|
|
130
151
|
this.#transactionDepth = depth;
|
|
152
|
+
this.#prepared = prepared;
|
|
153
|
+
this.#transactionState = transactionState;
|
|
131
154
|
}
|
|
132
155
|
async execute(query) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
156
|
+
this.#assertTransactionScopeOpen();
|
|
157
|
+
this.#rejectOperationDuringTransactionStream("execute another query");
|
|
158
|
+
this.#rejectOperationDuringTransactionBatch("execute another query");
|
|
159
|
+
this.#rejectOperationDuringTransactionPipeline("execute another query");
|
|
160
|
+
const config = this.#queryConfig(query);
|
|
161
|
+
let operation;
|
|
162
|
+
try {
|
|
163
|
+
operation = (this.#client ?? this.#pool).query(config);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
this.#recordTransactionOperationFailure(error);
|
|
167
|
+
throw error;
|
|
168
|
+
}
|
|
169
|
+
if (this.#client !== undefined) {
|
|
170
|
+
this.#transactionExecutes.add(operation);
|
|
171
|
+
this.#transactionState.activeExecutes.add(operation);
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
const result = await operation;
|
|
175
|
+
return result.rows;
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
this.#recordTransactionOperationFailure(error);
|
|
179
|
+
throw error;
|
|
180
|
+
}
|
|
181
|
+
finally {
|
|
182
|
+
this.#transactionExecutes.delete(operation);
|
|
183
|
+
this.#transactionState.activeExecutes.delete(operation);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
async batch(queries) {
|
|
187
|
+
this.#assertTransactionScopeOpen();
|
|
188
|
+
this.#rejectOperationDuringTransactionStream("execute a query batch");
|
|
189
|
+
this.#rejectOperationDuringTransactionBatch("execute another query batch");
|
|
190
|
+
this.#rejectOperationDuringTransactionPipeline("execute a query batch");
|
|
191
|
+
if (queries.length === 0)
|
|
192
|
+
return emptyBatchResults;
|
|
193
|
+
const querySnapshot = [...queries];
|
|
194
|
+
if (this.#client !== undefined) {
|
|
195
|
+
const operation = this.#executeBatch(this.#client, querySnapshot);
|
|
196
|
+
this.#transactionState.activeBatch = operation;
|
|
197
|
+
try {
|
|
198
|
+
return await operation;
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
this.#recordTransactionOperationFailure(error);
|
|
202
|
+
throw error;
|
|
203
|
+
}
|
|
204
|
+
finally {
|
|
205
|
+
if (this.#transactionState.activeBatch === operation)
|
|
206
|
+
this.#transactionState.activeBatch = undefined;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
const client = await this.#pool.connect();
|
|
210
|
+
let results;
|
|
211
|
+
try {
|
|
212
|
+
results = await this.#executeBatch(client, querySnapshot);
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
try {
|
|
216
|
+
client.release(error instanceof Error ? error : true);
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
/* Preserve the first query failure. */
|
|
220
|
+
}
|
|
221
|
+
throw error;
|
|
222
|
+
}
|
|
223
|
+
client.release();
|
|
224
|
+
return results;
|
|
225
|
+
}
|
|
226
|
+
async pipeline(queries) {
|
|
227
|
+
this.#assertTransactionScopeOpen();
|
|
228
|
+
this.#rejectOperationDuringTransactionStream("execute a query pipeline");
|
|
229
|
+
this.#rejectOperationDuringTransactionBatch("execute a query pipeline");
|
|
230
|
+
this.#rejectOperationDuringTransactionExecute("execute a query pipeline");
|
|
231
|
+
this.#rejectOperationDuringTransactionPipeline("execute another query pipeline");
|
|
232
|
+
if (queries.length === 0)
|
|
233
|
+
return emptyBatchResults;
|
|
234
|
+
const configs = [...queries].map((value) => this.#queryConfig(value));
|
|
235
|
+
if (this.#client !== undefined) {
|
|
236
|
+
this.#assertPipelineClient(this.#client);
|
|
237
|
+
const operation = this.#executePipeline(this.#client, configs);
|
|
238
|
+
this.#transactionState.activePipeline = operation;
|
|
239
|
+
try {
|
|
240
|
+
return await operation;
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
this.#recordTransactionOperationFailure(error);
|
|
244
|
+
throw error;
|
|
245
|
+
}
|
|
246
|
+
finally {
|
|
247
|
+
if (this.#transactionState.activePipeline === operation)
|
|
248
|
+
this.#transactionState.activePipeline = undefined;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
const client = await this.#pool.connect();
|
|
252
|
+
try {
|
|
253
|
+
this.#assertPipelineClient(client);
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
try {
|
|
257
|
+
client.release();
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
/* Preserve the missing pipeline-capability error. */
|
|
261
|
+
}
|
|
262
|
+
throw error;
|
|
263
|
+
}
|
|
264
|
+
try {
|
|
265
|
+
const results = await this.#executePipeline(client, configs);
|
|
266
|
+
client.release();
|
|
267
|
+
return results;
|
|
268
|
+
}
|
|
269
|
+
catch (error) {
|
|
270
|
+
try {
|
|
271
|
+
client.release(error instanceof Error ? error : true);
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
/* Preserve the first pipeline failure. */
|
|
275
|
+
}
|
|
276
|
+
throw error;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
stream(query, options = {}) {
|
|
280
|
+
this.#assertTransactionScopeOpen();
|
|
281
|
+
this.#rejectOperationDuringTransactionStream("start another query stream");
|
|
282
|
+
this.#rejectOperationDuringTransactionBatch("start a query stream");
|
|
283
|
+
this.#rejectOperationDuringTransactionPipeline("start a query stream");
|
|
284
|
+
const batchSize = validatePostgresStreamBatchSize(options.batchSize);
|
|
285
|
+
const config = this.#queryConfig(query);
|
|
286
|
+
let stream;
|
|
287
|
+
stream = new PostgresQueryStream({
|
|
288
|
+
batchSize,
|
|
289
|
+
start: async () => {
|
|
290
|
+
await this.#pool.ensureCursor?.();
|
|
291
|
+
const client = this.#client ?? (await this.#pool.connect());
|
|
292
|
+
const release = this.#client === undefined
|
|
293
|
+
? (cleanupError) => client.release(cleanupError === undefined ? undefined : cleanupError instanceof Error ? cleanupError : true)
|
|
294
|
+
: undefined;
|
|
295
|
+
if (client.openCursor === undefined) {
|
|
296
|
+
try {
|
|
297
|
+
release?.();
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
/* The missing-capability failure remains primary. */
|
|
301
|
+
}
|
|
302
|
+
throw new Error("PostgreSQL streaming requires the application-owned pg-cursor package. Install it with: pnpm add pg-cursor");
|
|
303
|
+
}
|
|
304
|
+
try {
|
|
305
|
+
const cursor = await client.openCursor(config);
|
|
306
|
+
return { cursor, ...(release === undefined ? {} : { release }) };
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
this.#recordTransactionOperationFailure(error);
|
|
310
|
+
try {
|
|
311
|
+
release?.(error);
|
|
312
|
+
}
|
|
313
|
+
catch {
|
|
314
|
+
/* Preserve cursor creation or optional-dependency failures. */
|
|
315
|
+
}
|
|
316
|
+
throw error;
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
...(this.#client === undefined
|
|
320
|
+
? {}
|
|
321
|
+
: {
|
|
322
|
+
onStart: () => {
|
|
323
|
+
this.#assertTransactionScopeOpen();
|
|
324
|
+
this.#rejectOperationDuringTransactionStream("start another query stream");
|
|
325
|
+
this.#rejectOperationDuringTransactionBatch("start a query stream");
|
|
326
|
+
this.#rejectOperationDuringTransactionPipeline("start a query stream");
|
|
327
|
+
this.#transactionState.activeStreams.add(stream);
|
|
328
|
+
},
|
|
329
|
+
onClose: () => {
|
|
330
|
+
this.#transactionState.activeStreams.delete(stream);
|
|
331
|
+
this.#transactionStreams.delete(stream);
|
|
332
|
+
},
|
|
333
|
+
onError: (error) => this.#recordTransactionOperationFailure(error),
|
|
334
|
+
}),
|
|
138
335
|
});
|
|
139
|
-
|
|
336
|
+
if (this.#client !== undefined)
|
|
337
|
+
this.#transactionStreams.add(stream);
|
|
338
|
+
return stream;
|
|
339
|
+
}
|
|
340
|
+
prepare(statementName, factory) {
|
|
341
|
+
this.#assertTransactionScopeOpen();
|
|
342
|
+
return preparePostgresQuery(this.#prepared, postgresRenderer, statementName, factory);
|
|
140
343
|
}
|
|
141
344
|
async transaction(fn) {
|
|
345
|
+
this.#assertTransactionScopeOpen();
|
|
346
|
+
this.#rejectOperationDuringTransactionStream("start a nested transaction");
|
|
347
|
+
this.#rejectOperationDuringTransactionBatch("start a nested transaction");
|
|
348
|
+
this.#rejectOperationDuringTransactionPipeline("start a nested transaction");
|
|
142
349
|
if (this.#client !== undefined)
|
|
143
350
|
return this.#nestedTransaction(fn);
|
|
144
351
|
const client = await this.#pool.connect();
|
|
352
|
+
const scope = new _a(this.#pool, client, this.#parsers, false, 1, this.#prepared, {
|
|
353
|
+
activeBatch: undefined,
|
|
354
|
+
activeExecutes: new Set(),
|
|
355
|
+
activePipeline: undefined,
|
|
356
|
+
activeStreams: new Set(),
|
|
357
|
+
discardLease: false,
|
|
358
|
+
firstDatabaseOperationError: undefined,
|
|
359
|
+
unsafe: false,
|
|
360
|
+
unsafeDepth: undefined,
|
|
361
|
+
unsafeError: undefined,
|
|
362
|
+
valid: true,
|
|
363
|
+
});
|
|
364
|
+
let result;
|
|
145
365
|
try {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
366
|
+
try {
|
|
367
|
+
await client.query("BEGIN");
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
scope.#recordTransactionOperationFailure(error);
|
|
371
|
+
throw error;
|
|
372
|
+
}
|
|
373
|
+
try {
|
|
374
|
+
result = await fn(scope);
|
|
375
|
+
}
|
|
376
|
+
finally {
|
|
377
|
+
scope.#transactionScopeOpen = false;
|
|
378
|
+
scope.#transactionState.valid = false;
|
|
379
|
+
}
|
|
380
|
+
scope.#throwIfTransactionCannotCommit();
|
|
381
|
+
await scope.#rejectLeakedTransactionWork();
|
|
382
|
+
try {
|
|
383
|
+
await client.query("COMMIT");
|
|
384
|
+
}
|
|
385
|
+
catch (error) {
|
|
386
|
+
scope.#recordTransactionOperationFailure(error);
|
|
387
|
+
throw error;
|
|
388
|
+
}
|
|
150
389
|
}
|
|
151
390
|
catch (error) {
|
|
391
|
+
scope.#transactionScopeOpen = false;
|
|
392
|
+
scope.#transactionState.valid = false;
|
|
393
|
+
await scope.#settleTransactionExecutesPreservingError();
|
|
394
|
+
await scope.#closeTransactionStreamsPreservingError();
|
|
395
|
+
await scope.#settleTransactionPipelinePreservingError();
|
|
396
|
+
await scope.#settleTransactionBatchPreservingError();
|
|
152
397
|
try {
|
|
153
398
|
await client.query("ROLLBACK");
|
|
154
399
|
}
|
|
400
|
+
catch (cleanupError) {
|
|
401
|
+
scope.#markTransactionStateUnsafe(cleanupError);
|
|
402
|
+
/* Preserve the original error. */
|
|
403
|
+
}
|
|
404
|
+
try {
|
|
405
|
+
client.release(scope.#transactionLeaseReleaseError());
|
|
406
|
+
}
|
|
155
407
|
catch {
|
|
156
408
|
/* Preserve the original error. */
|
|
157
409
|
}
|
|
158
410
|
throw error;
|
|
159
411
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
412
|
+
client.release(scope.#transactionLeaseReleaseError());
|
|
413
|
+
return result;
|
|
163
414
|
}
|
|
164
415
|
async #nestedTransaction(fn) {
|
|
165
416
|
const client = this.#client;
|
|
166
417
|
const depth = this.#transactionDepth + 1;
|
|
167
418
|
const savepoint = `typed_sql_${depth}`;
|
|
168
|
-
await client.query(`SAVEPOINT ${savepoint}`);
|
|
169
419
|
try {
|
|
170
|
-
|
|
171
|
-
|
|
420
|
+
await client.query(`SAVEPOINT ${savepoint}`);
|
|
421
|
+
}
|
|
422
|
+
catch (error) {
|
|
423
|
+
this.#recordTransactionOperationFailure(error);
|
|
424
|
+
throw error;
|
|
425
|
+
}
|
|
426
|
+
const scope = new _a(this.#pool, client, this.#parsers, false, depth, this.#prepared, this.#transactionState);
|
|
427
|
+
try {
|
|
428
|
+
let result;
|
|
429
|
+
try {
|
|
430
|
+
result = await fn(scope);
|
|
431
|
+
}
|
|
432
|
+
finally {
|
|
433
|
+
scope.#transactionScopeOpen = false;
|
|
434
|
+
}
|
|
435
|
+
if (!scope.#transactionState.valid) {
|
|
436
|
+
throw new Error("The parent PostgreSQL transaction scope ended before its nested transaction completed");
|
|
437
|
+
}
|
|
438
|
+
scope.#throwIfTransactionCannotCommit();
|
|
439
|
+
await scope.#rejectLeakedTransactionWork();
|
|
440
|
+
try {
|
|
441
|
+
await client.query(`RELEASE SAVEPOINT ${savepoint}`);
|
|
442
|
+
}
|
|
443
|
+
catch (error) {
|
|
444
|
+
scope.#recordTransactionOperationFailure(error);
|
|
445
|
+
throw error;
|
|
446
|
+
}
|
|
172
447
|
return result;
|
|
173
448
|
}
|
|
174
449
|
catch (error) {
|
|
175
|
-
await
|
|
450
|
+
await scope.#settleTransactionExecutesPreservingError();
|
|
451
|
+
await scope.#closeTransactionStreamsPreservingError();
|
|
452
|
+
await scope.#settleTransactionPipelinePreservingError();
|
|
453
|
+
await scope.#settleTransactionBatchPreservingError();
|
|
454
|
+
if (scope.#transactionState.valid) {
|
|
455
|
+
try {
|
|
456
|
+
await client.query(`ROLLBACK TO SAVEPOINT ${savepoint}`);
|
|
457
|
+
scope.#recoverTransactionStateAfterSavepoint(depth);
|
|
458
|
+
}
|
|
459
|
+
catch (cleanupError) {
|
|
460
|
+
scope.#markTransactionStateUnsafe(cleanupError);
|
|
461
|
+
/* Preserve the original callback, query, or release error. */
|
|
462
|
+
}
|
|
463
|
+
}
|
|
176
464
|
throw error;
|
|
177
465
|
}
|
|
178
466
|
}
|
|
467
|
+
#queryConfig(query) {
|
|
468
|
+
const prepared = this.#prepared.queries.get(query);
|
|
469
|
+
const rendered = prepared?.rendered ?? renderQuery(query, postgresRenderer);
|
|
470
|
+
return {
|
|
471
|
+
...(prepared === undefined ? {} : { name: prepared.statementName }),
|
|
472
|
+
text: rendered.text,
|
|
473
|
+
values: rendered.values.map(encodeValue),
|
|
474
|
+
types: this.#parsers,
|
|
475
|
+
};
|
|
476
|
+
}
|
|
477
|
+
async #executeBatch(client, queries) {
|
|
478
|
+
const results = [];
|
|
479
|
+
for (const value of queries) {
|
|
480
|
+
this.#assertTransactionScopeOpen();
|
|
481
|
+
const query = value;
|
|
482
|
+
const result = await client.query(this.#queryConfig(query));
|
|
483
|
+
results.push(result.rows);
|
|
484
|
+
}
|
|
485
|
+
return results;
|
|
486
|
+
}
|
|
487
|
+
async #executePipeline(client, configs) {
|
|
488
|
+
const operations = [];
|
|
489
|
+
let dispatchFailed = false;
|
|
490
|
+
let dispatchError;
|
|
491
|
+
for (const config of configs) {
|
|
492
|
+
try {
|
|
493
|
+
operations.push(client.query(config));
|
|
494
|
+
}
|
|
495
|
+
catch (error) {
|
|
496
|
+
dispatchFailed = true;
|
|
497
|
+
dispatchError = error;
|
|
498
|
+
break;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
const settlements = await Promise.allSettled(operations);
|
|
502
|
+
if (dispatchFailed)
|
|
503
|
+
throw dispatchError;
|
|
504
|
+
const results = [];
|
|
505
|
+
for (const settlement of settlements) {
|
|
506
|
+
if (settlement.status === "rejected")
|
|
507
|
+
throw settlement.reason;
|
|
508
|
+
results.push(settlement.value.rows);
|
|
509
|
+
}
|
|
510
|
+
return results;
|
|
511
|
+
}
|
|
512
|
+
#assertPipelineClient(client) {
|
|
513
|
+
if (client.pipeline !== true) {
|
|
514
|
+
throw new Error("PostgreSQL query pipelining requires pg 8.23.0 or newer and pipeline mode. Create the application-owned Pool with { pipeline: true }");
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
async #rejectLeakedTransactionWork() {
|
|
518
|
+
const leakedStreams = this.#transactionStreams.size > 0 || this.#transactionState.activeStreams.size > 0;
|
|
519
|
+
const leakedExecutes = this.#transactionExecutes.size > 0 || this.#transactionState.activeExecutes.size > 0;
|
|
520
|
+
const leakedPipeline = this.#transactionState.activePipeline !== undefined;
|
|
521
|
+
const leakedBatch = this.#transactionState.activeBatch !== undefined;
|
|
522
|
+
if (!leakedStreams && !leakedExecutes && !leakedPipeline && !leakedBatch)
|
|
523
|
+
return;
|
|
524
|
+
await this.#settleTransactionExecutesPreservingError();
|
|
525
|
+
await this.#closeTransactionStreamsPreservingError();
|
|
526
|
+
await this.#settleTransactionPipelinePreservingError();
|
|
527
|
+
await this.#settleTransactionBatchPreservingError();
|
|
528
|
+
if (leakedExecutes) {
|
|
529
|
+
throw new Error("A PostgreSQL transaction callback returned before an execute operation completed; await execute before returning");
|
|
530
|
+
}
|
|
531
|
+
if (leakedBatch) {
|
|
532
|
+
throw new Error("A PostgreSQL transaction callback returned before its query batch completed; await the batch before returning");
|
|
533
|
+
}
|
|
534
|
+
if (leakedPipeline) {
|
|
535
|
+
throw new Error("A PostgreSQL transaction callback returned before its query pipeline completed; await the pipeline before returning");
|
|
536
|
+
}
|
|
537
|
+
throw new Error("A PostgreSQL transaction callback returned before all query streams were completed or closed");
|
|
538
|
+
}
|
|
539
|
+
async #settleTransactionExecutesPreservingError() {
|
|
540
|
+
const operations = new Set([...this.#transactionExecutes, ...this.#transactionState.activeExecutes]);
|
|
541
|
+
for (const operation of operations) {
|
|
542
|
+
try {
|
|
543
|
+
await operation;
|
|
544
|
+
}
|
|
545
|
+
catch {
|
|
546
|
+
/* The callback or transaction misuse error remains primary. */
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
async #closeTransactionStreamsPreservingError() {
|
|
551
|
+
const streams = new Set([...this.#transactionStreams, ...this.#transactionState.activeStreams]);
|
|
552
|
+
for (const stream of streams) {
|
|
553
|
+
try {
|
|
554
|
+
await stream.close();
|
|
555
|
+
}
|
|
556
|
+
catch {
|
|
557
|
+
/* The callback or transaction misuse error remains primary. */
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
async #settleTransactionBatchPreservingError() {
|
|
562
|
+
const operation = this.#transactionState.activeBatch;
|
|
563
|
+
if (operation === undefined)
|
|
564
|
+
return;
|
|
565
|
+
try {
|
|
566
|
+
await operation;
|
|
567
|
+
}
|
|
568
|
+
catch {
|
|
569
|
+
/* The callback or transaction misuse error remains primary. */
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
async #settleTransactionPipelinePreservingError() {
|
|
573
|
+
const operation = this.#transactionState.activePipeline;
|
|
574
|
+
if (operation === undefined)
|
|
575
|
+
return;
|
|
576
|
+
try {
|
|
577
|
+
await operation;
|
|
578
|
+
}
|
|
579
|
+
catch {
|
|
580
|
+
/* The callback or transaction misuse error remains primary. */
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
#rejectOperationDuringTransactionStream(operation) {
|
|
584
|
+
if (this.#client !== undefined && this.#transactionState.activeStreams.size > 0) {
|
|
585
|
+
throw new Error(`Cannot ${operation} while a PostgreSQL transaction query stream is still open; complete or close the stream first`);
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
#rejectOperationDuringTransactionBatch(operation) {
|
|
589
|
+
if (this.#client !== undefined && this.#transactionState.activeBatch !== undefined) {
|
|
590
|
+
throw new Error(`Cannot ${operation} while a PostgreSQL transaction query batch is still running; await the batch first`);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
#rejectOperationDuringTransactionExecute(operation) {
|
|
594
|
+
if (this.#client !== undefined && this.#transactionState.activeExecutes.size > 0) {
|
|
595
|
+
throw new Error(`Cannot ${operation} while a PostgreSQL transaction execute operation is still running; await execute first`);
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
#rejectOperationDuringTransactionPipeline(operation) {
|
|
599
|
+
if (this.#client !== undefined && this.#transactionState.activePipeline !== undefined) {
|
|
600
|
+
throw new Error(`Cannot ${operation} while a PostgreSQL transaction query pipeline is still running; await the pipeline first`);
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
#recordTransactionOperationFailure(error) {
|
|
604
|
+
if (this.#client === undefined)
|
|
605
|
+
return;
|
|
606
|
+
if (!this.#transactionOperationFailed) {
|
|
607
|
+
this.#transactionOperationFailed = true;
|
|
608
|
+
this.#transactionOperationError = error;
|
|
609
|
+
}
|
|
610
|
+
this.#markTransactionStateUnsafe(error);
|
|
611
|
+
}
|
|
612
|
+
#markTransactionStateUnsafe(error) {
|
|
613
|
+
if (!this.#transactionState.discardLease) {
|
|
614
|
+
this.#transactionState.discardLease = true;
|
|
615
|
+
this.#transactionState.firstDatabaseOperationError = error;
|
|
616
|
+
}
|
|
617
|
+
if (!this.#transactionState.unsafe ||
|
|
618
|
+
this.#transactionState.unsafeDepth === undefined ||
|
|
619
|
+
this.#transactionDepth < this.#transactionState.unsafeDepth) {
|
|
620
|
+
this.#transactionState.unsafe = true;
|
|
621
|
+
this.#transactionState.unsafeDepth = this.#transactionDepth;
|
|
622
|
+
this.#transactionState.unsafeError = error;
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
#recoverTransactionStateAfterSavepoint(depth) {
|
|
626
|
+
if (this.#transactionState.unsafeDepth === undefined || this.#transactionState.unsafeDepth < depth)
|
|
627
|
+
return;
|
|
628
|
+
this.#transactionState.unsafe = false;
|
|
629
|
+
this.#transactionState.unsafeDepth = undefined;
|
|
630
|
+
this.#transactionState.unsafeError = undefined;
|
|
631
|
+
}
|
|
632
|
+
#transactionLeaseReleaseError() {
|
|
633
|
+
if (!this.#transactionState.discardLease)
|
|
634
|
+
return undefined;
|
|
635
|
+
return this.#transactionState.firstDatabaseOperationError instanceof Error
|
|
636
|
+
? this.#transactionState.firstDatabaseOperationError
|
|
637
|
+
: true;
|
|
638
|
+
}
|
|
639
|
+
#throwIfTransactionCannotCommit() {
|
|
640
|
+
if (this.#transactionOperationFailed) {
|
|
641
|
+
if (this.#transactionOperationError !== undefined)
|
|
642
|
+
throw this.#transactionOperationError;
|
|
643
|
+
throw new Error("A PostgreSQL transaction operation failed and the transaction cannot be committed");
|
|
644
|
+
}
|
|
645
|
+
if (this.#transactionState.unsafe) {
|
|
646
|
+
throw new Error("The PostgreSQL transaction connection did not complete recovery and cannot be committed", {
|
|
647
|
+
cause: this.#transactionState.unsafeError,
|
|
648
|
+
});
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
#assertTransactionScopeOpen() {
|
|
652
|
+
if (this.#client === undefined)
|
|
653
|
+
return;
|
|
654
|
+
if (!this.#transactionScopeOpen || !this.#transactionState.valid) {
|
|
655
|
+
throw new Error("This PostgreSQL transaction scope has ended and can no longer be used");
|
|
656
|
+
}
|
|
657
|
+
if (this.#transactionOperationFailed) {
|
|
658
|
+
throw new Error("This PostgreSQL transaction scope cannot continue after a database operation failed", {
|
|
659
|
+
cause: this.#transactionOperationError,
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
if (this.#transactionState.unsafe) {
|
|
663
|
+
throw new Error("The PostgreSQL transaction cannot continue until its failed operation is rolled back", {
|
|
664
|
+
cause: this.#transactionState.unsafeError,
|
|
665
|
+
});
|
|
666
|
+
}
|
|
667
|
+
}
|
|
179
668
|
async close() {
|
|
180
669
|
if (this.#client !== undefined)
|
|
181
670
|
throw new Error("Cannot close a database from inside a transaction");
|
|
@@ -185,6 +674,6 @@ class PostgresDatabaseImplementation {
|
|
|
185
674
|
}
|
|
186
675
|
_a = PostgresDatabaseImplementation;
|
|
187
676
|
export function createPostgresDatabase(options) {
|
|
188
|
-
return new PostgresDatabaseImplementation(options.pool, undefined, createPostgresTypeParsers(options.typePolicy ?? defaultPolicy, options.decimal, options.fallbackTypeParsers), options.ownsPool ?? false, 0);
|
|
677
|
+
return new PostgresDatabaseImplementation(options.pool, undefined, createPostgresTypeParsers(options.typePolicy ?? defaultPolicy, options.decimal, options.fallbackTypeParsers), options.ownsPool ?? false, 0, createPostgresPreparedQueryState());
|
|
189
678
|
}
|
|
190
679
|
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/runtime.ts"],"names":[],"mappings":"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"}
|