@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.
package/README.md CHANGED
@@ -1,11 +1,71 @@
1
1
  # `@spinajs/orm-sqlite`
2
2
 
3
- > TODO: description
3
+ The SQLite dialect driver for [`@spinajs/orm`](../orm), built on
4
+ [`@spinajs/orm-sql`](../orm-sql).
5
+
6
+ ## Install
7
+
8
+ ```bash
9
+ npm install @spinajs/orm @spinajs/orm-sqlite
10
+ ```
4
11
 
5
12
  ## Usage
6
13
 
14
+ ```ts
15
+ import { DI } from '@spinajs/di';
16
+ import { Orm } from '@spinajs/orm';
17
+ import { SqliteOrmDriver } from '@spinajs/orm-sqlite';
18
+
19
+ DI.register(SqliteOrmDriver).as('orm-driver-sqlite');
20
+ await DI.resolve(Orm);
21
+ ```
22
+
23
+ ```ts
24
+ // configuration
25
+ {
26
+ db: {
27
+ DefaultConnection: 'sqlite',
28
+ Connections: [
29
+ {
30
+ Name: 'sqlite',
31
+ Driver: 'orm-driver-sqlite',
32
+ Filename: './data/app.sqlite', // or ':memory:'
33
+ Pool: { Max: 4 }, // sizes the READ-ONLY handle pool
34
+ Migration: { OnStartup: true },
35
+ },
36
+ ],
37
+ },
38
+ }
7
39
  ```
8
- const ormSqlite = require('@spinajs/orm-sqlite');
9
40
 
10
- // TODO: DEMONSTRATE API
41
+ ## What is distinctive
42
+
43
+ - **`Pool.Max` sizes read-only handles, not writers.** SQLite serializes writers at the file
44
+ level, so extra writer handles buy nothing and invite `SQLITE_BUSY`. The driver opens
45
+ `Max - 1` read handles instead, skipped entirely for `:memory:` and anonymous temporary
46
+ databases.
47
+ - **The only driver with `RETURNING`** (`insertReturning: true`), so generated keys come back
48
+ exactly — including from multi-row inserts.
49
+ - **`SERIALIZABLE` is the only isolation level**, because sqlite3 outside shared-cache mode
50
+ serializes file access and that *is* SERIALIZABLE.
51
+ - **No database events**, **no `TRUNCATE`** (a `DELETE` stands in, and the auto-increment counter
52
+ is not reset), and **multi-column `ORDER BY` is reduced to one column**.
53
+ - **No auto-increment column inside a composite primary key** — the compiler throws rather than
54
+ emit invalid SQL.
55
+
56
+ ## Documentation
57
+
58
+ Full documentation lives in **[docs/](docs/)**.
59
+
60
+ | | Page |
61
+ | --- | --- |
62
+ | 01 | [Configuration](docs/01-configuration.md) |
63
+ | 02 | [Dialect notes](docs/02-dialect-notes.md) |
64
+
65
+ ## Development
66
+
67
+ ```bash
68
+ npm test # unit suite, no server needed
69
+ npm run test:integration # creates and removes a temporary on-disk database
70
+ npm run build
11
71
  ```
@@ -1,6 +1,7 @@
1
- import { SqlColumnQueryCompiler, SqlTableQueryCompiler, SqlOnDuplicateQueryCompiler, SqlInsertQueryCompiler } from '@spinajs/orm-sql';
1
+ import { SqlColumnQueryCompiler, SqlTableQueryCompiler, SqlOnDuplicateQueryCompiler, SqlInsertQueryCompiler, SqlAlterColumnQueryCompiler } from '@spinajs/orm-sql';
2
2
  import { ICompilerOutput, OrderByBuilder, OrderByQueryCompiler, OnDuplicateQueryBuilder, InsertQueryBuilder, TableExistsCompiler, TableExistsQueryBuilder, TableQueryCompiler, TableQueryBuilder } from '@spinajs/orm';
3
3
  import { Container, IContainer } from '@spinajs/di';
4
+ import { Log } from '@spinajs/log';
4
5
  export declare class SqliteTruncateTableQueryCompiler extends TableQueryCompiler {
5
6
  protected container: Container;
6
7
  protected builder: TableQueryBuilder;
@@ -33,10 +34,60 @@ export declare class SqliteInsertQueryCompiler extends SqlInsertQueryCompiler {
33
34
  bindings: any[];
34
35
  expression: string;
35
36
  };
37
+ /**
38
+ * RETURNING on a plain INSERT. Skipped when an upsert clause is present — the ON CONFLICT
39
+ * compiler emits its own RETURNING and two would be invalid SQL.
40
+ */
41
+ protected returning(): string;
36
42
  protected into(): string;
37
43
  }
38
44
  export declare class SqliteColumnCompiler extends SqlColumnQueryCompiler {
39
45
  compile(): ICompilerOutput;
46
+ /**
47
+ * CREATE TABLE renders a boolean as a non-nullable 0/1 domain.
48
+ * Overridable: ADD COLUMN cannot carry an unconditional NOT NULL - see
49
+ * {@link SqliteAddColumnCompiler}.
50
+ */
51
+ protected _booleanDefinition(): string;
40
52
  protected _defaultCompiler(): string;
41
53
  }
54
+ /**
55
+ * Column body for `ALTER TABLE ... ADD COLUMN`.
56
+ *
57
+ * sqlite refuses to add a NOT NULL column without a non-null default, so the
58
+ * unconditional NOT NULL that CREATE TABLE bakes into a boolean makes every
59
+ * boolean add fail against a table that already holds rows. The CHECK is kept -
60
+ * it is legal in ADD COLUMN and still enforces the 0/1 domain - and NOT NULL is
61
+ * left to the generic `notNull()` flag, so `.notNull().default().value(0)` still
62
+ * yields a non-nullable column.
63
+ */
64
+ export declare class SqliteAddColumnCompiler extends SqliteColumnCompiler {
65
+ protected _booleanDefinition(): string;
66
+ }
67
+ export interface SqliteAlterColumnQueryCompiler {
68
+ }
69
+ export declare class SqliteAlterColumnQueryCompiler extends SqlAlterColumnQueryCompiler {
70
+ protected Log: Log;
71
+ /**
72
+ * The ADD path needs a body free of CREATE-TABLE-only syntax.
73
+ *
74
+ * Note PRIMARY KEY / UNIQUE are deliberately NOT stripped here: sqlite cannot
75
+ * add such a column at all (it rejects both the mysql and the sqlite spelling),
76
+ * so suppressing the clause would silently produce a column WITHOUT the
77
+ * constraint the caller asked for. Letting sqlite's own error surface is honest.
78
+ */
79
+ protected _columnDefinition(): ICompilerOutput;
80
+ /**
81
+ * sqlite cannot change a column's type: it has no MODIFY / ALTER COLUMN.
82
+ * It is also dynamically typed and renders enum/string/date as unconstrained
83
+ * TEXT, so a type-only change is a semantic no-op here anyway.
84
+ *
85
+ * Constraint changes (NOT NULL / DEFAULT / UNIQUE) ARE enforced by sqlite and
86
+ * are NOT applied - they need an explicit table-rebuild migration. Warn rather
87
+ * than throw: portable migrations legitimately restate existing constraints
88
+ * (mysql's MODIFY drops any attribute you omit), and throwing would break them.
89
+ */
90
+ protected _modify(_definition: string): string | null;
91
+ protected _add(definition: string): string | null;
92
+ }
42
93
  //# sourceMappingURL=compilers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACtI,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAY,uBAAuB,EAAmB,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAgB,kBAAkB,EAAE,iBAAiB,EAAsB,MAAM,cAAc,CAAC;AACpR,OAAO,EAAuB,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzE,qBACa,gCAAiC,SAAQ,kBAAkB;IAC1D,SAAS,CAAC,SAAS,EAAE,SAAS;IAAE,SAAS,CAAC,OAAO,EAAE,iBAAiB;gBAA1D,SAAS,EAAE,SAAS,EAAY,OAAO,EAAE,iBAAiB;IAIzE,OAAO,IAAI,eAAe;CAMlC;AAED,qBACa,qBAAsB,SAAQ,oBAAoB;IAC7D,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC;gBAEvB,OAAO,EAAE,cAAc;IAS5B,OAAO,IAAI,eAAe;CAclC;AACD,qBACa,8BAA+B,SAAQ,2BAA2B;gBACjE,OAAO,EAAE,uBAAuB;IAIrC,OAAO;;;;CA+Bf;AAED,qBACa,yBAA0B,YAAW,mBAAmB;IACvD,SAAS,CAAC,OAAO,EAAE,uBAAuB;gBAAhC,OAAO,EAAE,uBAAuB;IAM/C,OAAO,IAAI,eAAe;CAMlC;AAED,qBAEa,wBAAyB,SAAQ,qBAAqB;IAC1D,OAAO,IAAI,eAAe,EAAE;CAYpC;AAED,qBAEa,yBAA0B,SAAQ,sBAAsB;gBACvD,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB;IAIvD,OAAO;;;;IAYd,SAAS,CAAC,IAAI;CAGf;AAED,qBACa,oBAAqB,SAAQ,sBAAsB;IACvD,OAAO,IAAI,eAAe;IA8EjC,SAAS,CAAC,gBAAgB;CAiB3B"}
1
+ {"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACnK,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAY,uBAAuB,EAAmB,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAgB,kBAAkB,EAAE,iBAAiB,EAA4C,MAAM,cAAc,CAAC;AAC1S,OAAO,EAAuB,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAU,GAAG,EAAE,MAAM,cAAc,CAAC;AAG3C,qBACa,gCAAiC,SAAQ,kBAAkB;IAC1D,SAAS,CAAC,SAAS,EAAE,SAAS;IAAE,SAAS,CAAC,OAAO,EAAE,iBAAiB;gBAA1D,SAAS,EAAE,SAAS,EAAY,OAAO,EAAE,iBAAiB;IAIzE,OAAO,IAAI,eAAe;CAMlC;AAED,qBACa,qBAAsB,SAAQ,oBAAoB;IAC7D,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC;gBAEvB,OAAO,EAAE,cAAc;IAS5B,OAAO,IAAI,eAAe;CAclC;AACD,qBACa,8BAA+B,SAAQ,2BAA2B;gBACjE,OAAO,EAAE,uBAAuB;IAIrC,OAAO;;;;CA+Bf;AAED,qBACa,yBAA0B,YAAW,mBAAmB;IACvD,SAAS,CAAC,OAAO,EAAE,uBAAuB;gBAAhC,OAAO,EAAE,uBAAuB;IAM/C,OAAO,IAAI,eAAe;CAMlC;AAED,qBAEa,wBAAyB,SAAQ,qBAAqB;IAC1D,OAAO,IAAI,eAAe,EAAE;CAgCpC;AAED,qBAEa,yBAA0B,SAAQ,sBAAsB;gBACvD,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB;IAIvD,OAAO;;;;IAad;;;OAGG;IACH,SAAS,CAAC,SAAS;IASnB,SAAS,CAAC,IAAI;CAGf;AAED,qBACa,oBAAqB,SAAQ,sBAAsB;IACvD,OAAO,IAAI,eAAe;IA8EjC;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAItC,SAAS,CAAC,gBAAgB;CAiB3B;AAED;;;;;;;;;GASG;AACH,qBACa,uBAAwB,SAAQ,oBAAoB;IAC/D,SAAS,CAAC,kBAAkB,IAAI,MAAM;CAGvC;AAED,MAAM,WAAW,8BAA8B;CAAI;AAEnD,qBAEa,8BAA+B,SAAQ,2BAA2B;IAE7E,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEnB;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,IAAI,eAAe;IAQ9C;;;;;;;;;OASG;IACH,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKrD,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAIlD"}
@@ -14,10 +14,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.SqliteColumnCompiler = exports.SqliteInsertQueryCompiler = exports.SqliteTableQueryCompiler = exports.SqliteTableExistsCompiler = exports.SqliteOnDuplicateQueryCompiler = exports.SqliteOrderByCompiler = exports.SqliteTruncateTableQueryCompiler = void 0;
17
+ exports.SqliteAlterColumnQueryCompiler = exports.SqliteAddColumnCompiler = exports.SqliteColumnCompiler = exports.SqliteInsertQueryCompiler = exports.SqliteTableQueryCompiler = exports.SqliteTableExistsCompiler = exports.SqliteOnDuplicateQueryCompiler = exports.SqliteOrderByCompiler = exports.SqliteTruncateTableQueryCompiler = void 0;
18
18
  const orm_sql_1 = require("@spinajs/orm-sql");
19
19
  const orm_1 = require("@spinajs/orm");
20
20
  const di_1 = require("@spinajs/di");
21
+ const log_1 = require("@spinajs/log");
21
22
  const lodash_1 = __importDefault(require("lodash"));
22
23
  let SqliteTruncateTableQueryCompiler = class SqliteTruncateTableQueryCompiler extends orm_1.TableQueryCompiler {
23
24
  constructor(container, builder) {
@@ -122,13 +123,30 @@ exports.SqliteTableExistsCompiler = SqliteTableExistsCompiler = __decorate([
122
123
  ], SqliteTableExistsCompiler);
123
124
  let SqliteTableQueryCompiler = class SqliteTableQueryCompiler extends orm_sql_1.SqlTableQueryCompiler {
124
125
  compile() {
126
+ const pkColumns = this.builder.Columns.filter((c) => c.PrimaryKey);
127
+ // SQLite has no syntax for two inline PRIMARY KEY column constraints - it rejects
128
+ // `table ... has more than one primary key` - and AUTOINCREMENT is only legal on a single
129
+ // INTEGER PRIMARY KEY. Composite keys therefore move to a table-level constraint and
130
+ // cannot include an auto-increment column.
131
+ if (pkColumns.length > 1) {
132
+ const auto = pkColumns.find((c) => c.AutoIncrement);
133
+ if (auto) {
134
+ throw new orm_1.OrmException(`sqlite cannot auto-increment column ${auto.Name}: it is part of the composite primary key of ${this.builder.Table}`);
135
+ }
136
+ pkColumns.forEach((c) => (c.InlinePrimaryKey = false));
137
+ }
125
138
  const _table = this._table();
126
139
  const _columns = this._columns();
127
140
  const _foreignKeys = this._foreignKeys();
141
+ const _primaryKey = pkColumns.length > 1 ? this._primaryKeys() : '';
142
+ // Built by concatenation rather than one template literal so that a table with neither a
143
+ // table-level primary key nor foreign keys emits byte-identically to the pre-composite
144
+ // compiler ( a template with two empty interpolations leaves a double space behind ).
145
+ const _extra = `${_primaryKey ? ',' + _primaryKey : ''}${_foreignKeys ? ',' + _foreignKeys : ''}`;
128
146
  return [
129
147
  {
130
148
  bindings: [],
131
- expression: `${_table} (${_columns} ${_foreignKeys ? ',' + _foreignKeys : ''})`,
149
+ expression: `${_table} (${_columns}${_extra} )`,
132
150
  },
133
151
  ];
134
152
  }
@@ -147,11 +165,23 @@ let SqliteInsertQueryCompiler = class SqliteInsertQueryCompiler extends orm_sql_
147
165
  const columns = this.columns();
148
166
  const values = this.values();
149
167
  const upsort = this.upsort();
168
+ const returning = this.returning();
150
169
  return {
151
170
  bindings: values.bindings.concat(upsort.bindings),
152
- expression: `${into} ${columns} ${values.data} ${upsort.expression}`.trim(),
171
+ expression: `${into} ${columns} ${values.data} ${upsort.expression}${returning}`.trim(),
153
172
  };
154
173
  }
174
+ /**
175
+ * RETURNING on a plain INSERT. Skipped when an upsert clause is present — the ON CONFLICT
176
+ * compiler emits its own RETURNING and two would be invalid SQL.
177
+ */
178
+ returning() {
179
+ if (this._builder.Update || this._builder.Returning.length === 0) {
180
+ return '';
181
+ }
182
+ const cols = this._builder.Returning[0] === '*' ? ['*'] : this._builder.Returning.map((c) => `\`${c}\``);
183
+ return ` RETURNING ${cols.join(',')}`;
184
+ }
155
185
  into() {
156
186
  return `INSERT${this._builder.Ignore ? ' OR IGNORE' : ''}${this._builder.Replace ? ' OR REPLACE' : ''} INTO \`${this._builder.Table}\``;
157
187
  }
@@ -201,7 +231,7 @@ let SqliteColumnCompiler = class SqliteColumnCompiler extends orm_sql_1.SqlColum
201
231
  _stmt.push('INTEGER');
202
232
  break;
203
233
  case 'boolean':
204
- _stmt.push(`BOOLEAN NOT NULL CHECK ( \`${this.builder.Name}\` IN (0, 1))`);
234
+ _stmt.push(this._booleanDefinition());
205
235
  break;
206
236
  }
207
237
  if (this.builder.Unsigned) {
@@ -222,7 +252,7 @@ let SqliteColumnCompiler = class SqliteColumnCompiler extends orm_sql_1.SqlColum
222
252
  if (this.builder.Comment) {
223
253
  _stmt.push(`COMMENT '${this.builder.Comment}'`);
224
254
  }
225
- if (this.builder.PrimaryKey) {
255
+ if (this.builder.PrimaryKey && this.builder.InlinePrimaryKey) {
226
256
  _stmt.push(`PRIMARY KEY`);
227
257
  }
228
258
  if (this.builder.AutoIncrement) {
@@ -236,6 +266,14 @@ let SqliteColumnCompiler = class SqliteColumnCompiler extends orm_sql_1.SqlColum
236
266
  expression: _stmt.filter((x) => !lodash_1.default.isEmpty(x)).join(' '),
237
267
  };
238
268
  }
269
+ /**
270
+ * CREATE TABLE renders a boolean as a non-nullable 0/1 domain.
271
+ * Overridable: ADD COLUMN cannot carry an unconditional NOT NULL - see
272
+ * {@link SqliteAddColumnCompiler}.
273
+ */
274
+ _booleanDefinition() {
275
+ return `BOOLEAN NOT NULL CHECK ( \`${this.builder.Name}\` IN (0, 1))`;
276
+ }
239
277
  _defaultCompiler() {
240
278
  let _stmt = '';
241
279
  if (lodash_1.default.isNil(this.builder.Default) || (lodash_1.default.isString(this.builder.Default) && lodash_1.default.isEmpty(this.builder.Default.trim()))) {
@@ -257,4 +295,66 @@ exports.SqliteColumnCompiler = SqliteColumnCompiler;
257
295
  exports.SqliteColumnCompiler = SqliteColumnCompiler = __decorate([
258
296
  (0, di_1.NewInstance)()
259
297
  ], SqliteColumnCompiler);
298
+ /**
299
+ * Column body for `ALTER TABLE ... ADD COLUMN`.
300
+ *
301
+ * sqlite refuses to add a NOT NULL column without a non-null default, so the
302
+ * unconditional NOT NULL that CREATE TABLE bakes into a boolean makes every
303
+ * boolean add fail against a table that already holds rows. The CHECK is kept -
304
+ * it is legal in ADD COLUMN and still enforces the 0/1 domain - and NOT NULL is
305
+ * left to the generic `notNull()` flag, so `.notNull().default().value(0)` still
306
+ * yields a non-nullable column.
307
+ */
308
+ let SqliteAddColumnCompiler = class SqliteAddColumnCompiler extends SqliteColumnCompiler {
309
+ _booleanDefinition() {
310
+ return `BOOLEAN CHECK ( \`${this.builder.Name}\` IN (0, 1))`;
311
+ }
312
+ };
313
+ exports.SqliteAddColumnCompiler = SqliteAddColumnCompiler;
314
+ exports.SqliteAddColumnCompiler = SqliteAddColumnCompiler = __decorate([
315
+ (0, di_1.NewInstance)()
316
+ ], SqliteAddColumnCompiler);
317
+ let SqliteAlterColumnQueryCompiler = class SqliteAlterColumnQueryCompiler extends orm_sql_1.SqlAlterColumnQueryCompiler {
318
+ /**
319
+ * The ADD path needs a body free of CREATE-TABLE-only syntax.
320
+ *
321
+ * Note PRIMARY KEY / UNIQUE are deliberately NOT stripped here: sqlite cannot
322
+ * add such a column at all (it rejects both the mysql and the sqlite spelling),
323
+ * so suppressing the clause would silently produce a column WITHOUT the
324
+ * constraint the caller asked for. Letting sqlite's own error surface is honest.
325
+ */
326
+ _columnDefinition() {
327
+ if (this.builder.AlterType === orm_1.ColumnAlterationType.Add) {
328
+ return this.container.resolve(SqliteAddColumnCompiler, [this.builder]).compile();
329
+ }
330
+ return super._columnDefinition();
331
+ }
332
+ /**
333
+ * sqlite cannot change a column's type: it has no MODIFY / ALTER COLUMN.
334
+ * It is also dynamically typed and renders enum/string/date as unconstrained
335
+ * TEXT, so a type-only change is a semantic no-op here anyway.
336
+ *
337
+ * Constraint changes (NOT NULL / DEFAULT / UNIQUE) ARE enforced by sqlite and
338
+ * are NOT applied - they need an explicit table-rebuild migration. Warn rather
339
+ * than throw: portable migrations legitimately restate existing constraints
340
+ * (mysql's MODIFY drops any attribute you omit), and throwing would break them.
341
+ */
342
+ _modify(_definition) {
343
+ 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.`);
344
+ return null;
345
+ }
346
+ _add(definition) {
347
+ // AFTER is mysql-only; sqlite rejects it
348
+ return `ADD ${definition}`;
349
+ }
350
+ };
351
+ exports.SqliteAlterColumnQueryCompiler = SqliteAlterColumnQueryCompiler;
352
+ __decorate([
353
+ (0, log_1.Logger)('ORM'),
354
+ __metadata("design:type", log_1.Log)
355
+ ], SqliteAlterColumnQueryCompiler.prototype, "Log", void 0);
356
+ exports.SqliteAlterColumnQueryCompiler = SqliteAlterColumnQueryCompiler = __decorate([
357
+ (0, di_1.NewInstance)(),
358
+ (0, di_1.Inject)(di_1.Container)
359
+ ], SqliteAlterColumnQueryCompiler);
260
360
  //# 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"}
@@ -10,7 +10,14 @@ class SqliteModelToSqlConverter extends orm_1.ModelToSqlConverter {
10
10
  toSql(model) {
11
11
  const obj = {};
12
12
  const relArr = [...model.ModelDescriptor.Relations.values()];
13
- model.ModelDescriptor.Columns?.filter((x) => !x.IsForeignKey).forEach((c) => {
13
+ // Foreign-key columns are normally written via their relation (the loop
14
+ // below sets obj[ForeignKey] from the related model). But a FK column with no
15
+ // backing relation on the model (e.g. a plain owner-id column such as
16
+ // user_sessions.UserId) would otherwise never be serialized at all, breaking
17
+ // INSERTs that hit its NOT NULL constraint. So only skip FK columns that an
18
+ // actual relation manages; serialize unrelated FK columns like normal ones.
19
+ const relationForeignKeys = new Set(relArr.map((r) => r.ForeignKey));
20
+ model.ModelDescriptor.Columns?.filter((x) => !x.IsForeignKey || !relationForeignKeys.has(x.Name)).forEach((c) => {
14
21
  const val = model[c.Name];
15
22
  if (!c.PrimaryKey && !c.Nullable && (val === null || val === undefined || val === '')) {
16
23
  throw new orm_1.OrmException(`Field ${c.Name} cannot be null`);
@@ -25,9 +32,20 @@ class SqliteModelToSqlConverter extends orm_1.ModelToSqlConverter {
25
32
  });
26
33
  for (const val of relArr) {
27
34
  if (val.Type === orm_1.RelationType.One) {
28
- if (model[val.Name].Value) {
35
+ if (model[val.Name]?.Value) {
29
36
  obj[val.ForeignKey] = model[val.Name].Value.PrimaryKeyValue;
30
37
  }
38
+ else if (model[val.ForeignKey] != null) {
39
+ // Fallback: when the BelongsTo SingleRelation has no Value (e.g. the relation was
40
+ // never populated, or the foreign key was written directly), fall back to the raw
41
+ // FK column. Without this the column is dropped from every payload, because the
42
+ // filter above already excluded it as relation-managed - so a row whose owner
43
+ // changed would silently keep its old foreign key.
44
+ //
45
+ // Mirrors StandardModelToSqlConverter in @spinajs/orm, which grew this branch
46
+ // while this override did not.
47
+ obj[val.ForeignKey] = model[val.ForeignKey];
48
+ }
31
49
  }
32
50
  // HACK: This is a hack to fix the issue with the recursive relation
33
51
  // 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,sCAA0F;AAE1F,MAAa,yBAA0B,SAAQ,yBAAmB;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,kBAAY,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,kBAAY,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;AApCD,8DAoCC"}
1
+ {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,uDAAuD;AACvD,+DAA+D;AAC/D,4DAA4D;AAC5D,sCAA0F;AAE1F,MAAa,yBAA0B,SAAQ,yBAAmB;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,kBAAY,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,kBAAY,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;AAtDD,8DAsDC"}
@@ -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"}