@spinajs/orm-mssql 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 +89 -4
- package/lib/cjs/compilers.d.ts.map +1 -1
- package/lib/cjs/compilers.js +6 -6
- package/lib/cjs/compilers.js.map +1 -1
- package/lib/cjs/index.d.ts +12 -7
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +86 -102
- package/lib/cjs/index.js.map +1 -1
- package/lib/mjs/compilers.d.ts.map +1 -1
- package/lib/mjs/compilers.js +7 -7
- package/lib/mjs/compilers.js.map +1 -1
- package/lib/mjs/index.d.ts +12 -7
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +86 -102
- package/lib/mjs/index.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +12 -14
package/README.md
CHANGED
|
@@ -1,11 +1,96 @@
|
|
|
1
|
-
# `@spinajs/orm-
|
|
1
|
+
# `@spinajs/orm-mssql`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The Microsoft SQL Server dialect driver for [`@spinajs/orm`](../orm), built on
|
|
4
|
+
[`@spinajs/orm-sql`](../orm-sql).
|
|
5
|
+
|
|
6
|
+
## Known defect: inserts fail
|
|
7
|
+
|
|
8
|
+
**This driver registers no `ServerResponseMapper`.** Every driver must — the shape of an insert
|
|
9
|
+
response is dialect-specific and the base class has no default. Any path that reads an insert
|
|
10
|
+
response therefore throws:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
no ServerResponseMapper is registered for this connection. Every driver must register one:
|
|
14
|
+
container.register(MyMapper).as(ServerResponseMapper)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
That covers `Model.insert()`, `model.insert()`, `model.save()` and every upsert. It reproduces
|
|
18
|
+
from this package's own suite — `npm test` gives **10 passing, 2 failing**, both with that
|
|
19
|
+
message.
|
|
20
|
+
|
|
21
|
+
The fix is a mapper reading the `SELECT SCOPE_IDENTITY() as ID` that `MsSqlInsertQueryCompiler`
|
|
22
|
+
already appends to every insert, registered in `resolve()`. See
|
|
23
|
+
[docs/README.md](docs/README.md) for a working implementation.
|
|
24
|
+
|
|
25
|
+
Until then, treat this driver as **read-capable only**. Selects, schema operations and
|
|
26
|
+
transactions all work.
|
|
27
|
+
|
|
28
|
+
## Install
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm install @spinajs/orm @spinajs/orm-mssql
|
|
32
|
+
```
|
|
4
33
|
|
|
5
34
|
## Usage
|
|
6
35
|
|
|
36
|
+
```ts
|
|
37
|
+
import { DI } from '@spinajs/di';
|
|
38
|
+
import { Orm } from '@spinajs/orm';
|
|
39
|
+
import { MsSqlOrmDriver } from '@spinajs/orm-mssql';
|
|
40
|
+
|
|
41
|
+
DI.register(MsSqlOrmDriver).as('orm-driver-mssql');
|
|
42
|
+
await DI.resolve(Orm);
|
|
7
43
|
```
|
|
8
|
-
const ormSql = require('@spinajs/orm-sql');
|
|
9
44
|
|
|
10
|
-
|
|
45
|
+
```ts
|
|
46
|
+
// configuration
|
|
47
|
+
{
|
|
48
|
+
db: {
|
|
49
|
+
DefaultConnection: 'mssql',
|
|
50
|
+
Connections: [
|
|
51
|
+
{
|
|
52
|
+
Name: 'mssql',
|
|
53
|
+
Driver: 'orm-driver-mssql',
|
|
54
|
+
Host: '127.0.0.1',
|
|
55
|
+
Port: 1433,
|
|
56
|
+
User: 'sa',
|
|
57
|
+
Password: 'Str0ng!Passw0rd',
|
|
58
|
+
Database: 'app',
|
|
59
|
+
Options: { Schema: 'dbo', encrypt: false, trustServerCertificate: true },
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## What is distinctive
|
|
67
|
+
|
|
68
|
+
- **`AliasSeparator` defaults to `#`, not `$`** — `$` begins a pseudo-column in T-SQL.
|
|
69
|
+
- **Backticks are stripped** from every statement before it is sent, since T-SQL quotes with
|
|
70
|
+
`[brackets]`.
|
|
71
|
+
- **Three-part table names** — `[database].[schema].[table]`, via `Options.Schema`.
|
|
72
|
+
- **`OFFSET ... FETCH NEXT`** instead of `LIMIT`. It is emitted only when a limit is set, so
|
|
73
|
+
`skip()` without `take()` applies no offset — and T-SQL requires an `ORDER BY` before `OFFSET`.
|
|
74
|
+
- **`DELETE TOP (n)`** for limited deletes.
|
|
75
|
+
- **`INSERT IGNORE` throws** — `InsertBehaviour.InsertOrIgnore` is unsupported.
|
|
76
|
+
- **Multi-column `ORDER BY` is reduced to one column.**
|
|
77
|
+
- **No native `SET`, `ENUM` or `JSON`**, so `whereInSet` / `whereNotInSet` do not work here and
|
|
78
|
+
`@Json()` is required for JSON columns.
|
|
79
|
+
- **DDL *is* transactional**, unlike MySQL — `Migration.Transaction.Mode = PerMigration` gives a
|
|
80
|
+
genuinely atomic migration.
|
|
81
|
+
|
|
82
|
+
## Documentation
|
|
83
|
+
|
|
84
|
+
Full documentation lives in **[docs/](docs/)**.
|
|
85
|
+
|
|
86
|
+
| | Page |
|
|
87
|
+
| --- | --- |
|
|
88
|
+
| 01 | [Configuration](docs/01-configuration.md) |
|
|
89
|
+
| 02 | [Dialect notes](docs/02-dialect-notes.md) |
|
|
90
|
+
|
|
91
|
+
## Development
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npm test # 10 passing, 2 failing — see the defect above
|
|
95
|
+
npm run build
|
|
11
96
|
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,eAAe,EAAgD,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAqD,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AACvR,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,2BAA2B,
|
|
1
|
+
{"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,eAAe,EAAgD,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAqD,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AACvR,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,2BAA2B,EAAoB,MAAM,kBAAkB,CAAC;AAGhO,qBACa,6BAA8B,SAAQ,2BAA2B;IACrE,OAAO;;;;CAiDf;AAED,qBACa,wBAAyB,SAAQ,sBAAsB;IAClE,SAAS,CAAC,WAAW,UAAS;gBAElB,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB;IAMvD,OAAO;;;;IAmBd,SAAS,CAAC,IAAI;CAGf;AAED,qBACa,wBAAyB,YAAW,mBAAmB;IACtD,SAAS,CAAC,OAAO,EAAE,uBAAuB;gBAAhC,OAAO,EAAE,uBAAuB;IAM/C,OAAO,IAAI,eAAe;CAgBlC;AAED,qBACa,kBAAmB,SAAQ,qBAAqB;IACpD,OAAO,IAAI,eAAe;CAiBlC;AAED,qBACa,oBAAqB,SAAQ,uBAAuB;IACxD,OAAO,IAAI,eAAe;CAclC;AAED,qBACa,uBAAwB,SAAQ,qBAAqB;IACzD,OAAO,IAAI,eAAe,EAAE;IAcnC,SAAS,CAAC,QAAQ;IAWlB,SAAS,CAAC,YAAY;IAMtB,SAAS,CAAC,MAAM;CAGjB;AAED,qBACa,wBAAyB,SAAQ,sBAAsB;IACtD,SAAS,CAAC,OAAO,EAAE,kBAAkB;gBAA3B,OAAO,EAAE,kBAAkB;CAMlD;AAED,qBACa,wBAAyB,SAAQ,sBAAsB;IAC3D,OAAO;;;;IAcd,SAAS,CAAC,IAAI;CAMf;AAED,qBAEa,uBAAwB,YAAW,kBAAkB;IACzD,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,MAAM;CAmBpD"}
|
package/lib/cjs/compilers.js
CHANGED
|
@@ -56,7 +56,7 @@ let MsSqlOnDuplicateQueryCompiler = class MsSqlOnDuplicateQueryCompiler extends
|
|
|
56
56
|
USING (SELECT * FROM ${table} WHERE ${this._builder.getColumn().map((c) => {
|
|
57
57
|
return `${c} = ?`;
|
|
58
58
|
})}) as source
|
|
59
|
-
ON (target.${descriptor.PrimaryKey} = source.${descriptor.PrimaryKey})
|
|
59
|
+
ON (target.${descriptor.PrimaryKey[0]} = source.${descriptor.PrimaryKey[0]})
|
|
60
60
|
WHEN MATCHED
|
|
61
61
|
THEN UPDATE
|
|
62
62
|
SET ${columns}
|
|
@@ -154,7 +154,7 @@ let MsSqlOrderByCompiler = class MsSqlOrderByCompiler extends orm_sql_1.SqlOrder
|
|
|
154
154
|
let stmt = '';
|
|
155
155
|
const bindings = [];
|
|
156
156
|
if (sort) {
|
|
157
|
-
stmt = ` ORDER BY
|
|
157
|
+
stmt = ` ORDER BY ${(0, orm_sql_1.escapeIdentifier)(sort.column)} ${sort.order.toLowerCase() === 'asc' ? 'ASC' : 'DESC'}`;
|
|
158
158
|
}
|
|
159
159
|
return {
|
|
160
160
|
bindings,
|
|
@@ -240,14 +240,14 @@ let MsSqlTableAliasCompiler = class MsSqlTableAliasCompiler {
|
|
|
240
240
|
compile(builder, tbl) {
|
|
241
241
|
let table = '';
|
|
242
242
|
if (builder.Database) {
|
|
243
|
-
table +=
|
|
243
|
+
table += `${(0, orm_sql_1.escapeIdentifier)(builder.Database)}.`;
|
|
244
244
|
}
|
|
245
245
|
if (builder.Driver.Options.Options?.Schema) {
|
|
246
|
-
table +=
|
|
246
|
+
table += `${(0, orm_sql_1.escapeIdentifier)(builder.Driver.Options.Options?.Schema)}.`;
|
|
247
247
|
}
|
|
248
|
-
table +=
|
|
248
|
+
table += (0, orm_sql_1.escapeIdentifier)(tbl ? tbl : builder.Table);
|
|
249
249
|
if (builder.TableAlias) {
|
|
250
|
-
table += ` as
|
|
250
|
+
table += ` as ${(0, orm_sql_1.escapeIdentifier)(builder.TableAlias)}`;
|
|
251
251
|
}
|
|
252
252
|
return table;
|
|
253
253
|
}
|
package/lib/cjs/compilers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compilers.js","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAAuD;AACvD,oCAA8D;AAC9D,sCAAuR;AACvR,
|
|
1
|
+
{"version":3,"file":"compilers.js","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import { QueryContext, OrmDriver, IColumnDescriptor,
|
|
1
|
+
import { QueryContext, OrmDriver, IColumnDescriptor, IDriverOptions, ISupportedFeature, IsolationLevel, ITransactionContext, ITransactionOptions } from '@spinajs/orm';
|
|
2
2
|
import { SqlDriver } from '@spinajs/orm-sql';
|
|
3
3
|
import mssql from 'mssql';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
export interface IMsSqlTransactionContext extends ITransactionContext {
|
|
5
|
+
transaction: mssql.Transaction;
|
|
6
6
|
request: mssql.Request;
|
|
7
7
|
}
|
|
8
8
|
export declare class MsSqlOrmDriver extends SqlDriver {
|
|
9
9
|
protected _connectionPool: mssql.ConnectionPool;
|
|
10
|
-
|
|
11
|
-
protected TransactionStorage: AsyncLocalStorage<IMsSqlTransactionContext>;
|
|
10
|
+
readonly SupportedIsolationLevels: IsolationLevel[];
|
|
12
11
|
constructor(options: IDriverOptions);
|
|
13
|
-
private getNextExecutionId;
|
|
14
12
|
executeOnDb(stmt: string, params: any[], context: QueryContext): Promise<any>;
|
|
15
13
|
supportedFeatures(): ISupportedFeature;
|
|
16
14
|
ping(): Promise<boolean>;
|
|
@@ -18,6 +16,13 @@ export declare class MsSqlOrmDriver extends SqlDriver {
|
|
|
18
16
|
resolve(): void;
|
|
19
17
|
disconnect(): Promise<OrmDriver>;
|
|
20
18
|
tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
|
|
21
|
-
|
|
19
|
+
private msSqlCtx;
|
|
20
|
+
protected _begin(options?: ITransactionOptions): Promise<ITransactionContext>;
|
|
21
|
+
protected _commit(ctx: ITransactionContext): Promise<void>;
|
|
22
|
+
protected _rollback(ctx: ITransactionContext): Promise<void>;
|
|
23
|
+
protected _savepoint(ctx: ITransactionContext, name: string): Promise<void>;
|
|
24
|
+
protected _releaseSavepoint(_ctx: ITransactionContext, _name: string): Promise<void>;
|
|
25
|
+
protected _rollbackToSavepoint(ctx: ITransactionContext, name: string): Promise<void>;
|
|
26
|
+
protected _dispose(_ctx: ITransactionContext): Promise<void>;
|
|
22
27
|
}
|
|
23
28
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkM,YAAY,EAAE,SAAS,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkM,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAA2C,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIhZ,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;IAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;CACxB;AAiBD,qBAEa,cAAe,SAAQ,SAAS;IAC3C,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,cAAc,CAAe;IAK9D,SAAgB,wBAAwB,EAAE,cAAc,EAAE,CAA6E;gBAE3H,OAAO,EAAE,cAAc;IAItB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IA2CnF,iBAAiB,IAAI,iBAAiB;IAUhC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IASxB,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IAoCnC,OAAO;IAgBD,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAQhC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAsCnF,OAAO,CAAC,QAAQ;cAIA,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;cASnE,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;cAIhD,SAAS,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;cAMlD,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIjE,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAK1E,oBAAoB,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAI3E,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnE"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -16,88 +16,78 @@ exports.MsSqlOrmDriver = void 0;
|
|
|
16
16
|
const orm_1 = require("@spinajs/orm");
|
|
17
17
|
/* eslint-disable security/detect-object-injection */
|
|
18
18
|
const di_1 = require("@spinajs/di");
|
|
19
|
-
const log_common_1 = require("@spinajs/log-common");
|
|
20
19
|
const orm_sql_1 = require("@spinajs/orm-sql");
|
|
21
20
|
const mssql_1 = __importDefault(require("mssql"));
|
|
22
21
|
const compilers_js_1 = require("./compilers.js");
|
|
23
22
|
const dehydrator_js_1 = require("./dehydrator.js");
|
|
24
23
|
const converters_js_1 = require("./converters.js");
|
|
25
|
-
const
|
|
24
|
+
const MSSQL_ISOLATION_LEVELS = {
|
|
25
|
+
'READ UNCOMMITTED': mssql_1.default.ISOLATION_LEVEL.READ_UNCOMMITTED,
|
|
26
|
+
'READ COMMITTED': mssql_1.default.ISOLATION_LEVEL.READ_COMMITTED,
|
|
27
|
+
'REPEATABLE READ': mssql_1.default.ISOLATION_LEVEL.REPEATABLE_READ,
|
|
28
|
+
SERIALIZABLE: mssql_1.default.ISOLATION_LEVEL.SERIALIZABLE,
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* MSSQL quotes identifiers with brackets and escapes an embedded `]` by doubling it — the
|
|
32
|
+
* shared `orm-sql` helper emits backticks, which SQL Server does not understand.
|
|
33
|
+
*/
|
|
34
|
+
function msSqlEscapeIdentifier(name) {
|
|
35
|
+
return '[' + String(name).replace(/]/g, ']]') + ']';
|
|
36
|
+
}
|
|
26
37
|
let MsSqlOrmDriver = class MsSqlOrmDriver extends orm_sql_1.SqlDriver {
|
|
27
38
|
constructor(options) {
|
|
28
39
|
super(Object.assign({ AliasSeparator: '#' }, options));
|
|
29
40
|
this._connectionPool = null;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
this._executionId = (this._executionId + 1) % Number.MAX_SAFE_INTEGER;
|
|
35
|
-
return this._executionId;
|
|
41
|
+
// `_executionId` went with the per-driver query timing master centralised, and
|
|
42
|
+
// `TransactionStorage` moved up to OrmDriver so ambient-connection propagation is part of
|
|
43
|
+
// the contract rather than each driver's own business.
|
|
44
|
+
this.SupportedIsolationLevels = ['READ UNCOMMITTED', 'READ COMMITTED', 'REPEATABLE READ', 'SERIALIZABLE'];
|
|
36
45
|
}
|
|
37
46
|
async executeOnDb(stmt, params, context) {
|
|
38
|
-
const tName = `query-${this.getNextExecutionId()}`;
|
|
39
47
|
let finalQuery = stmt.replaceAll('`', '');
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const tDiff = this.Log.timeEnd(`query-${tName}`);
|
|
58
|
-
void this.Log.write({
|
|
59
|
-
Level: log_common_1.LogLevel.Trace,
|
|
60
|
-
Variables: {
|
|
61
|
-
error: undefined,
|
|
62
|
-
message: `Executed: ${finalQuery}, bindings: ${params ? params.join(',') : 'none'}`,
|
|
63
|
-
logger: this.Log.Name,
|
|
64
|
-
level: 'TRACE',
|
|
65
|
-
duration: tDiff,
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
switch (context) {
|
|
69
|
-
case orm_1.QueryContext.Update:
|
|
70
|
-
case orm_1.QueryContext.Delete:
|
|
71
|
-
return {
|
|
72
|
-
RowsAffected: result.rowsAffected[0],
|
|
73
|
-
};
|
|
74
|
-
case orm_1.QueryContext.Insert:
|
|
75
|
-
return {
|
|
76
|
-
RowsAffected: result.rowsAffected[0],
|
|
77
|
-
LastInsertId: result.recordset[0].ID,
|
|
78
|
-
};
|
|
79
|
-
default:
|
|
80
|
-
return result.recordset;
|
|
81
|
-
}
|
|
48
|
+
// Check if we're inside a transaction context and use that request.
|
|
49
|
+
// The context comes from the base driver; only this driver's `_begin` populates it, so
|
|
50
|
+
// it must be narrowed from ITransactionContext to read `request`.
|
|
51
|
+
const txContext = this.TransactionStorage.getStore();
|
|
52
|
+
const req = txContext?.request ?? this._connectionPool.request();
|
|
53
|
+
let idx = 0;
|
|
54
|
+
let i = 0;
|
|
55
|
+
// No try/finally here any more: it only ever existed to bracket this driver's own
|
|
56
|
+
// timeStart/timeEnd logging, which master centralised into `Perf.measure('orm.query')`.
|
|
57
|
+
/**
|
|
58
|
+
* Brute force replacement ? for @parameters
|
|
59
|
+
* MSSQL driver requires named parameters in query string
|
|
60
|
+
*/
|
|
61
|
+
while ((idx = finalQuery.indexOf('?')) !== -1) {
|
|
62
|
+
finalQuery = finalQuery.substring(0, idx) + `@p${i}` + finalQuery.substring(idx + 1, finalQuery.length);
|
|
63
|
+
req.input(`p${i}`, params[i]);
|
|
64
|
+
i++;
|
|
82
65
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
66
|
+
const result = await req.query(finalQuery);
|
|
67
|
+
switch (context) {
|
|
68
|
+
case orm_1.QueryContext.Update:
|
|
69
|
+
case orm_1.QueryContext.Delete:
|
|
70
|
+
return {
|
|
71
|
+
RowsAffected: result.rowsAffected[0],
|
|
72
|
+
};
|
|
73
|
+
case orm_1.QueryContext.Insert:
|
|
74
|
+
return {
|
|
75
|
+
RowsAffected: result.rowsAffected[0],
|
|
76
|
+
// SCOPE_IDENTITY() path; MSSQL keeps no RETURNING rows here.
|
|
77
|
+
LastInsertId: result.recordset?.[0]?.ID ?? 0,
|
|
78
|
+
Returning: [],
|
|
79
|
+
};
|
|
80
|
+
default:
|
|
81
|
+
return result.recordset;
|
|
96
82
|
}
|
|
97
83
|
}
|
|
98
84
|
supportedFeatures() {
|
|
99
85
|
return {
|
|
100
86
|
events: true,
|
|
87
|
+
insertReturning: false,
|
|
88
|
+
// SCOPE_IDENTITY() reports the LAST identity generated in the scope, so a multi-row insert
|
|
89
|
+
// cannot be walked forwards from it. MSSQL opts out of the batch key backfill.
|
|
90
|
+
insertIdIsFirstOfBatch: false,
|
|
101
91
|
};
|
|
102
92
|
}
|
|
103
93
|
async ping() {
|
|
@@ -121,9 +111,10 @@ let MsSqlOrmDriver = class MsSqlOrmDriver extends orm_sql_1.SqlDriver {
|
|
|
121
111
|
cryptoCredentialsDetails: this.Options.Options?.CryptoCredentialsDetails ? this.Options.Options?.CryptoCredentialsDetails : {},
|
|
122
112
|
},
|
|
123
113
|
pool: {
|
|
124
|
-
max: this.
|
|
125
|
-
min:
|
|
126
|
-
idleTimeoutMillis:
|
|
114
|
+
max: this.resolvedPoolOptions().Max,
|
|
115
|
+
min: this.resolvedPoolOptions().Min,
|
|
116
|
+
idleTimeoutMillis: this.resolvedPoolOptions().IdleTimeout,
|
|
117
|
+
acquireTimeoutMillis: this.resolvedPoolOptions().AcquireTimeout,
|
|
127
118
|
},
|
|
128
119
|
}));
|
|
129
120
|
await this.executeOnDb(`USE ${this.Options.Database}`, [], orm_1.QueryContext.Schema);
|
|
@@ -197,42 +188,35 @@ let MsSqlOrmDriver = class MsSqlOrmDriver extends orm_sql_1.SqlDriver {
|
|
|
197
188
|
};
|
|
198
189
|
});
|
|
199
190
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
};
|
|
205
|
-
if (!queryOrCallback) {
|
|
206
|
-
return trx;
|
|
207
|
-
}
|
|
191
|
+
msSqlCtx(ctx) {
|
|
192
|
+
return ctx;
|
|
193
|
+
}
|
|
194
|
+
async _begin(options) {
|
|
208
195
|
const transaction = this._connectionPool.transaction();
|
|
209
|
-
await transaction.begin();
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
await transaction.rollback();
|
|
234
|
-
throw err;
|
|
235
|
-
}
|
|
196
|
+
await transaction.begin(options?.isolation ? MSSQL_ISOLATION_LEVELS[options.isolation] : undefined);
|
|
197
|
+
const ctx = { transaction, request: transaction.request(), depth: 0 };
|
|
198
|
+
return ctx;
|
|
199
|
+
}
|
|
200
|
+
async _commit(ctx) {
|
|
201
|
+
await this.msSqlCtx(ctx).transaction.commit();
|
|
202
|
+
}
|
|
203
|
+
async _rollback(ctx) {
|
|
204
|
+
await this.msSqlCtx(ctx).transaction.rollback();
|
|
205
|
+
}
|
|
206
|
+
// savepoint names cannot be bound parameters, so they are inlined with MSSQL's own
|
|
207
|
+
// bracket quoting rather than the backtick dialect the shared SQL layer uses
|
|
208
|
+
async _savepoint(ctx, name) {
|
|
209
|
+
await this.msSqlCtx(ctx).request.query(`SAVE TRANSACTION ${msSqlEscapeIdentifier(name)}`);
|
|
210
|
+
}
|
|
211
|
+
async _releaseSavepoint(_ctx, _name) {
|
|
212
|
+
// MSSQL has no RELEASE SAVEPOINT: a save point simply stops being reachable once the
|
|
213
|
+
// enclosing transaction commits. Nothing to do, but the contract requires the hook.
|
|
214
|
+
}
|
|
215
|
+
async _rollbackToSavepoint(ctx, name) {
|
|
216
|
+
await this.msSqlCtx(ctx).request.query(`ROLLBACK TRANSACTION ${msSqlEscapeIdentifier(name)}`);
|
|
217
|
+
}
|
|
218
|
+
async _dispose(_ctx) {
|
|
219
|
+
// no-op: `mssql` owns the pooling and reclaims the transaction's connection itself
|
|
236
220
|
}
|
|
237
221
|
};
|
|
238
222
|
exports.MsSqlOrmDriver = MsSqlOrmDriver;
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,eAAe,EAAgD,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAqD,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AACvR,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,2BAA2B,
|
|
1
|
+
{"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,eAAe,EAAgD,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAqD,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AACvR,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,2BAA2B,EAAoB,MAAM,kBAAkB,CAAC;AAGhO,qBACa,6BAA8B,SAAQ,2BAA2B;IACrE,OAAO;;;;CAiDf;AAED,qBACa,wBAAyB,SAAQ,sBAAsB;IAClE,SAAS,CAAC,WAAW,UAAS;gBAElB,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB;IAMvD,OAAO;;;;IAmBd,SAAS,CAAC,IAAI;CAGf;AAED,qBACa,wBAAyB,YAAW,mBAAmB;IACtD,SAAS,CAAC,OAAO,EAAE,uBAAuB;gBAAhC,OAAO,EAAE,uBAAuB;IAM/C,OAAO,IAAI,eAAe;CAgBlC;AAED,qBACa,kBAAmB,SAAQ,qBAAqB;IACpD,OAAO,IAAI,eAAe;CAiBlC;AAED,qBACa,oBAAqB,SAAQ,uBAAuB;IACxD,OAAO,IAAI,eAAe;CAclC;AAED,qBACa,uBAAwB,SAAQ,qBAAqB;IACzD,OAAO,IAAI,eAAe,EAAE;IAcnC,SAAS,CAAC,QAAQ;IAWlB,SAAS,CAAC,YAAY;IAMtB,SAAS,CAAC,MAAM;CAGjB;AAED,qBACa,wBAAyB,SAAQ,sBAAsB;IACtD,SAAS,CAAC,OAAO,EAAE,kBAAkB;gBAA3B,OAAO,EAAE,kBAAkB;CAMlD;AAED,qBACa,wBAAyB,SAAQ,sBAAsB;IAC3D,OAAO;;;;IAcd,SAAS,CAAC,IAAI;CAMf;AAED,qBAEa,uBAAwB,YAAW,kBAAkB;IACzD,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,MAAM;CAmBpD"}
|
package/lib/mjs/compilers.js
CHANGED
|
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import { Configuration } from '@spinajs/configuration';
|
|
11
11
|
import { Inject, NewInstance } from '@spinajs/di';
|
|
12
12
|
import { TableExistsQueryBuilder, ColumnQueryCompiler, ForeignKeyQueryCompiler, ColumnQueryBuilder, TableAliasCompiler, extractModelDescriptor, InsertQueryBuilder, OrmException } from '@spinajs/orm';
|
|
13
|
-
import { SqlColumnQueryCompiler, SqlDeleteQueryCompiler, SqlInsertQueryCompiler, SqlLimitQueryCompiler, SqlOrderByQueryCompiler, SqlTableQueryCompiler, SqlOnDuplicateQueryCompiler } from '@spinajs/orm-sql';
|
|
13
|
+
import { SqlColumnQueryCompiler, SqlDeleteQueryCompiler, SqlInsertQueryCompiler, SqlLimitQueryCompiler, SqlOrderByQueryCompiler, SqlTableQueryCompiler, SqlOnDuplicateQueryCompiler, escapeIdentifier } from '@spinajs/orm-sql';
|
|
14
14
|
import _ from 'lodash';
|
|
15
15
|
let MsSqlOnDuplicateQueryCompiler = class MsSqlOnDuplicateQueryCompiler extends SqlOnDuplicateQueryCompiler {
|
|
16
16
|
compile() {
|
|
@@ -50,7 +50,7 @@ let MsSqlOnDuplicateQueryCompiler = class MsSqlOnDuplicateQueryCompiler extends
|
|
|
50
50
|
USING (SELECT * FROM ${table} WHERE ${this._builder.getColumn().map((c) => {
|
|
51
51
|
return `${c} = ?`;
|
|
52
52
|
})}) as source
|
|
53
|
-
ON (target.${descriptor.PrimaryKey} = source.${descriptor.PrimaryKey})
|
|
53
|
+
ON (target.${descriptor.PrimaryKey[0]} = source.${descriptor.PrimaryKey[0]})
|
|
54
54
|
WHEN MATCHED
|
|
55
55
|
THEN UPDATE
|
|
56
56
|
SET ${columns}
|
|
@@ -148,7 +148,7 @@ let MsSqlOrderByCompiler = class MsSqlOrderByCompiler extends SqlOrderByQueryCom
|
|
|
148
148
|
let stmt = '';
|
|
149
149
|
const bindings = [];
|
|
150
150
|
if (sort) {
|
|
151
|
-
stmt = ` ORDER BY
|
|
151
|
+
stmt = ` ORDER BY ${escapeIdentifier(sort.column)} ${sort.order.toLowerCase() === 'asc' ? 'ASC' : 'DESC'}`;
|
|
152
152
|
}
|
|
153
153
|
return {
|
|
154
154
|
bindings,
|
|
@@ -234,14 +234,14 @@ let MsSqlTableAliasCompiler = class MsSqlTableAliasCompiler {
|
|
|
234
234
|
compile(builder, tbl) {
|
|
235
235
|
let table = '';
|
|
236
236
|
if (builder.Database) {
|
|
237
|
-
table +=
|
|
237
|
+
table += `${escapeIdentifier(builder.Database)}.`;
|
|
238
238
|
}
|
|
239
239
|
if (builder.Driver.Options.Options?.Schema) {
|
|
240
|
-
table +=
|
|
240
|
+
table += `${escapeIdentifier(builder.Driver.Options.Options?.Schema)}.`;
|
|
241
241
|
}
|
|
242
|
-
table +=
|
|
242
|
+
table += escapeIdentifier(tbl ? tbl : builder.Table);
|
|
243
243
|
if (builder.TableAlias) {
|
|
244
|
-
table += ` as
|
|
244
|
+
table += ` as ${escapeIdentifier(builder.TableAlias)}`;
|
|
245
245
|
}
|
|
246
246
|
return table;
|
|
247
247
|
}
|
package/lib/mjs/compilers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compilers.js","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAc,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAuB,uBAAuB,EAAmB,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,kBAAkB,EAA4C,sBAAsB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACvR,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"compilers.js","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"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"}
|