@zowe/db2-for-zowe-cli 6.1.17 → 6.1.18
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 +12 -10
- package/lib/Db2PluginLifeCycle.d.ts +11 -9
- package/lib/Db2PluginLifeCycle.js +18 -13
- package/lib/Db2PluginLifeCycle.js.map +1 -1
- package/node_modules/axios/CHANGELOG.md +62 -0
- package/node_modules/axios/README.md +233 -5
- package/node_modules/axios/dist/axios.js +387 -89
- package/node_modules/axios/dist/axios.min.js +3 -3
- package/node_modules/axios/dist/axios.min.js.map +1 -1
- package/node_modules/axios/dist/browser/axios.cjs +458 -98
- package/node_modules/axios/dist/esm/axios.js +458 -98
- package/node_modules/axios/dist/esm/axios.min.js +2 -2
- package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
- package/node_modules/axios/dist/node/axios.cjs +568 -116
- package/node_modules/axios/index.d.cts +4 -0
- package/node_modules/axios/index.d.ts +4 -0
- package/node_modules/axios/lib/adapters/fetch.js +64 -11
- package/node_modules/axios/lib/adapters/http.js +134 -50
- package/node_modules/axios/lib/adapters/xhr.js +52 -3
- package/node_modules/axios/lib/core/Axios.js +19 -14
- package/node_modules/axios/lib/core/InterceptorManager.js +107 -8
- package/node_modules/axios/lib/core/buildFullPath.js +1 -13
- package/node_modules/axios/lib/core/dispatchRequest.js +8 -2
- package/node_modules/axios/lib/core/mergeConfig.js +1 -1
- package/node_modules/axios/lib/core/methodList.js +17 -0
- package/node_modules/axios/lib/defaults/index.js +2 -1
- package/node_modules/axios/lib/env/data.js +1 -1
- package/node_modules/axios/lib/helpers/Http2Sessions.js +2 -0
- package/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
- package/node_modules/axios/lib/helpers/fromDataURI.js +5 -4
- package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
- package/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
- package/node_modules/axios/lib/helpers/resolveConfig.js +4 -2
- package/node_modules/axios/lib/helpers/shouldBypassProxy.js +182 -6
- package/node_modules/axios/lib/helpers/throttle.js +3 -2
- package/node_modules/axios/lib/helpers/toFormData.js +14 -21
- package/node_modules/axios/lib/utils.js +134 -13
- package/node_modules/axios/package.json +1 -1
- package/node_modules/ibm_db/APIDocumentation.md +2883 -2024
- package/node_modules/ibm_db/LICENSE +23 -23
- package/node_modules/ibm_db/README.md +735 -735
- package/node_modules/ibm_db/binding.gyp +99 -98
- package/node_modules/ibm_db/installer/driverInstall.js +984 -958
- package/node_modules/ibm_db/installer/ifx.sh +38 -38
- package/node_modules/ibm_db/installer/setenv.sh +23 -23
- package/node_modules/ibm_db/installer/testODBCConnection.bat +51 -51
- package/node_modules/ibm_db/installer/testODBCConnection.sh +61 -61
- package/node_modules/ibm_db/lib/climacros.js +431 -431
- package/node_modules/ibm_db/lib/odbc.js +4293 -3487
- package/node_modules/ibm_db/lib/simple-queue.js +41 -41
- package/node_modules/ibm_db/package.json +70 -70
- package/node_modules/ibm_db/src/odbc.cpp +1495 -1396
- package/node_modules/ibm_db/src/odbc.h +477 -473
- package/node_modules/ibm_db/src/odbc_connection.cpp +1762 -1612
- package/node_modules/ibm_db/src/odbc_connection.h +228 -215
- package/node_modules/ibm_db/src/odbc_result.cpp +1547 -1547
- package/node_modules/ibm_db/src/odbc_result.h +152 -152
- package/node_modules/ibm_db/src/odbc_statement.cpp +2047 -861
- package/node_modules/ibm_db/src/odbc_statement.h +257 -135
- package/node_modules/ibm_db/src/strptime.c +389 -389
- package/node_modules/ibm_db/src/strptime.h +46 -46
- package/node_modules/ibm_db/test/README +23 -23
- package/node_modules/ibm_db/test/bench-insert.js +62 -62
- package/node_modules/ibm_db/test/bench-insertBatch10.js +74 -74
- package/node_modules/ibm_db/test/bench-insertBatch100.js +75 -75
- package/node_modules/ibm_db/test/bench-insertBatch1000.js +75 -75
- package/node_modules/ibm_db/test/bench-insertBatch10000.js +75 -75
- package/node_modules/ibm_db/test/bench-prepare-bind-execute-closeSync.js +60 -60
- package/node_modules/ibm_db/test/bench-prepare-bind-executeNonQuery.js +53 -53
- package/node_modules/ibm_db/test/bench-prepare-bindSync-execute-closeSync.js +50 -50
- package/node_modules/ibm_db/test/bench-prepare-bindSync-executeNonQuery.js +48 -48
- package/node_modules/ibm_db/test/bench-prepare-execute-closeSync.js +51 -51
- package/node_modules/ibm_db/test/bench-prepare-executeNonQuery.js +47 -47
- package/node_modules/ibm_db/test/bench-prepare-not.js +43 -43
- package/node_modules/ibm_db/test/bench-query-fetch.js +59 -59
- package/node_modules/ibm_db/test/bench-query-fetchAll.js +49 -49
- package/node_modules/ibm_db/test/bench-query-fetchAllSync.js +43 -43
- package/node_modules/ibm_db/test/bench-query.js +40 -40
- package/node_modules/ibm_db/test/bench-querySync-fetchArray.js +28 -28
- package/node_modules/ibm_db/test/bench-querySync.js +29 -29
- package/node_modules/ibm_db/test/common.d.ts +10 -10
- package/node_modules/ibm_db/test/common.js +127 -127
- package/node_modules/ibm_db/test/config.json +7 -7
- package/node_modules/ibm_db/test/config.zos.json +4 -4
- package/node_modules/ibm_db/test/data/sample1.txt +9 -9
- package/node_modules/ibm_db/test/data/trc.fmt +30114 -30114
- package/node_modules/ibm_db/test/nodeEE-leak-huge-query.js +152 -152
- package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-multiple-connections.js +148 -148
- package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-pool-connections.js +154 -154
- package/node_modules/ibm_db/test/nodeEE-leak-multiple-query.js +133 -133
- package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall-multiple-connections.js +174 -174
- package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall.js +169 -169
- package/node_modules/ibm_db/test/nodeEE-stress-mixed-query-multiple-connections.js +159 -159
- package/node_modules/ibm_db/test/nodeEE-stress-mixed-query.js +148 -148
- package/node_modules/ibm_db/test/odbc-bench.c +123 -123
- package/node_modules/ibm_db/test/perfTest.js +53 -53
- package/node_modules/ibm_db/test/quick-example.sh +30 -30
- package/node_modules/ibm_db/test/quick-example.ts +80 -80
- package/node_modules/ibm_db/test/run-bench.js +96 -96
- package/node_modules/ibm_db/test/run-nodeEE.js +132 -132
- package/node_modules/ibm_db/test/run-tests.js +132 -138
- package/node_modules/ibm_db/test/sql-cli.js +28 -28
- package/node_modules/ibm_db/test/test-all-data-types.js +109 -109
- package/node_modules/ibm_db/test/test-array-insert.js +178 -178
- package/node_modules/ibm_db/test/test-async-await.js +105 -105
- package/node_modules/ibm_db/test/test-attributes.js +34 -34
- package/node_modules/ibm_db/test/test-bad-pool-connection-prepare-execute.js +57 -57
- package/node_modules/ibm_db/test/test-basic-test.js +138 -138
- package/node_modules/ibm_db/test/test-binary-array-insert.js +73 -73
- package/node_modules/ibm_db/test/test-blob-from-file.js +90 -90
- package/node_modules/ibm_db/test/test-blob-insert.js +144 -144
- package/node_modules/ibm_db/test/test-blob-stream-insert.js +321 -299
- package/node_modules/ibm_db/test/test-blob-to-file.js +370 -370
- package/node_modules/ibm_db/test/test-block-fetch.js +364 -364
- package/node_modules/ibm_db/test/test-blocking-issue210.js +123 -123
- package/node_modules/ibm_db/test/test-call-async.js +64 -64
- package/node_modules/ibm_db/test/test-call-stmt.js +53 -53
- package/node_modules/ibm_db/test/test-cancel.js +703 -0
- package/node_modules/ibm_db/test/test-chinese-char.js +59 -59
- package/node_modules/ibm_db/test/test-connection.js +306 -0
- package/node_modules/ibm_db/test/test-date.js +32 -32
- package/node_modules/ibm_db/test/test-dbclob.js +93 -93
- package/node_modules/ibm_db/test/test-decimals.js +135 -135
- package/node_modules/ibm_db/test/test-describe-metadata.js +148 -0
- package/node_modules/ibm_db/test/test-executeFile.js +167 -167
- package/node_modules/ibm_db/test/test-executeFileSync.js +85 -85
- package/node_modules/ibm_db/test/test-fetch-apis.js +146 -146
- package/node_modules/ibm_db/test/test-fetchN.js +130 -130
- package/node_modules/ibm_db/test/test-getinfo.js +197 -197
- package/node_modules/ibm_db/test/test-ibm-db-issue14.js +58 -58
- package/node_modules/ibm_db/test/test-ibm-db-issue17.js +54 -54
- package/node_modules/ibm_db/test/test-ibm-db-issue18.js +54 -54
- package/node_modules/ibm_db/test/test-issue-1059-fetchAll-undefined.js +67 -67
- package/node_modules/ibm_db/test/test-issue-1080-array-blob-insert.js +40 -0
- package/node_modules/ibm_db/test/test-issue-54.js +39 -39
- package/node_modules/ibm_db/test/test-issue-get-column-value-2.js +44 -44
- package/node_modules/ibm_db/test/test-issue211.js +80 -80
- package/node_modules/ibm_db/test/test-issue253.js +39 -39
- package/node_modules/ibm_db/test/test-max-pool-size.js +96 -96
- package/node_modules/ibm_db/test/test-memory-leaks-new-objects.js +32 -32
- package/node_modules/ibm_db/test/test-multi-open-query-close.js +75 -75
- package/node_modules/ibm_db/test/test-param-put-data.js +713 -0
- package/node_modules/ibm_db/test/test-pool-idle-connection.js +72 -72
- package/node_modules/ibm_db/test/test-pool-operations.js +325 -0
- package/node_modules/ibm_db/test/test-pool-stale-connections.js +111 -111
- package/node_modules/ibm_db/test/test-pool-uncommited.js +33 -33
- package/node_modules/ibm_db/test/test-prepare-execute.js +339 -0
- package/node_modules/ibm_db/test/test-prepareSync-multiple-execution.js +93 -93
- package/node_modules/ibm_db/test/test-primary-foreign-keys.js +246 -0
- package/node_modules/ibm_db/test/test-procedures.js +243 -0
- package/node_modules/ibm_db/test/test-promise-all-data-types.js +42 -42
- package/node_modules/ibm_db/test/test-query-operations.js +405 -0
- package/node_modules/ibm_db/test/test-quick-example.js +25 -25
- package/node_modules/ibm_db/test/test-row-array-insert.js +167 -167
- package/node_modules/ibm_db/test/test-sp-array.js +54 -54
- package/node_modules/ibm_db/test/test-sp-dbc-6000.js +88 -88
- package/node_modules/ibm_db/test/test-sp-memleak.js +136 -136
- package/node_modules/ibm_db/test/test-sp-resultset-execute.js +269 -269
- package/node_modules/ibm_db/test/test-sp-resultset.js +228 -228
- package/node_modules/ibm_db/test/test-transactions.js +261 -0
- package/node_modules/ibm_db/test/test-typescript.js +48 -48
- package/node_modules/ibm_db/test/test-xml-datatype.js +70 -70
- package/node_modules/ibm_db/test/testWebApp.js +56 -56
- package/node_modules/ibm_db/test/trace +51 -51
- package/node_modules/ibm_db/test/typescript-apis-test.js +978 -978
- package/node_modules/ibm_db/test/webapp.html +17 -17
- package/node_modules/ibm_db/test/webapp.js +79 -79
- package/node_modules/ibm_db/typescript/README.md +28 -28
- package/node_modules/ibm_db/typescript/dist/Database.d.ts +26 -0
- package/node_modules/ibm_db/typescript/dist/ODBCStatement.d.ts +93 -0
- package/package.json +10 -6
- package/node_modules/ibm_db/test/disabled/test-binding-statement-rebinding.js +0 -59
- package/node_modules/ibm_db/test/disabled/test-open-dont-close.js +0 -12
- package/node_modules/ibm_db/test/disabled/test-param-select-with-booleans-only.js +0 -21
- package/node_modules/ibm_db/test/disabled/test-param-select-with-decimals-only.js +0 -20
- package/node_modules/ibm_db/test/disabled/test-param-select-with-null.js +0 -21
- package/node_modules/ibm_db/test/disabled/test-param-select-with-nulls-mixed.js +0 -23
- package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-mixed.js +0 -22
- package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-only.js +0 -24
- package/node_modules/ibm_db/test/disabled/test-param-select-with-strings-only.js +0 -23
- package/node_modules/ibm_db/test/disabled/test-param-select-with-unicode.js +0 -15
- package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-closeSync.js +0 -62
- package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-error.js +0 -49
- package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-long-string.js +0 -63
- package/node_modules/ibm_db/test/disabled/test-prepare-bind-executeNonQuery.js +0 -63
- package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-execute-closeSync.js +0 -46
- package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-executeNonQuery.js +0 -50
- package/node_modules/ibm_db/test/disabled/test-prepare.js +0 -34
- package/node_modules/ibm_db/test/disabled/test-prepareSync.js +0 -29
- package/node_modules/ibm_db/test/disabled/test-query-select-fetchAll.js +0 -23
- package/node_modules/ibm_db/test/disabled/test-query-select-fetchAllSync.js +0 -23
- package/node_modules/ibm_db/test/disabled/test-query-select-unicode.js +0 -15
- package/node_modules/ibm_db/test/disabled/test-querySync-select-unicode.js +0 -20
- package/node_modules/ibm_db/test/test-affected-rows.js +0 -55
- package/node_modules/ibm_db/test/test-bad-connection-string.js +0 -30
- package/node_modules/ibm_db/test/test-binding-connection-timeOut.js +0 -31
- package/node_modules/ibm_db/test/test-binding-statement-executeSync.js +0 -84
- package/node_modules/ibm_db/test/test-binding-transaction-commit.js +0 -79
- package/node_modules/ibm_db/test/test-binding-transaction-commitSync.js +0 -53
- package/node_modules/ibm_db/test/test-closed.js +0 -14
- package/node_modules/ibm_db/test/test-connection-object.js +0 -16
- package/node_modules/ibm_db/test/test-describe-column.js +0 -92
- package/node_modules/ibm_db/test/test-describe-database.js +0 -18
- package/node_modules/ibm_db/test/test-describe-table.js +0 -31
- package/node_modules/ibm_db/test/test-domains-open.js +0 -19
- package/node_modules/ibm_db/test/test-global-open-close.js +0 -11
- package/node_modules/ibm_db/test/test-instantiate-one-and-end.js +0 -9
- package/node_modules/ibm_db/test/test-multi-open-close.js +0 -45
- package/node_modules/ibm_db/test/test-multi-openSync-closeSync.js +0 -52
- package/node_modules/ibm_db/test/test-open-close.js +0 -29
- package/node_modules/ibm_db/test/test-open-connectTimeout.js +0 -33
- package/node_modules/ibm_db/test/test-openSync.js +0 -31
- package/node_modules/ibm_db/test/test-pool-close.js +0 -120
- package/node_modules/ibm_db/test/test-pool-connect.js +0 -36
- package/node_modules/ibm_db/test/test-pool-rollbackTransaction.js +0 -35
- package/node_modules/ibm_db/test/test-prepareSync-bad-sql.js +0 -34
- package/node_modules/ibm_db/test/test-promise-open-close.js +0 -33
- package/node_modules/ibm_db/test/test-query-create-table-fetchSync.js +0 -23
- package/node_modules/ibm_db/test/test-query-create-table.js +0 -12
- package/node_modules/ibm_db/test/test-query-drop-table.js +0 -13
- package/node_modules/ibm_db/test/test-query-insert.js +0 -38
- package/node_modules/ibm_db/test/test-query-select-fetch.js +0 -21
- package/node_modules/ibm_db/test/test-query-select-fetchMode-array.js +0 -17
- package/node_modules/ibm_db/test/test-query-select.js +0 -64
- package/node_modules/ibm_db/test/test-queryResult.js +0 -35
- package/node_modules/ibm_db/test/test-queryStream.js +0 -43
- package/node_modules/ibm_db/test/test-querySync-select-with-exception.js +0 -25
- package/node_modules/ibm_db/test/test-querySync-select.js +0 -28
- package/node_modules/ibm_db/test/test-require-and-end.js +0 -8
- package/node_modules/ibm_db/test/test-statement-close.js +0 -118
- package/node_modules/ibm_db/test/test-transaction-commit-sync.js +0 -54
- package/node_modules/ibm_db/test/test-transaction-commit.js +0 -79
|
@@ -1,135 +1,135 @@
|
|
|
1
|
-
var common = require("./common")
|
|
2
|
-
, ibmdb = require("../")
|
|
3
|
-
, assert = require("assert")
|
|
4
|
-
, cn = common.connectionString;
|
|
5
|
-
var platform = require('os').platform();
|
|
6
|
-
|
|
7
|
-
ibmdb.open(cn, function(err, conn) { // 3 means FETCH_ARRARY
|
|
8
|
-
if(err) console.log(err);
|
|
9
|
-
assert.equal(err, null);
|
|
10
|
-
|
|
11
|
-
var proc1 = "create or replace procedure PROC1 ( IN v1 decimal(11,0) ) language sql begin insert into mytab1 values (7, 'rocket', v1); end";
|
|
12
|
-
// Add proc2 to test the fix of issue #782 => Use integer as default value for decimal OUTPUT param
|
|
13
|
-
var proc2 = "create or replace procedure PROC2 ( IN v1 decimal(15,3), OUT v2 decimal(15,3) ) language sql begin set v2 = v1 ; end";
|
|
14
|
-
var dropProc = "drop procedure PROC1";
|
|
15
|
-
var query = "CALL PROC1(?)";
|
|
16
|
-
try{
|
|
17
|
-
conn.querySync("drop table mytab1");
|
|
18
|
-
} catch (e) {}
|
|
19
|
-
try{
|
|
20
|
-
conn.querySync(dropProc);
|
|
21
|
-
} catch (e) {}
|
|
22
|
-
try{
|
|
23
|
-
conn.querySync("drop procedure PROC2");
|
|
24
|
-
} catch (e) {}
|
|
25
|
-
|
|
26
|
-
err = conn.querySync("create table mytab1 (c1 int, c2 varchar(10), c3 decimal(11, 0))");
|
|
27
|
-
if(err.error) console.log(err);
|
|
28
|
-
assert.equal(err.error, undefined);
|
|
29
|
-
|
|
30
|
-
conn.querySync("insert into mytab1 values (5, 'rocket', 89874563789)");
|
|
31
|
-
|
|
32
|
-
var stmt = conn.prepareSync("insert into mytab1 values ( ?, ?, ?)");
|
|
33
|
-
var insertedRows = stmt.executeNonQuerySync([4, 'für', 2345.01]);
|
|
34
|
-
console.log("insertedRows = ", insertedRows);
|
|
35
|
-
stmt.closeSync();
|
|
36
|
-
console.log("inserted data = ", conn.querySync("select * from mytab1"));
|
|
37
|
-
var param1 = {ParamType:"INPUT", SQLType: "DECIMAL", Data: 45654378926};
|
|
38
|
-
|
|
39
|
-
conn.prepare("insert into mytab1 VALUES (?, ?, ?)", function (err, stmt) {
|
|
40
|
-
if (err) {
|
|
41
|
-
console.log(err);
|
|
42
|
-
stmt.closeSync();
|
|
43
|
-
return conn.closeSync();
|
|
44
|
-
}
|
|
45
|
-
//Bind and Execute the statment asynchronously
|
|
46
|
-
stmt.executeNonQuery([34245, 'IBM', param1], function (err, ret) {
|
|
47
|
-
if (err) {
|
|
48
|
-
console.log(err);
|
|
49
|
-
stmt.closeSync();
|
|
50
|
-
}
|
|
51
|
-
else console.log("Inserted row count = " + ret);
|
|
52
|
-
assert.equal(ret, 1);
|
|
53
|
-
|
|
54
|
-
// Call SP Synchronously.
|
|
55
|
-
var param2 = {ParamType:"INPUT", DataType: "DECIMAL", Data: 89.23365};
|
|
56
|
-
var param3 = {ParamType: 'OUTPUT', CType: 8, DataType: 3, Data: 0, Length:15};
|
|
57
|
-
conn.querySync(proc1);
|
|
58
|
-
conn.querySync(proc2);
|
|
59
|
-
result = conn.querySync(query, [param1]);
|
|
60
|
-
console.log("Result for Sync call of proc1 ==>");
|
|
61
|
-
console.log(result);
|
|
62
|
-
result = conn.querySync("CALL PROC2(?, ?)", [param2, param3]);
|
|
63
|
-
console.log("Result for Sync call of proc2 ==>");
|
|
64
|
-
console.log(result);
|
|
65
|
-
assert.deepEqual(result, [ 89.233 ]);
|
|
66
|
-
// Call SP Asynchronously.
|
|
67
|
-
conn.query(query, [param1], function (err, result) {
|
|
68
|
-
if (err) console.log(err);
|
|
69
|
-
else {
|
|
70
|
-
console.log("Result for Async call of proc1 ==>");
|
|
71
|
-
console.log(result);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
conn.prepare("select * from mytab1", function (err, stmt) {
|
|
75
|
-
if(err) {
|
|
76
|
-
console.log(err);
|
|
77
|
-
stmt.closeSync();
|
|
78
|
-
return conn.closeSync();
|
|
79
|
-
}
|
|
80
|
-
stmt.execute([], function(err, result) {
|
|
81
|
-
if (err) {
|
|
82
|
-
console.log(err);
|
|
83
|
-
stmt.closeSync();
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
data = result.fetchAllSync(); // Use fetchAllSync({fetchMode:3}) to get data as array.
|
|
87
|
-
console.log("Column Names = ", result.getColumnNamesSync());
|
|
88
|
-
console.log("Fetched Data = " );
|
|
89
|
-
console.log(data);
|
|
90
|
-
result.closeSync();
|
|
91
|
-
stmt.closeSync();
|
|
92
|
-
|
|
93
|
-
conn.querySync("drop table mytab1");
|
|
94
|
-
conn.querySync(dropProc);
|
|
95
|
-
testBigInt(conn);
|
|
96
|
-
conn.close(function () { console.log('done'); });
|
|
97
|
-
ibmdb.close();
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
// Test for issue #816 - BigInt columns
|
|
107
|
-
function testBigInt(conn)
|
|
108
|
-
{
|
|
109
|
-
console.log('\nTest BigInt value larger than MAX_SAFE_INTEGER value of JS');
|
|
110
|
-
console.log('----------------------------------------------------------\n');
|
|
111
|
-
console.log('JS Number max SAFE value : '+Number.MAX_SAFE_INTEGER);
|
|
112
|
-
//9007199254740991 = Number.MAX_SAFE_INTEGER
|
|
113
|
-
let maxSafeInt = Number.MAX_SAFE_INTEGER;
|
|
114
|
-
let bigIntValue = 9007199254741997n;
|
|
115
|
-
|
|
116
|
-
conn.querySync('create table mytab (c1 bigint, c2 varchar(20))');
|
|
117
|
-
conn.querySync(`insert into mytab values (${maxSafeInt}, 'Max Safe Int'),(${bigIntValue}, 'Big Int Value')`);
|
|
118
|
-
|
|
119
|
-
conn.queryResult("select * from mytab", (err, result) => {
|
|
120
|
-
if(err) {
|
|
121
|
-
console.log(err);
|
|
122
|
-
} else {
|
|
123
|
-
let data;
|
|
124
|
-
while( data = result.fetchSync() )
|
|
125
|
-
{
|
|
126
|
-
console.log('Data Type returned : '+typeof data.C1);
|
|
127
|
-
console.log(data);
|
|
128
|
-
assert.deepEqual(typeof data.C1, 'string');
|
|
129
|
-
}
|
|
130
|
-
result.closeSync();
|
|
131
|
-
}
|
|
132
|
-
conn.querySync("drop table mytab;");
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
|
|
1
|
+
var common = require("./common")
|
|
2
|
+
, ibmdb = require("../")
|
|
3
|
+
, assert = require("assert")
|
|
4
|
+
, cn = common.connectionString;
|
|
5
|
+
var platform = require('os').platform();
|
|
6
|
+
|
|
7
|
+
ibmdb.open(cn, function(err, conn) { // 3 means FETCH_ARRARY
|
|
8
|
+
if(err) console.log(err);
|
|
9
|
+
assert.equal(err, null);
|
|
10
|
+
|
|
11
|
+
var proc1 = "create or replace procedure PROC1 ( IN v1 decimal(11,0) ) language sql begin insert into mytab1 values (7, 'rocket', v1); end";
|
|
12
|
+
// Add proc2 to test the fix of issue #782 => Use integer as default value for decimal OUTPUT param
|
|
13
|
+
var proc2 = "create or replace procedure PROC2 ( IN v1 decimal(15,3), OUT v2 decimal(15,3) ) language sql begin set v2 = v1 ; end";
|
|
14
|
+
var dropProc = "drop procedure PROC1";
|
|
15
|
+
var query = "CALL PROC1(?)";
|
|
16
|
+
try{
|
|
17
|
+
conn.querySync("drop table mytab1");
|
|
18
|
+
} catch (e) {}
|
|
19
|
+
try{
|
|
20
|
+
conn.querySync(dropProc);
|
|
21
|
+
} catch (e) {}
|
|
22
|
+
try{
|
|
23
|
+
conn.querySync("drop procedure PROC2");
|
|
24
|
+
} catch (e) {}
|
|
25
|
+
|
|
26
|
+
err = conn.querySync("create table mytab1 (c1 int, c2 varchar(10), c3 decimal(11, 0))");
|
|
27
|
+
if(err.error) console.log(err);
|
|
28
|
+
assert.equal(err.error, undefined);
|
|
29
|
+
|
|
30
|
+
conn.querySync("insert into mytab1 values (5, 'rocket', 89874563789)");
|
|
31
|
+
|
|
32
|
+
var stmt = conn.prepareSync("insert into mytab1 values ( ?, ?, ?)");
|
|
33
|
+
var insertedRows = stmt.executeNonQuerySync([4, 'für', 2345.01]);
|
|
34
|
+
console.log("insertedRows = ", insertedRows);
|
|
35
|
+
stmt.closeSync();
|
|
36
|
+
console.log("inserted data = ", conn.querySync("select * from mytab1"));
|
|
37
|
+
var param1 = {ParamType:"INPUT", SQLType: "DECIMAL", Data: 45654378926};
|
|
38
|
+
|
|
39
|
+
conn.prepare("insert into mytab1 VALUES (?, ?, ?)", function (err, stmt) {
|
|
40
|
+
if (err) {
|
|
41
|
+
console.log(err);
|
|
42
|
+
stmt.closeSync();
|
|
43
|
+
return conn.closeSync();
|
|
44
|
+
}
|
|
45
|
+
//Bind and Execute the statment asynchronously
|
|
46
|
+
stmt.executeNonQuery([34245, 'IBM', param1], function (err, ret) {
|
|
47
|
+
if (err) {
|
|
48
|
+
console.log(err);
|
|
49
|
+
stmt.closeSync();
|
|
50
|
+
}
|
|
51
|
+
else console.log("Inserted row count = " + ret);
|
|
52
|
+
assert.equal(ret, 1);
|
|
53
|
+
|
|
54
|
+
// Call SP Synchronously.
|
|
55
|
+
var param2 = {ParamType:"INPUT", DataType: "DECIMAL", Data: 89.23365};
|
|
56
|
+
var param3 = {ParamType: 'OUTPUT', CType: 8, DataType: 3, Data: 0, Length:15};
|
|
57
|
+
conn.querySync(proc1);
|
|
58
|
+
conn.querySync(proc2);
|
|
59
|
+
result = conn.querySync(query, [param1]);
|
|
60
|
+
console.log("Result for Sync call of proc1 ==>");
|
|
61
|
+
console.log(result);
|
|
62
|
+
result = conn.querySync("CALL PROC2(?, ?)", [param2, param3]);
|
|
63
|
+
console.log("Result for Sync call of proc2 ==>");
|
|
64
|
+
console.log(result);
|
|
65
|
+
assert.deepEqual(result, [ 89.233 ]);
|
|
66
|
+
// Call SP Asynchronously.
|
|
67
|
+
conn.query(query, [param1], function (err, result) {
|
|
68
|
+
if (err) console.log(err);
|
|
69
|
+
else {
|
|
70
|
+
console.log("Result for Async call of proc1 ==>");
|
|
71
|
+
console.log(result);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
conn.prepare("select * from mytab1", function (err, stmt) {
|
|
75
|
+
if(err) {
|
|
76
|
+
console.log(err);
|
|
77
|
+
stmt.closeSync();
|
|
78
|
+
return conn.closeSync();
|
|
79
|
+
}
|
|
80
|
+
stmt.execute([], function(err, result) {
|
|
81
|
+
if (err) {
|
|
82
|
+
console.log(err);
|
|
83
|
+
stmt.closeSync();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
data = result.fetchAllSync(); // Use fetchAllSync({fetchMode:3}) to get data as array.
|
|
87
|
+
console.log("Column Names = ", result.getColumnNamesSync());
|
|
88
|
+
console.log("Fetched Data = " );
|
|
89
|
+
console.log(data);
|
|
90
|
+
result.closeSync();
|
|
91
|
+
stmt.closeSync();
|
|
92
|
+
|
|
93
|
+
conn.querySync("drop table mytab1");
|
|
94
|
+
conn.querySync(dropProc);
|
|
95
|
+
testBigInt(conn);
|
|
96
|
+
conn.close(function () { console.log('done'); });
|
|
97
|
+
ibmdb.close();
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
// Test for issue #816 - BigInt columns
|
|
107
|
+
function testBigInt(conn)
|
|
108
|
+
{
|
|
109
|
+
console.log('\nTest BigInt value larger than MAX_SAFE_INTEGER value of JS');
|
|
110
|
+
console.log('----------------------------------------------------------\n');
|
|
111
|
+
console.log('JS Number max SAFE value : '+Number.MAX_SAFE_INTEGER);
|
|
112
|
+
//9007199254740991 = Number.MAX_SAFE_INTEGER
|
|
113
|
+
let maxSafeInt = Number.MAX_SAFE_INTEGER;
|
|
114
|
+
let bigIntValue = 9007199254741997n;
|
|
115
|
+
|
|
116
|
+
conn.querySync('create table mytab (c1 bigint, c2 varchar(20))');
|
|
117
|
+
conn.querySync(`insert into mytab values (${maxSafeInt}, 'Max Safe Int'),(${bigIntValue}, 'Big Int Value')`);
|
|
118
|
+
|
|
119
|
+
conn.queryResult("select * from mytab", (err, result) => {
|
|
120
|
+
if(err) {
|
|
121
|
+
console.log(err);
|
|
122
|
+
} else {
|
|
123
|
+
let data;
|
|
124
|
+
while( data = result.fetchSync() )
|
|
125
|
+
{
|
|
126
|
+
console.log('Data Type returned : '+typeof data.C1);
|
|
127
|
+
console.log(data);
|
|
128
|
+
assert.deepEqual(typeof data.C1, 'string');
|
|
129
|
+
}
|
|
130
|
+
result.closeSync();
|
|
131
|
+
}
|
|
132
|
+
conn.querySync("drop table mytab;");
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// Consolidated describe/metadata test: describe database, table, column,
|
|
2
|
+
// db.columns() API, db.tables() API.
|
|
3
|
+
// Replaces: test-describe-column, test-describe-table, test-describe-database.
|
|
4
|
+
|
|
5
|
+
var common = require("./common")
|
|
6
|
+
, ibmdb = require("../")
|
|
7
|
+
, assert = require("assert")
|
|
8
|
+
, cn = common.connectionString
|
|
9
|
+
;
|
|
10
|
+
|
|
11
|
+
var passed = 0, failed = 0;
|
|
12
|
+
|
|
13
|
+
function ok(label) { passed++; console.log(" PASS: " + label); }
|
|
14
|
+
function fail(label, detail) { failed++; console.log(" FAIL: " + label + " " + (detail || "")); }
|
|
15
|
+
|
|
16
|
+
var TABLE = common.tableName;
|
|
17
|
+
var DB = common.databaseName;
|
|
18
|
+
|
|
19
|
+
main();
|
|
20
|
+
|
|
21
|
+
async function main() {
|
|
22
|
+
var conn;
|
|
23
|
+
try {
|
|
24
|
+
conn = await ibmdb.open(cn);
|
|
25
|
+
} catch(e) {
|
|
26
|
+
console.log("Connection failed:", e);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Setup
|
|
31
|
+
await new Promise(function(resolve) {
|
|
32
|
+
common.dropTables(conn, function() {
|
|
33
|
+
common.createTables(conn, function(err) {
|
|
34
|
+
if (err) console.log("createTables:", err.message);
|
|
35
|
+
resolve();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
await testDescribeDatabase(conn);
|
|
41
|
+
await testDescribeTable(conn);
|
|
42
|
+
await testDescribeColumn(conn);
|
|
43
|
+
await testDescribePromise(conn);
|
|
44
|
+
await testColumnsAPI(conn);
|
|
45
|
+
await testColumnsInvalidArgs(conn);
|
|
46
|
+
|
|
47
|
+
console.log("\n===== Describe/Metadata Tests: %d passed, %d failed =====", passed, failed);
|
|
48
|
+
|
|
49
|
+
// Cleanup
|
|
50
|
+
await new Promise(function(resolve) {
|
|
51
|
+
common.dropTables(conn, function() { resolve(); });
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
await conn.close();
|
|
55
|
+
process.exit(failed ? 1 : 0);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// describe with database only (list tables)
|
|
59
|
+
async function testDescribeDatabase(conn) {
|
|
60
|
+
console.log("\n[testDescribeDatabase]");
|
|
61
|
+
return new Promise(function(resolve) {
|
|
62
|
+
conn.describe({ database: DB }, function(err, data) {
|
|
63
|
+
try {
|
|
64
|
+
if (err) throw err;
|
|
65
|
+
assert.ok(data.length > 0, "describe database should return tables");
|
|
66
|
+
ok("describe({ database }) returns table list");
|
|
67
|
+
} catch(e) { fail("describe database", e.message); }
|
|
68
|
+
resolve();
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// describe with database + table (list columns of table)
|
|
74
|
+
async function testDescribeTable(conn) {
|
|
75
|
+
console.log("\n[testDescribeTable]");
|
|
76
|
+
return new Promise(function(resolve) {
|
|
77
|
+
conn.describe({ database: DB, table: TABLE }, function(err, data) {
|
|
78
|
+
try {
|
|
79
|
+
if (err) throw err;
|
|
80
|
+
assert.ok(data.length > 0, "describe table should return columns");
|
|
81
|
+
ok("describe({ database, table }) returns column list");
|
|
82
|
+
} catch(e) { fail("describe table", e.message); }
|
|
83
|
+
resolve();
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// describe with database + table + column
|
|
89
|
+
async function testDescribeColumn(conn) {
|
|
90
|
+
console.log("\n[testDescribeColumn]");
|
|
91
|
+
return new Promise(function(resolve) {
|
|
92
|
+
conn.describe({ database: DB, table: TABLE, column: 'COLDATETIME' }, function(err, data) {
|
|
93
|
+
try {
|
|
94
|
+
if (err) throw err;
|
|
95
|
+
assert.ok(data.length > 0, "describe column should return metadata");
|
|
96
|
+
ok("describe({ database, table, column }) returns column metadata");
|
|
97
|
+
} catch(e) { fail("describe column", e.message); }
|
|
98
|
+
resolve();
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// describe with Promise interface
|
|
104
|
+
async function testDescribePromise(conn) {
|
|
105
|
+
console.log("\n[testDescribePromise]");
|
|
106
|
+
try {
|
|
107
|
+
var data = await conn.describe({ database: DB, table: TABLE });
|
|
108
|
+
assert.ok(data.length > 0);
|
|
109
|
+
ok("describe() with Promise returns column list");
|
|
110
|
+
|
|
111
|
+
data = await conn.describe({ database: DB });
|
|
112
|
+
assert.ok(data.length > 0);
|
|
113
|
+
ok("describe() with Promise returns table list");
|
|
114
|
+
|
|
115
|
+
data = await conn.describe({ database: DB, table: TABLE, column: 'COLDATETIME' });
|
|
116
|
+
assert.ok(data.length > 0);
|
|
117
|
+
ok("describe() with Promise returns column detail");
|
|
118
|
+
} catch(e) { fail("describe promise", e.message); }
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// db.columns() API
|
|
122
|
+
async function testColumnsAPI(conn) {
|
|
123
|
+
console.log("\n[testColumnsAPI]");
|
|
124
|
+
try {
|
|
125
|
+
var result = await conn.columns(DB, '%', TABLE, 'COLDATETIME');
|
|
126
|
+
assert.ok(result.length > 0, "columns() should return metadata");
|
|
127
|
+
ok("db.columns(catalog, schema, table, column) works");
|
|
128
|
+
} catch(e) { fail("db.columns", e.message); }
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// db.columns() with invalid args
|
|
132
|
+
async function testColumnsInvalidArgs(conn) {
|
|
133
|
+
console.log("\n[testColumnsInvalidArgs]");
|
|
134
|
+
// columns() with wrong args fires two rejections; suppress the unhandled one
|
|
135
|
+
var savedHandler = null;
|
|
136
|
+
var unhandled = false;
|
|
137
|
+
savedHandler = function(reason) { unhandled = true; };
|
|
138
|
+
process.on('unhandledRejection', savedHandler);
|
|
139
|
+
try {
|
|
140
|
+
await conn.columns(DB, TABLE, 'COLDATETIME');
|
|
141
|
+
fail("columns() with 3 args should throw");
|
|
142
|
+
} catch(e) {
|
|
143
|
+
ok("db.columns() with invalid args rejects");
|
|
144
|
+
}
|
|
145
|
+
// Allow microtask queue to flush before removing handler
|
|
146
|
+
await new Promise(function(r) { setImmediate(r); });
|
|
147
|
+
process.removeListener('unhandledRejection', savedHandler);
|
|
148
|
+
}
|