@zowe/db2-for-zowe-cli 6.1.17 → 6.1.19
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/adm-zip/adm-zip.js +32 -6
- package/node_modules/adm-zip/headers/entryHeader.js +13 -1
- package/node_modules/adm-zip/methods/inflater.js +33 -3
- package/node_modules/adm-zip/package.json +2 -2
- package/node_modules/adm-zip/util/errors.js +3 -0
- package/node_modules/adm-zip/util/utils.js +102 -14
- package/node_modules/adm-zip/zipEntry.js +43 -18
- package/node_modules/adm-zip/zipFile.js +10 -0
- package/node_modules/axios/CHANGELOG.md +62 -0
- package/node_modules/axios/README.md +236 -73
- package/node_modules/axios/dist/axios.js +1308 -357
- 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 +1443 -403
- package/node_modules/axios/dist/esm/axios.js +1443 -403
- 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 +1483 -348
- package/node_modules/axios/index.d.cts +24 -1
- package/node_modules/axios/index.d.ts +22 -1
- package/node_modules/axios/lib/adapters/fetch.js +136 -30
- package/node_modules/axios/lib/adapters/http.js +277 -74
- package/node_modules/axios/lib/adapters/xhr.js +172 -16
- package/node_modules/axios/lib/core/Axios.js +87 -27
- package/node_modules/axios/lib/core/AxiosError.js +59 -0
- package/node_modules/axios/lib/core/AxiosHeaders.js +17 -4
- package/node_modules/axios/lib/core/InterceptorManager.js +118 -8
- package/node_modules/axios/lib/core/assertParamsAcyclic.js +49 -0
- package/node_modules/axios/lib/core/buildFullPath.js +1 -13
- package/node_modules/axios/lib/core/createMultipartBody.js +37 -0
- package/node_modules/axios/lib/core/dispatchRequest.js +28 -2
- package/node_modules/axios/lib/core/mergeConfig.js +183 -120
- 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/defaults/transitional.js +1 -0
- package/node_modules/axios/lib/env/data.js +1 -1
- package/node_modules/axios/lib/helpers/AxiosTransformStream.js +11 -2
- package/node_modules/axios/lib/helpers/Http2Sessions.js +4 -1
- package/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
- package/node_modules/axios/lib/helpers/composeSignals.js +6 -3
- package/node_modules/axios/lib/helpers/cookies.js +30 -6
- package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +34 -7
- package/node_modules/axios/lib/helpers/formDataToBlob.js +113 -0
- package/node_modules/axios/lib/helpers/formDataToJSON.js +25 -1
- package/node_modules/axios/lib/helpers/fromDataURI.js +11 -4
- package/node_modules/axios/lib/helpers/isURLSameOrigin.js +4 -9
- package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
- package/node_modules/axios/lib/helpers/parseHeaders.js +2 -1
- package/node_modules/axios/lib/helpers/parseProtocol.js +1 -1
- package/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
- package/node_modules/axios/lib/helpers/resolveConfig.js +20 -5
- package/node_modules/axios/lib/helpers/shouldBypassProxy.js +197 -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 +192 -20
- package/node_modules/axios/package.json +1 -2
- package/node_modules/follow-redirects/README.md +27 -1
- package/node_modules/follow-redirects/index.js +11 -6
- package/node_modules/follow-redirects/package.json +1 -1
- package/node_modules/fs-extra/README.md +0 -1
- package/node_modules/fs-extra/lib/empty/index.js +4 -2
- package/node_modules/fs-extra/lib/util/stat.js +12 -2
- package/node_modules/fs-extra/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/node_modules/string_decoder/node_modules/safe-buffer/LICENSE +21 -0
- package/node_modules/string_decoder/node_modules/safe-buffer/README.md +584 -0
- package/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts +187 -0
- package/node_modules/string_decoder/node_modules/safe-buffer/index.js +62 -0
- package/node_modules/string_decoder/node_modules/safe-buffer/package.json +37 -0
- package/node_modules/which-typed-array/CHANGELOG.md +14 -0
- package/node_modules/which-typed-array/README.md +0 -2
- package/node_modules/which-typed-array/index.d.ts +288 -11
- package/node_modules/which-typed-array/index.js +6 -7
- package/node_modules/which-typed-array/package.json +12 -11
- package/package.json +10 -11
- 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
- package/node_modules/which-typed-array/eslint.config.mjs +0 -12
- package/node_modules/which-typed-array/test/index.js +0 -105
- /package/node_modules/{tar-fs/node_modules/chownr → chownr}/LICENSE +0 -0
- /package/node_modules/{tar-fs/node_modules/chownr → chownr}/README.md +0 -0
- /package/node_modules/{tar-fs/node_modules/chownr → chownr}/chownr.js +0 -0
- /package/node_modules/{tar-fs/node_modules/chownr → chownr}/package.json +0 -0
- /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/.travis.yml +0 -0
- /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/LICENSE +0 -0
- /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/README.md +0 -0
- /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/lib/string_decoder.js +0 -0
- /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/package.json +0 -0
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
var common = require("./common")
|
|
2
|
-
, ibmdb = require("../")
|
|
3
|
-
, assert = require("assert")
|
|
4
|
-
;
|
|
5
|
-
|
|
6
|
-
var count = 0;
|
|
7
|
-
var iterations = 10;
|
|
8
|
-
|
|
9
|
-
var conn = ibmdb.openSync(common.connectionString);
|
|
10
|
-
|
|
11
|
-
common.dropTables(conn, function () {
|
|
12
|
-
common.createTables(conn, function (err, data) {
|
|
13
|
-
if (err) {
|
|
14
|
-
console.log(err);
|
|
15
|
-
|
|
16
|
-
return finish(2);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
conn.beginTransactionSync();
|
|
20
|
-
var stmt = conn.prepareSync("insert into " + common.tableName + " (colint, coltext) VALUES (?, ?)");
|
|
21
|
-
assert.equal(stmt.constructor.name, "ODBCStatement");
|
|
22
|
-
|
|
23
|
-
recursive(stmt);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
function finish(retValue) {
|
|
28
|
-
console.log("finish exit value: %s", retValue);
|
|
29
|
-
|
|
30
|
-
conn.closeSync();
|
|
31
|
-
process.exit(retValue || 0);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
function recursive (stmt) {
|
|
35
|
-
try {
|
|
36
|
-
var result = stmt.bindSync([4, 'hello world']);
|
|
37
|
-
assert.equal(result, true);
|
|
38
|
-
}
|
|
39
|
-
catch (e) {
|
|
40
|
-
console.log(e.message);
|
|
41
|
-
finish(3);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
stmt.execute(function (err, result) {
|
|
45
|
-
if (err) {
|
|
46
|
-
console.log(err.message);
|
|
47
|
-
|
|
48
|
-
return finish(4);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
result.closeSync();
|
|
52
|
-
count += 1;
|
|
53
|
-
|
|
54
|
-
console.log("Executed iteration %s out of %s.", count, iterations);
|
|
55
|
-
|
|
56
|
-
if (count < iterations) {
|
|
57
|
-
setTimeout(function(){
|
|
58
|
-
recursive(stmt);
|
|
59
|
-
},100);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
console.log("Inserted Rows = ");
|
|
63
|
-
console.log(conn.querySync("select * from " + common.tableName));
|
|
64
|
-
try {
|
|
65
|
-
var result = stmt.bindSync(['abc', 'hello world']);
|
|
66
|
-
assert.equal(result, true);
|
|
67
|
-
}
|
|
68
|
-
catch (e) {
|
|
69
|
-
console.log(e.message);
|
|
70
|
-
finish(5);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
stmt.execute(function (err, result) {
|
|
74
|
-
if (err) { // Expecting Error here.
|
|
75
|
-
console.log(err.message);
|
|
76
|
-
conn.rollbackTransactionSync();
|
|
77
|
-
var data = conn.querySync("select * from " + common.tableName);
|
|
78
|
-
console.log("After roolback, selected rows = ", data);
|
|
79
|
-
assert.deepEqual(data, []);
|
|
80
|
-
common.dropTables(conn, function () { return finish(0); });
|
|
81
|
-
}
|
|
82
|
-
else
|
|
83
|
-
{
|
|
84
|
-
result.closeSync();
|
|
85
|
-
conn.commitTransactionSync();
|
|
86
|
-
var data = conn.querySync("select * from " + common.tableName);
|
|
87
|
-
console.log("After commit, selected rows = ", data);
|
|
88
|
-
common.dropTables(conn, function () { return finish(6); });
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
1
|
+
var common = require("./common")
|
|
2
|
+
, ibmdb = require("../")
|
|
3
|
+
, assert = require("assert")
|
|
4
|
+
;
|
|
5
|
+
|
|
6
|
+
var count = 0;
|
|
7
|
+
var iterations = 10;
|
|
8
|
+
|
|
9
|
+
var conn = ibmdb.openSync(common.connectionString);
|
|
10
|
+
|
|
11
|
+
common.dropTables(conn, function () {
|
|
12
|
+
common.createTables(conn, function (err, data) {
|
|
13
|
+
if (err) {
|
|
14
|
+
console.log(err);
|
|
15
|
+
|
|
16
|
+
return finish(2);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
conn.beginTransactionSync();
|
|
20
|
+
var stmt = conn.prepareSync("insert into " + common.tableName + " (colint, coltext) VALUES (?, ?)");
|
|
21
|
+
assert.equal(stmt.constructor.name, "ODBCStatement");
|
|
22
|
+
|
|
23
|
+
recursive(stmt);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
function finish(retValue) {
|
|
28
|
+
console.log("finish exit value: %s", retValue);
|
|
29
|
+
|
|
30
|
+
conn.closeSync();
|
|
31
|
+
process.exit(retValue || 0);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function recursive (stmt) {
|
|
35
|
+
try {
|
|
36
|
+
var result = stmt.bindSync([4, 'hello world']);
|
|
37
|
+
assert.equal(result, true);
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
console.log(e.message);
|
|
41
|
+
finish(3);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
stmt.execute(function (err, result) {
|
|
45
|
+
if (err) {
|
|
46
|
+
console.log(err.message);
|
|
47
|
+
|
|
48
|
+
return finish(4);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
result.closeSync();
|
|
52
|
+
count += 1;
|
|
53
|
+
|
|
54
|
+
console.log("Executed iteration %s out of %s.", count, iterations);
|
|
55
|
+
|
|
56
|
+
if (count < iterations) {
|
|
57
|
+
setTimeout(function(){
|
|
58
|
+
recursive(stmt);
|
|
59
|
+
},100);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.log("Inserted Rows = ");
|
|
63
|
+
console.log(conn.querySync("select * from " + common.tableName));
|
|
64
|
+
try {
|
|
65
|
+
var result = stmt.bindSync(['abc', 'hello world']);
|
|
66
|
+
assert.equal(result, true);
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
console.log(e.message);
|
|
70
|
+
finish(5);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
stmt.execute(function (err, result) {
|
|
74
|
+
if (err) { // Expecting Error here.
|
|
75
|
+
console.log(err.message);
|
|
76
|
+
conn.rollbackTransactionSync();
|
|
77
|
+
var data = conn.querySync("select * from " + common.tableName);
|
|
78
|
+
console.log("After roolback, selected rows = ", data);
|
|
79
|
+
assert.deepEqual(data, []);
|
|
80
|
+
common.dropTables(conn, function () { return finish(0); });
|
|
81
|
+
}
|
|
82
|
+
else
|
|
83
|
+
{
|
|
84
|
+
result.closeSync();
|
|
85
|
+
conn.commitTransactionSync();
|
|
86
|
+
var data = conn.querySync("select * from " + common.tableName);
|
|
87
|
+
console.log("After commit, selected rows = ", data);
|
|
88
|
+
common.dropTables(conn, function () { return finish(6); });
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
var common = require("./common")
|
|
2
|
+
, ibmdb = require("../")
|
|
3
|
+
, assert = require("assert")
|
|
4
|
+
, cn = common.connectionString
|
|
5
|
+
;
|
|
6
|
+
|
|
7
|
+
var pkTableName = "IBMDB_PK_TEST";
|
|
8
|
+
var fkTableName = "IBMDB_FK_TEST";
|
|
9
|
+
var basePkTableName = pkTableName;
|
|
10
|
+
var baseFkTableName = fkTableName;
|
|
11
|
+
var schema = null;
|
|
12
|
+
|
|
13
|
+
// keep existing names working for pk tests
|
|
14
|
+
var tableName = pkTableName;
|
|
15
|
+
var baseTableName = basePkTableName;
|
|
16
|
+
|
|
17
|
+
if(common.connectionObject.CURRENTSCHEMA) {
|
|
18
|
+
schema = common.connectionObject.CURRENTSCHEMA;
|
|
19
|
+
pkTableName = schema + "." + pkTableName;
|
|
20
|
+
fkTableName = schema + "." + fkTableName;
|
|
21
|
+
tableName = pkTableName;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// --- helpers ---------------------------------------------------------------
|
|
25
|
+
function dropTable(db) {
|
|
26
|
+
try { db.querySync("DROP TABLE " + fkTableName); } catch(e) {}
|
|
27
|
+
try { db.querySync("DROP TABLE " + pkTableName); } catch(e) {}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function createTable(db) {
|
|
31
|
+
db.querySync(
|
|
32
|
+
"CREATE TABLE " + pkTableName +
|
|
33
|
+
" (ID INTEGER NOT NULL, NAME VARCHAR(50), " +
|
|
34
|
+
" CONSTRAINT PK_" + pkTableName.replace(".", "_") + " PRIMARY KEY (ID))"
|
|
35
|
+
);
|
|
36
|
+
db.querySync(
|
|
37
|
+
"CREATE TABLE " + fkTableName +
|
|
38
|
+
" (FK_ID INTEGER NOT NULL, PK_REF INTEGER, " +
|
|
39
|
+
" CONSTRAINT FK_" + fkTableName.replace(".", "_") +
|
|
40
|
+
" FOREIGN KEY (PK_REF) REFERENCES " + pkTableName + "(ID))"
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// --- main ------------------------------------------------------------------
|
|
45
|
+
ibmdb.open(cn, function(err, db) {
|
|
46
|
+
if (err) { console.log("Connection error:", err); return; }
|
|
47
|
+
|
|
48
|
+
dropTable(db);
|
|
49
|
+
createTable(db);
|
|
50
|
+
|
|
51
|
+
var passed = 0, failed = 0;
|
|
52
|
+
|
|
53
|
+
function done(label, ok, detail) {
|
|
54
|
+
if (ok) {
|
|
55
|
+
console.log("PASS:", label);
|
|
56
|
+
passed++;
|
|
57
|
+
} else {
|
|
58
|
+
console.log("FAIL:", label, detail || "");
|
|
59
|
+
failed++;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function verifyKeys(rows) {
|
|
64
|
+
return Array.isArray(rows) &&
|
|
65
|
+
rows.length === 1 &&
|
|
66
|
+
rows[0].COLUMN_NAME === "ID";
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function verifyFKs(rows) {
|
|
70
|
+
return Array.isArray(rows) &&
|
|
71
|
+
rows.length === 1 &&
|
|
72
|
+
rows[0].PKCOLUMN_NAME === "ID" &&
|
|
73
|
+
rows[0].FKCOLUMN_NAME === "PK_REF";
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// 1 — async callback via Database.primaryKeys()
|
|
77
|
+
db.primaryKeys(null, schema, baseTableName, function(err, rows) {
|
|
78
|
+
var ok = !err && verifyKeys(rows);
|
|
79
|
+
done("1 db.primaryKeys callback", ok, err || JSON.stringify(rows));
|
|
80
|
+
console.log("rows = ", rows);
|
|
81
|
+
|
|
82
|
+
// 2 — async Promise via Database.primaryKeys()
|
|
83
|
+
db.primaryKeys(null, schema, baseTableName).then(function(rows) {
|
|
84
|
+
done("2 db.primaryKeys Promise", verifyKeys(rows), JSON.stringify(rows));
|
|
85
|
+
console.log("rows = ", rows);
|
|
86
|
+
|
|
87
|
+
// 3 — sync via Database.primaryKeysSync()
|
|
88
|
+
var rows3;
|
|
89
|
+
try {
|
|
90
|
+
rows3 = db.primaryKeysSync(null, schema, baseTableName);
|
|
91
|
+
done("3 db.primaryKeysSync", verifyKeys(rows3), JSON.stringify(rows3));
|
|
92
|
+
} catch(e) {
|
|
93
|
+
done("3 db.primaryKeysSync", false, e);
|
|
94
|
+
rows3 = [];
|
|
95
|
+
}
|
|
96
|
+
console.log("rows = ", rows3);
|
|
97
|
+
|
|
98
|
+
// 4 — async callback via ODBCStatement.primaryKeys()
|
|
99
|
+
db.conn.createStatement(function(err, stmt) {
|
|
100
|
+
if (err) { done("4 stmt.primaryKeys callback", false, err); return finish(); }
|
|
101
|
+
stmt.primaryKeys(null, schema, baseTableName, function(err, rows) {
|
|
102
|
+
var ok = !err && verifyKeys(rows);
|
|
103
|
+
done("4 stmt.primaryKeys callback", ok, err || JSON.stringify(rows));
|
|
104
|
+
console.log("rows = ", rows);
|
|
105
|
+
stmt.closeSync();
|
|
106
|
+
|
|
107
|
+
// 5 — async Promise via ODBCStatement.primaryKeys()
|
|
108
|
+
db.conn.createStatement(function(err, stmt) {
|
|
109
|
+
if (err) { done("5 stmt.primaryKeys Promise", false, err); return finish(); }
|
|
110
|
+
stmt.primaryKeys(null, schema, baseTableName).then(function(rows) {
|
|
111
|
+
done("5 stmt.primaryKeys Promise", verifyKeys(rows), JSON.stringify(rows));
|
|
112
|
+
console.log("rows = ", rows);
|
|
113
|
+
stmt.closeSync();
|
|
114
|
+
|
|
115
|
+
// 6 — sync via ODBCStatement.primaryKeysSync()
|
|
116
|
+
var stmt6 = db.conn.createStatementSync();
|
|
117
|
+
var rows6;
|
|
118
|
+
try {
|
|
119
|
+
rows6 = stmt6.primaryKeysSync(null, schema, baseTableName);
|
|
120
|
+
done("6 stmt.primaryKeysSync", verifyKeys(rows6), JSON.stringify(rows6));
|
|
121
|
+
} catch(e) {
|
|
122
|
+
done("6 stmt.primaryKeysSync", false, e);
|
|
123
|
+
rows6 = [];
|
|
124
|
+
}
|
|
125
|
+
console.log("rows = ", rows6);
|
|
126
|
+
stmt6.closeSync();
|
|
127
|
+
|
|
128
|
+
// 7 — error case: non-existent table should return empty array
|
|
129
|
+
var rows7;
|
|
130
|
+
try {
|
|
131
|
+
rows7 = db.primaryKeysSync(null, schema, "NONEXISTENT_TABLE_XYZ");
|
|
132
|
+
done("7 non-existent table - empty array", Array.isArray(rows7) && rows7.length === 0, JSON.stringify(rows7));
|
|
133
|
+
} catch(e) {
|
|
134
|
+
// some servers may throw; that is also acceptable
|
|
135
|
+
done("7 non-existent table - handled", true);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// === foreignKeys tests ===
|
|
139
|
+
|
|
140
|
+
// 8 — async callback via Database.foreignKeys() — specify both pk and fk table
|
|
141
|
+
db.foreignKeys(null, schema, basePkTableName, null, schema, baseFkTableName, function(err, rows) {
|
|
142
|
+
var ok = !err && verifyFKs(rows);
|
|
143
|
+
done("8 db.foreignKeys callback", ok, err || JSON.stringify(rows));
|
|
144
|
+
console.log("rows = ", rows);
|
|
145
|
+
|
|
146
|
+
// 9 — async Promise via Database.foreignKeys()
|
|
147
|
+
db.foreignKeys(null, schema, basePkTableName, null, schema, baseFkTableName).then(function(rows) {
|
|
148
|
+
done("9 db.foreignKeys Promise", verifyFKs(rows), JSON.stringify(rows));
|
|
149
|
+
console.log("rows = ", rows);
|
|
150
|
+
|
|
151
|
+
// 10 — sync via Database.foreignKeysSync()
|
|
152
|
+
var rows10;
|
|
153
|
+
try {
|
|
154
|
+
rows10 = db.foreignKeysSync(null, schema, basePkTableName, null, schema, baseFkTableName);
|
|
155
|
+
done("10 db.foreignKeysSync", verifyFKs(rows10), JSON.stringify(rows10));
|
|
156
|
+
} catch(e) {
|
|
157
|
+
done("10 db.foreignKeysSync", false, e);
|
|
158
|
+
rows10 = [];
|
|
159
|
+
}
|
|
160
|
+
console.log("rows = ", rows10);
|
|
161
|
+
|
|
162
|
+
// 11 — async callback via ODBCStatement.foreignKeys()
|
|
163
|
+
db.conn.createStatement(function(err, stmt11) {
|
|
164
|
+
if (err) { done("11 stmt.foreignKeys callback", false, err); return finish(); }
|
|
165
|
+
stmt11.foreignKeys(null, schema, basePkTableName, null, schema, baseFkTableName, function(err, rows) {
|
|
166
|
+
var ok = !err && verifyFKs(rows);
|
|
167
|
+
done("11 stmt.foreignKeys callback", ok, err || JSON.stringify(rows));
|
|
168
|
+
console.log("rows = ", rows);
|
|
169
|
+
stmt11.closeSync();
|
|
170
|
+
|
|
171
|
+
// 12 — async Promise via ODBCStatement.foreignKeys()
|
|
172
|
+
db.conn.createStatement(function(err, stmt12) {
|
|
173
|
+
if (err) { done("12 stmt.foreignKeys Promise", false, err); return finish(); }
|
|
174
|
+
stmt12.foreignKeys(null, schema, basePkTableName, null, schema, baseFkTableName).then(function(rows) {
|
|
175
|
+
done("12 stmt.foreignKeys Promise", verifyFKs(rows), JSON.stringify(rows));
|
|
176
|
+
console.log("rows = ", rows);
|
|
177
|
+
stmt12.closeSync();
|
|
178
|
+
|
|
179
|
+
// 13 — sync via ODBCStatement.foreignKeysSync()
|
|
180
|
+
var stmt13 = db.conn.createStatementSync();
|
|
181
|
+
var rows13;
|
|
182
|
+
try {
|
|
183
|
+
rows13 = stmt13.foreignKeysSync(null, schema, basePkTableName, null, schema, baseFkTableName);
|
|
184
|
+
done("13 stmt.foreignKeysSync", verifyFKs(rows13), JSON.stringify(rows13));
|
|
185
|
+
} catch(e) {
|
|
186
|
+
done("13 stmt.foreignKeysSync", false, e);
|
|
187
|
+
rows13 = [];
|
|
188
|
+
}
|
|
189
|
+
console.log("rows = ", rows13);
|
|
190
|
+
stmt13.closeSync();
|
|
191
|
+
|
|
192
|
+
// 14 — fkTable only (all FKs in child table regardless of pk table)
|
|
193
|
+
var rows14;
|
|
194
|
+
try {
|
|
195
|
+
rows14 = db.foreignKeysSync(null, null, null, null, schema, baseFkTableName);
|
|
196
|
+
var ok14 = Array.isArray(rows14) && rows14.length >= 1;
|
|
197
|
+
done("14 foreignKeysSync fkTable-only", ok14, JSON.stringify(rows14));
|
|
198
|
+
} catch(e) {
|
|
199
|
+
done("14 foreignKeysSync fkTable-only", false, e);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// 15 — non-existent tables should return empty array
|
|
203
|
+
var rows15;
|
|
204
|
+
try {
|
|
205
|
+
rows15 = db.foreignKeysSync(null, schema, "NONEXISTENT_XYZ", null, schema, "NONEXISTENT_XYZ");
|
|
206
|
+
done("15 non-existent tables - empty array", Array.isArray(rows15) && rows15.length === 0, JSON.stringify(rows15));
|
|
207
|
+
} catch(e) {
|
|
208
|
+
done("15 non-existent tables - handled", true);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
finish();
|
|
212
|
+
}).catch(function(e) {
|
|
213
|
+
done("12 stmt.foreignKeys Promise - no reject", false, e);
|
|
214
|
+
stmt12.closeSync();
|
|
215
|
+
finish();
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
}).catch(function(e) {
|
|
221
|
+
done("9 db.foreignKeys Promise - no reject", false, e);
|
|
222
|
+
finish();
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
}).catch(function(e) {
|
|
227
|
+
done("5 stmt.primaryKeys Promise - no reject", false, e);
|
|
228
|
+
stmt.closeSync();
|
|
229
|
+
finish();
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
}).catch(function(e) {
|
|
235
|
+
done("2 db.primaryKeys Promise - no reject", false, e);
|
|
236
|
+
finish();
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
function finish() {
|
|
241
|
+
dropTable(db);
|
|
242
|
+
db.closeSync();
|
|
243
|
+
console.log("\nResults: " + passed + " passed, " + failed + " failed.");
|
|
244
|
+
if (failed) process.exit(1);
|
|
245
|
+
}
|
|
246
|
+
});
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
var common = require("./common")
|
|
2
|
+
, ibmdb = require("../")
|
|
3
|
+
, assert = require("assert")
|
|
4
|
+
, cn = common.connectionString
|
|
5
|
+
;
|
|
6
|
+
|
|
7
|
+
var procName = "MYPROC3";
|
|
8
|
+
var baseProcName = procName;
|
|
9
|
+
var schema = null;
|
|
10
|
+
|
|
11
|
+
if(common.connectionObject.CURRENTSCHEMA) {
|
|
12
|
+
schema = common.connectionObject.CURRENTSCHEMA;
|
|
13
|
+
procName = schema + "." + procName;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// --- helpers ---------------------------------------------------------------
|
|
17
|
+
function dropProc(db) {
|
|
18
|
+
try { db.querySync("DROP PROCEDURE " + procName); } catch(e) {}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function createProc(db) {
|
|
22
|
+
// Create a simple stored procedure for testing
|
|
23
|
+
db.querySync(
|
|
24
|
+
"CREATE PROCEDURE " + procName + " (IN p_input INTEGER, OUT p_output INTEGER) " +
|
|
25
|
+
"LANGUAGE SQL " +
|
|
26
|
+
"BEGIN " +
|
|
27
|
+
" SET p_output = p_input * 2; " +
|
|
28
|
+
"END"
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// --- main ------------------------------------------------------------------
|
|
33
|
+
ibmdb.open(cn, function(err, db) {
|
|
34
|
+
if (err) { console.log("Connection error:", err); return; }
|
|
35
|
+
|
|
36
|
+
dropProc(db);
|
|
37
|
+
createProc(db);
|
|
38
|
+
|
|
39
|
+
var passed = 0, failed = 0;
|
|
40
|
+
|
|
41
|
+
function done(label, ok, detail) {
|
|
42
|
+
if (ok) {
|
|
43
|
+
console.log("PASS:", label);
|
|
44
|
+
passed++;
|
|
45
|
+
} else {
|
|
46
|
+
console.log("FAIL:", label, detail || "");
|
|
47
|
+
failed++;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function verifyProcs(rows) {
|
|
52
|
+
return Array.isArray(rows) &&
|
|
53
|
+
rows.length >= 1 &&
|
|
54
|
+
rows.some(function(r) {
|
|
55
|
+
return r.PROCEDURE_NAME === baseProcName ||
|
|
56
|
+
r.PROCEDURE_NAME === baseProcName.toUpperCase();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function verifyProcCols(rows) {
|
|
61
|
+
// Should have 2 parameters: P_INPUT (IN) and P_OUTPUT (OUT)
|
|
62
|
+
return Array.isArray(rows) &&
|
|
63
|
+
rows.length === 2 &&
|
|
64
|
+
rows.some(function(r) {
|
|
65
|
+
return (r.COLUMN_NAME === "P_INPUT" || r.COLUMN_NAME === "p_input");
|
|
66
|
+
}) &&
|
|
67
|
+
rows.some(function(r) {
|
|
68
|
+
return (r.COLUMN_NAME === "P_OUTPUT" || r.COLUMN_NAME === "p_output");
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// 1 — async callback via Database.procedures()
|
|
73
|
+
db.procedures(null, schema, baseProcName, function(err, rows) {
|
|
74
|
+
var ok = !err && verifyProcs(rows);
|
|
75
|
+
done("1 db.procedures callback", ok, err || JSON.stringify(rows));
|
|
76
|
+
console.log("rows = ", rows);
|
|
77
|
+
|
|
78
|
+
// 2 — async Promise via Database.procedures()
|
|
79
|
+
db.procedures(null, schema, baseProcName).then(function(rows) {
|
|
80
|
+
var ok = verifyProcs(rows);
|
|
81
|
+
done("2 db.procedures Promise", ok, JSON.stringify(rows));
|
|
82
|
+
console.log("rows = ", rows);
|
|
83
|
+
|
|
84
|
+
// 3 — sync via Database.proceduresSync()
|
|
85
|
+
var rows3;
|
|
86
|
+
try {
|
|
87
|
+
rows3 = db.proceduresSync(null, schema, baseProcName);
|
|
88
|
+
done("3 db.proceduresSync", verifyProcs(rows3), JSON.stringify(rows3));
|
|
89
|
+
} catch(e) {
|
|
90
|
+
done("3 db.proceduresSync", false, e);
|
|
91
|
+
rows3 = [];
|
|
92
|
+
}
|
|
93
|
+
console.log("rows = ", rows3);
|
|
94
|
+
|
|
95
|
+
// 4 — async callback via ODBCStatement.procedures()
|
|
96
|
+
db.conn.createStatement(function(err, stmt) {
|
|
97
|
+
if (err) { done("4 stmt.procedures callback", false, err); return finish(); }
|
|
98
|
+
stmt.procedures(null, schema, baseProcName, function(err, rows) {
|
|
99
|
+
var ok = !err && verifyProcs(rows);
|
|
100
|
+
done("4 stmt.procedures callback", ok, err || JSON.stringify(rows));
|
|
101
|
+
console.log("rows = ", rows);
|
|
102
|
+
stmt.closeSync();
|
|
103
|
+
|
|
104
|
+
// 5 — async Promise via ODBCStatement.procedures()
|
|
105
|
+
db.conn.createStatement(function(err, stmt) {
|
|
106
|
+
if (err) { done("5 stmt.procedures Promise", false, err); return finish(); }
|
|
107
|
+
stmt.procedures(null, schema, baseProcName).then(function(rows) {
|
|
108
|
+
var ok = verifyProcs(rows);
|
|
109
|
+
done("5 stmt.procedures Promise", ok, JSON.stringify(rows));
|
|
110
|
+
console.log("rows = ", rows);
|
|
111
|
+
stmt.closeSync();
|
|
112
|
+
|
|
113
|
+
// 6 — sync via ODBCStatement.proceduresSync()
|
|
114
|
+
var stmt6 = db.conn.createStatementSync();
|
|
115
|
+
var rows6;
|
|
116
|
+
try {
|
|
117
|
+
rows6 = stmt6.proceduresSync(null, schema, baseProcName);
|
|
118
|
+
done("6 stmt.proceduresSync", verifyProcs(rows6), JSON.stringify(rows6));
|
|
119
|
+
} catch(e) {
|
|
120
|
+
done("6 stmt.proceduresSync", false, e);
|
|
121
|
+
rows6 = [];
|
|
122
|
+
}
|
|
123
|
+
console.log("rows = ", rows6);
|
|
124
|
+
stmt6.closeSync();
|
|
125
|
+
|
|
126
|
+
// 7 — test with wildcard pattern (%)
|
|
127
|
+
var rows7;
|
|
128
|
+
try {
|
|
129
|
+
rows7 = db.proceduresSync(null, schema, "MYPROC%");
|
|
130
|
+
var ok7 = Array.isArray(rows7) && rows7.length >= 1;
|
|
131
|
+
done("7 wildcard pattern", ok7, JSON.stringify(rows7));
|
|
132
|
+
} catch(e) {
|
|
133
|
+
done("7 wildcard pattern", false, e);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// 8 — non-existent procedure should return empty array
|
|
137
|
+
var rows8;
|
|
138
|
+
try {
|
|
139
|
+
rows8 = db.proceduresSync(null, schema, "NONEXISTENT_PROC_XYZ");
|
|
140
|
+
done("8 non-existent procedure - empty array", Array.isArray(rows8) && rows8.length === 0, JSON.stringify(rows8));
|
|
141
|
+
} catch(e) {
|
|
142
|
+
// some servers may throw; that is also acceptable
|
|
143
|
+
done("8 non-existent procedure - handled", true);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// === procedureColumns tests ===
|
|
147
|
+
|
|
148
|
+
// 9 — async callback via Database.procedureColumns()
|
|
149
|
+
db.procedureColumns(null, schema, baseProcName, "%", function(err, rows) {
|
|
150
|
+
var ok = !err && verifyProcCols(rows);
|
|
151
|
+
done("9 db.procedureColumns callback", ok, err || JSON.stringify(rows));
|
|
152
|
+
console.log("procedureColumns rows = ", rows);
|
|
153
|
+
|
|
154
|
+
// 10 — async Promise via Database.procedureColumns()
|
|
155
|
+
db.procedureColumns(null, schema, baseProcName, "%").then(function(rows) {
|
|
156
|
+
var ok = verifyProcCols(rows);
|
|
157
|
+
done("10 db.procedureColumns Promise", ok, JSON.stringify(rows));
|
|
158
|
+
console.log("procedureColumns rows = ", rows);
|
|
159
|
+
|
|
160
|
+
// 11 — sync via Database.procedureColumnsSync()
|
|
161
|
+
var rows11;
|
|
162
|
+
try {
|
|
163
|
+
rows11 = db.procedureColumnsSync(null, schema, baseProcName, "%");
|
|
164
|
+
done("11 db.procedureColumnsSync", verifyProcCols(rows11), JSON.stringify(rows11));
|
|
165
|
+
} catch(e) {
|
|
166
|
+
done("11 db.procedureColumnsSync", false, e);
|
|
167
|
+
rows11 = [];
|
|
168
|
+
}
|
|
169
|
+
console.log("procedureColumns rows = ", rows11);
|
|
170
|
+
|
|
171
|
+
// 12 — async callback via ODBCStatement.procedureColumns()
|
|
172
|
+
db.conn.createStatement(function(err, stmt) {
|
|
173
|
+
if (err) { done("12 stmt.procedureColumns callback", false, err); return finish(); }
|
|
174
|
+
stmt.procedureColumns(null, schema, baseProcName, "%", function(err, rows) {
|
|
175
|
+
var ok = !err && verifyProcCols(rows);
|
|
176
|
+
done("12 stmt.procedureColumns callback", ok, err || JSON.stringify(rows));
|
|
177
|
+
console.log("procedureColumns rows = ", rows);
|
|
178
|
+
stmt.closeSync();
|
|
179
|
+
|
|
180
|
+
// 13 — async Promise via ODBCStatement.procedureColumns()
|
|
181
|
+
db.conn.createStatement(function(err, stmt) {
|
|
182
|
+
if (err) { done("13 stmt.procedureColumns Promise", false, err); return finish(); }
|
|
183
|
+
stmt.procedureColumns(null, schema, baseProcName, "%").then(function(rows) {
|
|
184
|
+
var ok = verifyProcCols(rows);
|
|
185
|
+
done("13 stmt.procedureColumns Promise", ok, JSON.stringify(rows));
|
|
186
|
+
console.log("procedureColumns rows = ", rows);
|
|
187
|
+
stmt.closeSync();
|
|
188
|
+
|
|
189
|
+
// 14 — sync via ODBCStatement.procedureColumnsSync()
|
|
190
|
+
var stmt14 = db.conn.createStatementSync();
|
|
191
|
+
var rows14;
|
|
192
|
+
try {
|
|
193
|
+
rows14 = stmt14.procedureColumnsSync(null, schema, baseProcName, "%");
|
|
194
|
+
done("14 stmt.procedureColumnsSync", verifyProcCols(rows14), JSON.stringify(rows14));
|
|
195
|
+
} catch(e) {
|
|
196
|
+
done("14 stmt.procedureColumnsSync", false, e);
|
|
197
|
+
rows14 = [];
|
|
198
|
+
}
|
|
199
|
+
console.log("procedureColumns rows = ", rows14);
|
|
200
|
+
stmt14.closeSync();
|
|
201
|
+
|
|
202
|
+
finish();
|
|
203
|
+
|
|
204
|
+
}).catch(function(err) {
|
|
205
|
+
done("13 stmt.procedureColumns Promise", false, err);
|
|
206
|
+
stmt.closeSync();
|
|
207
|
+
finish();
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
}).catch(function(err) {
|
|
214
|
+
done("10 db.procedureColumns Promise", false, err);
|
|
215
|
+
finish();
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
}).catch(function(err) {
|
|
220
|
+
done("5 stmt.procedures Promise", false, err);
|
|
221
|
+
stmt.closeSync();
|
|
222
|
+
finish();
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
}).catch(function(err) {
|
|
229
|
+
done("2 db.procedures Promise", false, err);
|
|
230
|
+
finish();
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
function finish() {
|
|
235
|
+
dropProc(db);
|
|
236
|
+
db.closeSync();
|
|
237
|
+
console.log("\n-----------------------------------------");
|
|
238
|
+
console.log("Passed:", passed, "/ Failed:", failed);
|
|
239
|
+
if (failed > 0) {
|
|
240
|
+
process.exit(1);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
});
|