@spinajs/orm-mssql 2.0.486 → 2.0.488
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/lib/cjs/compilers.d.ts +18 -1
- package/lib/cjs/compilers.d.ts.map +1 -1
- package/lib/cjs/compilers.js +65 -3
- package/lib/cjs/compilers.js.map +1 -1
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +28 -3
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/statements.d.ts +27 -0
- package/lib/cjs/statements.d.ts.map +1 -0
- package/lib/cjs/statements.js +72 -0
- package/lib/cjs/statements.js.map +1 -0
- package/lib/mjs/compilers.d.ts +18 -1
- package/lib/mjs/compilers.d.ts.map +1 -1
- package/lib/mjs/compilers.js +67 -5
- package/lib/mjs/compilers.js.map +1 -1
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +31 -6
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/statements.d.ts +27 -0
- package/lib/mjs/statements.d.ts.map +1 -0
- package/lib/mjs/statements.js +69 -0
- package/lib/mjs/statements.js.map +1 -0
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +5 -5
package/lib/mjs/index.js
CHANGED
|
@@ -7,13 +7,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { DatetimeValueConverter, DeleteQueryCompiler, ModelDehydrator, TableAliasCompiler, OnDuplicateQueryCompiler, OrderByQueryCompiler, TableQueryCompiler, ColumnQueryCompiler, InsertQueryCompiler, QueryContext, TableExistsCompiler, LimitQueryCompiler } from '@spinajs/orm';
|
|
10
|
+
import { DatetimeValueConverter, DeleteQueryCompiler, ModelDehydrator, TableAliasCompiler, OnDuplicateQueryCompiler, OrderByQueryCompiler, TableQueryCompiler, ColumnQueryCompiler, InsertQueryCompiler, QueryContext, TableExistsCompiler, LimitQueryCompiler, InSetStatement, IdentifierQuoter, TruncateTableQueryCompiler, CreateDatabaseCompiler, DropDatabaseCompiler } from '@spinajs/orm';
|
|
11
11
|
/* eslint-disable security/detect-object-injection */
|
|
12
12
|
import { Injectable, NewInstance } from '@spinajs/di';
|
|
13
|
-
import { SqlDriver } from '@spinajs/orm-sql';
|
|
13
|
+
import { SqlDriver, SqlTruncateTableQueryCompiler } from '@spinajs/orm-sql';
|
|
14
14
|
import mssql from 'mssql';
|
|
15
|
-
import { MsSqlTableExistsCompiler, MsSqlLimitCompiler, MsSqlOrderByCompiler, MsSqlTableQueryCompiler, MsSqlColumnQueryCompiler, MsSqlInsertQueryCompiler, MsSqlDeleteQueryCompiler, MsSqlTableAliasCompiler, MsSqlOnDuplicateQueryCompiler } from './compilers.js';
|
|
15
|
+
import { MsSqlTableExistsCompiler, MsSqlLimitCompiler, MsSqlOrderByCompiler, MsSqlTableQueryCompiler, MsSqlColumnQueryCompiler, MsSqlInsertQueryCompiler, MsSqlDeleteQueryCompiler, MsSqlTableAliasCompiler, MsSqlOnDuplicateQueryCompiler, MsSqlCreateDatabaseQueryCompiler, MsSqlDropDatabaseQueryCompiler } from './compilers.js';
|
|
16
16
|
import { MssqlModelDehydrator } from './dehydrator.js';
|
|
17
|
+
import { BracketIdentifierQuoter, MsSqlInSetStatement } from './statements.js';
|
|
17
18
|
import { MsSqlDatetimeValueConverter } from './converters.js';
|
|
18
19
|
const MSSQL_ISOLATION_LEVELS = {
|
|
19
20
|
'READ UNCOMMITTED': mssql.ISOLATION_LEVEL.READ_UNCOMMITTED,
|
|
@@ -77,7 +78,19 @@ let MsSqlOrmDriver = class MsSqlOrmDriver extends SqlDriver {
|
|
|
77
78
|
}
|
|
78
79
|
supportedFeatures() {
|
|
79
80
|
return {
|
|
80
|
-
|
|
81
|
+
/**
|
|
82
|
+
* FALSE, and it always was in practice. This driver registers no event or
|
|
83
|
+
* table-history compiler, so both fell through to the shared ones — which
|
|
84
|
+
* emit MySQL's `CREATE EVENT` and MySQL trigger syntax, and every one of
|
|
85
|
+
* them would have been rejected by SQL Server. Scheduling on this platform
|
|
86
|
+
* is SQL Server Agent, and history is a temporal table; until this driver
|
|
87
|
+
* implements them, claiming support only means the failure happens later
|
|
88
|
+
* and further from its cause.
|
|
89
|
+
*
|
|
90
|
+
* The dialect contract check is what surfaced this — it saw the shared
|
|
91
|
+
* MySQL event compiler answering for a driver whose dialect is `mssql`.
|
|
92
|
+
*/
|
|
93
|
+
events: false,
|
|
81
94
|
insertReturning: false,
|
|
82
95
|
// SCOPE_IDENTITY() reports the LAST identity generated in the scope, so a multi-row insert
|
|
83
96
|
// cannot be walked forwards from it. MSSQL opts out of the batch key backfill.
|
|
@@ -95,7 +108,7 @@ let MsSqlOrmDriver = class MsSqlOrmDriver extends SqlDriver {
|
|
|
95
108
|
}
|
|
96
109
|
async connect() {
|
|
97
110
|
try {
|
|
98
|
-
this._connectionPool =
|
|
111
|
+
this._connectionPool = await mssql.connect({
|
|
99
112
|
user: this.Options.User,
|
|
100
113
|
password: this.Options.Password,
|
|
101
114
|
database: this.Options.Database,
|
|
@@ -110,7 +123,7 @@ let MsSqlOrmDriver = class MsSqlOrmDriver extends SqlDriver {
|
|
|
110
123
|
idleTimeoutMillis: this.resolvedPoolOptions().IdleTimeout,
|
|
111
124
|
acquireTimeoutMillis: this.resolvedPoolOptions().AcquireTimeout,
|
|
112
125
|
},
|
|
113
|
-
})
|
|
126
|
+
});
|
|
114
127
|
await this.executeOnDb(`USE ${this.Options.Database}`, [], QueryContext.Schema);
|
|
115
128
|
return this;
|
|
116
129
|
}
|
|
@@ -141,6 +154,18 @@ let MsSqlOrmDriver = class MsSqlOrmDriver extends SqlDriver {
|
|
|
141
154
|
this.Container.register(MsSqlTableAliasCompiler).as(TableAliasCompiler);
|
|
142
155
|
this.Container.register(MsSqlDatetimeValueConverter).as(DatetimeValueConverter);
|
|
143
156
|
this.Container.register(MsSqlOnDuplicateQueryCompiler).as(OnDuplicateQueryCompiler);
|
|
157
|
+
this.Container.register(MsSqlInSetStatement).as(InSetStatement);
|
|
158
|
+
// T-SQL spells database DDL its own way - no CHARACTER SET, no IF NOT EXISTS.
|
|
159
|
+
this.Container.register(MsSqlCreateDatabaseQueryCompiler).as(CreateDatabaseCompiler);
|
|
160
|
+
this.Container.register(MsSqlDropDatabaseQueryCompiler).as(DropDatabaseCompiler);
|
|
161
|
+
// Brackets, not the backticks this driver used to inherit from the shared layer.
|
|
162
|
+
this.Container.register(BracketIdentifierQuoter).as(IdentifierQuoter);
|
|
163
|
+
// `TRUNCATE TABLE` is valid T-SQL, so the shared compiler is claimed explicitly.
|
|
164
|
+
// `CHANGE COLUMN`, `ALTER TABLE ... RENAME TO`, `CREATE TABLE ... LIKE`,
|
|
165
|
+
// `WITH RECURSIVE` and `CURRENT_DATE()` are NOT T-SQL and are left unregistered:
|
|
166
|
+
// those features now fail with a DI error naming the abstraction instead of
|
|
167
|
+
// reaching SQL Server as MySQL syntax.
|
|
168
|
+
this.Container.register(SqlTruncateTableQueryCompiler).as(TruncateTableQueryCompiler);
|
|
144
169
|
}
|
|
145
170
|
async disconnect() {
|
|
146
171
|
if (this._connectionPool) {
|
package/lib/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,EAAgC,mBAAmB,EAAE,kBAAkB,EAA+F,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IdentifierQuoter, InSetStatement, IQueryStatement, IQueryStatementResult } from '@spinajs/orm';
|
|
2
|
+
/**
|
|
3
|
+
* Membership test against a delimited `@Set()` column, MSSQL dialect.
|
|
4
|
+
*
|
|
5
|
+
* `CHARINDEX` over the column padded with delimiters on both sides — a value is a
|
|
6
|
+
* member exactly when `,value,` occurs inside `,col,`. MSSQL concatenates with `+`,
|
|
7
|
+
* not `||`, which is one of the reasons there is no single portable spelling of this
|
|
8
|
+
* query and every driver registers its own.
|
|
9
|
+
*
|
|
10
|
+
* `ISNULL` keeps a NULL column out of the result instead of propagating NULL.
|
|
11
|
+
*/
|
|
12
|
+
export declare class MsSqlInSetStatement extends InSetStatement {
|
|
13
|
+
Quoter: IdentifierQuoter;
|
|
14
|
+
build(): IQueryStatementResult;
|
|
15
|
+
clone(): IQueryStatement;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Bracket quoting — SQL Server's rule, escaping an embedded `]` by doubling it.
|
|
19
|
+
*
|
|
20
|
+
* This driver used to import the shared BACKTICK helper and emit `` `table` ``, which
|
|
21
|
+
* SQL Server does not accept, in every statement its own compilers did not replace.
|
|
22
|
+
* Quoting is a service now, so registering this is all it takes.
|
|
23
|
+
*/
|
|
24
|
+
export declare class BracketIdentifierQuoter extends IdentifierQuoter {
|
|
25
|
+
quote(name: string): string;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=statements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAiB,MAAM,cAAc,CAAC;AAGvH;;;;;;;;;GASG;AACH,qBACa,mBAAoB,SAAQ,cAAc;IAE9C,MAAM,EAAE,gBAAgB,CAAC;IAEzB,KAAK,IAAI,qBAAqB;IAe9B,KAAK,IAAI,eAAe;CAQhC;AAED;;;;;;GAMG;AACH,qBACa,uBAAwB,SAAQ,gBAAgB;IACpD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAGnC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
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
|
+
};
|
|
10
|
+
var MsSqlInSetStatement_1;
|
|
11
|
+
import { Autoinject, NewInstance } from '@spinajs/di';
|
|
12
|
+
import { IdentifierQuoter, InSetStatement, SET_DELIMITER } from '@spinajs/orm';
|
|
13
|
+
import { _columnWrap } from '@spinajs/orm-sql';
|
|
14
|
+
/**
|
|
15
|
+
* Membership test against a delimited `@Set()` column, MSSQL dialect.
|
|
16
|
+
*
|
|
17
|
+
* `CHARINDEX` over the column padded with delimiters on both sides — a value is a
|
|
18
|
+
* member exactly when `,value,` occurs inside `,col,`. MSSQL concatenates with `+`,
|
|
19
|
+
* not `||`, which is one of the reasons there is no single portable spelling of this
|
|
20
|
+
* query and every driver registers its own.
|
|
21
|
+
*
|
|
22
|
+
* `ISNULL` keeps a NULL column out of the result instead of propagating NULL.
|
|
23
|
+
*/
|
|
24
|
+
let MsSqlInSetStatement = MsSqlInSetStatement_1 = class MsSqlInSetStatement extends InSetStatement {
|
|
25
|
+
build() {
|
|
26
|
+
const column = _columnWrap(this.Quoter, this._column, this._tableAlias);
|
|
27
|
+
const bindings = [];
|
|
28
|
+
const expressions = this.values().map((value) => {
|
|
29
|
+
bindings.push(`${SET_DELIMITER}${value}${SET_DELIMITER}`);
|
|
30
|
+
return `(CHARINDEX(?, '${SET_DELIMITER}' + ISNULL(${column}, '') + '${SET_DELIMITER}') > 0)`;
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
Bindings: bindings,
|
|
34
|
+
Statements: [this.combine(expressions)],
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
clone() {
|
|
38
|
+
const clone = new MsSqlInSetStatement_1(this._column, this._val, this._not, this._tableAlias);
|
|
39
|
+
// a hand-constructed clone never goes through the container, so the injected
|
|
40
|
+
// quoter has to be carried over explicitly
|
|
41
|
+
clone.Quoter = this.Quoter;
|
|
42
|
+
return clone;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
__decorate([
|
|
46
|
+
Autoinject(IdentifierQuoter),
|
|
47
|
+
__metadata("design:type", IdentifierQuoter)
|
|
48
|
+
], MsSqlInSetStatement.prototype, "Quoter", void 0);
|
|
49
|
+
MsSqlInSetStatement = MsSqlInSetStatement_1 = __decorate([
|
|
50
|
+
NewInstance()
|
|
51
|
+
], MsSqlInSetStatement);
|
|
52
|
+
export { MsSqlInSetStatement };
|
|
53
|
+
/**
|
|
54
|
+
* Bracket quoting — SQL Server's rule, escaping an embedded `]` by doubling it.
|
|
55
|
+
*
|
|
56
|
+
* This driver used to import the shared BACKTICK helper and emit `` `table` ``, which
|
|
57
|
+
* SQL Server does not accept, in every statement its own compilers did not replace.
|
|
58
|
+
* Quoting is a service now, so registering this is all it takes.
|
|
59
|
+
*/
|
|
60
|
+
let BracketIdentifierQuoter = class BracketIdentifierQuoter extends IdentifierQuoter {
|
|
61
|
+
quote(name) {
|
|
62
|
+
return '[' + String(name).replace(/]/g, ']]') + ']';
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
BracketIdentifierQuoter = __decorate([
|
|
66
|
+
NewInstance()
|
|
67
|
+
], BracketIdentifierQuoter);
|
|
68
|
+
export { BracketIdentifierQuoter };
|
|
69
|
+
//# sourceMappingURL=statements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAA0C,aAAa,EAAE,MAAM,cAAc,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;;;;;;GASG;AAEI,IAAM,mBAAmB,2BAAzB,MAAM,mBAAoB,SAAQ,cAAc;IAI9C,KAAK;QACV,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9C,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,GAAG,KAAK,GAAG,aAAa,EAAE,CAAC,CAAC;YAC1D,OAAO,kBAAkB,aAAa,cAAc,MAAM,YAAY,aAAa,SAAS,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACxC,CAAC;IACJ,CAAC;IAEM,KAAK;QACV,MAAM,KAAK,GAAG,IAAI,qBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAY,CAAC,CAAC;QAC7F,6EAA6E;QAC7E,2CAA2C;QAC3C,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAzBQ;IADN,UAAU,CAAC,gBAAgB,CAAC;8BACd,gBAAgB;mDAAC;AAFrB,mBAAmB;IAD/B,WAAW,EAAE;GACD,mBAAmB,CA2B/B;;AAED;;;;;;GAMG;AAEI,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,gBAAgB;IACpD,KAAK,CAAC,IAAY;QACvB,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;IACtD,CAAC;CACF,CAAA;AAJY,uBAAuB;IADnC,WAAW,EAAE;GACD,uBAAuB,CAInC"}
|