@spinajs/orm-sql 2.0.485 → 2.0.487

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.
@@ -4,18 +4,38 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
7
10
  var SqlRawStatement_1, SqlLazyQueryStatement_1, SqlWithRecursiveStatement_1, SqlBetweenStatement_1, SqlGroupByStatement_1, SqlWhereStatement_1, SqlJoinStatement_1, SqlInStatement_1, SqlInSetStatement_1, SqlColumnStatement_1, SqlColumnMethodStatement_1, SqlColumnRawStatement_1, SqlWhereQueryStatement_1, SqlExistsQueryStatement_1;
8
- import { JoinMethod, LazyQueryStatement } from '@spinajs/orm';
11
+ import { JoinMethod, LazyQueryStatement, ModelBase, SqlOperator, BetweenStatement, JoinStatement, ColumnStatement, ColumnRawStatement, InStatement, InSetStatement, RawQueryStatement, WhereStatement, ExistsQueryStatement, ColumnMethodStatement, WhereQueryStatement, WithRecursiveStatement, GroupByStatement, RawQuery, DateWrapper, DateTimeWrapper, Wrap, extractModelDescriptor, escapeLikeValue, IdentifierQuoter, LIKE_ESCAPE_CHARACTER, SET_DELIMITER } from '@spinajs/orm';
9
12
  /* eslint-disable prettier/prettier */
10
- import { SqlWhereCompiler, escapeIdentifier } from './compilers.js';
11
- import { NewInstance } from '@spinajs/di';
12
- import { ModelBase, SqlOperator, BetweenStatement, JoinStatement, ColumnStatement, ColumnRawStatement, InStatement, InSetStatement, RawQueryStatement, WhereStatement, ExistsQueryStatement, ColumnMethodStatement, WhereQueryStatement, WithRecursiveStatement, GroupByStatement, RawQuery, DateWrapper, DateTimeWrapper, Wrap, extractModelDescriptor } from '@spinajs/orm';
13
+ import { SqlWhereCompiler } from './compilers.js';
14
+ import { Autoinject, NewInstance } from '@spinajs/di';
13
15
  import { InvalidArgument } from '@spinajs/exceptions';
14
- function _columnWrap(column, tableAlias, isAggregate) {
16
+ /**
17
+ * Exported so driver packages can wrap a column exactly the way the shared
18
+ * statements do — a driver writing its own dialect statement must not have to
19
+ * re-derive alias rules. Quoting itself comes from the driver's own
20
+ * {@link IdentifierQuoter}, which is why it is a parameter rather than an import.
21
+ */
22
+ export function _columnWrap(quoter, column, tableAlias, isAggregate) {
15
23
  if (tableAlias && !isAggregate) {
16
- return `${escapeIdentifier(tableAlias)}.${escapeIdentifier(column)}`;
24
+ return `${quoter.quote(tableAlias)}.${quoter.quote(column)}`;
17
25
  }
18
- return escapeIdentifier(column);
26
+ return quoter.quote(column);
27
+ }
28
+ /**
29
+ * Copies the injected quoter onto a hand-constructed clone.
30
+ *
31
+ * `clone()` builds statements with `new`, which bypasses the container — so property
32
+ * injection never runs on a clone and `this.Quoter` would be undefined the moment the
33
+ * cloned statement compiled. Every clone of a statement that quotes anything goes
34
+ * through here.
35
+ */
36
+ function _carryQuoter(clone, source) {
37
+ clone.Quoter = source.Quoter;
38
+ return clone;
19
39
  }
20
40
  let SqlRawStatement = SqlRawStatement_1 = class SqlRawStatement extends RawQueryStatement {
21
41
  clone() {
@@ -109,23 +129,27 @@ SqlWithRecursiveStatement = SqlWithRecursiveStatement_1 = __decorate([
109
129
  export { SqlWithRecursiveStatement };
110
130
  let SqlBetweenStatement = SqlBetweenStatement_1 = class SqlBetweenStatement extends BetweenStatement {
111
131
  clone() {
112
- return new SqlBetweenStatement_1(this._column, this._val, this._not, this._tableAlias);
132
+ return _carryQuoter(new SqlBetweenStatement_1(this._column, this._val, this._not, this._tableAlias), this);
113
133
  }
114
134
  build() {
115
135
  const exprr = this._not ? 'NOT BETWEEN' : 'BETWEEN';
116
136
  return {
117
137
  Bindings: this._val,
118
- Statements: [`${_columnWrap(this._column, this._tableAlias)} ${exprr} ? AND ?`],
138
+ Statements: [`${_columnWrap(this.Quoter, this._column, this._tableAlias)} ${exprr} ? AND ?`],
119
139
  };
120
140
  }
121
141
  };
142
+ __decorate([
143
+ Autoinject(IdentifierQuoter),
144
+ __metadata("design:type", IdentifierQuoter)
145
+ ], SqlBetweenStatement.prototype, "Quoter", void 0);
122
146
  SqlBetweenStatement = SqlBetweenStatement_1 = __decorate([
123
147
  NewInstance()
124
148
  ], SqlBetweenStatement);
125
149
  export { SqlBetweenStatement };
126
150
  let SqlGroupByStatement = SqlGroupByStatement_1 = class SqlGroupByStatement extends GroupByStatement {
127
151
  clone() {
128
- return new SqlGroupByStatement_1(this._expr, this.TableAlias);
152
+ return _carryQuoter(new SqlGroupByStatement_1(this._expr, this.TableAlias), this);
129
153
  }
130
154
  build() {
131
155
  if (this._expr instanceof RawQuery) {
@@ -137,18 +161,22 @@ let SqlGroupByStatement = SqlGroupByStatement_1 = class SqlGroupByStatement exte
137
161
  else {
138
162
  return {
139
163
  Bindings: [],
140
- Statements: [escapeIdentifier(this._expr)],
164
+ Statements: [this.Quoter.quote(this._expr)],
141
165
  };
142
166
  }
143
167
  }
144
168
  };
169
+ __decorate([
170
+ Autoinject(IdentifierQuoter),
171
+ __metadata("design:type", IdentifierQuoter)
172
+ ], SqlGroupByStatement.prototype, "Quoter", void 0);
145
173
  SqlGroupByStatement = SqlGroupByStatement_1 = __decorate([
146
174
  NewInstance()
147
175
  ], SqlGroupByStatement);
148
176
  export { SqlGroupByStatement };
149
177
  let SqlWhereStatement = SqlWhereStatement_1 = class SqlWhereStatement extends WhereStatement {
150
178
  clone(_builder) {
151
- return new SqlWhereStatement_1(this._column, this._operator, this._value, this._builder);
179
+ return _carryQuoter(new SqlWhereStatement_1(this._column, this._operator, this._value, this._builder), this);
152
180
  }
153
181
  build() {
154
182
  const isNullableQuery = this._operator === SqlOperator.NOT_NULL || this._operator === SqlOperator.NULL;
@@ -167,7 +195,7 @@ let SqlWhereStatement = SqlWhereStatement_1 = class SqlWhereStatement extends Wh
167
195
  column = wrapper.wrap();
168
196
  }
169
197
  else {
170
- column = _columnWrap(column, this._builder.TableAlias, this.IsAggregate);
198
+ column = _columnWrap(this.Quoter, column, this._builder.TableAlias, this.IsAggregate);
171
199
  if (val instanceof ModelBase) {
172
200
  // A composite key unwraps to a tuple, which would bind an array into a single `?`.
173
201
  const pk = val.PrimaryKeyValue;
@@ -200,16 +228,20 @@ let SqlWhereStatement = SqlWhereStatement_1 = class SqlWhereStatement extends Wh
200
228
  };
201
229
  }
202
230
  };
231
+ __decorate([
232
+ Autoinject(IdentifierQuoter),
233
+ __metadata("design:type", IdentifierQuoter)
234
+ ], SqlWhereStatement.prototype, "Quoter", void 0);
203
235
  SqlWhereStatement = SqlWhereStatement_1 = __decorate([
204
236
  NewInstance()
205
237
  ], SqlWhereStatement);
206
238
  export { SqlWhereStatement };
207
239
  let SqlJoinStatement = SqlJoinStatement_1 = class SqlJoinStatement extends JoinStatement {
208
240
  clone(parent) {
209
- return new SqlJoinStatement_1({
241
+ return _carryQuoter(new SqlJoinStatement_1({
210
242
  ...this._options,
211
243
  builder: parent ?? this._options.builder,
212
- });
244
+ }), this);
213
245
  }
214
246
  build() {
215
247
  const method = this._options.method === JoinMethod.RECURSIVE ? JoinMethod.INNER : this._options.method ?? JoinMethod.LEFT;
@@ -255,19 +287,19 @@ let SqlJoinStatement = SqlJoinStatement_1 = class SqlJoinStatement extends JoinS
255
287
  if (sourceTableAlias) {
256
288
  const sourceDb = sourceModelDriver.Options.Database;
257
289
  if (sourceDb) {
258
- sourceTable = `${escapeIdentifier(sourceDb)}.${escapeIdentifier(sourceTable)} as ${escapeIdentifier(sourceTableAlias)}`;
290
+ sourceTable = `${this.Quoter.quote(sourceDb)}.${this.Quoter.quote(sourceTable)} as ${this.Quoter.quote(sourceTableAlias)}`;
259
291
  }
260
292
  else {
261
- sourceTable = `${escapeIdentifier(sourceTable)} as ${escapeIdentifier(sourceTableAlias)}`;
293
+ sourceTable = `${this.Quoter.quote(sourceTable)} as ${this.Quoter.quote(sourceTableAlias)}`;
262
294
  }
263
295
  }
264
296
  if (joinTableAlias) {
265
297
  const joinDb = joinModelDriver.Options.Database;
266
298
  if (joinDb) {
267
- joinTable = `${escapeIdentifier(joinDb)}.${escapeIdentifier(joinTable)} as ${escapeIdentifier(joinTableAlias)}`;
299
+ joinTable = `${this.Quoter.quote(joinDb)}.${this.Quoter.quote(joinTable)} as ${this.Quoter.quote(joinTableAlias)}`;
268
300
  }
269
301
  else {
270
- joinTable = `${escapeIdentifier(joinTable)} as ${escapeIdentifier(joinTableAlias)}`;
302
+ joinTable = `${this.Quoter.quote(joinTable)} as ${this.Quoter.quote(joinTableAlias)}`;
271
303
  }
272
304
  }
273
305
  // NOTE: only the table alias part of the ON keys is escaped here. The join
@@ -275,8 +307,8 @@ let SqlJoinStatement = SqlJoinStatement_1 = class SqlJoinStatement extends JoinS
275
307
  // as-is on purpose: they come from validated relation descriptors and the
276
308
  // existing suite asserts the unquoted form, so escaping them would change
277
309
  // byte output for normal identifiers.
278
- const primaryKey = sourceTableAlias ? `${escapeIdentifier(sourceTableAlias)}.${this._options.sourceTablePrimaryKey}` : `${escapeIdentifier(sourceTable)}.${this._options.sourceTablePrimaryKey}`;
279
- const foreignKey = joinTableAlias ? `${escapeIdentifier(joinTableAlias)}.${this._options.joinTableForeignKey}` : `${escapeIdentifier(joinTable)}.${this._options.joinTableForeignKey}`;
310
+ const primaryKey = sourceTableAlias ? `${this.Quoter.quote(sourceTableAlias)}.${this._options.sourceTablePrimaryKey}` : `${this.Quoter.quote(sourceTable)}.${this._options.sourceTablePrimaryKey}`;
311
+ const foreignKey = joinTableAlias ? `${this.Quoter.quote(joinTableAlias)}.${this._options.joinTableForeignKey}` : `${this.Quoter.quote(joinTable)}.${this._options.joinTableForeignKey}`;
280
312
  // Conditions supplied via the join callback (e.g. `.leftJoin(rel, b => b.where('Key', 'x'))`)
281
313
  // belong in the JOIN's ON clause, not the main WHERE — otherwise an outer
282
314
  // join is silently narrowed to an inner one. We compile the join sub-builder's
@@ -301,49 +333,79 @@ let SqlJoinStatement = SqlJoinStatement_1 = class SqlJoinStatement extends JoinS
301
333
  };
302
334
  }
303
335
  };
336
+ __decorate([
337
+ Autoinject(IdentifierQuoter),
338
+ __metadata("design:type", IdentifierQuoter)
339
+ ], SqlJoinStatement.prototype, "Quoter", void 0);
304
340
  SqlJoinStatement = SqlJoinStatement_1 = __decorate([
305
341
  NewInstance()
306
342
  ], SqlJoinStatement);
307
343
  export { SqlJoinStatement };
308
344
  let SqlInStatement = SqlInStatement_1 = class SqlInStatement extends InStatement {
309
345
  clone(parent) {
310
- return new SqlInStatement_1(this._column, this._val, this._not, (parent ?? this._builder));
346
+ return _carryQuoter(new SqlInStatement_1(this._column, this._val, this._not, (parent ?? this._builder)), this);
311
347
  }
312
348
  build() {
313
349
  const exprr = this._not ? 'NOT IN' : 'IN';
314
- let column = _columnWrap(this._column, this._builder.TableAlias);
350
+ const column = _columnWrap(this.Quoter, this._column, this._builder.TableAlias);
315
351
  return {
316
352
  Bindings: this._val,
317
353
  Statements: [`${column} ${exprr} (${this._val.map(() => '?').join(',')})`],
318
354
  };
319
355
  }
320
356
  };
357
+ __decorate([
358
+ Autoinject(IdentifierQuoter),
359
+ __metadata("design:type", IdentifierQuoter)
360
+ ], SqlInStatement.prototype, "Quoter", void 0);
321
361
  SqlInStatement = SqlInStatement_1 = __decorate([
322
362
  NewInstance()
323
363
  ], SqlInStatement);
324
364
  export { SqlInStatement };
365
+ /**
366
+ * Portable membership test against a delimited `@Set()` column.
367
+ *
368
+ * Plain equality plus three LIKE patterns — value alone, first, last, in the middle —
369
+ * so it needs no dialect function and no string concatenation operator ( `||` on
370
+ * SQLite, `+` on MSSQL, `CONCAT()` on MySQL: there is no spelling all three accept ).
371
+ * Every driver that ships with spinajs replaces this with its native form; this is
372
+ * what an unknown driver gets, and it is correct rather than fast.
373
+ *
374
+ * This used to emit `FIND_IN_SET`, which exists only in MySQL — on SQLite and MSSQL
375
+ * every `whereInSet` ( and therefore every `withRole` ) died with "no such function"
376
+ * at query time.
377
+ */
325
378
  let SqlInSetStatement = SqlInSetStatement_1 = class SqlInSetStatement extends InSetStatement {
326
379
  build() {
327
- const column = _columnWrap(this._column, this._tableAlias);
328
- const operator = this._not ? '= 0' : '> 0';
329
- const connector = this._not ? ' AND ' : ' OR ';
330
- const conditions = this._val.map(() => `FIND_IN_SET(?, ${column}) ${operator}`).join(connector);
380
+ const column = _columnWrap(this.Quoter, this._column, this._tableAlias);
381
+ const bindings = [];
382
+ const expressions = this.values().map((value) => {
383
+ const pattern = escapeLikeValue(value);
384
+ // exact ( the column holds this value alone ), first, last, middle
385
+ bindings.push(value, `${pattern}${SET_DELIMITER}%`, `%${SET_DELIMITER}${pattern}`, `%${SET_DELIMITER}${pattern}${SET_DELIMITER}%`);
386
+ const like = `${column} LIKE ? ESCAPE '${LIKE_ESCAPE_CHARACTER}'`;
387
+ return `(${column} = ? OR ${like} OR ${like} OR ${like})`;
388
+ });
331
389
  return {
332
- Bindings: this._val,
333
- Statements: [`(${conditions})`],
390
+ Bindings: bindings,
391
+ Statements: [this.combine(expressions)],
334
392
  };
335
393
  }
336
394
  clone() {
337
- return new SqlInSetStatement_1(this._column, this._val, this._not, this._tableAlias);
395
+ return _carryQuoter(new SqlInSetStatement_1(this._column, this._val, this._not, this._tableAlias), this);
338
396
  }
339
397
  };
398
+ __decorate([
399
+ Autoinject(IdentifierQuoter),
400
+ __metadata("design:type", IdentifierQuoter)
401
+ ], SqlInSetStatement.prototype, "Quoter", void 0);
340
402
  SqlInSetStatement = SqlInSetStatement_1 = __decorate([
341
403
  NewInstance()
342
404
  ], SqlInSetStatement);
343
405
  export { SqlInSetStatement };
344
406
  let SqlColumnStatement = SqlColumnStatement_1 = class SqlColumnStatement extends ColumnStatement {
345
407
  clone() {
346
- return new SqlColumnStatement_1(this._column, this._alias, this._tableAlias, this.Descriptor);
408
+ return _carryQuoter(new SqlColumnStatement_1(this._column, this._alias, this._tableAlias, this.Descriptor), this);
347
409
  }
348
410
  build() {
349
411
  let exprr = '';
@@ -351,13 +413,13 @@ let SqlColumnStatement = SqlColumnStatement_1 = class SqlColumnStatement extends
351
413
  exprr = '*';
352
414
  }
353
415
  else {
354
- exprr = escapeIdentifier(this._column);
416
+ exprr = this.Quoter.quote(this._column);
355
417
  if (this._alias) {
356
- exprr += ` as ${escapeIdentifier(this._alias)}`;
418
+ exprr += ` as ${this.Quoter.quote(this._alias)}`;
357
419
  }
358
420
  }
359
421
  if (this._tableAlias) {
360
- exprr = `${escapeIdentifier(this._tableAlias)}.${exprr}`;
422
+ exprr = `${this.Quoter.quote(this._tableAlias)}.${exprr}`;
361
423
  }
362
424
  return {
363
425
  Bindings: [],
@@ -365,13 +427,17 @@ let SqlColumnStatement = SqlColumnStatement_1 = class SqlColumnStatement extends
365
427
  };
366
428
  }
367
429
  };
430
+ __decorate([
431
+ Autoinject(IdentifierQuoter),
432
+ __metadata("design:type", IdentifierQuoter)
433
+ ], SqlColumnStatement.prototype, "Quoter", void 0);
368
434
  SqlColumnStatement = SqlColumnStatement_1 = __decorate([
369
435
  NewInstance()
370
436
  ], SqlColumnStatement);
371
437
  export { SqlColumnStatement };
372
438
  let SqlColumnMethodStatement = SqlColumnMethodStatement_1 = class SqlColumnMethodStatement extends ColumnMethodStatement {
373
439
  clone() {
374
- return new SqlColumnMethodStatement_1(this._column, this._method, this._alias, this._tableAlias);
440
+ return _carryQuoter(new SqlColumnMethodStatement_1(this._column, this._method, this._alias, this._tableAlias), this);
375
441
  }
376
442
  build() {
377
443
  let _exprr = '';
@@ -379,10 +445,10 @@ let SqlColumnMethodStatement = SqlColumnMethodStatement_1 = class SqlColumnMetho
379
445
  _exprr = `${this._method}(${this._column})`;
380
446
  }
381
447
  else {
382
- _exprr = `${this._method}(${escapeIdentifier(this._column)})`;
448
+ _exprr = `${this._method}(${this.Quoter.quote(this._column)})`;
383
449
  }
384
450
  if (this._alias) {
385
- _exprr += ` as ${escapeIdentifier(this._alias)}`;
451
+ _exprr += ` as ${this.Quoter.quote(this._alias)}`;
386
452
  }
387
453
  return {
388
454
  Bindings: [],
@@ -390,6 +456,10 @@ let SqlColumnMethodStatement = SqlColumnMethodStatement_1 = class SqlColumnMetho
390
456
  };
391
457
  }
392
458
  };
459
+ __decorate([
460
+ Autoinject(IdentifierQuoter),
461
+ __metadata("design:type", IdentifierQuoter)
462
+ ], SqlColumnMethodStatement.prototype, "Quoter", void 0);
393
463
  SqlColumnMethodStatement = SqlColumnMethodStatement_1 = __decorate([
394
464
  NewInstance()
395
465
  ], SqlColumnMethodStatement);
@@ -397,11 +467,15 @@ export { SqlColumnMethodStatement };
397
467
  let SqlDateWrapper = class SqlDateWrapper extends DateWrapper {
398
468
  wrap() {
399
469
  if (this._tableAlias) {
400
- return `DATE(${escapeIdentifier(this._tableAlias)}.${escapeIdentifier(this._value)})`;
470
+ return `DATE(${this.Quoter.quote(this._tableAlias)}.${this.Quoter.quote(this._value)})`;
401
471
  }
402
- return `DATE(${escapeIdentifier(this._value)})`;
472
+ return `DATE(${this.Quoter.quote(this._value)})`;
403
473
  }
404
474
  };
475
+ __decorate([
476
+ Autoinject(IdentifierQuoter),
477
+ __metadata("design:type", IdentifierQuoter)
478
+ ], SqlDateWrapper.prototype, "Quoter", void 0);
405
479
  SqlDateWrapper = __decorate([
406
480
  NewInstance()
407
481
  ], SqlDateWrapper);
@@ -409,11 +483,15 @@ export { SqlDateWrapper };
409
483
  export class SqlDateTimeWrapper extends DateTimeWrapper {
410
484
  wrap() {
411
485
  if (this._tableAlias) {
412
- return `DATETIME(${escapeIdentifier(this._tableAlias)}.${escapeIdentifier(this._value)})`;
486
+ return `DATETIME(${this.Quoter.quote(this._tableAlias)}.${this.Quoter.quote(this._value)})`;
413
487
  }
414
- return `DATETIME(${escapeIdentifier(this._value)})`;
488
+ return `DATETIME(${this.Quoter.quote(this._value)})`;
415
489
  }
416
490
  }
491
+ __decorate([
492
+ Autoinject(IdentifierQuoter),
493
+ __metadata("design:type", IdentifierQuoter)
494
+ ], SqlDateTimeWrapper.prototype, "Quoter", void 0);
417
495
  let SqlColumnRawStatement = SqlColumnRawStatement_1 = class SqlColumnRawStatement extends ColumnRawStatement {
418
496
  clone() {
419
497
  return new SqlColumnRawStatement_1(this.RawQuery);
@@ -1 +1 @@
1
- {"version":3,"file":"statements.js","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statements.js","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"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"}