firebird-wasm 0.4.1 → 0.6.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 +115 -0
- package/dist/.tsbuildinfo.build +1 -1
- package/dist/browser/engine-transport.d.ts +8 -0
- package/dist/browser/engine-transport.d.ts.map +1 -1
- package/dist/browser/engine-transport.js +6 -0
- package/dist/browser/engine-transport.js.map +1 -1
- package/dist/browser/firebird-browser.d.ts +18 -0
- package/dist/browser/firebird-browser.d.ts.map +1 -1
- package/dist/browser/firebird-browser.js +9 -0
- package/dist/browser/firebird-browser.js.map +1 -1
- package/dist/browser/shared-transport.d.ts +1 -0
- package/dist/browser/shared-transport.d.ts.map +1 -1
- package/dist/browser/shared-transport.js +3 -0
- package/dist/browser/shared-transport.js.map +1 -1
- package/dist/browser/value-types.d.ts.map +1 -1
- package/dist/browser/worker-protocol.d.ts +1 -1
- package/dist/browser/worker-protocol.d.ts.map +1 -1
- package/dist/browser/worker-transport.d.ts +1 -0
- package/dist/browser/worker-transport.d.ts.map +1 -1
- package/dist/browser/worker-transport.js +3 -0
- package/dist/browser/worker-transport.js.map +1 -1
- package/dist/firebird.d.ts +68 -2
- package/dist/firebird.d.ts.map +1 -1
- package/dist/firebird.js +295 -49
- package/dist/firebird.js.map +1 -1
- package/dist/types.d.ts +24 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/wasm/firebird-embedded.js +1 -1
- package/dist/wasm/firebird-embedded.wasm +0 -0
- package/dist/wasm-loader.d.ts +13 -0
- package/dist/wasm-loader.d.ts.map +1 -1
- package/dist/wasm-loader.js.map +1 -1
- package/package.json +1 -1
package/dist/firebird.js
CHANGED
|
@@ -1,10 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FirebirdTransaction = exports.FirebirdLite = void 0;
|
|
4
|
-
const node_firebird_driver_native_1 = require("node-firebird-driver-native");
|
|
5
4
|
const node_firebird_driver_1 = require("node-firebird-driver");
|
|
6
5
|
const statement_types_1 = require("./statement-types");
|
|
7
6
|
const sql_tag_1 = require("./sql-tag");
|
|
7
|
+
/** `isc_info_sql_stmt_select`: the statement type the shared read transaction runs. */
|
|
8
|
+
const STMT_SELECT = 1;
|
|
9
|
+
let nativeDriver;
|
|
10
|
+
/**
|
|
11
|
+
* The native driver, loaded on first use rather than at import.
|
|
12
|
+
*
|
|
13
|
+
* It is an optional dependency: a browser-only install (`--omit=optional`) has
|
|
14
|
+
* none, and a top-level import made the whole root entry fail to load there,
|
|
15
|
+
* `sql` and `loadFirebirdWasm` included, with a bare MODULE_NOT_FOUND.
|
|
16
|
+
*/
|
|
17
|
+
function loadNativeDriver() {
|
|
18
|
+
if (!nativeDriver) {
|
|
19
|
+
try {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
21
|
+
nativeDriver = require('node-firebird-driver-native');
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
if (err.code !== 'MODULE_NOT_FOUND')
|
|
25
|
+
throw err;
|
|
26
|
+
throw new Error("FirebirdLite needs the optional dependency 'node-firebird-driver-native', which is not " +
|
|
27
|
+
'installed (an install with --omit=optional skips it). Install it, or use the WASM ' +
|
|
28
|
+
"engine from 'firebird-wasm/browser'.");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return nativeDriver;
|
|
32
|
+
}
|
|
8
33
|
/**
|
|
9
34
|
* FirebirdLite – a PGlite-style wrapper around Firebird Embedded.
|
|
10
35
|
*
|
|
@@ -26,13 +51,25 @@ class FirebirdLite {
|
|
|
26
51
|
this.client = null;
|
|
27
52
|
this.attachment = null;
|
|
28
53
|
this.closed = false;
|
|
54
|
+
/** The read-only transaction `query()` shares when `sharedReads` is on. */
|
|
55
|
+
this.readTransaction = null;
|
|
56
|
+
/** SQL texts that are not a SELECT, or that wrote: they get a transaction of their own. */
|
|
57
|
+
this.ownTransaction = new Set();
|
|
58
|
+
/** Statements kept prepared by their SQL text, once connected (`statementCache`). */
|
|
59
|
+
this.statements = null;
|
|
29
60
|
this.dbPath = dbPath;
|
|
30
|
-
this.libraryPath = options.libraryPath
|
|
61
|
+
this.libraryPath = options.libraryPath;
|
|
31
62
|
this.connectOptions = {
|
|
32
63
|
username: options.username,
|
|
33
64
|
password: options.password,
|
|
34
65
|
charSetForNONE: options.charset,
|
|
35
66
|
};
|
|
67
|
+
this.sharedReads = options.sharedReads ?? false;
|
|
68
|
+
const size = options.statementCache ?? 0;
|
|
69
|
+
if (!Number.isInteger(size) || size < 0) {
|
|
70
|
+
throw new RangeError('statementCache is a whole number of statements, 0 or more');
|
|
71
|
+
}
|
|
72
|
+
this.statementCacheSize = size;
|
|
36
73
|
}
|
|
37
74
|
/**
|
|
38
75
|
* Lazily initialize the native client and open (or create) the database.
|
|
@@ -43,7 +80,8 @@ class FirebirdLite {
|
|
|
43
80
|
if (this.closed) {
|
|
44
81
|
throw new Error('FirebirdLite instance has been closed');
|
|
45
82
|
}
|
|
46
|
-
|
|
83
|
+
const { createNativeClient, getDefaultLibraryFilename } = loadNativeDriver();
|
|
84
|
+
this.client = createNativeClient(this.libraryPath ?? getDefaultLibraryFilename());
|
|
47
85
|
try {
|
|
48
86
|
this.attachment = await this.client.connect(this.dbPath, this.connectOptions);
|
|
49
87
|
}
|
|
@@ -51,6 +89,7 @@ class FirebirdLite {
|
|
|
51
89
|
// Database does not exist yet – create it.
|
|
52
90
|
this.attachment = await this.client.createDatabase(this.dbPath, this.connectOptions);
|
|
53
91
|
}
|
|
92
|
+
this.statements = new StatementCache(this.attachment, this.statementCacheSize);
|
|
54
93
|
}
|
|
55
94
|
/**
|
|
56
95
|
* Execute a DDL or DML statement that does not return rows.
|
|
@@ -81,42 +120,35 @@ class FirebirdLite {
|
|
|
81
120
|
const { statement, options } = (0, sql_tag_1.resolveQueryCall)(sql, paramsOrOptions, maybeOptions);
|
|
82
121
|
const rowMode = options.rowMode ?? 'object';
|
|
83
122
|
const attachment = this.attachment;
|
|
123
|
+
if (this.sharedReads &&
|
|
124
|
+
options.isolationLevel === undefined &&
|
|
125
|
+
options.readOnly === undefined &&
|
|
126
|
+
!this.ownTransaction.has(statement.sql)) {
|
|
127
|
+
const shared = await this.sharedRead(statement.sql, statement.params, rowMode);
|
|
128
|
+
if (shared)
|
|
129
|
+
return shared;
|
|
130
|
+
}
|
|
131
|
+
await this.endReadTransaction();
|
|
84
132
|
const txOptions = buildTransactionOptions(options);
|
|
85
133
|
const transaction = await attachment.startTransaction(txOptions);
|
|
86
134
|
try {
|
|
87
|
-
const
|
|
135
|
+
const lease = await this.statements.acquire(transaction, statement.sql);
|
|
136
|
+
const stmt = lease.stmt;
|
|
88
137
|
let rows;
|
|
89
138
|
let fields;
|
|
90
|
-
//
|
|
139
|
+
// Released in `finally`, not after the fetch: a statement that throws on
|
|
91
140
|
// execute — a lock conflict, an overflow, a wrong parameter count — would
|
|
92
141
|
// otherwise leak its handle, and the retry loop such failures are usually
|
|
93
142
|
// wrapped in leaks one per attempt until the attachment refuses more.
|
|
143
|
+
let failed = true;
|
|
94
144
|
try {
|
|
95
145
|
const columnLabels = await stmt.columnLabels;
|
|
96
146
|
fields = columnLabels.map((label) => ({ name: label.toUpperCase() }));
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// Same reasoning one level down: a failing fetch must still close.
|
|
100
|
-
try {
|
|
101
|
-
const rawRows = await resultSet.fetch();
|
|
102
|
-
// The driver already hands back positional rows, so array mode is
|
|
103
|
-
// the shape that costs nothing — object mode is the one that
|
|
104
|
-
// builds.
|
|
105
|
-
rows = (rowMode === 'array'
|
|
106
|
-
? rawRows
|
|
107
|
-
: rawRows.map((cols) => Object.fromEntries(fields.map((f, i) => [f.name, cols[i]]))));
|
|
108
|
-
}
|
|
109
|
-
finally {
|
|
110
|
-
await resultSet.close().catch(() => undefined);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
await stmt.execute(transaction, statement.params);
|
|
115
|
-
rows = [];
|
|
116
|
-
}
|
|
147
|
+
rows = shapeRows(await fetchRows(stmt, transaction, statement.params, fields.length), fields, rowMode);
|
|
148
|
+
failed = false;
|
|
117
149
|
}
|
|
118
150
|
finally {
|
|
119
|
-
await
|
|
151
|
+
await lease.release(failed);
|
|
120
152
|
}
|
|
121
153
|
// After the statement is disposed, as before — the commit is the last
|
|
122
154
|
// thing that happens on the success path.
|
|
@@ -128,6 +160,79 @@ class FirebirdLite {
|
|
|
128
160
|
throw err;
|
|
129
161
|
}
|
|
130
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Run a SELECT in the shared read-only transaction, starting it if need be.
|
|
165
|
+
*
|
|
166
|
+
* `undefined` means "run it in a transaction of its own": the statement is
|
|
167
|
+
* not a SELECT, or it tried to write ("attempted update during read-only
|
|
168
|
+
* transaction"). Either way its text is remembered, so the next call goes
|
|
169
|
+
* there directly. Any other failure ends the shared transaction, so the
|
|
170
|
+
* next read starts afresh, and is thrown.
|
|
171
|
+
*/
|
|
172
|
+
async sharedRead(sql, params, rowMode) {
|
|
173
|
+
const attachment = this.attachment;
|
|
174
|
+
this.readTransaction ?? (this.readTransaction = await attachment.startTransaction({
|
|
175
|
+
isolation: node_firebird_driver_1.TransactionIsolation.READ_COMMITTED,
|
|
176
|
+
readCommittedMode: 'RECORD_VERSION',
|
|
177
|
+
accessMode: 'READ_ONLY',
|
|
178
|
+
}));
|
|
179
|
+
const transaction = this.readTransaction;
|
|
180
|
+
let lease;
|
|
181
|
+
try {
|
|
182
|
+
lease = await this.statements.acquire(transaction, sql);
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
await this.endReadTransaction();
|
|
186
|
+
throw err;
|
|
187
|
+
}
|
|
188
|
+
const stmt = lease.stmt;
|
|
189
|
+
// A writing SELECT stays kept: only the transaction was wrong for it.
|
|
190
|
+
let failed = false;
|
|
191
|
+
try {
|
|
192
|
+
if ((await stmt.type) !== STMT_SELECT) {
|
|
193
|
+
this.remember(sql);
|
|
194
|
+
return undefined;
|
|
195
|
+
}
|
|
196
|
+
const fields = (await stmt.columnLabels).map((label) => ({
|
|
197
|
+
name: label.toUpperCase(),
|
|
198
|
+
}));
|
|
199
|
+
const rawRows = await fetchRows(stmt, transaction, params, fields.length);
|
|
200
|
+
return { rows: shapeRows(rawRows, fields, rowMode), fields };
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
// The native driver's errors carry only the message text.
|
|
204
|
+
if (/attempted update during read-only transaction/.test(String(err?.message))) {
|
|
205
|
+
this.remember(sql);
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
failed = true;
|
|
209
|
+
await this.endReadTransaction();
|
|
210
|
+
throw err;
|
|
211
|
+
}
|
|
212
|
+
finally {
|
|
213
|
+
await lease.release(failed);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
remember(sql) {
|
|
217
|
+
if (this.ownTransaction.size >= 1024)
|
|
218
|
+
this.ownTransaction.clear();
|
|
219
|
+
this.ownTransaction.add(sql);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* End the shared read transaction, before anything but a shared read runs.
|
|
223
|
+
*
|
|
224
|
+
* On a server, an open transaction that has read a table makes `DROP TABLE`
|
|
225
|
+
* fail with "object in use", and `exec()` runs DDL without preparing it, so
|
|
226
|
+
* this cannot be kept to DDL as the WASM engine does: the shared transaction
|
|
227
|
+
* lives across consecutive reads only. A run of reads keeps it; a write
|
|
228
|
+
* between two reads costs what a transaction per read used to.
|
|
229
|
+
*/
|
|
230
|
+
async endReadTransaction() {
|
|
231
|
+
const transaction = this.readTransaction;
|
|
232
|
+
this.readTransaction = null;
|
|
233
|
+
if (transaction)
|
|
234
|
+
await transaction.commit().catch(() => transaction.rollback().catch(() => undefined));
|
|
235
|
+
}
|
|
131
236
|
/**
|
|
132
237
|
* Describe a statement's shape without running it.
|
|
133
238
|
*
|
|
@@ -184,8 +289,11 @@ class FirebirdLite {
|
|
|
184
289
|
await this.ensureReady();
|
|
185
290
|
const attachment = this.attachment;
|
|
186
291
|
const txOptions = buildTransactionOptions(options);
|
|
292
|
+
await this.endReadTransaction();
|
|
187
293
|
const transaction = await attachment.startTransaction(txOptions);
|
|
188
|
-
|
|
294
|
+
// A shared read made from inside the callback starts the shared
|
|
295
|
+
// transaction again; each statement here ends it first.
|
|
296
|
+
const tx = new FirebirdTransaction(attachment, transaction, () => this.endReadTransaction(), this.statements ?? undefined);
|
|
189
297
|
let result;
|
|
190
298
|
try {
|
|
191
299
|
result = await fn(tx);
|
|
@@ -212,6 +320,9 @@ class FirebirdLite {
|
|
|
212
320
|
if (this.closed)
|
|
213
321
|
return;
|
|
214
322
|
this.closed = true;
|
|
323
|
+
await this.endReadTransaction();
|
|
324
|
+
await this.statements?.flush();
|
|
325
|
+
this.statements = null;
|
|
215
326
|
if (this.attachment) {
|
|
216
327
|
await this.attachment.disconnect().catch(() => undefined);
|
|
217
328
|
this.attachment = null;
|
|
@@ -228,9 +339,11 @@ exports.FirebirdLite = FirebirdLite;
|
|
|
228
339
|
* `FirebirdLite.transaction()`.
|
|
229
340
|
*/
|
|
230
341
|
class FirebirdTransaction {
|
|
231
|
-
constructor(attachment, transaction) {
|
|
342
|
+
constructor(attachment, transaction, beforeStatement = async () => undefined, statements = new StatementCache(attachment, 0)) {
|
|
232
343
|
this.attachment = attachment;
|
|
233
344
|
this.transaction = transaction;
|
|
345
|
+
this.beforeStatement = beforeStatement;
|
|
346
|
+
this.statements = statements;
|
|
234
347
|
this.finished = false;
|
|
235
348
|
}
|
|
236
349
|
/** Whether this transaction has already been rolled back. */
|
|
@@ -260,14 +373,20 @@ class FirebirdTransaction {
|
|
|
260
373
|
*/
|
|
261
374
|
async exec(sql, params = []) {
|
|
262
375
|
this.assertUsable();
|
|
376
|
+
await this.beforeStatement();
|
|
263
377
|
const statement = (0, sql_tag_1.toStatement)(sql, params);
|
|
264
|
-
|
|
265
|
-
|
|
378
|
+
// With the cache off, a statement without parameters runs as it always
|
|
379
|
+
// did. With it on, every statement goes through the cache, which is also
|
|
380
|
+
// what sees DDL coming and empties itself first.
|
|
381
|
+
if (statement.params.length > 0 || this.statements.enabled) {
|
|
382
|
+
const lease = await this.statements.acquire(this.transaction, statement.sql);
|
|
383
|
+
let failed = true;
|
|
266
384
|
try {
|
|
267
|
-
await stmt.execute(this.transaction, statement.params);
|
|
385
|
+
await lease.stmt.execute(this.transaction, statement.params);
|
|
386
|
+
failed = false;
|
|
268
387
|
}
|
|
269
388
|
finally {
|
|
270
|
-
await
|
|
389
|
+
await lease.release(failed);
|
|
271
390
|
}
|
|
272
391
|
}
|
|
273
392
|
else {
|
|
@@ -280,49 +399,46 @@ class FirebirdTransaction {
|
|
|
280
399
|
*/
|
|
281
400
|
async execBatch(sql, rows) {
|
|
282
401
|
this.assertUsable();
|
|
402
|
+
await this.beforeStatement();
|
|
283
403
|
if (!Array.isArray(rows)) {
|
|
284
404
|
throw new TypeError('execBatch takes an array of parameter rows');
|
|
285
405
|
}
|
|
286
406
|
if (rows.length === 0)
|
|
287
407
|
return;
|
|
288
|
-
const
|
|
408
|
+
const lease = await this.statements.acquire(this.transaction, sql);
|
|
409
|
+
let failed = true;
|
|
289
410
|
try {
|
|
290
411
|
for (const row of rows) {
|
|
291
|
-
await stmt.execute(this.transaction, row);
|
|
412
|
+
await lease.stmt.execute(this.transaction, row);
|
|
292
413
|
}
|
|
414
|
+
failed = false;
|
|
293
415
|
}
|
|
294
416
|
finally {
|
|
295
|
-
await
|
|
417
|
+
await lease.release(failed);
|
|
296
418
|
}
|
|
297
419
|
}
|
|
298
420
|
async query(sql, params = [], options = {}) {
|
|
299
421
|
this.assertUsable();
|
|
422
|
+
await this.beforeStatement();
|
|
300
423
|
const statement = (0, sql_tag_1.toStatement)(sql, params);
|
|
301
424
|
const rowMode = options.rowMode ?? 'object';
|
|
302
|
-
const
|
|
425
|
+
const lease = await this.statements.acquire(this.transaction, statement.sql);
|
|
426
|
+
const stmt = lease.stmt;
|
|
303
427
|
// Same leak as FirebirdLite.query had: a statement or result set that
|
|
304
428
|
// throws must still be released. More so here, because a transaction
|
|
305
429
|
// callback that catches its own errors goes on using the same attachment.
|
|
430
|
+
let failed = true;
|
|
306
431
|
try {
|
|
307
432
|
const columnLabels = await stmt.columnLabels;
|
|
308
433
|
const fields = columnLabels.map((label) => ({
|
|
309
434
|
name: label.toUpperCase(),
|
|
310
435
|
}));
|
|
311
|
-
const
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
rawRows = await resultSet.fetch();
|
|
315
|
-
}
|
|
316
|
-
finally {
|
|
317
|
-
await resultSet.close().catch(() => undefined);
|
|
318
|
-
}
|
|
319
|
-
const rows = (rowMode === 'array'
|
|
320
|
-
? rawRows
|
|
321
|
-
: rawRows.map((cols) => Object.fromEntries(fields.map((f, i) => [f.name, cols[i]]))));
|
|
322
|
-
return { rows, fields };
|
|
436
|
+
const rawRows = await fetchRows(stmt, this.transaction, statement.params, fields.length);
|
|
437
|
+
failed = false;
|
|
438
|
+
return { rows: shapeRows(rawRows, fields, rowMode), fields };
|
|
323
439
|
}
|
|
324
440
|
finally {
|
|
325
|
-
await
|
|
441
|
+
await lease.release(failed);
|
|
326
442
|
}
|
|
327
443
|
}
|
|
328
444
|
}
|
|
@@ -330,6 +446,136 @@ exports.FirebirdTransaction = FirebirdTransaction;
|
|
|
330
446
|
// ---------------------------------------------------------------------------
|
|
331
447
|
// Module-level helpers
|
|
332
448
|
// ---------------------------------------------------------------------------
|
|
449
|
+
/** Statement types (`isc_info_sql_stmt_*`) the cache keeps: plain DML, SELECT, procedures. */
|
|
450
|
+
const CACHEABLE_TYPES = new Set([1, 2, 3, 4, 8, 12]);
|
|
451
|
+
/** `isc_info_sql_stmt_ddl`. */
|
|
452
|
+
const STMT_DDL = 5;
|
|
453
|
+
/**
|
|
454
|
+
* Prepared statements kept per connection, keyed by their SQL text, the most
|
|
455
|
+
* recently used last: what the WASM bridge does in C (`fb_statement_cache`),
|
|
456
|
+
* for the Node backend, where every prepare is a round trip to the server.
|
|
457
|
+
*
|
|
458
|
+
* A Firebird statement belongs to the attachment, not to the transaction it
|
|
459
|
+
* was prepared in, so a kept one runs in whichever transaction comes next.
|
|
460
|
+
* Only SELECT, INSERT, UPDATE, DELETE and EXECUTE PROCEDURE / BLOCK are kept.
|
|
461
|
+
* DDL is never kept, and empties the cache before it runs: a kept statement
|
|
462
|
+
* makes this connection's `DROP TABLE` fail with "object in use", and keeps
|
|
463
|
+
* running a procedure's old body after it is altered. A statement whose
|
|
464
|
+
* execution fails is dropped. One busy with a call still running is not
|
|
465
|
+
* handed to a second, concurrent call, which prepares its own.
|
|
466
|
+
*
|
|
467
|
+
* Size 0, the default, keeps nothing: each statement is prepared and disposed
|
|
468
|
+
* as before, and its type is never asked for.
|
|
469
|
+
*/
|
|
470
|
+
class StatementCache {
|
|
471
|
+
constructor(attachment, size) {
|
|
472
|
+
this.attachment = attachment;
|
|
473
|
+
this.size = size;
|
|
474
|
+
this.kept = new Map();
|
|
475
|
+
}
|
|
476
|
+
get enabled() {
|
|
477
|
+
return this.size > 0;
|
|
478
|
+
}
|
|
479
|
+
async acquire(transaction, sql) {
|
|
480
|
+
const hit = this.kept.get(sql);
|
|
481
|
+
if (hit && !hit.busy) {
|
|
482
|
+
// Most recently used last: a Map iterates in insertion order.
|
|
483
|
+
this.kept.delete(sql);
|
|
484
|
+
this.kept.set(sql, hit);
|
|
485
|
+
hit.busy = true;
|
|
486
|
+
return this.lease(hit);
|
|
487
|
+
}
|
|
488
|
+
const stmt = await this.attachment.prepare(transaction, sql);
|
|
489
|
+
if (!this.enabled) {
|
|
490
|
+
return { stmt, release: () => stmt.dispose().catch(() => undefined) };
|
|
491
|
+
}
|
|
492
|
+
const type = await stmt.type;
|
|
493
|
+
if (type === STMT_DDL)
|
|
494
|
+
await this.flush();
|
|
495
|
+
const entry = { stmt, busy: true, kept: false };
|
|
496
|
+
if (!hit && CACHEABLE_TYPES.has(type)) {
|
|
497
|
+
entry.kept = true;
|
|
498
|
+
this.kept.set(sql, entry);
|
|
499
|
+
await this.evictBeyondSize();
|
|
500
|
+
}
|
|
501
|
+
return this.lease(entry);
|
|
502
|
+
}
|
|
503
|
+
/** Dispose every kept statement; those still busy go when released. */
|
|
504
|
+
async flush() {
|
|
505
|
+
const entries = [...this.kept.values()];
|
|
506
|
+
this.kept.clear();
|
|
507
|
+
for (const entry of entries) {
|
|
508
|
+
entry.kept = false;
|
|
509
|
+
if (!entry.busy)
|
|
510
|
+
await entry.stmt.dispose().catch(() => undefined);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
lease(entry) {
|
|
514
|
+
return {
|
|
515
|
+
stmt: entry.stmt,
|
|
516
|
+
release: async (failed) => {
|
|
517
|
+
entry.busy = false;
|
|
518
|
+
if (entry.kept && failed) {
|
|
519
|
+
entry.kept = false;
|
|
520
|
+
for (const [sql, e] of this.kept) {
|
|
521
|
+
if (e === entry) {
|
|
522
|
+
this.kept.delete(sql);
|
|
523
|
+
break;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
if (!entry.kept)
|
|
528
|
+
await entry.stmt.dispose().catch(() => undefined);
|
|
529
|
+
},
|
|
530
|
+
};
|
|
531
|
+
}
|
|
532
|
+
async evictBeyondSize() {
|
|
533
|
+
for (const [sql, entry] of this.kept) {
|
|
534
|
+
if (this.kept.size <= this.size)
|
|
535
|
+
return;
|
|
536
|
+
if (entry.busy)
|
|
537
|
+
continue;
|
|
538
|
+
this.kept.delete(sql);
|
|
539
|
+
entry.kept = false;
|
|
540
|
+
await entry.stmt.dispose().catch(() => undefined);
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Run a prepared statement and return its rows, positionally.
|
|
546
|
+
*
|
|
547
|
+
* A SELECT has a cursor and is fetched. `EXECUTE PROCEDURE` has output
|
|
548
|
+
* columns but no cursor: it runs once, and its outputs are one row — run as
|
|
549
|
+
* a plain execute, they were dropped (`query()` returned no rows), and
|
|
550
|
+
* `executeQuery` refused it outright inside a transaction. Anything else
|
|
551
|
+
* runs and returns nothing.
|
|
552
|
+
*/
|
|
553
|
+
async function fetchRows(stmt, transaction, params, columnCount) {
|
|
554
|
+
if (stmt.hasResultSet) {
|
|
555
|
+
const resultSet = await stmt.executeQuery(transaction, params);
|
|
556
|
+
// A failing fetch must still close.
|
|
557
|
+
try {
|
|
558
|
+
return await resultSet.fetch();
|
|
559
|
+
}
|
|
560
|
+
finally {
|
|
561
|
+
await resultSet.close().catch(() => undefined);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
if (columnCount > 0) {
|
|
565
|
+
return [await stmt.executeSingleton(transaction, params)];
|
|
566
|
+
}
|
|
567
|
+
await stmt.execute(transaction, params);
|
|
568
|
+
return [];
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* The driver hands back positional rows, so array mode is the shape that
|
|
572
|
+
* costs nothing — object mode is the one that builds.
|
|
573
|
+
*/
|
|
574
|
+
function shapeRows(rawRows, fields, rowMode) {
|
|
575
|
+
return (rowMode === 'array'
|
|
576
|
+
? rawRows
|
|
577
|
+
: rawRows.map((cols) => Object.fromEntries(fields.map((f, i) => [f.name, cols[i]]))));
|
|
578
|
+
}
|
|
333
579
|
function buildTransactionOptions(options) {
|
|
334
580
|
const isolationMap = {
|
|
335
581
|
READ_COMMITTED: node_firebird_driver_1.TransactionIsolation.READ_COMMITTED,
|
package/dist/firebird.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebird.js","sourceRoot":"","sources":["../src/firebird.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"firebird.js","sourceRoot":"","sources":["../src/firebird.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -16,6 +16,30 @@ export interface FirebirdLiteOptions {
|
|
|
16
16
|
username?: string;
|
|
17
17
|
/** Firebird user password. */
|
|
18
18
|
password?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Run `query()` calls that are a `SELECT` in one read-only READ COMMITTED
|
|
21
|
+
* transaction kept open, instead of starting and committing a transaction
|
|
22
|
+
* around each. The browser backend's option of the same name; see
|
|
23
|
+
* `FirebirdBrowserOptions.sharedReads` for the two things that differ.
|
|
24
|
+
* A call that passes `isolationLevel` or `readOnly` keeps its own.
|
|
25
|
+
*
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
sharedReads?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* How many prepared statements to keep by their SQL text, so a statement
|
|
31
|
+
* sent again skips the prepare (a round trip to the server). DDL run here
|
|
32
|
+
* empties the cache first. 0 keeps none.
|
|
33
|
+
*
|
|
34
|
+
* Off by default because what this connection keeps, other connections
|
|
35
|
+
* feel: a kept statement makes another connection's `DROP TABLE` of a table
|
|
36
|
+
* it reads wait until it is released, and keeps running a procedure's old
|
|
37
|
+
* body after another connection alters it. Turn it on where this process
|
|
38
|
+
* is the only one changing the schema while it runs.
|
|
39
|
+
*
|
|
40
|
+
* @default 0
|
|
41
|
+
*/
|
|
42
|
+
statementCache?: number;
|
|
19
43
|
}
|
|
20
44
|
/**
|
|
21
45
|
* Result returned from a query execution.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|