@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.
Files changed (282) hide show
  1. package/README.md +12 -10
  2. package/lib/Db2PluginLifeCycle.d.ts +11 -9
  3. package/lib/Db2PluginLifeCycle.js +18 -13
  4. package/lib/Db2PluginLifeCycle.js.map +1 -1
  5. package/node_modules/adm-zip/adm-zip.js +32 -6
  6. package/node_modules/adm-zip/headers/entryHeader.js +13 -1
  7. package/node_modules/adm-zip/methods/inflater.js +33 -3
  8. package/node_modules/adm-zip/package.json +2 -2
  9. package/node_modules/adm-zip/util/errors.js +3 -0
  10. package/node_modules/adm-zip/util/utils.js +102 -14
  11. package/node_modules/adm-zip/zipEntry.js +43 -18
  12. package/node_modules/adm-zip/zipFile.js +10 -0
  13. package/node_modules/axios/CHANGELOG.md +62 -0
  14. package/node_modules/axios/README.md +236 -73
  15. package/node_modules/axios/dist/axios.js +1308 -357
  16. package/node_modules/axios/dist/axios.min.js +3 -3
  17. package/node_modules/axios/dist/axios.min.js.map +1 -1
  18. package/node_modules/axios/dist/browser/axios.cjs +1443 -403
  19. package/node_modules/axios/dist/esm/axios.js +1443 -403
  20. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  21. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  22. package/node_modules/axios/dist/node/axios.cjs +1483 -348
  23. package/node_modules/axios/index.d.cts +24 -1
  24. package/node_modules/axios/index.d.ts +22 -1
  25. package/node_modules/axios/lib/adapters/fetch.js +136 -30
  26. package/node_modules/axios/lib/adapters/http.js +277 -74
  27. package/node_modules/axios/lib/adapters/xhr.js +172 -16
  28. package/node_modules/axios/lib/core/Axios.js +87 -27
  29. package/node_modules/axios/lib/core/AxiosError.js +59 -0
  30. package/node_modules/axios/lib/core/AxiosHeaders.js +17 -4
  31. package/node_modules/axios/lib/core/InterceptorManager.js +118 -8
  32. package/node_modules/axios/lib/core/assertParamsAcyclic.js +49 -0
  33. package/node_modules/axios/lib/core/buildFullPath.js +1 -13
  34. package/node_modules/axios/lib/core/createMultipartBody.js +37 -0
  35. package/node_modules/axios/lib/core/dispatchRequest.js +28 -2
  36. package/node_modules/axios/lib/core/mergeConfig.js +183 -120
  37. package/node_modules/axios/lib/core/methodList.js +17 -0
  38. package/node_modules/axios/lib/defaults/index.js +2 -1
  39. package/node_modules/axios/lib/defaults/transitional.js +1 -0
  40. package/node_modules/axios/lib/env/data.js +1 -1
  41. package/node_modules/axios/lib/helpers/AxiosTransformStream.js +11 -2
  42. package/node_modules/axios/lib/helpers/Http2Sessions.js +4 -1
  43. package/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
  44. package/node_modules/axios/lib/helpers/composeSignals.js +6 -3
  45. package/node_modules/axios/lib/helpers/cookies.js +30 -6
  46. package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +34 -7
  47. package/node_modules/axios/lib/helpers/formDataToBlob.js +113 -0
  48. package/node_modules/axios/lib/helpers/formDataToJSON.js +25 -1
  49. package/node_modules/axios/lib/helpers/fromDataURI.js +11 -4
  50. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +4 -9
  51. package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
  52. package/node_modules/axios/lib/helpers/parseHeaders.js +2 -1
  53. package/node_modules/axios/lib/helpers/parseProtocol.js +1 -1
  54. package/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
  55. package/node_modules/axios/lib/helpers/resolveConfig.js +20 -5
  56. package/node_modules/axios/lib/helpers/shouldBypassProxy.js +197 -6
  57. package/node_modules/axios/lib/helpers/throttle.js +3 -2
  58. package/node_modules/axios/lib/helpers/toFormData.js +14 -21
  59. package/node_modules/axios/lib/utils.js +192 -20
  60. package/node_modules/axios/package.json +1 -2
  61. package/node_modules/follow-redirects/README.md +27 -1
  62. package/node_modules/follow-redirects/index.js +11 -6
  63. package/node_modules/follow-redirects/package.json +1 -1
  64. package/node_modules/fs-extra/README.md +0 -1
  65. package/node_modules/fs-extra/lib/empty/index.js +4 -2
  66. package/node_modules/fs-extra/lib/util/stat.js +12 -2
  67. package/node_modules/fs-extra/package.json +1 -1
  68. package/node_modules/ibm_db/APIDocumentation.md +2883 -2024
  69. package/node_modules/ibm_db/LICENSE +23 -23
  70. package/node_modules/ibm_db/README.md +735 -735
  71. package/node_modules/ibm_db/binding.gyp +99 -98
  72. package/node_modules/ibm_db/installer/driverInstall.js +984 -958
  73. package/node_modules/ibm_db/installer/ifx.sh +38 -38
  74. package/node_modules/ibm_db/installer/setenv.sh +23 -23
  75. package/node_modules/ibm_db/installer/testODBCConnection.bat +51 -51
  76. package/node_modules/ibm_db/installer/testODBCConnection.sh +61 -61
  77. package/node_modules/ibm_db/lib/climacros.js +431 -431
  78. package/node_modules/ibm_db/lib/odbc.js +4293 -3487
  79. package/node_modules/ibm_db/lib/simple-queue.js +41 -41
  80. package/node_modules/ibm_db/package.json +70 -70
  81. package/node_modules/ibm_db/src/odbc.cpp +1495 -1396
  82. package/node_modules/ibm_db/src/odbc.h +477 -473
  83. package/node_modules/ibm_db/src/odbc_connection.cpp +1762 -1612
  84. package/node_modules/ibm_db/src/odbc_connection.h +228 -215
  85. package/node_modules/ibm_db/src/odbc_result.cpp +1547 -1547
  86. package/node_modules/ibm_db/src/odbc_result.h +152 -152
  87. package/node_modules/ibm_db/src/odbc_statement.cpp +2047 -861
  88. package/node_modules/ibm_db/src/odbc_statement.h +257 -135
  89. package/node_modules/ibm_db/src/strptime.c +389 -389
  90. package/node_modules/ibm_db/src/strptime.h +46 -46
  91. package/node_modules/ibm_db/test/README +23 -23
  92. package/node_modules/ibm_db/test/bench-insert.js +62 -62
  93. package/node_modules/ibm_db/test/bench-insertBatch10.js +74 -74
  94. package/node_modules/ibm_db/test/bench-insertBatch100.js +75 -75
  95. package/node_modules/ibm_db/test/bench-insertBatch1000.js +75 -75
  96. package/node_modules/ibm_db/test/bench-insertBatch10000.js +75 -75
  97. package/node_modules/ibm_db/test/bench-prepare-bind-execute-closeSync.js +60 -60
  98. package/node_modules/ibm_db/test/bench-prepare-bind-executeNonQuery.js +53 -53
  99. package/node_modules/ibm_db/test/bench-prepare-bindSync-execute-closeSync.js +50 -50
  100. package/node_modules/ibm_db/test/bench-prepare-bindSync-executeNonQuery.js +48 -48
  101. package/node_modules/ibm_db/test/bench-prepare-execute-closeSync.js +51 -51
  102. package/node_modules/ibm_db/test/bench-prepare-executeNonQuery.js +47 -47
  103. package/node_modules/ibm_db/test/bench-prepare-not.js +43 -43
  104. package/node_modules/ibm_db/test/bench-query-fetch.js +59 -59
  105. package/node_modules/ibm_db/test/bench-query-fetchAll.js +49 -49
  106. package/node_modules/ibm_db/test/bench-query-fetchAllSync.js +43 -43
  107. package/node_modules/ibm_db/test/bench-query.js +40 -40
  108. package/node_modules/ibm_db/test/bench-querySync-fetchArray.js +28 -28
  109. package/node_modules/ibm_db/test/bench-querySync.js +29 -29
  110. package/node_modules/ibm_db/test/common.d.ts +10 -10
  111. package/node_modules/ibm_db/test/common.js +127 -127
  112. package/node_modules/ibm_db/test/config.json +7 -7
  113. package/node_modules/ibm_db/test/config.zos.json +4 -4
  114. package/node_modules/ibm_db/test/data/sample1.txt +9 -9
  115. package/node_modules/ibm_db/test/data/trc.fmt +30114 -30114
  116. package/node_modules/ibm_db/test/nodeEE-leak-huge-query.js +152 -152
  117. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-multiple-connections.js +148 -148
  118. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-pool-connections.js +154 -154
  119. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query.js +133 -133
  120. package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall-multiple-connections.js +174 -174
  121. package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall.js +169 -169
  122. package/node_modules/ibm_db/test/nodeEE-stress-mixed-query-multiple-connections.js +159 -159
  123. package/node_modules/ibm_db/test/nodeEE-stress-mixed-query.js +148 -148
  124. package/node_modules/ibm_db/test/odbc-bench.c +123 -123
  125. package/node_modules/ibm_db/test/perfTest.js +53 -53
  126. package/node_modules/ibm_db/test/quick-example.sh +30 -30
  127. package/node_modules/ibm_db/test/quick-example.ts +80 -80
  128. package/node_modules/ibm_db/test/run-bench.js +96 -96
  129. package/node_modules/ibm_db/test/run-nodeEE.js +132 -132
  130. package/node_modules/ibm_db/test/run-tests.js +132 -138
  131. package/node_modules/ibm_db/test/sql-cli.js +28 -28
  132. package/node_modules/ibm_db/test/test-all-data-types.js +109 -109
  133. package/node_modules/ibm_db/test/test-array-insert.js +178 -178
  134. package/node_modules/ibm_db/test/test-async-await.js +105 -105
  135. package/node_modules/ibm_db/test/test-attributes.js +34 -34
  136. package/node_modules/ibm_db/test/test-bad-pool-connection-prepare-execute.js +57 -57
  137. package/node_modules/ibm_db/test/test-basic-test.js +138 -138
  138. package/node_modules/ibm_db/test/test-binary-array-insert.js +73 -73
  139. package/node_modules/ibm_db/test/test-blob-from-file.js +90 -90
  140. package/node_modules/ibm_db/test/test-blob-insert.js +144 -144
  141. package/node_modules/ibm_db/test/test-blob-stream-insert.js +321 -299
  142. package/node_modules/ibm_db/test/test-blob-to-file.js +370 -370
  143. package/node_modules/ibm_db/test/test-block-fetch.js +364 -364
  144. package/node_modules/ibm_db/test/test-blocking-issue210.js +123 -123
  145. package/node_modules/ibm_db/test/test-call-async.js +64 -64
  146. package/node_modules/ibm_db/test/test-call-stmt.js +53 -53
  147. package/node_modules/ibm_db/test/test-cancel.js +703 -0
  148. package/node_modules/ibm_db/test/test-chinese-char.js +59 -59
  149. package/node_modules/ibm_db/test/test-connection.js +306 -0
  150. package/node_modules/ibm_db/test/test-date.js +32 -32
  151. package/node_modules/ibm_db/test/test-dbclob.js +93 -93
  152. package/node_modules/ibm_db/test/test-decimals.js +135 -135
  153. package/node_modules/ibm_db/test/test-describe-metadata.js +148 -0
  154. package/node_modules/ibm_db/test/test-executeFile.js +167 -167
  155. package/node_modules/ibm_db/test/test-executeFileSync.js +85 -85
  156. package/node_modules/ibm_db/test/test-fetch-apis.js +146 -146
  157. package/node_modules/ibm_db/test/test-fetchN.js +130 -130
  158. package/node_modules/ibm_db/test/test-getinfo.js +197 -197
  159. package/node_modules/ibm_db/test/test-ibm-db-issue14.js +58 -58
  160. package/node_modules/ibm_db/test/test-ibm-db-issue17.js +54 -54
  161. package/node_modules/ibm_db/test/test-ibm-db-issue18.js +54 -54
  162. package/node_modules/ibm_db/test/test-issue-1059-fetchAll-undefined.js +67 -67
  163. package/node_modules/ibm_db/test/test-issue-1080-array-blob-insert.js +40 -0
  164. package/node_modules/ibm_db/test/test-issue-54.js +39 -39
  165. package/node_modules/ibm_db/test/test-issue-get-column-value-2.js +44 -44
  166. package/node_modules/ibm_db/test/test-issue211.js +80 -80
  167. package/node_modules/ibm_db/test/test-issue253.js +39 -39
  168. package/node_modules/ibm_db/test/test-max-pool-size.js +96 -96
  169. package/node_modules/ibm_db/test/test-memory-leaks-new-objects.js +32 -32
  170. package/node_modules/ibm_db/test/test-multi-open-query-close.js +75 -75
  171. package/node_modules/ibm_db/test/test-param-put-data.js +713 -0
  172. package/node_modules/ibm_db/test/test-pool-idle-connection.js +72 -72
  173. package/node_modules/ibm_db/test/test-pool-operations.js +325 -0
  174. package/node_modules/ibm_db/test/test-pool-stale-connections.js +111 -111
  175. package/node_modules/ibm_db/test/test-pool-uncommited.js +33 -33
  176. package/node_modules/ibm_db/test/test-prepare-execute.js +339 -0
  177. package/node_modules/ibm_db/test/test-prepareSync-multiple-execution.js +93 -93
  178. package/node_modules/ibm_db/test/test-primary-foreign-keys.js +246 -0
  179. package/node_modules/ibm_db/test/test-procedures.js +243 -0
  180. package/node_modules/ibm_db/test/test-promise-all-data-types.js +42 -42
  181. package/node_modules/ibm_db/test/test-query-operations.js +405 -0
  182. package/node_modules/ibm_db/test/test-quick-example.js +25 -25
  183. package/node_modules/ibm_db/test/test-row-array-insert.js +167 -167
  184. package/node_modules/ibm_db/test/test-sp-array.js +54 -54
  185. package/node_modules/ibm_db/test/test-sp-dbc-6000.js +88 -88
  186. package/node_modules/ibm_db/test/test-sp-memleak.js +136 -136
  187. package/node_modules/ibm_db/test/test-sp-resultset-execute.js +269 -269
  188. package/node_modules/ibm_db/test/test-sp-resultset.js +228 -228
  189. package/node_modules/ibm_db/test/test-transactions.js +261 -0
  190. package/node_modules/ibm_db/test/test-typescript.js +48 -48
  191. package/node_modules/ibm_db/test/test-xml-datatype.js +70 -70
  192. package/node_modules/ibm_db/test/testWebApp.js +56 -56
  193. package/node_modules/ibm_db/test/trace +51 -51
  194. package/node_modules/ibm_db/test/typescript-apis-test.js +978 -978
  195. package/node_modules/ibm_db/test/webapp.html +17 -17
  196. package/node_modules/ibm_db/test/webapp.js +79 -79
  197. package/node_modules/ibm_db/typescript/README.md +28 -28
  198. package/node_modules/ibm_db/typescript/dist/Database.d.ts +26 -0
  199. package/node_modules/ibm_db/typescript/dist/ODBCStatement.d.ts +93 -0
  200. package/node_modules/string_decoder/node_modules/safe-buffer/LICENSE +21 -0
  201. package/node_modules/string_decoder/node_modules/safe-buffer/README.md +584 -0
  202. package/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts +187 -0
  203. package/node_modules/string_decoder/node_modules/safe-buffer/index.js +62 -0
  204. package/node_modules/string_decoder/node_modules/safe-buffer/package.json +37 -0
  205. package/node_modules/which-typed-array/CHANGELOG.md +14 -0
  206. package/node_modules/which-typed-array/README.md +0 -2
  207. package/node_modules/which-typed-array/index.d.ts +288 -11
  208. package/node_modules/which-typed-array/index.js +6 -7
  209. package/node_modules/which-typed-array/package.json +12 -11
  210. package/package.json +10 -11
  211. package/node_modules/ibm_db/test/disabled/test-binding-statement-rebinding.js +0 -59
  212. package/node_modules/ibm_db/test/disabled/test-open-dont-close.js +0 -12
  213. package/node_modules/ibm_db/test/disabled/test-param-select-with-booleans-only.js +0 -21
  214. package/node_modules/ibm_db/test/disabled/test-param-select-with-decimals-only.js +0 -20
  215. package/node_modules/ibm_db/test/disabled/test-param-select-with-null.js +0 -21
  216. package/node_modules/ibm_db/test/disabled/test-param-select-with-nulls-mixed.js +0 -23
  217. package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-mixed.js +0 -22
  218. package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-only.js +0 -24
  219. package/node_modules/ibm_db/test/disabled/test-param-select-with-strings-only.js +0 -23
  220. package/node_modules/ibm_db/test/disabled/test-param-select-with-unicode.js +0 -15
  221. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-closeSync.js +0 -62
  222. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-error.js +0 -49
  223. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-long-string.js +0 -63
  224. package/node_modules/ibm_db/test/disabled/test-prepare-bind-executeNonQuery.js +0 -63
  225. package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-execute-closeSync.js +0 -46
  226. package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-executeNonQuery.js +0 -50
  227. package/node_modules/ibm_db/test/disabled/test-prepare.js +0 -34
  228. package/node_modules/ibm_db/test/disabled/test-prepareSync.js +0 -29
  229. package/node_modules/ibm_db/test/disabled/test-query-select-fetchAll.js +0 -23
  230. package/node_modules/ibm_db/test/disabled/test-query-select-fetchAllSync.js +0 -23
  231. package/node_modules/ibm_db/test/disabled/test-query-select-unicode.js +0 -15
  232. package/node_modules/ibm_db/test/disabled/test-querySync-select-unicode.js +0 -20
  233. package/node_modules/ibm_db/test/test-affected-rows.js +0 -55
  234. package/node_modules/ibm_db/test/test-bad-connection-string.js +0 -30
  235. package/node_modules/ibm_db/test/test-binding-connection-timeOut.js +0 -31
  236. package/node_modules/ibm_db/test/test-binding-statement-executeSync.js +0 -84
  237. package/node_modules/ibm_db/test/test-binding-transaction-commit.js +0 -79
  238. package/node_modules/ibm_db/test/test-binding-transaction-commitSync.js +0 -53
  239. package/node_modules/ibm_db/test/test-closed.js +0 -14
  240. package/node_modules/ibm_db/test/test-connection-object.js +0 -16
  241. package/node_modules/ibm_db/test/test-describe-column.js +0 -92
  242. package/node_modules/ibm_db/test/test-describe-database.js +0 -18
  243. package/node_modules/ibm_db/test/test-describe-table.js +0 -31
  244. package/node_modules/ibm_db/test/test-domains-open.js +0 -19
  245. package/node_modules/ibm_db/test/test-global-open-close.js +0 -11
  246. package/node_modules/ibm_db/test/test-instantiate-one-and-end.js +0 -9
  247. package/node_modules/ibm_db/test/test-multi-open-close.js +0 -45
  248. package/node_modules/ibm_db/test/test-multi-openSync-closeSync.js +0 -52
  249. package/node_modules/ibm_db/test/test-open-close.js +0 -29
  250. package/node_modules/ibm_db/test/test-open-connectTimeout.js +0 -33
  251. package/node_modules/ibm_db/test/test-openSync.js +0 -31
  252. package/node_modules/ibm_db/test/test-pool-close.js +0 -120
  253. package/node_modules/ibm_db/test/test-pool-connect.js +0 -36
  254. package/node_modules/ibm_db/test/test-pool-rollbackTransaction.js +0 -35
  255. package/node_modules/ibm_db/test/test-prepareSync-bad-sql.js +0 -34
  256. package/node_modules/ibm_db/test/test-promise-open-close.js +0 -33
  257. package/node_modules/ibm_db/test/test-query-create-table-fetchSync.js +0 -23
  258. package/node_modules/ibm_db/test/test-query-create-table.js +0 -12
  259. package/node_modules/ibm_db/test/test-query-drop-table.js +0 -13
  260. package/node_modules/ibm_db/test/test-query-insert.js +0 -38
  261. package/node_modules/ibm_db/test/test-query-select-fetch.js +0 -21
  262. package/node_modules/ibm_db/test/test-query-select-fetchMode-array.js +0 -17
  263. package/node_modules/ibm_db/test/test-query-select.js +0 -64
  264. package/node_modules/ibm_db/test/test-queryResult.js +0 -35
  265. package/node_modules/ibm_db/test/test-queryStream.js +0 -43
  266. package/node_modules/ibm_db/test/test-querySync-select-with-exception.js +0 -25
  267. package/node_modules/ibm_db/test/test-querySync-select.js +0 -28
  268. package/node_modules/ibm_db/test/test-require-and-end.js +0 -8
  269. package/node_modules/ibm_db/test/test-statement-close.js +0 -118
  270. package/node_modules/ibm_db/test/test-transaction-commit-sync.js +0 -54
  271. package/node_modules/ibm_db/test/test-transaction-commit.js +0 -79
  272. package/node_modules/which-typed-array/eslint.config.mjs +0 -12
  273. package/node_modules/which-typed-array/test/index.js +0 -105
  274. /package/node_modules/{tar-fs/node_modules/chownr → chownr}/LICENSE +0 -0
  275. /package/node_modules/{tar-fs/node_modules/chownr → chownr}/README.md +0 -0
  276. /package/node_modules/{tar-fs/node_modules/chownr → chownr}/chownr.js +0 -0
  277. /package/node_modules/{tar-fs/node_modules/chownr → chownr}/package.json +0 -0
  278. /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/.travis.yml +0 -0
  279. /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/LICENSE +0 -0
  280. /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/README.md +0 -0
  281. /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/lib/string_decoder.js +0 -0
  282. /package/node_modules/{tar-stream/node_modules/string_decoder → string_decoder}/package.json +0 -0
@@ -1,111 +1,111 @@
1
- var common = require("./common")
2
- , ibmdb = require("../")
3
- , pool = new ibmdb.Pool()
4
- , connectionString = common.connectionString
5
- , assert = require("assert")
6
- , connectCount = 10
7
- ;
8
-
9
- var i=0;
10
- var timeout = 2000; // Change it to 20000 when running single test file for actual testing.
11
- console.log("---------------------------------------------------------------");
12
- console.log("After first iteration and before start of second iteration,");
13
- console.log("restart the server using 'db2stop force; db2start' command.");
14
- console.log("---------------------------------------------------------------");
15
- //ibmdb.debug(true);
16
- pool.setMaxPoolSize(connectCount);
17
-
18
- var pool2 = new ibmdb.Pool();
19
- var timer2;
20
- var timer = setInterval(function() {
21
- var j = i;
22
- console.log('start'+j);
23
- if(i==3){
24
- pool2.close();
25
- clearInterval(timer);
26
- }
27
- pool2.open(connectionString, function (err, connection) {
28
- if (err) {
29
- console.log("Connection " + err.toString());
30
- }
31
-
32
- connection.beginTransactionSync();
33
- connection.query("select 1 from sysibm.sysdummy1",
34
- function (err, results) {
35
- if (err) {
36
- console.log(err.toString());
37
- assert.equal(err['message'].search("SQL30081N"),18);
38
- }else{
39
- console.log(JSON.stringify(results));
40
- assert.equal(JSON.stringify(results), '[{"1":1}]');
41
- connection.commitTransactionSync();
42
- }
43
- connection.close(function () {
44
- console.log('Connection closed');
45
- console.log('done'+j);
46
- if(j == 0) {
47
- console.log("<=== Now restart the server using " +
48
- "'db2stop force; db2start' command. ====>");
49
- }
50
- if( j == 3 ) openMultipleConnections();
51
- });
52
- });
53
- });
54
- i++;
55
- }, timeout); // Change timeout to 20000 for actual test.
56
-
57
- function openMultipleConnections()
58
- {
59
- console.log("\n Test 1:\n", "=======");
60
- console.log("Open", connectCount, "connections from pool.\n");
61
- var query = "select 'abc' as col from sysibm.sysdummy1";
62
- for (var x = 1; x <= connectCount; x++)
63
- {
64
- (function (connectionIndex) {
65
- console.error("Opening connection #", connectionIndex);
66
- pool.open(connectionString, function (err, connection) {
67
- if (err) {
68
- console.error("error: ", err.message);
69
- assert.equal(err.message, null);
70
- }
71
-
72
- console.log("Data for query" + connectionIndex + " = ",
73
- connection.querySync(query));
74
- connection.closeSync();
75
-
76
- if (connectionIndex == connectCount) {
77
- testStaleConnection();
78
- }
79
- });
80
- })(x);
81
- }
82
- }
83
-
84
- function testStaleConnection()
85
- {
86
- console.log("\n Test 2:\n", "=======");
87
- console.log("Test Stale Connections...\n");
88
- console.log("<=== Restart the server using " +
89
- "'db2stop force; db2start' command. ====>\n");
90
- var query = "select 1 from sysibm.sysdummy1";
91
- var result;
92
- setTimeout( function() {
93
- for (var x = 1; x <= connectCount; x++)
94
- {
95
- var connection = pool.openSync(connectionString);
96
- console.error("Got connection #", x, "from pool.");
97
-
98
- result = connection.querySync(query);
99
- if(result['message']) {
100
- console.log("error = ", result['message']);
101
- assert.equal(result['sqlcode'], -30081);
102
- } else {
103
- console.log("Data", x, "= ", JSON.stringify(result));
104
- assert.equal(JSON.stringify(result), '[{"1":1}]');
105
- }
106
- connection.closeSync();
107
- console.log('Connection', x, 'closed');
108
- }
109
- pool.closeSync();
110
- }, timeout); // Change timeout to 20000 for actual test.
111
- }
1
+ var common = require("./common")
2
+ , ibmdb = require("../")
3
+ , pool = new ibmdb.Pool()
4
+ , connectionString = common.connectionString
5
+ , assert = require("assert")
6
+ , connectCount = 10
7
+ ;
8
+
9
+ var i=0;
10
+ var timeout = 2000; // Change it to 20000 when running single test file for actual testing.
11
+ console.log("---------------------------------------------------------------");
12
+ console.log("After first iteration and before start of second iteration,");
13
+ console.log("restart the server using 'db2stop force; db2start' command.");
14
+ console.log("---------------------------------------------------------------");
15
+ //ibmdb.debug(true);
16
+ pool.setMaxPoolSize(connectCount);
17
+
18
+ var pool2 = new ibmdb.Pool();
19
+ var timer2;
20
+ var timer = setInterval(function() {
21
+ var j = i;
22
+ console.log('start'+j);
23
+ if(i==3){
24
+ pool2.close();
25
+ clearInterval(timer);
26
+ }
27
+ pool2.open(connectionString, function (err, connection) {
28
+ if (err) {
29
+ console.log("Connection " + err.toString());
30
+ }
31
+
32
+ connection.beginTransactionSync();
33
+ connection.query("select 1 from sysibm.sysdummy1",
34
+ function (err, results) {
35
+ if (err) {
36
+ console.log(err.toString());
37
+ assert.equal(err['message'].search("SQL30081N"),18);
38
+ }else{
39
+ console.log(JSON.stringify(results));
40
+ assert.equal(JSON.stringify(results), '[{"1":1}]');
41
+ connection.commitTransactionSync();
42
+ }
43
+ connection.close(function () {
44
+ console.log('Connection closed');
45
+ console.log('done'+j);
46
+ if(j == 0) {
47
+ console.log("<=== Now restart the server using " +
48
+ "'db2stop force; db2start' command. ====>");
49
+ }
50
+ if( j == 3 ) openMultipleConnections();
51
+ });
52
+ });
53
+ });
54
+ i++;
55
+ }, timeout); // Change timeout to 20000 for actual test.
56
+
57
+ function openMultipleConnections()
58
+ {
59
+ console.log("\n Test 1:\n", "=======");
60
+ console.log("Open", connectCount, "connections from pool.\n");
61
+ var query = "select 'abc' as col from sysibm.sysdummy1";
62
+ for (var x = 1; x <= connectCount; x++)
63
+ {
64
+ (function (connectionIndex) {
65
+ console.error("Opening connection #", connectionIndex);
66
+ pool.open(connectionString, function (err, connection) {
67
+ if (err) {
68
+ console.error("error: ", err.message);
69
+ assert.equal(err.message, null);
70
+ }
71
+
72
+ console.log("Data for query" + connectionIndex + " = ",
73
+ connection.querySync(query));
74
+ connection.closeSync();
75
+
76
+ if (connectionIndex == connectCount) {
77
+ testStaleConnection();
78
+ }
79
+ });
80
+ })(x);
81
+ }
82
+ }
83
+
84
+ function testStaleConnection()
85
+ {
86
+ console.log("\n Test 2:\n", "=======");
87
+ console.log("Test Stale Connections...\n");
88
+ console.log("<=== Restart the server using " +
89
+ "'db2stop force; db2start' command. ====>\n");
90
+ var query = "select 1 from sysibm.sysdummy1";
91
+ var result;
92
+ setTimeout( function() {
93
+ for (var x = 1; x <= connectCount; x++)
94
+ {
95
+ var connection = pool.openSync(connectionString);
96
+ console.error("Got connection #", x, "from pool.");
97
+
98
+ result = connection.querySync(query);
99
+ if(result['message']) {
100
+ console.log("error = ", result['message']);
101
+ assert.equal(result['sqlcode'], -30081);
102
+ } else {
103
+ console.log("Data", x, "= ", JSON.stringify(result));
104
+ assert.equal(JSON.stringify(result), '[{"1":1}]');
105
+ }
106
+ connection.closeSync();
107
+ console.log('Connection', x, 'closed');
108
+ }
109
+ pool.closeSync();
110
+ }, timeout); // Change timeout to 20000 for actual test.
111
+ }
@@ -1,33 +1,33 @@
1
- var common = require("./common")
2
- , ibmdb = require("../")
3
- , pool = new ibmdb.Pool()
4
- , cn = common.connectionString
5
-
6
-
7
- var request = function (err, conn) {
8
- if (err) {
9
- console.log(err);
10
- process.exit(-1);
11
- }
12
- try {
13
- conn.querySync("drop table mytab4");
14
- } catch(e) {};
15
- conn.beginTransaction(function (err) {
16
- if (err) {
17
- //could not begin a transaction for some reason.
18
- console.log(err);
19
- return conn.closeSync();
20
- }
21
- conn.querySync("create table mytab4 (c1 int, c2 varchar(20))");
22
- conn.querySync("insert into mytab4 values( 3, 'bimal')");
23
- console.log(conn.querySync("select * from mytab4"));
24
- conn.close(function(){});
25
- });
26
- }
27
-
28
- pool.open(cn, request);
29
- pool.open(cn, request);
30
- setTimeout(function() {
31
- pool.open(cn, request);
32
- pool.open(cn, request);
33
- }, 8000);
1
+ var common = require("./common")
2
+ , ibmdb = require("../")
3
+ , pool = new ibmdb.Pool()
4
+ , cn = common.connectionString
5
+
6
+
7
+ var request = function (err, conn) {
8
+ if (err) {
9
+ console.log(err);
10
+ process.exit(-1);
11
+ }
12
+ try {
13
+ conn.querySync("drop table mytab4");
14
+ } catch(e) {};
15
+ conn.beginTransaction(function (err) {
16
+ if (err) {
17
+ //could not begin a transaction for some reason.
18
+ console.log(err);
19
+ return conn.closeSync();
20
+ }
21
+ conn.querySync("create table mytab4 (c1 int, c2 varchar(20))");
22
+ conn.querySync("insert into mytab4 values( 3, 'bimal')");
23
+ console.log(conn.querySync("select * from mytab4"));
24
+ conn.close(function(){});
25
+ });
26
+ }
27
+
28
+ pool.open(cn, request);
29
+ pool.open(cn, request);
30
+ setTimeout(function() {
31
+ pool.open(cn, request);
32
+ pool.open(cn, request);
33
+ }, 8000);
@@ -0,0 +1,339 @@
1
+ // Consolidated prepare/execute test: prepare, bind, execute (sync/async),
2
+ // executeNonQuery, bad SQL, multiple execution, affected rows, statement close.
3
+ // Replaces: test-prepareSync-bad-sql, test-affected-rows, test-statement-close,
4
+ // test-binding-statement-executeSync.
5
+
6
+ var common = require("./common")
7
+ , ibmdb = require("../")
8
+ , assert = require("assert")
9
+ , os = require("os")
10
+ , cn = common.connectionString
11
+ ;
12
+
13
+ var passed = 0, failed = 0;
14
+
15
+ function ok(label) { passed++; console.log(" PASS: " + label); }
16
+ function fail(label, detail) { failed++; console.log(" FAIL: " + label + " " + (detail || "")); }
17
+
18
+ main();
19
+
20
+ async function main() {
21
+ var conn;
22
+ try {
23
+ conn = await ibmdb.open(cn);
24
+ } catch(e) {
25
+ console.log("Connection failed:", e);
26
+ process.exit(1);
27
+ }
28
+
29
+ await testPrepareSyncBadSql(conn);
30
+ await testPrepareBindExecuteSync(conn);
31
+ await testPrepareBindExecuteAsync(conn);
32
+ await testExecuteNonQuery(conn);
33
+ await testAffectedRows(conn);
34
+ await testMultipleExecution(conn);
35
+ await testStatementClose(conn);
36
+ await testBindingLevelStatement(conn);
37
+
38
+ await conn.close();
39
+ console.log("\n===== Prepare/Execute Tests: %d passed, %d failed =====", passed, failed);
40
+ process.exit(failed ? 1 : 0);
41
+ }
42
+
43
+ // prepareSync with bad SQL (deferred prepare may not throw until execute)
44
+ async function testPrepareSyncBadSql(conn) {
45
+ console.log("\n[testPrepareSyncBadSql]");
46
+ try {
47
+ var stmt = conn.prepareSync("asdf asdf asdf asdf");
48
+ // With deferred prepare on LUW, prepareSync may succeed
49
+ assert.equal(stmt.constructor.name, "ODBCStatement");
50
+
51
+ // Execute should fail
52
+ return new Promise(function(resolve) {
53
+ stmt.execute(function(err, result) {
54
+ try {
55
+ assert.ok(err, "execute of bad SQL should produce error");
56
+ ok("bad SQL: execute returns error after deferred prepare");
57
+ } catch(e) { fail("bad SQL execute", e.message); }
58
+
59
+ // executeNonQuery should also fail
60
+ stmt.executeNonQuery(function(err, count) {
61
+ try {
62
+ assert.ok(err, "executeNonQuery of bad SQL should produce error");
63
+ ok("bad SQL: executeNonQuery returns error");
64
+ } catch(e) { fail("bad SQL executeNonQuery", e.message); }
65
+ resolve();
66
+ });
67
+ });
68
+ });
69
+ } catch(e) {
70
+ // z/OS or non-deferred prepare: error at prepare time
71
+ ok("bad SQL: prepareSync throws on non-deferred prepare");
72
+ }
73
+ }
74
+
75
+ // Prepare + bindSync + executeSync
76
+ async function testPrepareBindExecuteSync(conn) {
77
+ console.log("\n[testPrepareBindExecuteSync]");
78
+ try {
79
+ await conn.query("drop table pbe_tab").catch(function() {});
80
+ await conn.query("create table pbe_tab (c1 int, c2 varchar(20))");
81
+
82
+ var stmt = conn.prepareSync("insert into pbe_tab values (?, ?)");
83
+ assert.equal(stmt.constructor.name, "ODBCStatement");
84
+
85
+ var r = stmt.bindSync([10, 'hello']);
86
+ assert.equal(r, true, "bindSync should return true");
87
+
88
+ var result = stmt.executeSync();
89
+ assert.equal(result.constructor.name, "ODBCResult");
90
+ result.closeSync();
91
+
92
+ var data = conn.querySync("select * from pbe_tab");
93
+ assert.deepEqual(data, [{ C1: 10, C2: 'hello' }]);
94
+ ok("prepareSync + bindSync + executeSync");
95
+
96
+ stmt.closeSync();
97
+ await conn.query("drop table pbe_tab");
98
+ } catch(e) { fail("prepare/bind/executeSync", e.message); }
99
+ }
100
+
101
+ // Prepare + execute with params (async callback)
102
+ async function testPrepareBindExecuteAsync(conn) {
103
+ console.log("\n[testPrepareBindExecuteAsync]");
104
+ try {
105
+ await conn.query("drop table pbe_async").catch(function() {});
106
+ await conn.query("create table pbe_async (c1 int, c2 varchar(20))");
107
+ } catch(e) { fail("setup pbe_async", e.message); return; }
108
+
109
+ return new Promise(function(resolve) {
110
+ conn.prepare("insert into pbe_async values (?, ?)", function(err, stmt) {
111
+ if (err) { fail("prepare async", err.message); resolve(); return; }
112
+
113
+ stmt.execute([5, 'world'], function(err, result) {
114
+ if (err) { fail("execute async", err.message); resolve(); return; }
115
+ result.closeSync();
116
+
117
+ var data = conn.querySync("select * from pbe_async");
118
+ try {
119
+ assert.deepEqual(data, [{ C1: 5, C2: 'world' }]);
120
+ ok("prepare + execute async with params");
121
+ } catch(e) { fail("async execute verify", e.message); }
122
+
123
+ stmt.closeSync();
124
+ conn.querySync("drop table pbe_async");
125
+ resolve();
126
+ });
127
+ });
128
+ });
129
+ }
130
+
131
+ // executeNonQuery (returns affected row count directly)
132
+ async function testExecuteNonQuery(conn) {
133
+ console.log("\n[testExecuteNonQuery]");
134
+ try {
135
+ await conn.query("drop table enq_tab").catch(function() {});
136
+ await conn.query("create table enq_tab (c1 int, c2 varchar(20))");
137
+
138
+ var stmt = await conn.prepare("insert into enq_tab values (?, ?)");
139
+ var count = await stmt.executeNonQuery([1, 'one']);
140
+ assert.equal(count, 1);
141
+ ok("executeNonQuery returns 1 for single insert");
142
+
143
+ count = await stmt.executeNonQuery([2, 'two']);
144
+ assert.equal(count, 1);
145
+
146
+ // executeNonQuerySync
147
+ var insertedRows = stmt.executeNonQuerySync([3, 'three']);
148
+ assert.equal(insertedRows, 1);
149
+ ok("executeNonQuerySync returns 1");
150
+
151
+ stmt.closeSync();
152
+ await conn.query("drop table enq_tab");
153
+ } catch(e) { fail("executeNonQuery", e.message); }
154
+ }
155
+
156
+ // getAffectedRowsSync after insert/update/delete
157
+ async function testAffectedRows(conn) {
158
+ console.log("\n[testAffectedRows]");
159
+ try {
160
+ await conn.query("drop table ar_tab").catch(function() {});
161
+ await conn.query("create table ar_tab (c1 int, c2 varchar(10))");
162
+ conn.querySync("insert into ar_tab values (1, 'a')");
163
+ conn.querySync("insert into ar_tab values (2, 'b')");
164
+ conn.querySync("insert into ar_tab values (3, 'c')");
165
+ } catch(e) { fail("affected rows setup", e.message); return; }
166
+
167
+ return new Promise(function(resolve) {
168
+ conn.prepare("update ar_tab set c2 = 'x' where c1 > ?", function(err, stmt) {
169
+ if (err) { fail("affected rows prepare", err.message); resolve(); return; }
170
+
171
+ var result = stmt.executeSync([1]);
172
+ var affected = result.getAffectedRowsSync();
173
+ try {
174
+ assert.equal(affected, 2);
175
+ ok("getAffectedRowsSync: update 2 rows");
176
+ } catch(e) { fail("affected rows update", e.message); }
177
+ result.closeSync();
178
+ stmt.closeSync();
179
+
180
+ conn.prepare("delete from ar_tab where c1 = ?", function(err, stmt) {
181
+ if (err) { fail("affected rows delete prepare", err.message); resolve(); return; }
182
+ stmt.execute([1], function(err, result) {
183
+ if (err) { fail("affected rows delete", err.message); resolve(); return; }
184
+ try {
185
+ assert.equal(result.getAffectedRowsSync(), 1);
186
+ ok("getAffectedRowsSync: delete 1 row");
187
+ } catch(e) { fail("affected rows delete verify", e.message); }
188
+ result.closeSync();
189
+ stmt.closeSync();
190
+ conn.querySync("drop table ar_tab");
191
+ resolve();
192
+ });
193
+ });
194
+ });
195
+ });
196
+ }
197
+
198
+ // Multiple executions of same prepared statement
199
+ async function testMultipleExecution(conn) {
200
+ console.log("\n[testMultipleExecution]");
201
+ try {
202
+ await conn.query("drop table multi_exec").catch(function() {});
203
+ await conn.query("create table multi_exec (c1 int, c2 varchar(20))");
204
+
205
+ var stmt = conn.prepareSync("insert into multi_exec values (?, ?)");
206
+ for (var i = 1; i <= 5; i++) {
207
+ stmt.bindSync([i, 'row' + i]);
208
+ var result = stmt.executeSync();
209
+ result.closeSync();
210
+ }
211
+
212
+ var data = conn.querySync("select * from multi_exec order by c1");
213
+ assert.equal(data.length, 5);
214
+ assert.equal(data[0].C1, 1);
215
+ assert.equal(data[4].C1, 5);
216
+ ok("multiple executions of same prepared statement");
217
+
218
+ stmt.closeSync();
219
+ await conn.query("drop table multi_exec");
220
+ } catch(e) { fail("multiple execution", e.message); }
221
+ }
222
+
223
+ // Statement close with different options (0, 1, 2, 3, and no-arg)
224
+ async function testStatementClose(conn) {
225
+ console.log("\n[testStatementClose]");
226
+ var closeOptions = [0, 1, 2, 3]; // SQL_CLOSE, SQL_DROP, SQL_UNBIND, SQL_RESET_PARAMS
227
+
228
+ for (var i = 0; i < closeOptions.length; i++) {
229
+ var opt = closeOptions[i];
230
+ try {
231
+ await conn.query("drop table stclose" + opt).catch(function() {});
232
+ await conn.query("create table stclose" + opt + " (col1 varchar(10))");
233
+ } catch(e) { fail("stmt close setup opt " + opt, e.message); continue; }
234
+
235
+ await (function(option) {
236
+ return new Promise(function(resolve) {
237
+ conn.prepare("insert into stclose" + option + " values(?)", function(err, stmt) {
238
+ if (err) { fail("stmt close prepare opt " + option, err.message); resolve(); return; }
239
+ stmt.execute(['test'], function(err, result) {
240
+ if (err) { console.log(err); }
241
+ conn.querySync("drop table stclose" + option);
242
+ stmt.close(option, function(err) {
243
+ try {
244
+ assert.equal(err, null);
245
+ ok("stmt.close(option=" + option + ") succeeds");
246
+ } catch(e) { fail("stmt.close option " + option, e.message); }
247
+ resolve();
248
+ });
249
+ });
250
+ });
251
+ });
252
+ })(opt);
253
+ }
254
+
255
+ // stmt.close() with no argument (default)
256
+ try {
257
+ await conn.query("drop table stclosedef").catch(function() {});
258
+ await conn.query("create table stclosedef (col1 varchar(10))");
259
+ } catch(e) { fail("stmt close default setup", e.message); return; }
260
+
261
+ await new Promise(function(resolve) {
262
+ conn.prepare("insert into stclosedef values(?)", function(err, stmt) {
263
+ if (err) { fail("stmt close default prepare", err.message); resolve(); return; }
264
+ stmt.execute(['test'], function(err, result) {
265
+ if (err) { console.log(err); }
266
+ conn.querySync("drop table stclosedef");
267
+ stmt.close(function(err) {
268
+ try {
269
+ assert.equal(err, null);
270
+ ok("stmt.close() with no option (default) succeeds");
271
+ } catch(e) { fail("stmt.close default", e.message); }
272
+ resolve();
273
+ });
274
+ });
275
+ });
276
+ });
277
+ }
278
+
279
+ // Binding-level: createStatement, prepareSync, bindSync, executeSync
280
+ async function testBindingLevelStatement(conn) {
281
+ console.log("\n[testBindingLevelStatement]");
282
+ return new Promise(function(resolve) {
283
+ var db = new ibmdb.ODBC();
284
+ db.createConnection(function(err, rawConn) {
285
+ if (err) { fail("binding createConnection", err.message); resolve(); return; }
286
+ rawConn.openSync(cn);
287
+
288
+ rawConn.createStatement(function(err, stmt) {
289
+ if (err) { fail("binding createStatement", err.message); rawConn.closeSync(); resolve(); return; }
290
+
291
+ // Execute without prepare should error
292
+ try {
293
+ stmt.executeSync();
294
+ fail("binding: executeSync without prepare should throw");
295
+ } catch(e) {
296
+ ok("binding: executeSync without prepare throws");
297
+ }
298
+
299
+ // bind with non-array should error
300
+ try {
301
+ stmt.bind("select 1 from sysibm.sysdummy1");
302
+ fail("binding: bind with string should throw");
303
+ } catch(e) {
304
+ assert.equal(e.message, "Argument 1 must be an Array");
305
+ ok("binding: bind with non-array throws correct error");
306
+ }
307
+
308
+ // Proper prepare + bind + execute
309
+ try {
310
+ var r = stmt.prepareSync("select 1 + ? as COL1 from SYSIBM.SYSDUMMY1");
311
+ assert.equal(r, true);
312
+
313
+ r = stmt.bindSync([2]);
314
+ assert.equal(r, true);
315
+
316
+ var result = stmt.executeSync();
317
+ assert.equal(result.constructor.name, "ODBCResult");
318
+
319
+ var data = result.fetchAllSync();
320
+ assert.deepEqual(data, [{ COL1: 3 }]);
321
+ result.closeSync();
322
+ ok("binding: prepare + bind + execute");
323
+
324
+ // Re-bind with different value
325
+ stmt.bindSync([7]);
326
+ result = stmt.executeSync();
327
+ data = result.fetchAllSync();
328
+ assert.deepEqual(data, [{ COL1: 8 }]);
329
+ result.closeSync();
330
+ ok("binding: re-bind with different value");
331
+ } catch(e) { fail("binding statement", e.message); }
332
+
333
+ stmt.closeSync();
334
+ rawConn.closeSync();
335
+ resolve();
336
+ });
337
+ });
338
+ });
339
+ }