mysql2 3.4.3 → 3.4.5
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 +1 -1
- package/lib/commands/prepare.js +13 -1
- package/lib/connection.js +16 -7
- package/package.json +2 -1
- package/typings/mysql/lib/protocol/packets/ProcedurePacket.d.ts +18 -0
- package/typings/mysql/lib/protocol/packets/index.d.ts +2 -0
- package/typings/mysql/lib/protocol/sequences/ExecutableBase.d.ts +12 -6
- package/typings/mysql/lib/protocol/sequences/QueryableBase.d.ts +12 -6
- package/typings/mysql/lib/protocol/sequences/promise/ExecutableBase.d.ts +11 -6
- package/typings/mysql/lib/protocol/sequences/promise/QueryableBase.d.ts +11 -6
package/README.md
CHANGED
package/lib/commands/prepare.js
CHANGED
|
@@ -73,10 +73,19 @@ class Prepare extends Command {
|
|
|
73
73
|
return Prepare.prototype.readField;
|
|
74
74
|
}
|
|
75
75
|
return this.prepareDone(connection);
|
|
76
|
-
|
|
77
76
|
}
|
|
78
77
|
|
|
79
78
|
readParameter(packet, connection) {
|
|
79
|
+
// there might be scenarios when mysql server reports more parameters than
|
|
80
|
+
// are actually present in the array of parameter definitions.
|
|
81
|
+
// if EOF packet is received we switch to "read fields" state if there are
|
|
82
|
+
// any fields reported by the server, otherwise we finish the command.
|
|
83
|
+
if (packet.isEOF()) {
|
|
84
|
+
if (this.fieldCount > 0) {
|
|
85
|
+
return Prepare.prototype.readField;
|
|
86
|
+
}
|
|
87
|
+
return this.prepareDone(connection);
|
|
88
|
+
}
|
|
80
89
|
const def = new Packets.ColumnDefinition(packet, connection.clientEncoding);
|
|
81
90
|
this.parameterDefinitions.push(def);
|
|
82
91
|
if (this.parameterDefinitions.length === this.parameterCount) {
|
|
@@ -86,6 +95,9 @@ class Prepare extends Command {
|
|
|
86
95
|
}
|
|
87
96
|
|
|
88
97
|
readField(packet, connection) {
|
|
98
|
+
if (packet.isEOF()) {
|
|
99
|
+
return this.prepareDone(connection);
|
|
100
|
+
}
|
|
89
101
|
const def = new Packets.ColumnDefinition(packet, connection.clientEncoding);
|
|
90
102
|
this.fields.push(def);
|
|
91
103
|
if (this.fields.length === this.fieldCount) {
|
package/lib/connection.js
CHANGED
|
@@ -489,14 +489,23 @@ class Connection extends EventEmitter {
|
|
|
489
489
|
}
|
|
490
490
|
this._bumpSequenceId(packet.numPackets);
|
|
491
491
|
}
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
492
|
+
try {
|
|
493
|
+
if (this._fatalError) {
|
|
494
|
+
// skip remaining packets after client is in the error state
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
const done = this._command.execute(packet, this);
|
|
498
|
+
if (done) {
|
|
499
|
+
this._command = this._commands.shift();
|
|
500
|
+
if (this._command) {
|
|
501
|
+
this.sequenceId = 0;
|
|
502
|
+
this.compressedSequenceId = 0;
|
|
503
|
+
this.handlePacket();
|
|
504
|
+
}
|
|
499
505
|
}
|
|
506
|
+
} catch (err) {
|
|
507
|
+
this._handleFatalError(err);
|
|
508
|
+
this.stream.destroy();
|
|
500
509
|
}
|
|
501
510
|
}
|
|
502
511
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mysql2",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.5",
|
|
4
4
|
"description": "fast mysql driver. Implements core protocol, prepared statements, ssl and compression in native JS",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"directories": {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"lint:code": "eslint index.js promise.js index.d.ts promise.d.ts \"typings/**/*.ts\" \"lib/**/*.js\" \"test/**/*.{js,ts}\" \"benchmarks/**/*.js\"",
|
|
13
13
|
"lint:docs": "eslint Contributing.md README.md \"documentation/**/*.md\" \"examples/*.js\"",
|
|
14
14
|
"test": "node ./test/run.js",
|
|
15
|
+
"test:builtin-node-runner": "NODE_V8_COVERAGE=./coverage node --test --experimental-test-coverage test/builtin-runner",
|
|
15
16
|
"test:tsc-build": "cd \"test/tsc-build\" && npx tsc -p \"tsconfig.json\"",
|
|
16
17
|
"coverage-test": "c8 -r cobertura -r lcov -r text node ./test/run.js",
|
|
17
18
|
"benchmark": "node ./benchmarks/benchmark.js",
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { OkPacket } from './OkPacket.js';
|
|
2
|
+
import { ResultSetHeader } from './ResultSetHeader.js';
|
|
3
|
+
import { RowDataPacket } from './RowDataPacket.js';
|
|
4
|
+
|
|
5
|
+
declare type ProcedureCallPacket<
|
|
6
|
+
T = RowDataPacket[] | RowDataPacket[][] | ResultSetHeader
|
|
7
|
+
> = T extends RowDataPacket[]
|
|
8
|
+
? [...T, ResultSetHeader]
|
|
9
|
+
: T extends RowDataPacket[][]
|
|
10
|
+
? [...T, ResultSetHeader]
|
|
11
|
+
: T extends ResultSetHeader | OkPacket | OkPacket[]
|
|
12
|
+
? ResultSetHeader
|
|
13
|
+
:
|
|
14
|
+
| [...RowDataPacket[], ResultSetHeader]
|
|
15
|
+
| [...RowDataPacket[][], ResultSetHeader]
|
|
16
|
+
| ResultSetHeader;
|
|
17
|
+
|
|
18
|
+
export { ProcedureCallPacket };
|
|
@@ -2,6 +2,7 @@ import { OkPacket } from './OkPacket.js';
|
|
|
2
2
|
import { RowDataPacket } from './RowDataPacket.js';
|
|
3
3
|
import { FieldPacket } from './FieldPacket.js';
|
|
4
4
|
import { Field } from './Field.js';
|
|
5
|
+
import { ProcedureCallPacket } from './ProcedurePacket.js';
|
|
5
6
|
import { ResultSetHeader } from './ResultSetHeader.js';
|
|
6
7
|
import { OkPacketParams } from './params/OkPacketParams.js';
|
|
7
8
|
import { ErrorPacketParams } from './params/ErrorPacketParams.js';
|
|
@@ -11,6 +12,7 @@ export {
|
|
|
11
12
|
RowDataPacket,
|
|
12
13
|
FieldPacket,
|
|
13
14
|
Field,
|
|
15
|
+
ProcedureCallPacket,
|
|
14
16
|
ResultSetHeader,
|
|
15
17
|
OkPacketParams,
|
|
16
18
|
ErrorPacketParams,
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
FieldPacket,
|
|
4
4
|
RowDataPacket,
|
|
5
5
|
ResultSetHeader,
|
|
6
|
+
ProcedureCallPacket,
|
|
6
7
|
} from '../packets/index.js';
|
|
7
8
|
import {
|
|
8
9
|
Query,
|
|
@@ -10,6 +11,7 @@ import {
|
|
|
10
11
|
QueryOptions,
|
|
11
12
|
QueryableConstructor,
|
|
12
13
|
} from './Query.js';
|
|
14
|
+
|
|
13
15
|
export declare function ExecutableBase<T extends QueryableConstructor>(
|
|
14
16
|
Base?: T
|
|
15
17
|
): {
|
|
@@ -21,6 +23,7 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
|
|
|
21
23
|
| RowDataPacket[]
|
|
22
24
|
| RowDataPacket[][]
|
|
23
25
|
| OkPacket[]
|
|
26
|
+
| ProcedureCallPacket
|
|
24
27
|
>(
|
|
25
28
|
sql: string,
|
|
26
29
|
callback?:
|
|
@@ -28,44 +31,47 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
|
|
|
28
31
|
| undefined
|
|
29
32
|
): Query;
|
|
30
33
|
execute<
|
|
31
|
-
|
|
34
|
+
T extends
|
|
32
35
|
| OkPacket
|
|
33
36
|
| ResultSetHeader
|
|
34
37
|
| RowDataPacket[]
|
|
35
38
|
| RowDataPacket[][]
|
|
36
39
|
| OkPacket[]
|
|
40
|
+
| ProcedureCallPacket
|
|
37
41
|
>(
|
|
38
42
|
sql: string,
|
|
39
43
|
values: any,
|
|
40
44
|
callback?:
|
|
41
|
-
| ((err: QueryError | null, result:
|
|
45
|
+
| ((err: QueryError | null, result: T, fields: FieldPacket[]) => any)
|
|
42
46
|
| undefined
|
|
43
47
|
): Query;
|
|
44
48
|
execute<
|
|
45
|
-
|
|
49
|
+
T extends
|
|
46
50
|
| OkPacket
|
|
47
51
|
| ResultSetHeader
|
|
48
52
|
| RowDataPacket[]
|
|
49
53
|
| RowDataPacket[][]
|
|
50
54
|
| OkPacket[]
|
|
55
|
+
| ProcedureCallPacket
|
|
51
56
|
>(
|
|
52
57
|
options: QueryOptions,
|
|
53
58
|
callback?:
|
|
54
|
-
| ((err: QueryError | null, result:
|
|
59
|
+
| ((err: QueryError | null, result: T, fields?: FieldPacket[]) => any)
|
|
55
60
|
| undefined
|
|
56
61
|
): Query;
|
|
57
62
|
execute<
|
|
58
|
-
|
|
63
|
+
T extends
|
|
59
64
|
| OkPacket
|
|
60
65
|
| ResultSetHeader
|
|
61
66
|
| RowDataPacket[]
|
|
62
67
|
| RowDataPacket[][]
|
|
63
68
|
| OkPacket[]
|
|
69
|
+
| ProcedureCallPacket
|
|
64
70
|
>(
|
|
65
71
|
options: QueryOptions,
|
|
66
72
|
values: any,
|
|
67
73
|
callback?:
|
|
68
|
-
| ((err: QueryError | null, result:
|
|
74
|
+
| ((err: QueryError | null, result: T, fields: FieldPacket[]) => any)
|
|
69
75
|
| undefined
|
|
70
76
|
): Query;
|
|
71
77
|
};
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
FieldPacket,
|
|
4
4
|
RowDataPacket,
|
|
5
5
|
ResultSetHeader,
|
|
6
|
+
ProcedureCallPacket,
|
|
6
7
|
} from '../packets/index.js';
|
|
7
8
|
import {
|
|
8
9
|
Query,
|
|
@@ -10,6 +11,7 @@ import {
|
|
|
10
11
|
QueryOptions,
|
|
11
12
|
QueryableConstructor,
|
|
12
13
|
} from './Query.js';
|
|
14
|
+
|
|
13
15
|
export declare function QueryableBase<T extends QueryableConstructor>(
|
|
14
16
|
Base?: T
|
|
15
17
|
): {
|
|
@@ -21,6 +23,7 @@ export declare function QueryableBase<T extends QueryableConstructor>(
|
|
|
21
23
|
| RowDataPacket[]
|
|
22
24
|
| RowDataPacket[][]
|
|
23
25
|
| OkPacket[]
|
|
26
|
+
| ProcedureCallPacket
|
|
24
27
|
>(
|
|
25
28
|
sql: string,
|
|
26
29
|
callback?:
|
|
@@ -28,44 +31,47 @@ export declare function QueryableBase<T extends QueryableConstructor>(
|
|
|
28
31
|
| undefined
|
|
29
32
|
): Query;
|
|
30
33
|
query<
|
|
31
|
-
|
|
34
|
+
T extends
|
|
32
35
|
| OkPacket
|
|
33
36
|
| ResultSetHeader
|
|
34
37
|
| RowDataPacket[]
|
|
35
38
|
| RowDataPacket[][]
|
|
36
39
|
| OkPacket[]
|
|
40
|
+
| ProcedureCallPacket
|
|
37
41
|
>(
|
|
38
42
|
sql: string,
|
|
39
43
|
values: any,
|
|
40
44
|
callback?:
|
|
41
|
-
| ((err: QueryError | null, result:
|
|
45
|
+
| ((err: QueryError | null, result: T, fields: FieldPacket[]) => any)
|
|
42
46
|
| undefined
|
|
43
47
|
): Query;
|
|
44
48
|
query<
|
|
45
|
-
|
|
49
|
+
T extends
|
|
46
50
|
| OkPacket
|
|
47
51
|
| ResultSetHeader
|
|
48
52
|
| RowDataPacket[]
|
|
49
53
|
| RowDataPacket[][]
|
|
50
54
|
| OkPacket[]
|
|
55
|
+
| ProcedureCallPacket
|
|
51
56
|
>(
|
|
52
57
|
options: QueryOptions,
|
|
53
58
|
callback?:
|
|
54
|
-
| ((err: QueryError | null, result:
|
|
59
|
+
| ((err: QueryError | null, result: T, fields?: FieldPacket[]) => any)
|
|
55
60
|
| undefined
|
|
56
61
|
): Query;
|
|
57
62
|
query<
|
|
58
|
-
|
|
63
|
+
T extends
|
|
59
64
|
| OkPacket
|
|
60
65
|
| ResultSetHeader
|
|
61
66
|
| RowDataPacket[]
|
|
62
67
|
| RowDataPacket[][]
|
|
63
68
|
| OkPacket[]
|
|
69
|
+
| ProcedureCallPacket
|
|
64
70
|
>(
|
|
65
71
|
options: QueryOptions,
|
|
66
72
|
values: any,
|
|
67
73
|
callback?:
|
|
68
|
-
| ((err: QueryError | null, result:
|
|
74
|
+
| ((err: QueryError | null, result: T, fields: FieldPacket[]) => any)
|
|
69
75
|
| undefined
|
|
70
76
|
): Query;
|
|
71
77
|
};
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
FieldPacket,
|
|
4
4
|
RowDataPacket,
|
|
5
5
|
ResultSetHeader,
|
|
6
|
+
ProcedureCallPacket,
|
|
6
7
|
} from '../../packets/index.js';
|
|
7
8
|
import { QueryOptions, QueryableConstructor } from '../Query.js';
|
|
8
9
|
|
|
@@ -17,40 +18,44 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
|
|
|
17
18
|
| RowDataPacket[]
|
|
18
19
|
| RowDataPacket[][]
|
|
19
20
|
| OkPacket[]
|
|
21
|
+
| ProcedureCallPacket
|
|
20
22
|
>(
|
|
21
23
|
sql: string
|
|
22
24
|
): Promise<[T, FieldPacket[]]>;
|
|
23
25
|
execute<
|
|
24
|
-
|
|
26
|
+
T extends
|
|
25
27
|
| OkPacket
|
|
26
28
|
| ResultSetHeader
|
|
27
29
|
| RowDataPacket[]
|
|
28
30
|
| RowDataPacket[][]
|
|
29
31
|
| OkPacket[]
|
|
32
|
+
| ProcedureCallPacket
|
|
30
33
|
>(
|
|
31
34
|
sql: string,
|
|
32
35
|
values: any
|
|
33
|
-
): Promise<[
|
|
36
|
+
): Promise<[T, FieldPacket[]]>;
|
|
34
37
|
execute<
|
|
35
|
-
|
|
38
|
+
T extends
|
|
36
39
|
| OkPacket
|
|
37
40
|
| ResultSetHeader
|
|
38
41
|
| RowDataPacket[]
|
|
39
42
|
| RowDataPacket[][]
|
|
40
43
|
| OkPacket[]
|
|
44
|
+
| ProcedureCallPacket
|
|
41
45
|
>(
|
|
42
46
|
options: QueryOptions
|
|
43
|
-
): Promise<[
|
|
47
|
+
): Promise<[T, FieldPacket[]]>;
|
|
44
48
|
execute<
|
|
45
|
-
|
|
49
|
+
T extends
|
|
46
50
|
| OkPacket
|
|
47
51
|
| ResultSetHeader
|
|
48
52
|
| RowDataPacket[]
|
|
49
53
|
| RowDataPacket[][]
|
|
50
54
|
| OkPacket[]
|
|
55
|
+
| ProcedureCallPacket
|
|
51
56
|
>(
|
|
52
57
|
options: QueryOptions,
|
|
53
58
|
values: any
|
|
54
|
-
): Promise<[
|
|
59
|
+
): Promise<[T, FieldPacket[]]>;
|
|
55
60
|
};
|
|
56
61
|
} & T;
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
FieldPacket,
|
|
4
4
|
RowDataPacket,
|
|
5
5
|
ResultSetHeader,
|
|
6
|
+
ProcedureCallPacket,
|
|
6
7
|
} from '../../packets/index.js';
|
|
7
8
|
import { QueryOptions, QueryableConstructor } from '../Query.js';
|
|
8
9
|
|
|
@@ -17,40 +18,44 @@ export declare function QueryableBase<T extends QueryableConstructor>(
|
|
|
17
18
|
| RowDataPacket[]
|
|
18
19
|
| RowDataPacket[][]
|
|
19
20
|
| OkPacket[]
|
|
21
|
+
| ProcedureCallPacket
|
|
20
22
|
>(
|
|
21
23
|
sql: string
|
|
22
24
|
): Promise<[T, FieldPacket[]]>;
|
|
23
25
|
query<
|
|
24
|
-
|
|
26
|
+
T extends
|
|
25
27
|
| OkPacket
|
|
26
28
|
| ResultSetHeader
|
|
27
29
|
| RowDataPacket[]
|
|
28
30
|
| RowDataPacket[][]
|
|
29
31
|
| OkPacket[]
|
|
32
|
+
| ProcedureCallPacket
|
|
30
33
|
>(
|
|
31
34
|
sql: string,
|
|
32
35
|
values: any
|
|
33
|
-
): Promise<[
|
|
36
|
+
): Promise<[T, FieldPacket[]]>;
|
|
34
37
|
query<
|
|
35
|
-
|
|
38
|
+
T extends
|
|
36
39
|
| OkPacket
|
|
37
40
|
| ResultSetHeader
|
|
38
41
|
| RowDataPacket[]
|
|
39
42
|
| RowDataPacket[][]
|
|
40
43
|
| OkPacket[]
|
|
44
|
+
| ProcedureCallPacket
|
|
41
45
|
>(
|
|
42
46
|
options: QueryOptions
|
|
43
|
-
): Promise<[
|
|
47
|
+
): Promise<[T, FieldPacket[]]>;
|
|
44
48
|
query<
|
|
45
|
-
|
|
49
|
+
T extends
|
|
46
50
|
| OkPacket
|
|
47
51
|
| ResultSetHeader
|
|
48
52
|
| RowDataPacket[]
|
|
49
53
|
| RowDataPacket[][]
|
|
50
54
|
| OkPacket[]
|
|
55
|
+
| ProcedureCallPacket
|
|
51
56
|
>(
|
|
52
57
|
options: QueryOptions,
|
|
53
58
|
values: any
|
|
54
|
-
): Promise<[
|
|
59
|
+
): Promise<[T, FieldPacket[]]>;
|
|
55
60
|
};
|
|
56
61
|
} & T;
|