@spinajs/orm-mysql 2.0.481 → 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 +96 -4
- package/lib/cjs/index.d.ts +36 -7
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +228 -133
- package/lib/cjs/index.js.map +1 -1
- package/lib/mjs/index.d.ts +36 -7
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +230 -135
- 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 +17 -16
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -1,31 +1,60 @@
|
|
|
1
|
-
import { QueryContext, OrmDriver, IColumnDescriptor,
|
|
1
|
+
import { QueryContext, OrmDriver, IColumnDescriptor, ServerResponseMapper, ISupportedFeature, IsolationLevel, ITransactionContext, ITransactionOptions, IPoolMetrics } from '@spinajs/orm';
|
|
2
2
|
import { SqlDriver } from '@spinajs/orm-sql';
|
|
3
3
|
import * as mysql from 'mysql2';
|
|
4
4
|
import { PoolConnection } from 'mysql2';
|
|
5
5
|
import { Client as SSHClient } from 'ssh2';
|
|
6
|
-
|
|
7
|
-
export interface IMySqlTransactionContext {
|
|
6
|
+
export interface IMySqlTransactionContext extends ITransactionContext {
|
|
8
7
|
connection: PoolConnection;
|
|
9
8
|
}
|
|
10
9
|
export declare class MysqlServerResponseMapper extends ServerResponseMapper {
|
|
11
10
|
read(data: any): {
|
|
12
11
|
LastInsertId: any;
|
|
13
12
|
RowsAffected: any;
|
|
13
|
+
Returning: any[];
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
export declare class MySqlOrmDriver extends SqlDriver {
|
|
17
17
|
protected Pool: mysql.Pool;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
/**
|
|
19
|
+
* MySQL/InnoDB honours all four standard levels.
|
|
20
|
+
*/
|
|
21
|
+
readonly SupportedIsolationLevels: IsolationLevel[];
|
|
21
22
|
executeOnDb(stmt: string, params: any[], context: QueryContext): Promise<any>;
|
|
23
|
+
/**
|
|
24
|
+
* True when the error means the transport died rather than the statement being wrong.
|
|
25
|
+
*/
|
|
26
|
+
protected isRetryableError(err: unknown): boolean;
|
|
27
|
+
protected _executeOnDbOnce(stmt: string, params: any[], context: QueryContext): Promise<any>;
|
|
22
28
|
supportedFeatures(): ISupportedFeature;
|
|
23
29
|
resolve(): void;
|
|
30
|
+
/**
|
|
31
|
+
* mysql2 keeps its pool bookkeeping on the internal `_allConnections` / `_freeConnections` /
|
|
32
|
+
* `_connectionQueue` lists. They are not public API, so every read is guarded — a mysql2
|
|
33
|
+
* upgrade that renames them degrades to zeros rather than crashing the health check.
|
|
34
|
+
*/
|
|
35
|
+
poolMetrics(): IPoolMetrics;
|
|
24
36
|
ping(): Promise<boolean>;
|
|
25
37
|
connect(): Promise<OrmDriver>;
|
|
26
38
|
disconnect(): Promise<OrmDriver>;
|
|
27
39
|
tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
|
|
28
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Pulls the pooled connection out of a transaction context. The base class only ever hands
|
|
42
|
+
* us contexts this driver's own `_begin` produced, so the cast is safe.
|
|
43
|
+
*/
|
|
44
|
+
private txConnection;
|
|
45
|
+
/**
|
|
46
|
+
* Runs a statement on the transaction's own connection, bypassing the ambient-context lookup
|
|
47
|
+
* in `executeOnDb`. Transaction control statements must never land on a pooled connection
|
|
48
|
+
* other than their own.
|
|
49
|
+
*/
|
|
50
|
+
private runOnConnection;
|
|
51
|
+
protected _begin(options?: ITransactionOptions): Promise<ITransactionContext>;
|
|
52
|
+
protected _commit(ctx: ITransactionContext): Promise<void>;
|
|
53
|
+
protected _rollback(ctx: ITransactionContext): Promise<void>;
|
|
54
|
+
protected _savepoint(ctx: ITransactionContext, name: string): Promise<void>;
|
|
55
|
+
protected _releaseSavepoint(ctx: ITransactionContext, name: string): Promise<void>;
|
|
56
|
+
protected _rollbackToSavepoint(ctx: ITransactionContext, name: string): Promise<void>;
|
|
57
|
+
protected _dispose(ctx: ITransactionContext): Promise<void>;
|
|
29
58
|
}
|
|
30
59
|
export declare class MySqlSSHOrmDriver extends MySqlOrmDriver {
|
|
31
60
|
protected SshClient: SSHClient;
|
package/lib/mjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAqC,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAmB,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/O,OAAO,EAAoB,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAY,cAAc,EAAe,MAAM,QAAQ,CAAC;AAG/D,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAG3C,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,qBAAa,yBAA0B,SAAQ,oBAAoB;IAC1D,IAAI,CAAC,IAAI,EAAE,GAAG;;;mBAKA,GAAG,EAAE;;CAG3B;AAED,qBAEa,cAAe,SAAQ,SAAS;IAC3C,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;IAK3B;;OAEG;IACH,SAAgB,wBAAwB,EAAE,cAAc,EAAE,CAA6E;IAEhI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAMpF;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IA0BjD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IA6FrF,iBAAiB,IAAI,iBAAiB;IAQtC,OAAO;IAOd;;;;OAIG;IACI,WAAW,IAAI,YAAY;IAarB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAW9B,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IAmD7B,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAqB1B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA8DnF;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAMvB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkC7E,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1D,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlF,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIrE,QAAQ,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlE;AAED,qBAEa,iBAAkB,SAAQ,cAAc;IACnD,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAExB,OAAO;IAYD,UAAU;IAUhB,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;CA4CrC"}
|
package/lib/mjs/index.js
CHANGED
|
@@ -6,105 +6,174 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
/* eslint-disable promise/no-promise-in-callback */
|
|
8
8
|
import { Injectable, NewInstance } from '@spinajs/di';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
// No LogLevel import: master moved per-query timing out of every driver and into a single
|
|
10
|
+
// `Perf.measure('orm.query', ...)` around SqlDriver.execute, so duplicating it here would
|
|
11
|
+
// emit the same query twice. QueryBuilder / TransactionCallback / ITransaction are gone with
|
|
12
|
+
// the old `{ commit, rollback }` transaction shape this branch replaced. ConnectionState /
|
|
13
|
+
// IPoolMetrics are orm-infra's connection-resilience + pool-telemetry work.
|
|
14
|
+
import { QueryContext, TableExistsCompiler, OrmException, ServerResponseMapper, ConnectionState } from '@spinajs/orm';
|
|
15
|
+
import { escapeIdentifier, SqlDriver } from '@spinajs/orm-sql';
|
|
12
16
|
import * as mysql from 'mysql2';
|
|
13
17
|
import { MySqlTableExistsCompiler } from './compilers.js';
|
|
14
18
|
import { Client as SSHClient } from 'ssh2';
|
|
15
19
|
import fs from 'fs';
|
|
16
|
-
import { AsyncLocalStorage } from 'async_hooks';
|
|
17
20
|
export class MysqlServerResponseMapper extends ServerResponseMapper {
|
|
18
21
|
read(data) {
|
|
19
|
-
|
|
22
|
+
// MySQL has no RETURNING; the identity value is all it reports.
|
|
23
|
+
return {
|
|
24
|
+
LastInsertId: data?.LastInsertId ?? 0,
|
|
25
|
+
RowsAffected: data?.RowsAffected ?? 0,
|
|
26
|
+
Returning: [],
|
|
27
|
+
};
|
|
20
28
|
}
|
|
21
29
|
}
|
|
22
30
|
let MySqlOrmDriver = class MySqlOrmDriver extends SqlDriver {
|
|
23
31
|
constructor() {
|
|
24
32
|
super(...arguments);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
// `_executionId` went with the per-driver query timing master centralised.
|
|
34
|
+
// `TransactionStorage` is no longer declared here either — it moved up to OrmDriver so
|
|
35
|
+
// ambient-connection propagation is part of the contract rather than a MySQL detail.
|
|
36
|
+
/**
|
|
37
|
+
* MySQL/InnoDB honours all four standard levels.
|
|
38
|
+
*/
|
|
39
|
+
this.SupportedIsolationLevels = ['READ UNCOMMITTED', 'READ COMMITTED', 'REPEATABLE READ', 'SERIALIZABLE'];
|
|
31
40
|
}
|
|
32
41
|
executeOnDb(stmt, params, context) {
|
|
42
|
+
// Reads and writes are both retried: `withReconnect` only re-runs on transport failures,
|
|
43
|
+
// where the statement provably never reached the server.
|
|
44
|
+
return this.withReconnect(() => this._executeOnDbOnce(stmt, params, context));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* True when the error means the transport died rather than the statement being wrong.
|
|
48
|
+
*/
|
|
49
|
+
isRetryableError(err) {
|
|
50
|
+
// Inside a transaction the connection carried uncommitted state. Reconnecting and replaying
|
|
51
|
+
// one statement would silently apply it OUTSIDE the transaction, so the error must surface.
|
|
52
|
+
if (this.TransactionStorage.getStore()) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
if (super.isRetryableError(err)) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
// mysql2 marks connection-level failures fatal; a fatal error means the connection is gone
|
|
59
|
+
// regardless of which code came with it.
|
|
60
|
+
let current = err;
|
|
61
|
+
let depth = 0;
|
|
62
|
+
while (current && depth < 5) {
|
|
63
|
+
if (current.fatal === true) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
current = current.inner ?? current.cause;
|
|
67
|
+
depth++;
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
_executeOnDbOnce(stmt, params, context) {
|
|
33
72
|
const self = this;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
//
|
|
73
|
+
// Check if we're inside a transaction context and use that connection.
|
|
74
|
+
// The context comes from the base driver, so `connection` is typed loosely there; only
|
|
75
|
+
// this driver's `_begin` ever populates it, and it always puts a PoolConnection in.
|
|
37
76
|
const txContext = this.TransactionStorage.getStore();
|
|
38
|
-
const queryable = txContext?.connection ?? this.Pool;
|
|
39
77
|
return new Promise((resolve, reject) => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
78
|
+
const fail = (err) => reject(new OrmException(`Error executing orm command `, {
|
|
79
|
+
Host: self.Options.Host,
|
|
80
|
+
User: self.Options.User,
|
|
81
|
+
Name: self.Options.Name,
|
|
82
|
+
}, stmt, params, err));
|
|
83
|
+
const run = (queryable, done) => {
|
|
84
|
+
try {
|
|
85
|
+
queryable.query(stmt, params, function (err, results) {
|
|
86
|
+
done();
|
|
87
|
+
if (err) {
|
|
88
|
+
return fail(err);
|
|
89
|
+
}
|
|
90
|
+
switch (context) {
|
|
91
|
+
case QueryContext.Update:
|
|
92
|
+
case QueryContext.Delete:
|
|
93
|
+
resolve({
|
|
94
|
+
RowsAffected: results.affectedRows,
|
|
95
|
+
});
|
|
96
|
+
break;
|
|
97
|
+
case QueryContext.Insert:
|
|
98
|
+
case QueryContext.Upsert:
|
|
99
|
+
resolve({
|
|
100
|
+
RowsAffected: results.affectedRows,
|
|
101
|
+
LastInsertId: results.insertId,
|
|
102
|
+
Returning: [],
|
|
103
|
+
});
|
|
104
|
+
break;
|
|
105
|
+
default:
|
|
106
|
+
resolve(results);
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
47
110
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
RowsAffected: results.affectedRows,
|
|
53
|
-
});
|
|
54
|
-
break;
|
|
55
|
-
case QueryContext.Insert:
|
|
56
|
-
case QueryContext.Upsert:
|
|
57
|
-
resolve({
|
|
58
|
-
RowsAffected: results.affectedRows,
|
|
59
|
-
LastInsertId: results.insertId,
|
|
60
|
-
});
|
|
61
|
-
break;
|
|
62
|
-
default:
|
|
63
|
-
resolve(results);
|
|
64
|
-
break;
|
|
111
|
+
catch (err) {
|
|
112
|
+
// A synchronous throw would otherwise strand the connection outside the pool.
|
|
113
|
+
done();
|
|
114
|
+
fail(err);
|
|
65
115
|
}
|
|
116
|
+
};
|
|
117
|
+
if (txContext?.connection) {
|
|
118
|
+
// A transaction owns its connection for its whole lifetime — releasing it after one
|
|
119
|
+
// statement would hand the rest of the transaction to a different connection.
|
|
120
|
+
run(txContext.connection, () => undefined);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
// Acquiring is the part that queues when the pool is saturated, so it is the part worth
|
|
124
|
+
// timing. Taking the connection explicitly, instead of letting `Pool.query` do it out of
|
|
125
|
+
// sight, is what makes `orm_pool_acquire_seconds` a real number instead of always zero.
|
|
126
|
+
const acquireStart = process.hrtime.bigint();
|
|
127
|
+
this.Pool.getConnection((err, connection) => {
|
|
128
|
+
const seconds = Number(process.hrtime.bigint() - acquireStart) / 1e9;
|
|
129
|
+
this.observeAcquireSeconds(seconds);
|
|
130
|
+
if (err) {
|
|
131
|
+
fail(err);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
let released = false;
|
|
135
|
+
run(connection, () => {
|
|
136
|
+
if (released) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
released = true;
|
|
140
|
+
connection.release();
|
|
141
|
+
});
|
|
66
142
|
});
|
|
67
|
-
})
|
|
68
|
-
.then((val) => {
|
|
69
|
-
const tDiff = this.Log.timeEnd(`query-${tName}`);
|
|
70
|
-
void this.Log.write({
|
|
71
|
-
Level: LogLevel.Trace,
|
|
72
|
-
Variables: {
|
|
73
|
-
error: undefined,
|
|
74
|
-
message: `Executed: ${stmt}, bindings: ${params ? params.join(',') : 'none'}`,
|
|
75
|
-
logger: this.Log.Name,
|
|
76
|
-
level: 'TRACE',
|
|
77
|
-
duration: tDiff,
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
return val;
|
|
81
|
-
})
|
|
82
|
-
.catch((err) => {
|
|
83
|
-
const tDiff = this.Log.timeEnd(`query-${tName}`);
|
|
84
|
-
void this.Log.write({
|
|
85
|
-
Level: LogLevel.Error,
|
|
86
|
-
Variables: {
|
|
87
|
-
error: err,
|
|
88
|
-
message: `Failed: ${stmt}, bindings: ${params ? params.join(',') : 'none'}`,
|
|
89
|
-
logger: this.Log.Name,
|
|
90
|
-
level: 'Error',
|
|
91
|
-
duration: tDiff,
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
throw err;
|
|
95
143
|
});
|
|
96
144
|
}
|
|
97
145
|
supportedFeatures() {
|
|
98
|
-
|
|
146
|
+
// insertIdIsFirstOfBatch: a multi-row `INSERT ... VALUES` is a *simple insert* to InnoDB
|
|
147
|
+
// ( row count known before execution ), so it reserves one contiguous block of
|
|
148
|
+
// auto-increment values and LAST_INSERT_ID() reports the first of them. True even under
|
|
149
|
+
// innodb_autoinc_lock_mode = 2, the MySQL 8 default.
|
|
150
|
+
return { events: true, insertReturning: false, insertIdIsFirstOfBatch: true };
|
|
99
151
|
}
|
|
100
152
|
resolve() {
|
|
101
153
|
super.resolve();
|
|
102
154
|
this.Container.register(MySqlTableExistsCompiler).as(TableExistsCompiler);
|
|
103
155
|
this.Container.register(MysqlServerResponseMapper).as(ServerResponseMapper);
|
|
104
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* mysql2 keeps its pool bookkeeping on the internal `_allConnections` / `_freeConnections` /
|
|
159
|
+
* `_connectionQueue` lists. They are not public API, so every read is guarded — a mysql2
|
|
160
|
+
* upgrade that renames them degrades to zeros rather than crashing the health check.
|
|
161
|
+
*/
|
|
162
|
+
poolMetrics() {
|
|
163
|
+
const pool = this.Pool;
|
|
164
|
+
const size = pool?._allConnections?.length ?? 0;
|
|
165
|
+
const free = pool?._freeConnections?.length ?? 0;
|
|
166
|
+
return {
|
|
167
|
+
Size: size,
|
|
168
|
+
InUse: Math.max(size - free, 0),
|
|
169
|
+
Waiting: pool?._connectionQueue?.length ?? 0,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
105
172
|
async ping() {
|
|
106
173
|
try {
|
|
107
|
-
|
|
174
|
+
// deliberately bypasses `withReconnect` — a health probe that reconnects on its own
|
|
175
|
+
// would turn one dead connection into a reconnect storm on every tick.
|
|
176
|
+
await this._executeOnDbOnce('SELECT 1', [], QueryContext.Select);
|
|
108
177
|
return true;
|
|
109
178
|
}
|
|
110
179
|
catch {
|
|
@@ -114,6 +183,7 @@ let MySqlOrmDriver = class MySqlOrmDriver extends SqlDriver {
|
|
|
114
183
|
connect() {
|
|
115
184
|
return new Promise((resolve, reject) => {
|
|
116
185
|
try {
|
|
186
|
+
const pool = this.resolvedPoolOptions();
|
|
117
187
|
this.Pool = mysql.createPool({
|
|
118
188
|
host: this.Options.Host,
|
|
119
189
|
user: this.Options.User,
|
|
@@ -121,7 +191,14 @@ let MySqlOrmDriver = class MySqlOrmDriver extends SqlDriver {
|
|
|
121
191
|
port: this.Options.Port,
|
|
122
192
|
database: this.Options.Database,
|
|
123
193
|
waitForConnections: true,
|
|
124
|
-
connectionLimit:
|
|
194
|
+
connectionLimit: pool.Max,
|
|
195
|
+
// mysql2's `maxIdle` is a CEILING on idle connections, not a floor, and it never
|
|
196
|
+
// pre-warms the pool — so there is no direct equivalent of `Pool.Min`. Passing Min
|
|
197
|
+
// straight through would set maxIdle to 0 by default and make mysql2 destroy every
|
|
198
|
+
// released connection, i.e. disable pooling. Instead: an explicit Min becomes the
|
|
199
|
+
// number of connections we let sit idle; Min = 0 keeps mysql2's own default (Max).
|
|
200
|
+
maxIdle: pool.Min > 0 ? pool.Min : pool.Max,
|
|
201
|
+
idleTimeout: pool.IdleTimeout,
|
|
125
202
|
queueLimit: 0,
|
|
126
203
|
});
|
|
127
204
|
// Test the pool connection
|
|
@@ -135,6 +212,7 @@ let MySqlOrmDriver = class MySqlOrmDriver extends SqlDriver {
|
|
|
135
212
|
}
|
|
136
213
|
// Release the test connection
|
|
137
214
|
connection.release();
|
|
215
|
+
this.setState(ConnectionState.Connected);
|
|
138
216
|
resolve(this);
|
|
139
217
|
});
|
|
140
218
|
}
|
|
@@ -152,6 +230,8 @@ let MySqlOrmDriver = class MySqlOrmDriver extends SqlDriver {
|
|
|
152
230
|
});
|
|
153
231
|
}
|
|
154
232
|
disconnect() {
|
|
233
|
+
this.stopHealthCheck();
|
|
234
|
+
this.setState(ConnectionState.Disconnected);
|
|
155
235
|
return new Promise((resolve, reject) => {
|
|
156
236
|
if (!this.Pool) {
|
|
157
237
|
resolve(this);
|
|
@@ -169,21 +249,31 @@ let MySqlOrmDriver = class MySqlOrmDriver extends SqlDriver {
|
|
|
169
249
|
});
|
|
170
250
|
}
|
|
171
251
|
async tableInfo(name, schema) {
|
|
172
|
-
const
|
|
173
|
-
|
|
252
|
+
const dbSchema = schema ?? this.Options.Database;
|
|
253
|
+
if (!dbSchema) {
|
|
254
|
+
throw new OrmException(`Cannot read table info for '${name}': no schema/database configured for this connection ( pass a schema or set Options.Database )`);
|
|
255
|
+
}
|
|
256
|
+
// backtick-quote an identifier, escaping embedded backticks by doubling them
|
|
257
|
+
const escapeId = (id) => '`' + String(id).replace(/`/g, '``') + '`';
|
|
258
|
+
// ORDER BY ORDINAL_POSITION is not decoration. Without it MySQL is free to return the rows
|
|
259
|
+
// in any order — and does: the same table came back as (Code, TenantId) in one run and
|
|
260
|
+
// (TenantId, Code) in the next. Column order is part of what a table descriptor means, so
|
|
261
|
+
// it has to be the table's own order, not whatever the optimizer produced this time.
|
|
262
|
+
const tblInfo = (await this.executeOnDb(`SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=? AND TABLE_SCHEMA=? ORDER BY ORDINAL_POSITION`, [name, dbSchema], QueryContext.Select));
|
|
263
|
+
const isView = (await this.executeOnDb(`SHOW FULL TABLES FROM ${escapeId(dbSchema)} WHERE ${escapeId(`Tables_in_${dbSchema}`)}=?`, [name], QueryContext.Select));
|
|
174
264
|
let indexInfo = [];
|
|
175
265
|
if (!isView || isView.length === 0) {
|
|
176
|
-
throw new OrmException(`Table ${
|
|
266
|
+
throw new OrmException(`Table ${dbSchema}.${name} does not exist`);
|
|
177
267
|
}
|
|
178
268
|
if (!tblInfo || !Array.isArray(tblInfo) || tblInfo.length === 0) {
|
|
179
|
-
this.Log.trace(`Table ${
|
|
269
|
+
this.Log.trace(`Table ${dbSchema}.${name} does not have any columns.`);
|
|
180
270
|
return null;
|
|
181
271
|
}
|
|
182
272
|
if (isView && isView[0].Table_type === 'VIEW') {
|
|
183
|
-
this.Log.trace(`Table ${
|
|
273
|
+
this.Log.trace(`Table ${dbSchema}.${name} is a VIEW and dont have indexes set.`);
|
|
184
274
|
}
|
|
185
275
|
else {
|
|
186
|
-
indexInfo = (await this.executeOnDb(`SHOW INDEXES FROM ${name}`, [], QueryContext.Select));
|
|
276
|
+
indexInfo = (await this.executeOnDb(`SHOW INDEXES FROM ${escapeId(name)}`, [], QueryContext.Select));
|
|
187
277
|
}
|
|
188
278
|
return tblInfo.map((r) => {
|
|
189
279
|
const isPrimary = indexInfo.find((c) => c.Key_name === 'PRIMARY' && c.Column_name === r.COLUMN_NAME) !== undefined;
|
|
@@ -211,75 +301,76 @@ let MySqlOrmDriver = class MySqlOrmDriver extends SqlDriver {
|
|
|
211
301
|
};
|
|
212
302
|
});
|
|
213
303
|
}
|
|
214
|
-
|
|
304
|
+
/**
|
|
305
|
+
* Pulls the pooled connection out of a transaction context. The base class only ever hands
|
|
306
|
+
* us contexts this driver's own `_begin` produced, so the cast is safe.
|
|
307
|
+
*/
|
|
308
|
+
txConnection(ctx) {
|
|
309
|
+
return ctx.connection;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Runs a statement on the transaction's own connection, bypassing the ambient-context lookup
|
|
313
|
+
* in `executeOnDb`. Transaction control statements must never land on a pooled connection
|
|
314
|
+
* other than their own.
|
|
315
|
+
*/
|
|
316
|
+
runOnConnection(connection, stmt) {
|
|
317
|
+
return new Promise((resolve, reject) => {
|
|
318
|
+
connection.query(stmt, (err) => (err ? reject(err) : resolve()));
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
_begin(options) {
|
|
215
322
|
return new Promise((resolve, reject) => {
|
|
216
|
-
const trx = {
|
|
217
|
-
commit: () => Promise.resolve(),
|
|
218
|
-
rollback: () => Promise.resolve(),
|
|
219
|
-
};
|
|
220
|
-
if (!queryOrCallback) {
|
|
221
|
-
resolve(trx);
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
323
|
this.Pool.getConnection((err, connection) => {
|
|
225
324
|
if (err) {
|
|
226
325
|
reject(err);
|
|
227
326
|
return;
|
|
228
327
|
}
|
|
229
|
-
|
|
230
|
-
|
|
328
|
+
const begin = () => {
|
|
329
|
+
connection.beginTransaction((err) => {
|
|
330
|
+
if (err) {
|
|
331
|
+
connection.release();
|
|
332
|
+
reject(err);
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
resolve({ connection, depth: 0 });
|
|
336
|
+
});
|
|
337
|
+
};
|
|
338
|
+
if (options?.isolation) {
|
|
339
|
+
// isolation levels are a fixed, validated enum — never caller-supplied free text
|
|
340
|
+
this.runOnConnection(connection, `SET TRANSACTION ISOLATION LEVEL ${options.isolation}`).then(begin, (err) => {
|
|
231
341
|
connection.release();
|
|
232
342
|
reject(err);
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
await this.TransactionStorage.run({ connection }, async () => {
|
|
238
|
-
if (Array.isArray(queryOrCallback)) {
|
|
239
|
-
for (const q of queryOrCallback) {
|
|
240
|
-
await q;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
await queryOrCallback(this);
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
resolve({
|
|
248
|
-
commit: async () => {
|
|
249
|
-
return new Promise((res, rej) => {
|
|
250
|
-
connection.commit((err) => {
|
|
251
|
-
if (err) {
|
|
252
|
-
connection.rollback(() => {
|
|
253
|
-
connection.release();
|
|
254
|
-
rej(err);
|
|
255
|
-
});
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
connection.release();
|
|
259
|
-
res();
|
|
260
|
-
});
|
|
261
|
-
});
|
|
262
|
-
},
|
|
263
|
-
rollback: async () => {
|
|
264
|
-
return new Promise((res) => {
|
|
265
|
-
connection.rollback(() => {
|
|
266
|
-
connection.release();
|
|
267
|
-
res();
|
|
268
|
-
});
|
|
269
|
-
});
|
|
270
|
-
},
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
catch (ex) {
|
|
274
|
-
connection.rollback(() => {
|
|
275
|
-
connection.release();
|
|
276
|
-
reject(ex);
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
});
|
|
343
|
+
});
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
begin();
|
|
280
347
|
});
|
|
281
348
|
});
|
|
282
349
|
}
|
|
350
|
+
_commit(ctx) {
|
|
351
|
+
return new Promise((resolve, reject) => {
|
|
352
|
+
this.txConnection(ctx).commit((err) => (err ? reject(err) : resolve()));
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
_rollback(ctx) {
|
|
356
|
+
return new Promise((resolve, reject) => {
|
|
357
|
+
this.txConnection(ctx).rollback((err) => (err ? reject(err) : resolve()));
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
// savepoint names cannot be bound parameters, so they are inlined through the identifier
|
|
361
|
+
// escaper rather than passed as `?`
|
|
362
|
+
_savepoint(ctx, name) {
|
|
363
|
+
return this.runOnConnection(this.txConnection(ctx), `SAVEPOINT ${escapeIdentifier(name)}`);
|
|
364
|
+
}
|
|
365
|
+
_releaseSavepoint(ctx, name) {
|
|
366
|
+
return this.runOnConnection(this.txConnection(ctx), `RELEASE SAVEPOINT ${escapeIdentifier(name)}`);
|
|
367
|
+
}
|
|
368
|
+
_rollbackToSavepoint(ctx, name) {
|
|
369
|
+
return this.runOnConnection(this.txConnection(ctx), `ROLLBACK TO SAVEPOINT ${escapeIdentifier(name)}`);
|
|
370
|
+
}
|
|
371
|
+
async _dispose(ctx) {
|
|
372
|
+
this.txConnection(ctx).release();
|
|
373
|
+
}
|
|
283
374
|
};
|
|
284
375
|
MySqlOrmDriver = __decorate([
|
|
285
376
|
Injectable('orm-driver-mysql'),
|
|
@@ -312,6 +403,7 @@ let MySqlSSHOrmDriver = class MySqlSSHOrmDriver extends MySqlOrmDriver {
|
|
|
312
403
|
reject(err);
|
|
313
404
|
return;
|
|
314
405
|
}
|
|
406
|
+
const pool = this.resolvedPoolOptions();
|
|
315
407
|
this.Pool = mysql.createPool({
|
|
316
408
|
host: 'localhost', // we tunnel via ssh so we use localhost
|
|
317
409
|
user: this.Options.User,
|
|
@@ -319,7 +411,10 @@ let MySqlSSHOrmDriver = class MySqlSSHOrmDriver extends MySqlOrmDriver {
|
|
|
319
411
|
port: this.Options.Port,
|
|
320
412
|
database: this.Options.Database,
|
|
321
413
|
waitForConnections: true,
|
|
322
|
-
connectionLimit:
|
|
414
|
+
connectionLimit: pool.Max,
|
|
415
|
+
// see MySqlOrmDriver.connect — `maxIdle` is a ceiling, so Min = 0 must not reach it
|
|
416
|
+
maxIdle: pool.Min > 0 ? pool.Min : pool.Max,
|
|
417
|
+
idleTimeout: pool.IdleTimeout,
|
|
323
418
|
queueLimit: 0,
|
|
324
419
|
stream: stream,
|
|
325
420
|
});
|