tedious 18.6.2 → 19.0.1
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/all-headers.js +1 -1
- package/lib/all-headers.js.map +1 -1
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +1 -1
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js.map +1 -1
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +2 -2
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js.map +1 -1
- package/lib/always-encrypted/cek-entry.js +1 -1
- package/lib/always-encrypted/cek-entry.js.map +1 -1
- package/lib/always-encrypted/get-parameter-encryption-metadata.js +2 -2
- package/lib/always-encrypted/get-parameter-encryption-metadata.js.map +1 -1
- package/lib/always-encrypted/key-crypto.js +1 -1
- package/lib/always-encrypted/key-crypto.js.map +1 -1
- package/lib/always-encrypted/keystore-provider-azure-key-vault.js +1 -1
- package/lib/always-encrypted/keystore-provider-azure-key-vault.js.map +1 -1
- package/lib/always-encrypted/symmetric-key-cache.js +2 -2
- package/lib/always-encrypted/symmetric-key-cache.js.map +1 -1
- package/lib/always-encrypted/symmetric-key.js +1 -1
- package/lib/always-encrypted/symmetric-key.js.map +1 -1
- package/lib/always-encrypted/types.js +1 -1
- package/lib/always-encrypted/types.js.map +1 -1
- package/lib/always-encrypted/utils.js +1 -1
- package/lib/always-encrypted/utils.js.map +1 -1
- package/lib/bulk-load-payload.js +1 -1
- package/lib/bulk-load-payload.js.map +1 -1
- package/lib/bulk-load.js +2 -2
- package/lib/bulk-load.js.map +1 -1
- package/lib/collation.js +1 -1
- package/lib/collation.js.map +1 -1
- package/lib/connection.d.ts +44 -50
- package/lib/connection.js +579 -580
- package/lib/connection.js.map +1 -1
- package/lib/connector.js +10 -18
- package/lib/connector.js.map +1 -1
- package/lib/data-type.js +2 -2
- package/lib/data-type.js.map +1 -1
- package/lib/data-types/bigint.js +2 -2
- package/lib/data-types/bigint.js.map +1 -1
- package/lib/data-types/binary.js +1 -1
- package/lib/data-types/binary.js.map +1 -1
- package/lib/data-types/bit.js +2 -2
- package/lib/data-types/bit.js.map +1 -1
- package/lib/data-types/bitn.js +1 -1
- package/lib/data-types/bitn.js.map +1 -1
- package/lib/data-types/char.js +2 -2
- package/lib/data-types/char.js.map +1 -1
- package/lib/data-types/date.js +1 -1
- package/lib/data-types/date.js.map +1 -1
- package/lib/data-types/datetime.js +2 -2
- package/lib/data-types/datetime.js.map +1 -1
- package/lib/data-types/datetime2.js +2 -2
- package/lib/data-types/datetime2.js.map +1 -1
- package/lib/data-types/datetimen.js +1 -1
- package/lib/data-types/datetimen.js.map +1 -1
- package/lib/data-types/datetimeoffset.js +2 -2
- package/lib/data-types/datetimeoffset.js.map +1 -1
- package/lib/data-types/decimal.js +2 -2
- package/lib/data-types/decimal.js.map +1 -1
- package/lib/data-types/decimaln.js +1 -1
- package/lib/data-types/decimaln.js.map +1 -1
- package/lib/data-types/float.js +2 -2
- package/lib/data-types/float.js.map +1 -1
- package/lib/data-types/floatn.js +1 -1
- package/lib/data-types/floatn.js.map +1 -1
- package/lib/data-types/image.js +1 -1
- package/lib/data-types/image.js.map +1 -1
- package/lib/data-types/int.js +2 -2
- package/lib/data-types/int.js.map +1 -1
- package/lib/data-types/intn.js +1 -1
- package/lib/data-types/intn.js.map +1 -1
- package/lib/data-types/money.js +2 -2
- package/lib/data-types/money.js.map +1 -1
- package/lib/data-types/moneyn.js +1 -1
- package/lib/data-types/moneyn.js.map +1 -1
- package/lib/data-types/nchar.js +1 -1
- package/lib/data-types/nchar.js.map +1 -1
- package/lib/data-types/ntext.js +1 -1
- package/lib/data-types/ntext.js.map +1 -1
- package/lib/data-types/null.js +1 -1
- package/lib/data-types/null.js.map +1 -1
- package/lib/data-types/numeric.js +2 -2
- package/lib/data-types/numeric.js.map +1 -1
- package/lib/data-types/numericn.js +1 -1
- package/lib/data-types/numericn.js.map +1 -1
- package/lib/data-types/nvarchar.js +1 -1
- package/lib/data-types/nvarchar.js.map +1 -1
- package/lib/data-types/real.js +2 -2
- package/lib/data-types/real.js.map +1 -1
- package/lib/data-types/smalldatetime.js +2 -2
- package/lib/data-types/smalldatetime.js.map +1 -1
- package/lib/data-types/smallint.js +2 -2
- package/lib/data-types/smallint.js.map +1 -1
- package/lib/data-types/smallmoney.js +2 -2
- package/lib/data-types/smallmoney.js.map +1 -1
- package/lib/data-types/sql-variant.js +1 -1
- package/lib/data-types/sql-variant.js.map +1 -1
- package/lib/data-types/text.js +2 -2
- package/lib/data-types/text.js.map +1 -1
- package/lib/data-types/time.js +2 -2
- package/lib/data-types/time.js.map +1 -1
- package/lib/data-types/tinyint.js +2 -2
- package/lib/data-types/tinyint.js.map +1 -1
- package/lib/data-types/tvp.js +2 -2
- package/lib/data-types/tvp.js.map +1 -1
- package/lib/data-types/udt.js +1 -1
- package/lib/data-types/udt.js.map +1 -1
- package/lib/data-types/uniqueidentifier.js +1 -1
- package/lib/data-types/uniqueidentifier.js.map +1 -1
- package/lib/data-types/varbinary.js +1 -1
- package/lib/data-types/varbinary.js.map +1 -1
- package/lib/data-types/varchar.js +2 -2
- package/lib/data-types/varchar.js.map +1 -1
- package/lib/data-types/xml.js +1 -1
- package/lib/data-types/xml.js.map +1 -1
- package/lib/debug.js +2 -2
- package/lib/debug.js.map +1 -1
- package/lib/errors.js +1 -1
- package/lib/errors.js.map +1 -1
- package/lib/guid-parser.js +1 -1
- package/lib/guid-parser.js.map +1 -1
- package/lib/incoming-message-stream.js +2 -2
- package/lib/incoming-message-stream.js.map +1 -1
- package/lib/instance-lookup.js +7 -12
- package/lib/instance-lookup.js.map +1 -1
- package/lib/library.js +1 -1
- package/lib/library.js.map +1 -1
- package/lib/login7-payload.js +1 -1
- package/lib/login7-payload.js.map +1 -1
- package/lib/message-io.js +3 -3
- package/lib/message-io.js.map +1 -1
- package/lib/message.js +1 -1
- package/lib/message.js.map +1 -1
- package/lib/metadata-parser.js +1 -1
- package/lib/metadata-parser.js.map +1 -1
- package/lib/ntlm-payload.js +3 -3
- package/lib/ntlm-payload.js.map +1 -1
- package/lib/ntlm.js +1 -1
- package/lib/ntlm.js.map +1 -1
- package/lib/outgoing-message-stream.js +2 -2
- package/lib/outgoing-message-stream.js.map +1 -1
- package/lib/packet.js +1 -1
- package/lib/packet.js.map +1 -1
- package/lib/prelogin-payload.js +2 -2
- package/lib/prelogin-payload.js.map +1 -1
- package/lib/request.js +1 -1
- package/lib/request.js.map +1 -1
- package/lib/rpcrequest-payload.js +2 -2
- package/lib/rpcrequest-payload.js.map +1 -1
- package/lib/sender.js +6 -11
- package/lib/sender.js.map +1 -1
- package/lib/special-stored-procedure.js +1 -1
- package/lib/special-stored-procedure.js.map +1 -1
- package/lib/sqlbatch-payload.js +2 -2
- package/lib/sqlbatch-payload.js.map +1 -1
- package/lib/tds-versions.js +1 -1
- package/lib/tds-versions.js.map +1 -1
- package/lib/tedious.js +2 -2
- package/lib/tedious.js.map +1 -1
- package/lib/token/colmetadata-token-parser.js +1 -1
- package/lib/token/colmetadata-token-parser.js.map +1 -1
- package/lib/token/done-token-parser.js +1 -1
- package/lib/token/done-token-parser.js.map +1 -1
- package/lib/token/env-change-token-parser.js +1 -1
- package/lib/token/env-change-token-parser.js.map +1 -1
- package/lib/token/feature-ext-ack-parser.js +1 -1
- package/lib/token/feature-ext-ack-parser.js.map +1 -1
- package/lib/token/fedauth-info-parser.js +1 -1
- package/lib/token/fedauth-info-parser.js.map +1 -1
- package/lib/token/handler.js +2 -2
- package/lib/token/handler.js.map +1 -1
- package/lib/token/helpers.js +1 -1
- package/lib/token/helpers.js.map +1 -1
- package/lib/token/infoerror-token-parser.js +1 -1
- package/lib/token/infoerror-token-parser.js.map +1 -1
- package/lib/token/loginack-token-parser.js +1 -1
- package/lib/token/loginack-token-parser.js.map +1 -1
- package/lib/token/nbcrow-token-parser.js +2 -2
- package/lib/token/nbcrow-token-parser.js.map +1 -1
- package/lib/token/order-token-parser.js +1 -1
- package/lib/token/order-token-parser.js.map +1 -1
- package/lib/token/returnstatus-token-parser.js +1 -1
- package/lib/token/returnstatus-token-parser.js.map +1 -1
- package/lib/token/returnvalue-token-parser.js +2 -2
- package/lib/token/returnvalue-token-parser.js.map +1 -1
- package/lib/token/row-token-parser.js +2 -2
- package/lib/token/row-token-parser.js.map +1 -1
- package/lib/token/sspi-token-parser.js +1 -1
- package/lib/token/sspi-token-parser.js.map +1 -1
- package/lib/token/stream-parser.js +2 -2
- package/lib/token/stream-parser.js.map +1 -1
- package/lib/token/token-stream-parser.js +2 -2
- package/lib/token/token-stream-parser.js.map +1 -1
- package/lib/token/token.js +1 -1
- package/lib/token/token.js.map +1 -1
- package/lib/tracking-buffer/writable-tracking-buffer.js +1 -1
- package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -1
- package/lib/transaction.js +2 -2
- package/lib/transaction.js.map +1 -1
- package/lib/transient-error-lookup.js +1 -1
- package/lib/transient-error-lookup.js.map +1 -1
- package/lib/value-parser.js +2 -2
- package/lib/value-parser.js.map +1 -1
- package/package.json +19 -20
- package/benchmarks/README.md +0 -12
- package/benchmarks/bulk-load/iterable.js +0 -61
- package/benchmarks/common.js +0 -287
- package/benchmarks/connection/open.js +0 -26
- package/benchmarks/package-lock.json +0 -21173
- package/benchmarks/package.json +0 -11
- package/benchmarks/query/call-tvp.js +0 -105
- package/benchmarks/query/insert-varbinary.js +0 -46
- package/benchmarks/query/select-many-rows.js +0 -63
- package/benchmarks/query/select-nvarchar.js +0 -50
- package/benchmarks/query/select-varbinary.js +0 -50
- package/benchmarks/request/rpcrequest-payload-tvp.js +0 -45
- package/benchmarks/request/rpcrequest-payload-varbinary.js +0 -37
- package/benchmarks/token-parser/colmetadata-token.js +0 -27
- package/benchmarks/token-parser/done-token.js +0 -28
- package/benchmarks/token-parser/simple-tokens.js +0 -363
- package/lib/errors/abort-error.d.ts +0 -4
- package/lib/errors/abort-error.js +0 -15
- package/lib/errors/abort-error.js.map +0 -1
- package/lib/errors/timeout-error.d.ts +0 -4
- package/lib/errors/timeout-error.js +0 -15
- package/lib/errors/timeout-error.js.map +0 -1
- package/lib/utils/with-timeout.d.ts +0 -7
- package/lib/utils/with-timeout.js +0 -36
- package/lib/utils/with-timeout.js.map +0 -1
package/benchmarks/package.json
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "tedious-benchmarks",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "This folder contains a collection of benchmarks for `tedious`.",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
-
},
|
|
8
|
-
"dependencies": {
|
|
9
|
-
"tedious": "file:.."
|
|
10
|
-
}
|
|
11
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
const { createBenchmark, createConnection } = require('../common');
|
|
2
|
-
|
|
3
|
-
const { Request, TYPES } = require('tedious');
|
|
4
|
-
|
|
5
|
-
const bench = createBenchmark(main, {
|
|
6
|
-
n: [10, 100]
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
function main({ n }) {
|
|
10
|
-
createConnection(function(connection) {
|
|
11
|
-
const request = new Request(`
|
|
12
|
-
USE tempdb;
|
|
13
|
-
|
|
14
|
-
DROP TYPE IF EXISTS TediousTestType;
|
|
15
|
-
|
|
16
|
-
CREATE TYPE TediousTestType AS TABLE (
|
|
17
|
-
FileId uniqueidentifier,
|
|
18
|
-
FileNumber bigint,
|
|
19
|
-
FileVersion varchar(20),
|
|
20
|
-
FileCommitID varchar(40),
|
|
21
|
-
FileModel nvarchar(max)
|
|
22
|
-
);
|
|
23
|
-
`, (err) => {
|
|
24
|
-
if (err) {
|
|
25
|
-
throw err;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const request = new Request(`
|
|
29
|
-
CREATE PROCEDURE #__tediousTvpTest @tvp TediousTestType readonly AS BEGIN select COUNT(*) from @tvp END
|
|
30
|
-
`, (err) => {
|
|
31
|
-
if (err) {
|
|
32
|
-
throw err;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const tvp = {
|
|
36
|
-
columns: [
|
|
37
|
-
{
|
|
38
|
-
name: 'FileId',
|
|
39
|
-
type: TYPES.UniqueIdentifier
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: 'FileNumber',
|
|
43
|
-
type: TYPES.BigInt
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
name: 'FileVersion',
|
|
47
|
-
type: TYPES.VarChar,
|
|
48
|
-
length: 20,
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: 'FileCommitID',
|
|
52
|
-
type: TYPES.VarChar,
|
|
53
|
-
length: 40,
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
name: 'FileModel',
|
|
57
|
-
type: TYPES.NVarChar,
|
|
58
|
-
length: Infinity
|
|
59
|
-
}
|
|
60
|
-
],
|
|
61
|
-
rows: []
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
for (let i = 0; i < 500; i++) {
|
|
65
|
-
tvp.rows.push([
|
|
66
|
-
'6F9619FF-8B86-D011-B42D-00C04FC964FF',
|
|
67
|
-
1,
|
|
68
|
-
'12345',
|
|
69
|
-
'6b8bd41619d843b35b13478bb8aa88ea67039a05',
|
|
70
|
-
new Array(5000).join('x')
|
|
71
|
-
]);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
let i = 0;
|
|
75
|
-
bench.start();
|
|
76
|
-
|
|
77
|
-
(function cb() {
|
|
78
|
-
const request = new Request('#__tediousTvpTest', (err) => {
|
|
79
|
-
if (err) {
|
|
80
|
-
throw err;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (i++ === n) {
|
|
84
|
-
bench.end(n);
|
|
85
|
-
|
|
86
|
-
connection.close();
|
|
87
|
-
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
cb();
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
request.addParameter('tvp', TYPES.TVP, tvp);
|
|
95
|
-
|
|
96
|
-
connection.callProcedure(request);
|
|
97
|
-
})();
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
connection.execSqlBatch(request);
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
connection.execSqlBatch(request);
|
|
104
|
-
});
|
|
105
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
const { createBenchmark, createConnection } = require('../common');
|
|
2
|
-
|
|
3
|
-
const { Request, TYPES } = require('tedious');
|
|
4
|
-
|
|
5
|
-
const bench = createBenchmark(main, {
|
|
6
|
-
n: [10, 100],
|
|
7
|
-
size: [
|
|
8
|
-
10,
|
|
9
|
-
1024,
|
|
10
|
-
1024 * 1024,
|
|
11
|
-
10 * 1024 * 1024
|
|
12
|
-
]
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
function main({ n, size }) {
|
|
16
|
-
createConnection(function(connection) {
|
|
17
|
-
const buf = Buffer.alloc(size);
|
|
18
|
-
buf.fill('x');
|
|
19
|
-
|
|
20
|
-
let i = 0;
|
|
21
|
-
|
|
22
|
-
bench.start();
|
|
23
|
-
|
|
24
|
-
(function cb() {
|
|
25
|
-
const request = new Request('SELECT DATALENGTH(@value)', (err) => {
|
|
26
|
-
if (err) {
|
|
27
|
-
throw err;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (i++ === n) {
|
|
31
|
-
bench.end(n);
|
|
32
|
-
|
|
33
|
-
connection.close();
|
|
34
|
-
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
cb();
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
request.addParameter('value', TYPES.VarBinary, buf);
|
|
42
|
-
|
|
43
|
-
connection.execSql(request);
|
|
44
|
-
})();
|
|
45
|
-
});
|
|
46
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
const { createBenchmark, createConnection } = require('../common');
|
|
2
|
-
|
|
3
|
-
const { Request, TYPES } = require('tedious');
|
|
4
|
-
|
|
5
|
-
const bench = createBenchmark(main, {
|
|
6
|
-
n: [10, 100, 1000],
|
|
7
|
-
size: [10, 100, 1000, 10000]
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
function main({ n, size }) {
|
|
11
|
-
createConnection(function(connection) {
|
|
12
|
-
const request = new Request('CREATE TABLE #benchmark ([id] int IDENTITY(1,1), [name] nvarchar(100), [description] nvarchar(max))', (err) => {
|
|
13
|
-
if (err) {
|
|
14
|
-
throw err;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
(function insertNext(num, done) {
|
|
18
|
-
var request = new Request('INSERT INTO #benchmark ([name], [description]) VALUES (@name, @description)', (err) => {
|
|
19
|
-
if (err) {
|
|
20
|
-
throw err;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (num === size) {
|
|
24
|
-
done();
|
|
25
|
-
} else {
|
|
26
|
-
insertNext(num + 1, done);
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
request.addParameter('name', TYPES.NVarChar, 'Row ' + n);
|
|
31
|
-
request.addParameter('description', TYPES.NVarChar, 'Example Test Description for Row ' + n);
|
|
32
|
-
|
|
33
|
-
connection.execSql(request);
|
|
34
|
-
})(0, (err) => {
|
|
35
|
-
let i = 0;
|
|
36
|
-
|
|
37
|
-
bench.start();
|
|
38
|
-
|
|
39
|
-
(function cb() {
|
|
40
|
-
const request = new Request('SELECT * FROM #benchmark', (err) => {
|
|
41
|
-
if (err) {
|
|
42
|
-
throw err;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
if (i++ === n) {
|
|
46
|
-
bench.end(n);
|
|
47
|
-
|
|
48
|
-
connection.close();
|
|
49
|
-
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
cb();
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
connection.execSql(request);
|
|
57
|
-
})();
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
connection.execSqlBatch(request);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
const { createBenchmark, createConnection } = require('../common');
|
|
2
|
-
|
|
3
|
-
const { Request, TYPES } = require('tedious');
|
|
4
|
-
|
|
5
|
-
const bench = createBenchmark(main, {
|
|
6
|
-
n: [10, 100, 1000],
|
|
7
|
-
size: [10, 100, 1000, 10000]
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
function main({ n, size }) {
|
|
11
|
-
createConnection(function(connection) {
|
|
12
|
-
const request = new Request('CREATE TABLE #benchmark ([value] nvarchar(max))', (err) => {
|
|
13
|
-
if (err) {
|
|
14
|
-
throw err;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
var request = new Request('INSERT INTO #benchmark ([value]) VALUES (@value)', (err) => {
|
|
18
|
-
let i = 0;
|
|
19
|
-
|
|
20
|
-
bench.start();
|
|
21
|
-
|
|
22
|
-
(function cb() {
|
|
23
|
-
const request = new Request('SELECT * FROM #benchmark', (err) => {
|
|
24
|
-
if (err) {
|
|
25
|
-
throw err;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (i++ === n) {
|
|
29
|
-
bench.end(n);
|
|
30
|
-
|
|
31
|
-
connection.close();
|
|
32
|
-
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
cb();
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
connection.execSql(request);
|
|
40
|
-
})();
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
const value = 'a'.repeat(size);
|
|
44
|
-
request.addParameter('value', TYPES.NVarChar, value);
|
|
45
|
-
connection.execSql(request);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
connection.execSqlBatch(request);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
const { createBenchmark, createConnection } = require('../common');
|
|
2
|
-
|
|
3
|
-
const { Request, TYPES } = require('tedious');
|
|
4
|
-
|
|
5
|
-
const bench = createBenchmark(main, {
|
|
6
|
-
n: [10, 100],
|
|
7
|
-
size: [10, 100, 1000, 10000, 1024 * 1024, 10 * 1024 * 1024]
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
function main({ n, size }) {
|
|
11
|
-
createConnection(function(connection) {
|
|
12
|
-
const request = new Request('CREATE TABLE #benchmark ([value] varbinary(max))', (err) => {
|
|
13
|
-
if (err) {
|
|
14
|
-
throw err;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
var request = new Request('INSERT INTO #benchmark ([value]) VALUES (@value)', (err) => {
|
|
18
|
-
let i = 0;
|
|
19
|
-
|
|
20
|
-
bench.start();
|
|
21
|
-
|
|
22
|
-
(function cb() {
|
|
23
|
-
const request = new Request('SELECT * FROM #benchmark', (err) => {
|
|
24
|
-
if (err) {
|
|
25
|
-
throw err;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (i++ === n) {
|
|
29
|
-
bench.end(n);
|
|
30
|
-
|
|
31
|
-
connection.close();
|
|
32
|
-
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
cb();
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
connection.execSql(request);
|
|
40
|
-
})();
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
const value = Buffer.alloc(size, 'a');
|
|
44
|
-
request.addParameter('value', TYPES.VarBinary, value);
|
|
45
|
-
connection.execSql(request);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
connection.execSqlBatch(request);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
const { createBenchmark } = require('../common');
|
|
2
|
-
|
|
3
|
-
const { Request, TYPES } = require('tedious');
|
|
4
|
-
const RpcRequestPayload = require('tedious/lib/rpcrequest-payload');
|
|
5
|
-
|
|
6
|
-
const { Readable } = require('stream');
|
|
7
|
-
|
|
8
|
-
const bench = createBenchmark(main, {
|
|
9
|
-
n: [10, 100],
|
|
10
|
-
size: [10, 100, 1000, 10000]
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
function main({ n, size }) {
|
|
14
|
-
var table = {
|
|
15
|
-
columns: [
|
|
16
|
-
{ name: 'user_id', type: TYPES.Int },
|
|
17
|
-
{ name: 'user_name', type: TYPES.VarChar, length: 500 },
|
|
18
|
-
{ name: 'user_enabled', type: TYPES.Bit }
|
|
19
|
-
],
|
|
20
|
-
rows: []
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
for (let j = 0; j < size; j++) {
|
|
24
|
-
table.rows.push([15, 'Eric', true]);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const request = new Request('...', () => {});
|
|
28
|
-
request.addParameter('value', TYPES.TVP, table);
|
|
29
|
-
request.validateParameters();
|
|
30
|
-
|
|
31
|
-
let i = 0;
|
|
32
|
-
bench.start();
|
|
33
|
-
|
|
34
|
-
(function cb() {
|
|
35
|
-
if (i++ === n) {
|
|
36
|
-
bench.end(n);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const payload = new RpcRequestPayload(request.sqlTextOrProcedure, request.parameters, Buffer.alloc(0), {}, undefined);
|
|
41
|
-
const stream = Readable.from(payload);
|
|
42
|
-
stream.on('data', () => {});
|
|
43
|
-
stream.on('end', cb);
|
|
44
|
-
})();
|
|
45
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
const { createBenchmark } = require('../common');
|
|
2
|
-
|
|
3
|
-
const { Request, TYPES } = require('tedious');
|
|
4
|
-
const RpcRequestPayload = require('tedious/lib/rpcrequest-payload');
|
|
5
|
-
|
|
6
|
-
const { Readable } = require('stream');
|
|
7
|
-
|
|
8
|
-
const bench = createBenchmark(main, {
|
|
9
|
-
n: [10, 100],
|
|
10
|
-
size: [
|
|
11
|
-
1024 * 1024,
|
|
12
|
-
10 * 1024 * 1024,
|
|
13
|
-
50 * 1024 * 1024,
|
|
14
|
-
]
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
function main({ n, size }) {
|
|
18
|
-
const buf = Buffer.alloc(size, 'x');
|
|
19
|
-
|
|
20
|
-
const request = new Request('...', () => {});
|
|
21
|
-
request.addParameter('value', TYPES.VarBinary, buf);
|
|
22
|
-
|
|
23
|
-
let i = 0;
|
|
24
|
-
bench.start();
|
|
25
|
-
|
|
26
|
-
(function cb() {
|
|
27
|
-
if (i++ === n) {
|
|
28
|
-
bench.end(n);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const payload = new RpcRequestPayload(request.sqlTextOrProcedure, request.parameters, Buffer.alloc(0), {}, undefined);
|
|
33
|
-
const stream = Readable.from(payload);
|
|
34
|
-
stream.on('data', () => {});
|
|
35
|
-
stream.on('end', cb);
|
|
36
|
-
})();
|
|
37
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
const { createBenchmark } = require('../common');
|
|
2
|
-
|
|
3
|
-
const { Parser } = require('tedious/lib/token/token-stream-parser');
|
|
4
|
-
|
|
5
|
-
const bench = createBenchmark(main, {
|
|
6
|
-
n: [10, 100, 1000],
|
|
7
|
-
tokenCount: [10, 100, 1000, 10000]
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
async function * repeat(data, n) {
|
|
11
|
-
for (let i = 0; i < n; i++) {
|
|
12
|
-
yield data;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function main({ n, tokenCount }) {
|
|
17
|
-
const data = Buffer.from('810300000000001000380269006400000000000900e7c8000904d00034046e0061006d006500000000000900e7ffff0904d000340b6400650073006300720069007000740069006f006e00'.repeat(tokenCount), 'hex');
|
|
18
|
-
const parser = new Parser(repeat(data, n), { token: function() { } }, {
|
|
19
|
-
onColMetadata: (token) => { }
|
|
20
|
-
}, {});
|
|
21
|
-
|
|
22
|
-
bench.start();
|
|
23
|
-
|
|
24
|
-
parser.on('end', () => {
|
|
25
|
-
bench.end(n);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
const { createBenchmark } = require('../common');
|
|
2
|
-
|
|
3
|
-
const { Parser } = require('tedious/lib/token/token-stream-parser');
|
|
4
|
-
|
|
5
|
-
const bench = createBenchmark(main, {
|
|
6
|
-
n: [10, 100, 1000],
|
|
7
|
-
tokenCount: [10, 100, 1000, 10000]
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
async function * repeat(data, n) {
|
|
11
|
-
for (let i = 0; i < n; i++) {
|
|
12
|
-
yield data;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function main({ n, tokenCount }) {
|
|
17
|
-
const data = Buffer.from('FE0000E0000000000000000000'.repeat(tokenCount), 'hex');
|
|
18
|
-
|
|
19
|
-
const parser = new Parser(repeat(data, n), { token: function() { } }, {
|
|
20
|
-
onDoneProc: (token) => { }
|
|
21
|
-
}, {});
|
|
22
|
-
|
|
23
|
-
bench.start();
|
|
24
|
-
|
|
25
|
-
parser.on('end', () => {
|
|
26
|
-
bench.end(n);
|
|
27
|
-
});
|
|
28
|
-
}
|