@spinajs/orm-sqlite 2.0.480 → 2.0.482

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.
@@ -9,9 +9,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
9
9
  var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
11
11
  };
12
- import { SqlColumnQueryCompiler, SqlTableQueryCompiler, SqlOnDuplicateQueryCompiler, SqlInsertQueryCompiler } from '@spinajs/orm-sql';
13
- import { OrderByBuilder, OrderByQueryCompiler, RawQuery, OnDuplicateQueryBuilder, InsertQueryBuilder, TableExistsQueryBuilder, OrmException, TableQueryCompiler, TableQueryBuilder, TableAliasCompiler } from '@spinajs/orm';
12
+ import { SqlColumnQueryCompiler, SqlTableQueryCompiler, SqlOnDuplicateQueryCompiler, SqlInsertQueryCompiler, SqlAlterColumnQueryCompiler } from '@spinajs/orm-sql';
13
+ import { OrderByBuilder, OrderByQueryCompiler, RawQuery, OnDuplicateQueryBuilder, InsertQueryBuilder, TableExistsQueryBuilder, OrmException, TableQueryCompiler, TableQueryBuilder, TableAliasCompiler, ColumnAlterationType } from '@spinajs/orm';
14
14
  import { NewInstance, Inject, Container } from '@spinajs/di';
15
+ import { Logger, Log } from '@spinajs/log';
15
16
  import _ from 'lodash';
16
17
  let SqliteTruncateTableQueryCompiler = class SqliteTruncateTableQueryCompiler extends TableQueryCompiler {
17
18
  constructor(container, builder) {
@@ -116,13 +117,30 @@ SqliteTableExistsCompiler = __decorate([
116
117
  export { SqliteTableExistsCompiler };
117
118
  let SqliteTableQueryCompiler = class SqliteTableQueryCompiler extends SqlTableQueryCompiler {
118
119
  compile() {
120
+ const pkColumns = this.builder.Columns.filter((c) => c.PrimaryKey);
121
+ // SQLite has no syntax for two inline PRIMARY KEY column constraints - it rejects
122
+ // `table ... has more than one primary key` - and AUTOINCREMENT is only legal on a single
123
+ // INTEGER PRIMARY KEY. Composite keys therefore move to a table-level constraint and
124
+ // cannot include an auto-increment column.
125
+ if (pkColumns.length > 1) {
126
+ const auto = pkColumns.find((c) => c.AutoIncrement);
127
+ if (auto) {
128
+ throw new OrmException(`sqlite cannot auto-increment column ${auto.Name}: it is part of the composite primary key of ${this.builder.Table}`);
129
+ }
130
+ pkColumns.forEach((c) => (c.InlinePrimaryKey = false));
131
+ }
119
132
  const _table = this._table();
120
133
  const _columns = this._columns();
121
134
  const _foreignKeys = this._foreignKeys();
135
+ const _primaryKey = pkColumns.length > 1 ? this._primaryKeys() : '';
136
+ // Built by concatenation rather than one template literal so that a table with neither a
137
+ // table-level primary key nor foreign keys emits byte-identically to the pre-composite
138
+ // compiler ( a template with two empty interpolations leaves a double space behind ).
139
+ const _extra = `${_primaryKey ? ',' + _primaryKey : ''}${_foreignKeys ? ',' + _foreignKeys : ''}`;
122
140
  return [
123
141
  {
124
142
  bindings: [],
125
- expression: `${_table} (${_columns} ${_foreignKeys ? ',' + _foreignKeys : ''})`,
143
+ expression: `${_table} (${_columns}${_extra} )`,
126
144
  },
127
145
  ];
128
146
  }
@@ -141,11 +159,23 @@ let SqliteInsertQueryCompiler = class SqliteInsertQueryCompiler extends SqlInser
141
159
  const columns = this.columns();
142
160
  const values = this.values();
143
161
  const upsort = this.upsort();
162
+ const returning = this.returning();
144
163
  return {
145
164
  bindings: values.bindings.concat(upsort.bindings),
146
- expression: `${into} ${columns} ${values.data} ${upsort.expression}`.trim(),
165
+ expression: `${into} ${columns} ${values.data} ${upsort.expression}${returning}`.trim(),
147
166
  };
148
167
  }
168
+ /**
169
+ * RETURNING on a plain INSERT. Skipped when an upsert clause is present — the ON CONFLICT
170
+ * compiler emits its own RETURNING and two would be invalid SQL.
171
+ */
172
+ returning() {
173
+ if (this._builder.Update || this._builder.Returning.length === 0) {
174
+ return '';
175
+ }
176
+ const cols = this._builder.Returning[0] === '*' ? ['*'] : this._builder.Returning.map((c) => `\`${c}\``);
177
+ return ` RETURNING ${cols.join(',')}`;
178
+ }
149
179
  into() {
150
180
  return `INSERT${this._builder.Ignore ? ' OR IGNORE' : ''}${this._builder.Replace ? ' OR REPLACE' : ''} INTO \`${this._builder.Table}\``;
151
181
  }
@@ -195,7 +225,7 @@ let SqliteColumnCompiler = class SqliteColumnCompiler extends SqlColumnQueryComp
195
225
  _stmt.push('INTEGER');
196
226
  break;
197
227
  case 'boolean':
198
- _stmt.push(`BOOLEAN NOT NULL CHECK ( \`${this.builder.Name}\` IN (0, 1))`);
228
+ _stmt.push(this._booleanDefinition());
199
229
  break;
200
230
  }
201
231
  if (this.builder.Unsigned) {
@@ -216,7 +246,7 @@ let SqliteColumnCompiler = class SqliteColumnCompiler extends SqlColumnQueryComp
216
246
  if (this.builder.Comment) {
217
247
  _stmt.push(`COMMENT '${this.builder.Comment}'`);
218
248
  }
219
- if (this.builder.PrimaryKey) {
249
+ if (this.builder.PrimaryKey && this.builder.InlinePrimaryKey) {
220
250
  _stmt.push(`PRIMARY KEY`);
221
251
  }
222
252
  if (this.builder.AutoIncrement) {
@@ -230,6 +260,14 @@ let SqliteColumnCompiler = class SqliteColumnCompiler extends SqlColumnQueryComp
230
260
  expression: _stmt.filter((x) => !_.isEmpty(x)).join(' '),
231
261
  };
232
262
  }
263
+ /**
264
+ * CREATE TABLE renders a boolean as a non-nullable 0/1 domain.
265
+ * Overridable: ADD COLUMN cannot carry an unconditional NOT NULL - see
266
+ * {@link SqliteAddColumnCompiler}.
267
+ */
268
+ _booleanDefinition() {
269
+ return `BOOLEAN NOT NULL CHECK ( \`${this.builder.Name}\` IN (0, 1))`;
270
+ }
233
271
  _defaultCompiler() {
234
272
  let _stmt = '';
235
273
  if (_.isNil(this.builder.Default) || (_.isString(this.builder.Default) && _.isEmpty(this.builder.Default.trim()))) {
@@ -251,4 +289,66 @@ SqliteColumnCompiler = __decorate([
251
289
  NewInstance()
252
290
  ], SqliteColumnCompiler);
253
291
  export { SqliteColumnCompiler };
292
+ /**
293
+ * Column body for `ALTER TABLE ... ADD COLUMN`.
294
+ *
295
+ * sqlite refuses to add a NOT NULL column without a non-null default, so the
296
+ * unconditional NOT NULL that CREATE TABLE bakes into a boolean makes every
297
+ * boolean add fail against a table that already holds rows. The CHECK is kept -
298
+ * it is legal in ADD COLUMN and still enforces the 0/1 domain - and NOT NULL is
299
+ * left to the generic `notNull()` flag, so `.notNull().default().value(0)` still
300
+ * yields a non-nullable column.
301
+ */
302
+ let SqliteAddColumnCompiler = class SqliteAddColumnCompiler extends SqliteColumnCompiler {
303
+ _booleanDefinition() {
304
+ return `BOOLEAN CHECK ( \`${this.builder.Name}\` IN (0, 1))`;
305
+ }
306
+ };
307
+ SqliteAddColumnCompiler = __decorate([
308
+ NewInstance()
309
+ ], SqliteAddColumnCompiler);
310
+ export { SqliteAddColumnCompiler };
311
+ let SqliteAlterColumnQueryCompiler = class SqliteAlterColumnQueryCompiler extends SqlAlterColumnQueryCompiler {
312
+ /**
313
+ * The ADD path needs a body free of CREATE-TABLE-only syntax.
314
+ *
315
+ * Note PRIMARY KEY / UNIQUE are deliberately NOT stripped here: sqlite cannot
316
+ * add such a column at all (it rejects both the mysql and the sqlite spelling),
317
+ * so suppressing the clause would silently produce a column WITHOUT the
318
+ * constraint the caller asked for. Letting sqlite's own error surface is honest.
319
+ */
320
+ _columnDefinition() {
321
+ if (this.builder.AlterType === ColumnAlterationType.Add) {
322
+ return this.container.resolve(SqliteAddColumnCompiler, [this.builder]).compile();
323
+ }
324
+ return super._columnDefinition();
325
+ }
326
+ /**
327
+ * sqlite cannot change a column's type: it has no MODIFY / ALTER COLUMN.
328
+ * It is also dynamically typed and renders enum/string/date as unconstrained
329
+ * TEXT, so a type-only change is a semantic no-op here anyway.
330
+ *
331
+ * Constraint changes (NOT NULL / DEFAULT / UNIQUE) ARE enforced by sqlite and
332
+ * are NOT applied - they need an explicit table-rebuild migration. Warn rather
333
+ * than throw: portable migrations legitimately restate existing constraints
334
+ * (mysql's MODIFY drops any attribute you omit), and throwing would break them.
335
+ */
336
+ _modify(_definition) {
337
+ this.Log.warn(`sqlite cannot MODIFY column '${this.builder.Name}' - skipping. Type changes are a no-op (sqlite is dynamically typed); any NOT NULL / DEFAULT / UNIQUE change was NOT applied. Write an explicit table-rebuild migration if you need one.`);
338
+ return null;
339
+ }
340
+ _add(definition) {
341
+ // AFTER is mysql-only; sqlite rejects it
342
+ return `ADD ${definition}`;
343
+ }
344
+ };
345
+ __decorate([
346
+ Logger('ORM'),
347
+ __metadata("design:type", Log)
348
+ ], SqliteAlterColumnQueryCompiler.prototype, "Log", void 0);
349
+ SqliteAlterColumnQueryCompiler = __decorate([
350
+ NewInstance(),
351
+ Inject(Container)
352
+ ], SqliteAlterColumnQueryCompiler);
353
+ export { SqliteAlterColumnQueryCompiler };
254
354
  //# sourceMappingURL=compilers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compilers.js","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compilers.js","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAA8B,MAAM,cAAc,CAAC;AAE1F,qBAAa,yBAA0B,SAAQ,mBAAmB;IACzD,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO;CAmCjD"}
1
+ {"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAA8B,MAAM,cAAc,CAAC;AAE1F,qBAAa,yBAA0B,SAAQ,mBAAmB;IACzD,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO;CAqDjD"}
@@ -7,7 +7,14 @@ export class SqliteModelToSqlConverter extends ModelToSqlConverter {
7
7
  toSql(model) {
8
8
  const obj = {};
9
9
  const relArr = [...model.ModelDescriptor.Relations.values()];
10
- model.ModelDescriptor.Columns?.filter((x) => !x.IsForeignKey).forEach((c) => {
10
+ // Foreign-key columns are normally written via their relation (the loop
11
+ // below sets obj[ForeignKey] from the related model). But a FK column with no
12
+ // backing relation on the model (e.g. a plain owner-id column such as
13
+ // user_sessions.UserId) would otherwise never be serialized at all, breaking
14
+ // INSERTs that hit its NOT NULL constraint. So only skip FK columns that an
15
+ // actual relation manages; serialize unrelated FK columns like normal ones.
16
+ const relationForeignKeys = new Set(relArr.map((r) => r.ForeignKey));
17
+ model.ModelDescriptor.Columns?.filter((x) => !x.IsForeignKey || !relationForeignKeys.has(x.Name)).forEach((c) => {
11
18
  const val = model[c.Name];
12
19
  if (!c.PrimaryKey && !c.Nullable && (val === null || val === undefined || val === '')) {
13
20
  throw new OrmException(`Field ${c.Name} cannot be null`);
@@ -22,9 +29,20 @@ export class SqliteModelToSqlConverter extends ModelToSqlConverter {
22
29
  });
23
30
  for (const val of relArr) {
24
31
  if (val.Type === RelationType.One) {
25
- if (model[val.Name].Value) {
32
+ if (model[val.Name]?.Value) {
26
33
  obj[val.ForeignKey] = model[val.Name].Value.PrimaryKeyValue;
27
34
  }
35
+ else if (model[val.ForeignKey] != null) {
36
+ // Fallback: when the BelongsTo SingleRelation has no Value (e.g. the relation was
37
+ // never populated, or the foreign key was written directly), fall back to the raw
38
+ // FK column. Without this the column is dropped from every payload, because the
39
+ // filter above already excluded it as relation-managed - so a row whose owner
40
+ // changed would silently keep its old foreign key.
41
+ //
42
+ // Mirrors StandardModelToSqlConverter in @spinajs/orm, which grew this branch
43
+ // while this override did not.
44
+ obj[val.ForeignKey] = model[val.ForeignKey];
45
+ }
28
46
  }
29
47
  // HACK: This is a hack to fix the issue with the recursive relation
30
48
  // recursive relations usually dont ahve set @belongsTo but @HasMany decorator and are not in list of relaitons
@@ -1 +1 @@
1
- {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,uDAAuD;AACvD,+DAA+D;AAC/D,4DAA4D;AAC5D,OAAO,EAAa,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1F,MAAM,OAAO,yBAA0B,SAAQ,mBAAmB;IACzD,KAAK,CAAC,KAAyB;QACpC,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,eAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9D,KAAK,CAAC,eAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,MAAM,GAAG,GAAI,KAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC;gBACtF,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC;YAC3D,CAAC;YAED,gCAAgC;YAChC,6DAA6D;YAC7D,+DAA+D;YAC/D,4EAA4E;YAC5E,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO;YAE7B,GAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,eAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACrI,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,GAAG,EAAE,CAAC;gBAClC,IAAK,KAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBAClC,GAAW,CAAC,GAAG,CAAC,UAAU,CAAC,GAAI,KAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;gBAChF,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,gHAAgH;YAChH,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjB,GAAW,CAAC,GAAG,CAAC,UAAU,CAAC,GAAI,KAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,uDAAuD;AACvD,+DAA+D;AAC/D,4DAA4D;AAC5D,OAAO,EAAa,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1F,MAAM,OAAO,yBAA0B,SAAQ,mBAAmB;IACzD,KAAK,CAAC,KAAyB;QACpC,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,eAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9D,wEAAwE;QACxE,8EAA8E;QAC9E,sEAAsE;QACtE,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAErE,KAAK,CAAC,eAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/G,MAAM,GAAG,GAAI,KAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC;gBACtF,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC;YAC3D,CAAC;YAED,gCAAgC;YAChC,6DAA6D;YAC7D,+DAA+D;YAC/D,4EAA4E;YAC5E,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO;YAE7B,GAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,eAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACrI,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,GAAG,EAAE,CAAC;gBAClC,IAAK,KAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;oBACnC,GAAW,CAAC,GAAG,CAAC,UAAU,CAAC,GAAI,KAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;gBAChF,CAAC;qBAAM,IAAK,KAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;oBAClD,kFAAkF;oBAClF,kFAAkF;oBAClF,gFAAgF;oBAChF,8EAA8E;oBAC9E,mDAAmD;oBACnD,EAAE;oBACF,8EAA8E;oBAC9E,+BAA+B;oBAC9B,GAAW,CAAC,GAAG,CAAC,UAAU,CAAC,GAAI,KAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,gHAAgH;YAChH,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjB,GAAW,CAAC,GAAG,CAAC,UAAU,CAAC,GAAI,KAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -1,23 +1,64 @@
1
1
  export * from './compilers.js';
2
- import { IColumnDescriptor, QueryContext, OrmDriver, QueryBuilder, TransactionCallback, ServerResponseMapper, ISupportedFeature, ITransaction } from '@spinajs/orm';
2
+ import { IColumnDescriptor, QueryContext, OrmDriver, ServerResponseMapper, ISupportedFeature, IsolationLevel, ITransactionContext, ITransactionOptions, IPoolMetrics } from '@spinajs/orm';
3
3
  import sqlite3 from 'sqlite3';
4
4
  import { SqlDriver } from '@spinajs/orm-sql';
5
5
  export declare class SqliteServerResponseMapper extends ServerResponseMapper {
6
- read(data: any, pkName: string): {
6
+ read(data: any, pkNames?: string[]): {
7
+ RowsAffected: any;
7
8
  LastInsertId: any;
9
+ Returning: any;
8
10
  };
9
11
  }
10
12
  export declare class SqliteOrmDriver extends SqlDriver {
11
- protected executionId: number;
12
13
  protected Db: sqlite3.Database;
13
- private getNextExecutionId;
14
+ /**
15
+ * Read-only handles. SQLite serializes writers at the file level no matter how many handles are
16
+ * open, so a second WRITER handle buys nothing and invites SQLITE_BUSY; extra READ handles do
17
+ * parallelize SELECTs. Empty for `:memory:` and anonymous temporary databases, where each handle
18
+ * would open its own private database, and when `Pool.Max` is 1.
19
+ */
20
+ protected ReadPool: sqlite3.Database[];
21
+ private _readCursor;
22
+ /**
23
+ * sqlite3 outside shared-cache mode serializes access to the database file, which is
24
+ * SERIALIZABLE and nothing else. Any other requested level is rejected by the base class
25
+ * rather than silently ignored.
26
+ */
27
+ readonly SupportedIsolationLevels: IsolationLevel[];
28
+ /**
29
+ * Picks the handle for a query. Everything that mutates, changes schema, or runs inside a
30
+ * transaction stays on the single writer handle — scattering a transaction's statements across
31
+ * handles would run them outside the transaction, and a read handle cannot see uncommitted
32
+ * writes made on the writer.
33
+ */
34
+ protected handleFor(queryContext: QueryContext): sqlite3.Database;
35
+ /**
36
+ * The writer handle plus every read handle. SQLite has no queue of waiting callers — sqlite3
37
+ * serializes internally per handle — so InUse and Waiting are always zero.
38
+ */
39
+ poolMetrics(): IPoolMetrics;
14
40
  executeOnDb(stmt: string, params: unknown[], queryContext: QueryContext): Promise<unknown>;
15
41
  supportedFeatures(): ISupportedFeature;
16
42
  ping(): Promise<boolean>;
17
43
  connect(): Promise<OrmDriver>;
44
+ /**
45
+ * Opens `Pool.Max - 1` read-only handles. Skipped for `:memory:` and for anonymous temporary
46
+ * databases, where every handle gets its own private database and a read pool would query empty
47
+ * files. A handle that fails to open is dropped rather than failing the connection — the driver
48
+ * is fully usable on the writer alone.
49
+ */
50
+ protected openReadPool(filename: string): Promise<void>;
51
+ /** Closes every read handle. Safe to call when none are open. */
52
+ protected closeReadPool(): Promise<void>;
18
53
  disconnect(): Promise<OrmDriver>;
19
54
  resolve(): void;
20
- transaction(qrOrCallback: QueryBuilder[] | TransactionCallback): Promise<ITransaction>;
55
+ protected _begin(_options?: ITransactionOptions): Promise<ITransactionContext>;
56
+ protected _commit(_ctx: ITransactionContext): Promise<void>;
57
+ protected _rollback(_ctx: ITransactionContext): Promise<void>;
58
+ protected _savepoint(_ctx: ITransactionContext, name: string): Promise<void>;
59
+ protected _releaseSavepoint(_ctx: ITransactionContext, name: string): Promise<void>;
60
+ protected _rollbackToSavepoint(_ctx: ITransactionContext, name: string): Promise<void>;
61
+ protected _dispose(_ctx: ITransactionContext): Promise<void>;
21
62
  /**
22
63
  *
23
64
  * Retrieves information about specific DB table if exists. If table not exists returns null
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAUA,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAA2C,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAA+M,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1Z,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAS7C,qBAAa,0BAA2B,SAAQ,oBAAoB;IAC3D,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;;;CAKtC;AAED,qBAEa,eAAgB,SAAQ,SAAS;IAC5C,SAAS,CAAC,WAAW,SAAK;IAE1B,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC;IAE/B,OAAO,CAAC,kBAAkB;IAKnB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IA+I1F,iBAAiB,IAAI,iBAAiB;IAIhC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxB,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IAqB7B,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAkBtC,OAAO;IAgBD,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAmCnG;;;;;;OAMG;IACU,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAuDrF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AASA,cAAc,gBAAgB,CAAC;AAO/B,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAqE,SAAS,EAA+M,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAmB,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5d,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAoB,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAS/D,qBAAa,0BAA2B,SAAQ,oBAAoB;IAC3D,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;;;;;CAuB1C;AAED,qBAEa,eAAgB,SAAQ,SAAS;IAC5C,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC;IAE/B;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAM;IAE5C,OAAO,CAAC,WAAW,CAAM;IAEzB;;;;OAIG;IACH,SAAgB,wBAAwB,EAAE,cAAc,EAAE,CAAoB;IAK9E;;;;;OAKG;IACH,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ;IAcjE;;;OAGG;IACI,WAAW,IAAI,YAAY;IAQ3B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IA4H1F,iBAAiB,IAAI,iBAAiB;IAMhC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxB,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IA2B1C;;;;;OAKG;cACa,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7D,iEAAiE;cACjD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAuBtC,OAAO;cAiBE,MAAM,CAAC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;cAQpE,OAAO,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;cAIjD,SAAS,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;cAMnD,UAAU,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIlE,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIzE,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAI5E,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE;;;;;;OAMG;IACU,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CA4DrF"}