@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.
Files changed (232) 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/axios/CHANGELOG.md +62 -0
  6. package/node_modules/axios/README.md +233 -5
  7. package/node_modules/axios/dist/axios.js +387 -89
  8. package/node_modules/axios/dist/axios.min.js +3 -3
  9. package/node_modules/axios/dist/axios.min.js.map +1 -1
  10. package/node_modules/axios/dist/browser/axios.cjs +458 -98
  11. package/node_modules/axios/dist/esm/axios.js +458 -98
  12. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  13. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  14. package/node_modules/axios/dist/node/axios.cjs +568 -116
  15. package/node_modules/axios/index.d.cts +4 -0
  16. package/node_modules/axios/index.d.ts +4 -0
  17. package/node_modules/axios/lib/adapters/fetch.js +64 -11
  18. package/node_modules/axios/lib/adapters/http.js +134 -50
  19. package/node_modules/axios/lib/adapters/xhr.js +52 -3
  20. package/node_modules/axios/lib/core/Axios.js +19 -14
  21. package/node_modules/axios/lib/core/InterceptorManager.js +107 -8
  22. package/node_modules/axios/lib/core/buildFullPath.js +1 -13
  23. package/node_modules/axios/lib/core/dispatchRequest.js +8 -2
  24. package/node_modules/axios/lib/core/mergeConfig.js +1 -1
  25. package/node_modules/axios/lib/core/methodList.js +17 -0
  26. package/node_modules/axios/lib/defaults/index.js +2 -1
  27. package/node_modules/axios/lib/env/data.js +1 -1
  28. package/node_modules/axios/lib/helpers/Http2Sessions.js +2 -0
  29. package/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
  30. package/node_modules/axios/lib/helpers/fromDataURI.js +5 -4
  31. package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
  32. package/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
  33. package/node_modules/axios/lib/helpers/resolveConfig.js +4 -2
  34. package/node_modules/axios/lib/helpers/shouldBypassProxy.js +182 -6
  35. package/node_modules/axios/lib/helpers/throttle.js +3 -2
  36. package/node_modules/axios/lib/helpers/toFormData.js +14 -21
  37. package/node_modules/axios/lib/utils.js +134 -13
  38. package/node_modules/axios/package.json +1 -1
  39. package/node_modules/ibm_db/APIDocumentation.md +2883 -2024
  40. package/node_modules/ibm_db/LICENSE +23 -23
  41. package/node_modules/ibm_db/README.md +735 -735
  42. package/node_modules/ibm_db/binding.gyp +99 -98
  43. package/node_modules/ibm_db/installer/driverInstall.js +984 -958
  44. package/node_modules/ibm_db/installer/ifx.sh +38 -38
  45. package/node_modules/ibm_db/installer/setenv.sh +23 -23
  46. package/node_modules/ibm_db/installer/testODBCConnection.bat +51 -51
  47. package/node_modules/ibm_db/installer/testODBCConnection.sh +61 -61
  48. package/node_modules/ibm_db/lib/climacros.js +431 -431
  49. package/node_modules/ibm_db/lib/odbc.js +4293 -3487
  50. package/node_modules/ibm_db/lib/simple-queue.js +41 -41
  51. package/node_modules/ibm_db/package.json +70 -70
  52. package/node_modules/ibm_db/src/odbc.cpp +1495 -1396
  53. package/node_modules/ibm_db/src/odbc.h +477 -473
  54. package/node_modules/ibm_db/src/odbc_connection.cpp +1762 -1612
  55. package/node_modules/ibm_db/src/odbc_connection.h +228 -215
  56. package/node_modules/ibm_db/src/odbc_result.cpp +1547 -1547
  57. package/node_modules/ibm_db/src/odbc_result.h +152 -152
  58. package/node_modules/ibm_db/src/odbc_statement.cpp +2047 -861
  59. package/node_modules/ibm_db/src/odbc_statement.h +257 -135
  60. package/node_modules/ibm_db/src/strptime.c +389 -389
  61. package/node_modules/ibm_db/src/strptime.h +46 -46
  62. package/node_modules/ibm_db/test/README +23 -23
  63. package/node_modules/ibm_db/test/bench-insert.js +62 -62
  64. package/node_modules/ibm_db/test/bench-insertBatch10.js +74 -74
  65. package/node_modules/ibm_db/test/bench-insertBatch100.js +75 -75
  66. package/node_modules/ibm_db/test/bench-insertBatch1000.js +75 -75
  67. package/node_modules/ibm_db/test/bench-insertBatch10000.js +75 -75
  68. package/node_modules/ibm_db/test/bench-prepare-bind-execute-closeSync.js +60 -60
  69. package/node_modules/ibm_db/test/bench-prepare-bind-executeNonQuery.js +53 -53
  70. package/node_modules/ibm_db/test/bench-prepare-bindSync-execute-closeSync.js +50 -50
  71. package/node_modules/ibm_db/test/bench-prepare-bindSync-executeNonQuery.js +48 -48
  72. package/node_modules/ibm_db/test/bench-prepare-execute-closeSync.js +51 -51
  73. package/node_modules/ibm_db/test/bench-prepare-executeNonQuery.js +47 -47
  74. package/node_modules/ibm_db/test/bench-prepare-not.js +43 -43
  75. package/node_modules/ibm_db/test/bench-query-fetch.js +59 -59
  76. package/node_modules/ibm_db/test/bench-query-fetchAll.js +49 -49
  77. package/node_modules/ibm_db/test/bench-query-fetchAllSync.js +43 -43
  78. package/node_modules/ibm_db/test/bench-query.js +40 -40
  79. package/node_modules/ibm_db/test/bench-querySync-fetchArray.js +28 -28
  80. package/node_modules/ibm_db/test/bench-querySync.js +29 -29
  81. package/node_modules/ibm_db/test/common.d.ts +10 -10
  82. package/node_modules/ibm_db/test/common.js +127 -127
  83. package/node_modules/ibm_db/test/config.json +7 -7
  84. package/node_modules/ibm_db/test/config.zos.json +4 -4
  85. package/node_modules/ibm_db/test/data/sample1.txt +9 -9
  86. package/node_modules/ibm_db/test/data/trc.fmt +30114 -30114
  87. package/node_modules/ibm_db/test/nodeEE-leak-huge-query.js +152 -152
  88. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-multiple-connections.js +148 -148
  89. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-pool-connections.js +154 -154
  90. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query.js +133 -133
  91. package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall-multiple-connections.js +174 -174
  92. package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall.js +169 -169
  93. package/node_modules/ibm_db/test/nodeEE-stress-mixed-query-multiple-connections.js +159 -159
  94. package/node_modules/ibm_db/test/nodeEE-stress-mixed-query.js +148 -148
  95. package/node_modules/ibm_db/test/odbc-bench.c +123 -123
  96. package/node_modules/ibm_db/test/perfTest.js +53 -53
  97. package/node_modules/ibm_db/test/quick-example.sh +30 -30
  98. package/node_modules/ibm_db/test/quick-example.ts +80 -80
  99. package/node_modules/ibm_db/test/run-bench.js +96 -96
  100. package/node_modules/ibm_db/test/run-nodeEE.js +132 -132
  101. package/node_modules/ibm_db/test/run-tests.js +132 -138
  102. package/node_modules/ibm_db/test/sql-cli.js +28 -28
  103. package/node_modules/ibm_db/test/test-all-data-types.js +109 -109
  104. package/node_modules/ibm_db/test/test-array-insert.js +178 -178
  105. package/node_modules/ibm_db/test/test-async-await.js +105 -105
  106. package/node_modules/ibm_db/test/test-attributes.js +34 -34
  107. package/node_modules/ibm_db/test/test-bad-pool-connection-prepare-execute.js +57 -57
  108. package/node_modules/ibm_db/test/test-basic-test.js +138 -138
  109. package/node_modules/ibm_db/test/test-binary-array-insert.js +73 -73
  110. package/node_modules/ibm_db/test/test-blob-from-file.js +90 -90
  111. package/node_modules/ibm_db/test/test-blob-insert.js +144 -144
  112. package/node_modules/ibm_db/test/test-blob-stream-insert.js +321 -299
  113. package/node_modules/ibm_db/test/test-blob-to-file.js +370 -370
  114. package/node_modules/ibm_db/test/test-block-fetch.js +364 -364
  115. package/node_modules/ibm_db/test/test-blocking-issue210.js +123 -123
  116. package/node_modules/ibm_db/test/test-call-async.js +64 -64
  117. package/node_modules/ibm_db/test/test-call-stmt.js +53 -53
  118. package/node_modules/ibm_db/test/test-cancel.js +703 -0
  119. package/node_modules/ibm_db/test/test-chinese-char.js +59 -59
  120. package/node_modules/ibm_db/test/test-connection.js +306 -0
  121. package/node_modules/ibm_db/test/test-date.js +32 -32
  122. package/node_modules/ibm_db/test/test-dbclob.js +93 -93
  123. package/node_modules/ibm_db/test/test-decimals.js +135 -135
  124. package/node_modules/ibm_db/test/test-describe-metadata.js +148 -0
  125. package/node_modules/ibm_db/test/test-executeFile.js +167 -167
  126. package/node_modules/ibm_db/test/test-executeFileSync.js +85 -85
  127. package/node_modules/ibm_db/test/test-fetch-apis.js +146 -146
  128. package/node_modules/ibm_db/test/test-fetchN.js +130 -130
  129. package/node_modules/ibm_db/test/test-getinfo.js +197 -197
  130. package/node_modules/ibm_db/test/test-ibm-db-issue14.js +58 -58
  131. package/node_modules/ibm_db/test/test-ibm-db-issue17.js +54 -54
  132. package/node_modules/ibm_db/test/test-ibm-db-issue18.js +54 -54
  133. package/node_modules/ibm_db/test/test-issue-1059-fetchAll-undefined.js +67 -67
  134. package/node_modules/ibm_db/test/test-issue-1080-array-blob-insert.js +40 -0
  135. package/node_modules/ibm_db/test/test-issue-54.js +39 -39
  136. package/node_modules/ibm_db/test/test-issue-get-column-value-2.js +44 -44
  137. package/node_modules/ibm_db/test/test-issue211.js +80 -80
  138. package/node_modules/ibm_db/test/test-issue253.js +39 -39
  139. package/node_modules/ibm_db/test/test-max-pool-size.js +96 -96
  140. package/node_modules/ibm_db/test/test-memory-leaks-new-objects.js +32 -32
  141. package/node_modules/ibm_db/test/test-multi-open-query-close.js +75 -75
  142. package/node_modules/ibm_db/test/test-param-put-data.js +713 -0
  143. package/node_modules/ibm_db/test/test-pool-idle-connection.js +72 -72
  144. package/node_modules/ibm_db/test/test-pool-operations.js +325 -0
  145. package/node_modules/ibm_db/test/test-pool-stale-connections.js +111 -111
  146. package/node_modules/ibm_db/test/test-pool-uncommited.js +33 -33
  147. package/node_modules/ibm_db/test/test-prepare-execute.js +339 -0
  148. package/node_modules/ibm_db/test/test-prepareSync-multiple-execution.js +93 -93
  149. package/node_modules/ibm_db/test/test-primary-foreign-keys.js +246 -0
  150. package/node_modules/ibm_db/test/test-procedures.js +243 -0
  151. package/node_modules/ibm_db/test/test-promise-all-data-types.js +42 -42
  152. package/node_modules/ibm_db/test/test-query-operations.js +405 -0
  153. package/node_modules/ibm_db/test/test-quick-example.js +25 -25
  154. package/node_modules/ibm_db/test/test-row-array-insert.js +167 -167
  155. package/node_modules/ibm_db/test/test-sp-array.js +54 -54
  156. package/node_modules/ibm_db/test/test-sp-dbc-6000.js +88 -88
  157. package/node_modules/ibm_db/test/test-sp-memleak.js +136 -136
  158. package/node_modules/ibm_db/test/test-sp-resultset-execute.js +269 -269
  159. package/node_modules/ibm_db/test/test-sp-resultset.js +228 -228
  160. package/node_modules/ibm_db/test/test-transactions.js +261 -0
  161. package/node_modules/ibm_db/test/test-typescript.js +48 -48
  162. package/node_modules/ibm_db/test/test-xml-datatype.js +70 -70
  163. package/node_modules/ibm_db/test/testWebApp.js +56 -56
  164. package/node_modules/ibm_db/test/trace +51 -51
  165. package/node_modules/ibm_db/test/typescript-apis-test.js +978 -978
  166. package/node_modules/ibm_db/test/webapp.html +17 -17
  167. package/node_modules/ibm_db/test/webapp.js +79 -79
  168. package/node_modules/ibm_db/typescript/README.md +28 -28
  169. package/node_modules/ibm_db/typescript/dist/Database.d.ts +26 -0
  170. package/node_modules/ibm_db/typescript/dist/ODBCStatement.d.ts +93 -0
  171. package/package.json +10 -6
  172. package/node_modules/ibm_db/test/disabled/test-binding-statement-rebinding.js +0 -59
  173. package/node_modules/ibm_db/test/disabled/test-open-dont-close.js +0 -12
  174. package/node_modules/ibm_db/test/disabled/test-param-select-with-booleans-only.js +0 -21
  175. package/node_modules/ibm_db/test/disabled/test-param-select-with-decimals-only.js +0 -20
  176. package/node_modules/ibm_db/test/disabled/test-param-select-with-null.js +0 -21
  177. package/node_modules/ibm_db/test/disabled/test-param-select-with-nulls-mixed.js +0 -23
  178. package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-mixed.js +0 -22
  179. package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-only.js +0 -24
  180. package/node_modules/ibm_db/test/disabled/test-param-select-with-strings-only.js +0 -23
  181. package/node_modules/ibm_db/test/disabled/test-param-select-with-unicode.js +0 -15
  182. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-closeSync.js +0 -62
  183. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-error.js +0 -49
  184. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-long-string.js +0 -63
  185. package/node_modules/ibm_db/test/disabled/test-prepare-bind-executeNonQuery.js +0 -63
  186. package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-execute-closeSync.js +0 -46
  187. package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-executeNonQuery.js +0 -50
  188. package/node_modules/ibm_db/test/disabled/test-prepare.js +0 -34
  189. package/node_modules/ibm_db/test/disabled/test-prepareSync.js +0 -29
  190. package/node_modules/ibm_db/test/disabled/test-query-select-fetchAll.js +0 -23
  191. package/node_modules/ibm_db/test/disabled/test-query-select-fetchAllSync.js +0 -23
  192. package/node_modules/ibm_db/test/disabled/test-query-select-unicode.js +0 -15
  193. package/node_modules/ibm_db/test/disabled/test-querySync-select-unicode.js +0 -20
  194. package/node_modules/ibm_db/test/test-affected-rows.js +0 -55
  195. package/node_modules/ibm_db/test/test-bad-connection-string.js +0 -30
  196. package/node_modules/ibm_db/test/test-binding-connection-timeOut.js +0 -31
  197. package/node_modules/ibm_db/test/test-binding-statement-executeSync.js +0 -84
  198. package/node_modules/ibm_db/test/test-binding-transaction-commit.js +0 -79
  199. package/node_modules/ibm_db/test/test-binding-transaction-commitSync.js +0 -53
  200. package/node_modules/ibm_db/test/test-closed.js +0 -14
  201. package/node_modules/ibm_db/test/test-connection-object.js +0 -16
  202. package/node_modules/ibm_db/test/test-describe-column.js +0 -92
  203. package/node_modules/ibm_db/test/test-describe-database.js +0 -18
  204. package/node_modules/ibm_db/test/test-describe-table.js +0 -31
  205. package/node_modules/ibm_db/test/test-domains-open.js +0 -19
  206. package/node_modules/ibm_db/test/test-global-open-close.js +0 -11
  207. package/node_modules/ibm_db/test/test-instantiate-one-and-end.js +0 -9
  208. package/node_modules/ibm_db/test/test-multi-open-close.js +0 -45
  209. package/node_modules/ibm_db/test/test-multi-openSync-closeSync.js +0 -52
  210. package/node_modules/ibm_db/test/test-open-close.js +0 -29
  211. package/node_modules/ibm_db/test/test-open-connectTimeout.js +0 -33
  212. package/node_modules/ibm_db/test/test-openSync.js +0 -31
  213. package/node_modules/ibm_db/test/test-pool-close.js +0 -120
  214. package/node_modules/ibm_db/test/test-pool-connect.js +0 -36
  215. package/node_modules/ibm_db/test/test-pool-rollbackTransaction.js +0 -35
  216. package/node_modules/ibm_db/test/test-prepareSync-bad-sql.js +0 -34
  217. package/node_modules/ibm_db/test/test-promise-open-close.js +0 -33
  218. package/node_modules/ibm_db/test/test-query-create-table-fetchSync.js +0 -23
  219. package/node_modules/ibm_db/test/test-query-create-table.js +0 -12
  220. package/node_modules/ibm_db/test/test-query-drop-table.js +0 -13
  221. package/node_modules/ibm_db/test/test-query-insert.js +0 -38
  222. package/node_modules/ibm_db/test/test-query-select-fetch.js +0 -21
  223. package/node_modules/ibm_db/test/test-query-select-fetchMode-array.js +0 -17
  224. package/node_modules/ibm_db/test/test-query-select.js +0 -64
  225. package/node_modules/ibm_db/test/test-queryResult.js +0 -35
  226. package/node_modules/ibm_db/test/test-queryStream.js +0 -43
  227. package/node_modules/ibm_db/test/test-querySync-select-with-exception.js +0 -25
  228. package/node_modules/ibm_db/test/test-querySync-select.js +0 -28
  229. package/node_modules/ibm_db/test/test-require-and-end.js +0 -8
  230. package/node_modules/ibm_db/test/test-statement-close.js +0 -118
  231. package/node_modules/ibm_db/test/test-transaction-commit-sync.js +0 -54
  232. package/node_modules/ibm_db/test/test-transaction-commit.js +0 -79
@@ -0,0 +1,261 @@
1
+ // Consolidated transaction test: beginTransaction, commit, rollback (async/sync),
2
+ // via Database API and via ODBC binding level.
3
+ // Replaces: test-transaction-commit, test-transaction-commit-sync,
4
+ // test-binding-transaction-commit, test-binding-transaction-commitSync.
5
+
6
+ var common = require("./common")
7
+ , ibmdb = require("../")
8
+ , assert = require("assert")
9
+ , cn = common.connectionString
10
+ ;
11
+
12
+ var passed = 0, failed = 0;
13
+
14
+ function ok(label) { passed++; console.log(" PASS: " + label); }
15
+ function fail(label, detail) { failed++; console.log(" FAIL: " + label + " " + (detail || "")); }
16
+
17
+ var TABLE = "TXN_TEST_TAB";
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
+ await setup(conn);
31
+ await testRollbackAsync(conn);
32
+ await testCommitAsync(conn);
33
+ await testRollbackSync(conn);
34
+ await testCommitSync(conn);
35
+ await testRollbackTransactionCallback(conn);
36
+ await testCommitTransactionCallback(conn);
37
+ await testBindingLevelTransaction(conn);
38
+ await testBindingLevelTransactionAsync(conn);
39
+ await cleanup(conn);
40
+
41
+ await conn.close();
42
+ console.log("\n===== Transaction Tests: %d passed, %d failed =====", passed, failed);
43
+ process.exit(failed ? 1 : 0);
44
+ }
45
+
46
+ async function setup(conn) {
47
+ await conn.query("drop table " + TABLE).catch(function() {});
48
+ await conn.query("create table " + TABLE + " (C1 INTEGER, C2 VARCHAR(20))");
49
+ }
50
+
51
+ async function cleanup(conn) {
52
+ await conn.query("drop table " + TABLE).catch(function() {});
53
+ }
54
+
55
+ async function clearTable(conn) {
56
+ conn.querySync("delete from " + TABLE);
57
+ }
58
+
59
+ // beginTransaction + endTransaction(rollback=true) via callback
60
+ async function testRollbackAsync(conn) {
61
+ console.log("\n[testRollbackAsync]");
62
+ await clearTable(conn);
63
+ return new Promise(function(resolve) {
64
+ conn.beginTransaction(function(err) {
65
+ if (err) { fail("beginTransaction async", err.message); resolve(); return; }
66
+
67
+ conn.querySync("insert into " + TABLE + " values (1, 'rollback_test')");
68
+
69
+ conn.endTransaction(true, function(err) { // true = rollback
70
+ if (err) { fail("endTransaction rollback", err.message); resolve(); return; }
71
+
72
+ var data = conn.querySync("select * from " + TABLE);
73
+ try {
74
+ assert.deepEqual(data, []);
75
+ ok("async rollback: data not persisted");
76
+ } catch(e) { fail("async rollback verify", e.message); }
77
+ resolve();
78
+ });
79
+ });
80
+ });
81
+ }
82
+
83
+ // beginTransaction + endTransaction(commit=false) via callback
84
+ async function testCommitAsync(conn) {
85
+ console.log("\n[testCommitAsync]");
86
+ await clearTable(conn);
87
+ return new Promise(function(resolve) {
88
+ conn.beginTransaction(function(err) {
89
+ if (err) { fail("beginTransaction async commit", err.message); resolve(); return; }
90
+
91
+ conn.querySync("insert into " + TABLE + " values (42, 'commit_test')");
92
+
93
+ conn.endTransaction(false, function(err) { // false = commit
94
+ if (err) { fail("endTransaction commit", err.message); resolve(); return; }
95
+
96
+ var data = conn.querySync("select * from " + TABLE);
97
+ try {
98
+ assert.deepEqual(data, [{ C1: 42, C2: 'commit_test' }]);
99
+ ok("async commit: data persisted");
100
+ } catch(e) { fail("async commit verify", e.message); }
101
+ resolve();
102
+ });
103
+ });
104
+ });
105
+ }
106
+
107
+ // beginTransactionSync + rollbackTransactionSync
108
+ async function testRollbackSync(conn) {
109
+ console.log("\n[testRollbackSync]");
110
+ await clearTable(conn);
111
+ try {
112
+ conn.beginTransactionSync();
113
+ conn.querySync("insert into " + TABLE + " values (99, 'sync_rollback')");
114
+ conn.rollbackTransactionSync();
115
+ var data = conn.querySync("select * from " + TABLE);
116
+ assert.deepEqual(data, []);
117
+ ok("sync rollback: data not persisted");
118
+ } catch(e) { fail("sync rollback", e.message); }
119
+ }
120
+
121
+ // beginTransactionSync + commitTransactionSync
122
+ async function testCommitSync(conn) {
123
+ console.log("\n[testCommitSync]");
124
+ await clearTable(conn);
125
+ try {
126
+ conn.beginTransactionSync();
127
+ conn.querySync("insert into " + TABLE + " values (77, 'sync_commit')");
128
+ conn.commitTransactionSync();
129
+ var data = conn.querySync("select * from " + TABLE);
130
+ assert.deepEqual(data, [{ C1: 77, C2: 'sync_commit' }]);
131
+ ok("sync commit: data persisted");
132
+ } catch(e) { fail("sync commit", e.message); }
133
+ }
134
+
135
+ // rollbackTransaction via callback
136
+ async function testRollbackTransactionCallback(conn) {
137
+ console.log("\n[testRollbackTransactionCallback]");
138
+ await clearTable(conn);
139
+ return new Promise(function(resolve) {
140
+ conn.beginTransaction(function(err) {
141
+ if (err) { fail("beginTransaction for rollbackTransaction", err.message); resolve(); return; }
142
+ conn.querySync("insert into " + TABLE + " values (55, 'rollback_method')");
143
+ conn.rollbackTransaction(function(err) {
144
+ if (err) { fail("rollbackTransaction callback", err.message); resolve(); return; }
145
+ var data = conn.querySync("select * from " + TABLE);
146
+ try {
147
+ assert.deepEqual(data, []);
148
+ ok("rollbackTransaction callback: data not persisted");
149
+ } catch(e) { fail("rollbackTransaction verify", e.message); }
150
+ resolve();
151
+ });
152
+ });
153
+ });
154
+ }
155
+
156
+ // commitTransaction via callback
157
+ async function testCommitTransactionCallback(conn) {
158
+ console.log("\n[testCommitTransactionCallback]");
159
+ await clearTable(conn);
160
+ return new Promise(function(resolve) {
161
+ conn.beginTransaction(function(err) {
162
+ if (err) { fail("beginTransaction for commitTransaction", err.message); resolve(); return; }
163
+ conn.querySync("insert into " + TABLE + " values (88, 'commit_method')");
164
+ conn.commitTransaction(function(err) {
165
+ if (err) { fail("commitTransaction callback", err.message); resolve(); return; }
166
+ var data = conn.querySync("select * from " + TABLE);
167
+ try {
168
+ assert.deepEqual(data, [{ C1: 88, C2: 'commit_method' }]);
169
+ ok("commitTransaction callback: data persisted");
170
+ } catch(e) { fail("commitTransaction verify", e.message); }
171
+ resolve();
172
+ });
173
+ });
174
+ });
175
+ }
176
+
177
+ // Test via ODBC binding level (db.createConnection)
178
+ async function testBindingLevelTransaction(conn) {
179
+ console.log("\n[testBindingLevelTransaction]");
180
+ await clearTable(conn);
181
+ return new Promise(function(resolve) {
182
+ var db = new ibmdb.ODBC();
183
+ db.createConnection(function(err, rawConn) {
184
+ if (err) { fail("createConnection", err.message); resolve(); return; }
185
+ rawConn.openSync(cn);
186
+
187
+ try {
188
+ // Rollback test at binding level
189
+ rawConn.beginTransactionSync();
190
+ rawConn.querySync("insert into " + TABLE + " values (11, 'binding_rollback')");
191
+ rawConn.endTransactionSync(true); // rollback
192
+ var result = rawConn.querySync("select * from " + TABLE);
193
+ var data = result.fetchAllSync();
194
+ assert.deepEqual(data, []);
195
+ ok("binding level: endTransactionSync rollback");
196
+
197
+ // Commit test at binding level
198
+ rawConn.beginTransactionSync();
199
+ rawConn.querySync("insert into " + TABLE + " values (22, 'binding_commit')");
200
+ rawConn.endTransactionSync(false); // commit
201
+ result = rawConn.querySync("select * from " + TABLE);
202
+ data = result.fetchAllSync();
203
+ assert.deepEqual(data, [{ C1: 22, C2: 'binding_commit' }]);
204
+ ok("binding level: endTransactionSync commit");
205
+ } catch(e) { fail("binding level txn", e.message); }
206
+
207
+ rawConn.closeSync();
208
+ resolve();
209
+ });
210
+ });
211
+ }
212
+
213
+ // Async binding-level transactions (createConnection + async beginTransaction/endTransaction)
214
+ async function testBindingLevelTransactionAsync(conn) {
215
+ console.log("\n[testBindingLevelTransactionAsync]");
216
+ await clearTable(conn);
217
+ return new Promise(function(resolve) {
218
+ var db = new ibmdb.ODBC();
219
+ db.createConnection(function(err, rawConn) {
220
+ if (err) { fail("createConnection async", err.message); resolve(); return; }
221
+ rawConn.openSync(cn);
222
+
223
+ rawConn.beginTransaction(function(err) {
224
+ if (err) { fail("binding async beginTransaction", err.message); rawConn.closeSync(); resolve(); return; }
225
+
226
+ rawConn.querySync("insert into " + TABLE + " values (33, 'async_binding_rb')");
227
+
228
+ rawConn.endTransaction(true, function(err) { // rollback
229
+ if (err) { fail("binding async rollback", err.message); rawConn.closeSync(); resolve(); return; }
230
+
231
+ var result = rawConn.querySync("select * from " + TABLE);
232
+ var data = result.fetchAllSync();
233
+ try {
234
+ assert.deepEqual(data, []);
235
+ ok("binding level async: endTransaction rollback");
236
+ } catch(e) { fail("binding async rollback verify", e.message); }
237
+
238
+ rawConn.beginTransaction(function(err) {
239
+ if (err) { fail("binding async beginTransaction 2", err.message); rawConn.closeSync(); resolve(); return; }
240
+
241
+ rawConn.querySync("insert into " + TABLE + " values (44, 'async_binding_cm')");
242
+
243
+ rawConn.endTransaction(false, function(err) { // commit
244
+ if (err) { fail("binding async commit", err.message); rawConn.closeSync(); resolve(); return; }
245
+
246
+ result = rawConn.querySync("select * from " + TABLE);
247
+ data = result.fetchAllSync();
248
+ try {
249
+ assert.deepEqual(data, [{ C1: 44, C2: 'async_binding_cm' }]);
250
+ ok("binding level async: endTransaction commit");
251
+ } catch(e) { fail("binding async commit verify", e.message); }
252
+
253
+ rawConn.closeSync();
254
+ resolve();
255
+ });
256
+ });
257
+ });
258
+ });
259
+ });
260
+ });
261
+ }
@@ -1,48 +1,48 @@
1
- const exec = require('child_process').exec;
2
- const execSync = require('child_process').execSync;
3
- const fs = require('fs');
4
-
5
- try { execSync('cd .. && npm install -g typescript'); } catch(e) { /* use local */ }
6
- try { execSync('cd .. && npm install --save-dev @types/node'); } catch(e) { /* use local */ }
7
- var yourscript = exec('npx tsc --skipLibCheck --types node quick-example.ts && node quick-example.js',
8
- (error, stdout, stderr) => {
9
- console.log(stdout);
10
- console.log(stderr);
11
- if (error !== null) {
12
- console.log(`exec error: ${error}`);
13
- } else {
14
- try {
15
- fs.unlinkSync('quick-example.js');
16
- } catch (err) {
17
- console.error('Error deleting file:', err);
18
- }
19
- }
20
- });
21
-
22
- yourscript = exec('npx tsc --skipLibCheck --types node ../typescript/tests/test.ts && node ../typescript/tests/test.js',
23
- (error, stdout, stderr) => {
24
- console.log(stdout);
25
- console.log(stderr);
26
- if (error !== null) {
27
- console.log(`exec error: ${error}`);
28
- } else {
29
- try {
30
- fs.unlinkSync('../typescript/tests/test.js');
31
- fs.unlinkSync('../typescript/ConnStr.js');
32
- fs.unlinkSync('../typescript/DB2Error.js');
33
- fs.unlinkSync('../typescript/Database.js');
34
- fs.unlinkSync('../typescript/DescribeObject.js');
35
- fs.unlinkSync('../typescript/ODBC.js');
36
- fs.unlinkSync('../typescript/ODBCConnection.js');
37
- fs.unlinkSync('../typescript/ODBCResult.js');
38
- fs.unlinkSync('../typescript/ODBCStatement.js');
39
- fs.unlinkSync('../typescript/Options.js');
40
- fs.unlinkSync('../typescript/Pool.js');
41
- fs.unlinkSync('../typescript/PoolOptions.js');
42
- fs.unlinkSync('../typescript/attributes.js');
43
- fs.unlinkSync('../typescript/index.js');
44
- } catch (err) {
45
- console.error('Error deleting file:', err);
46
- }
47
- }
48
- });
1
+ const exec = require('child_process').exec;
2
+ const execSync = require('child_process').execSync;
3
+ const fs = require('fs');
4
+
5
+ try { execSync('cd .. && npm install -g typescript'); } catch(e) { /* use local */ }
6
+ try { execSync('cd .. && npm install --save-dev @types/node'); } catch(e) { /* use local */ }
7
+ var yourscript = exec('npx tsc --skipLibCheck --types node quick-example.ts && node quick-example.js',
8
+ (error, stdout, stderr) => {
9
+ console.log(stdout);
10
+ console.log(stderr);
11
+ if (error !== null) {
12
+ console.log(`exec error: ${error}`);
13
+ } else {
14
+ try {
15
+ fs.unlinkSync('quick-example.js');
16
+ } catch (err) {
17
+ console.error('Error deleting file:', err);
18
+ }
19
+ }
20
+ });
21
+
22
+ yourscript = exec('npx tsc --skipLibCheck --types node ../typescript/tests/test.ts && node ../typescript/tests/test.js',
23
+ (error, stdout, stderr) => {
24
+ console.log(stdout);
25
+ console.log(stderr);
26
+ if (error !== null) {
27
+ console.log(`exec error: ${error}`);
28
+ } else {
29
+ try {
30
+ fs.unlinkSync('../typescript/tests/test.js');
31
+ fs.unlinkSync('../typescript/ConnStr.js');
32
+ fs.unlinkSync('../typescript/DB2Error.js');
33
+ fs.unlinkSync('../typescript/Database.js');
34
+ fs.unlinkSync('../typescript/DescribeObject.js');
35
+ fs.unlinkSync('../typescript/ODBC.js');
36
+ fs.unlinkSync('../typescript/ODBCConnection.js');
37
+ fs.unlinkSync('../typescript/ODBCResult.js');
38
+ fs.unlinkSync('../typescript/ODBCStatement.js');
39
+ fs.unlinkSync('../typescript/Options.js');
40
+ fs.unlinkSync('../typescript/Pool.js');
41
+ fs.unlinkSync('../typescript/PoolOptions.js');
42
+ fs.unlinkSync('../typescript/attributes.js');
43
+ fs.unlinkSync('../typescript/index.js');
44
+ } catch (err) {
45
+ console.error('Error deleting file:', err);
46
+ }
47
+ }
48
+ });
@@ -1,70 +1,70 @@
1
- var common = require("./common")
2
- , ibmdb = require("../")
3
- , assert = require("assert")
4
- , cn = common.connectionString
5
- , isZOS = common.isZOS
6
- , schema = common.connectionObject.CURRENTSCHEMA;
7
-
8
- var query = "CaLL " + schema + ".PROC1(?, ?, ?)";
9
- ibmdb.open(cn, function (err, conn) {
10
- if (err) console.log(err);
11
- assert.equal(err, null);
12
- try {
13
- if (isZOS) {
14
- // The DROP PROCEDURE syntax on z/OS can only specify the name of the procedure to drop.
15
- conn.querySync("drop procedure " + schema + ".PROC1");
16
- } else {
17
- conn.querySync("drop procedure " + schema + ".PROC1(INT, INT, XML)");
18
- }
19
- } catch (e) { }
20
-
21
- if (isZOS) {
22
- // CREATE OR REPLACE syntax is not supported on z/OS.
23
- // When creating an SQL native procedure on z/OS, you will need to have a WLM environment
24
- // defined for your system if you want to run the procedure in debugging mode.
25
- // Adding "disable debug mode" to bypass this requirement.
26
- conn.querySync("create procedure " + schema + ".PROC1 " +
27
- "(IN v1 INTEGER, OUT v2 INTEGER, INOUT v3 XML) " +
28
- "disable debug mode " +
29
- "BEGIN set v2 = v1 + 1; set v3 = XMLPARSE(DOCUMENT'<name> xml </name>'); END");
30
- } else {
31
- conn.querySync("create or replace procedure " + schema + ".PROC1 " +
32
- "(IN v1 INTEGER, OUT v2 INTEGER, INOUT v3 XML) " +
33
- "BEGIN set v2 = v1 + 1; set v3 = XMLPARSE(DOCUMENT'<name> xml </name>'); END");
34
- }
35
- var param1 = { ParamType: "INPUT", DataType: 1, Data: 0 };
36
- var param2 = { ParamType: "OUTPUT", DataType: 1, Data: 0 };
37
- var param3 = { ParamType: "INOUT", DataType: "XML", Data: "<name> xml </name>", Length: 200 };
38
-
39
- result = conn.querySync(query, [param1, param2, param3]);
40
- console.log("Output Parameters V2 = ", result[0], ", V3 = ", result[1]);
41
-
42
- if (isZOS) {
43
- // The DROP PROCEDURE syntax on z/OS can only specify the name of the procedure to drop.
44
- conn.querySync("drop procedure " + schema + ".PROC1");
45
- } else {
46
- conn.querySync("drop procedure " + schema + ".PROC1(INT, INT, XML)");
47
- }
48
- if (isZOS) {
49
- // CREATE OR REPLACE syntax is not supported on z/OS. Drop PROCEDURE first.
50
- // When creating an SQL native procedure on z/OS, you will need to have a WLM environment
51
- // defined for your system if you want to run the procedure in debugging mode.
52
- // Adding "disable debug mode" to bypass this requirement.
53
- try {
54
- conn.querySync("drop procedure " + schema + ".PROC2");
55
- } catch (e) { }
56
- conn.querySync("create procedure " + schema + ".PROC2 (IN v1 INTEGER) disable debug mode BEGIN END");
57
- } else {
58
- conn.querySync("create or replace procedure " + schema + ".PROC2 (IN v1 INTEGER) BEGIN END");
59
- }
60
- result = conn.querySync("call " + schema + ".PROC2(?)", [param1]);
61
- assert.deepEqual(result, []);
62
- if (isZOS) {
63
- // The DROP PROCEDURE syntax on z/OS can only specify the name of the procedure to drop.
64
- conn.querySync("drop procedure " + schema + ".PROC2");
65
- } else {
66
- conn.querySync("drop procedure " + schema + ".PROC2(INT)");
67
- }
68
- conn.closeSync();
69
- console.log('done');
70
- });
1
+ var common = require("./common")
2
+ , ibmdb = require("../")
3
+ , assert = require("assert")
4
+ , cn = common.connectionString
5
+ , isZOS = common.isZOS
6
+ , schema = common.connectionObject.CURRENTSCHEMA;
7
+
8
+ var query = "CaLL " + schema + ".PROC1(?, ?, ?)";
9
+ ibmdb.open(cn, function (err, conn) {
10
+ if (err) console.log(err);
11
+ assert.equal(err, null);
12
+ try {
13
+ if (isZOS) {
14
+ // The DROP PROCEDURE syntax on z/OS can only specify the name of the procedure to drop.
15
+ conn.querySync("drop procedure " + schema + ".PROC1");
16
+ } else {
17
+ conn.querySync("drop procedure " + schema + ".PROC1(INT, INT, XML)");
18
+ }
19
+ } catch (e) { }
20
+
21
+ if (isZOS) {
22
+ // CREATE OR REPLACE syntax is not supported on z/OS.
23
+ // When creating an SQL native procedure on z/OS, you will need to have a WLM environment
24
+ // defined for your system if you want to run the procedure in debugging mode.
25
+ // Adding "disable debug mode" to bypass this requirement.
26
+ conn.querySync("create procedure " + schema + ".PROC1 " +
27
+ "(IN v1 INTEGER, OUT v2 INTEGER, INOUT v3 XML) " +
28
+ "disable debug mode " +
29
+ "BEGIN set v2 = v1 + 1; set v3 = XMLPARSE(DOCUMENT'<name> xml </name>'); END");
30
+ } else {
31
+ conn.querySync("create or replace procedure " + schema + ".PROC1 " +
32
+ "(IN v1 INTEGER, OUT v2 INTEGER, INOUT v3 XML) " +
33
+ "BEGIN set v2 = v1 + 1; set v3 = XMLPARSE(DOCUMENT'<name> xml </name>'); END");
34
+ }
35
+ var param1 = { ParamType: "INPUT", DataType: 1, Data: 0 };
36
+ var param2 = { ParamType: "OUTPUT", DataType: 1, Data: 0 };
37
+ var param3 = { ParamType: "INOUT", DataType: "XML", Data: "<name> xml </name>", Length: 200 };
38
+
39
+ result = conn.querySync(query, [param1, param2, param3]);
40
+ console.log("Output Parameters V2 = ", result[0], ", V3 = ", result[1]);
41
+
42
+ if (isZOS) {
43
+ // The DROP PROCEDURE syntax on z/OS can only specify the name of the procedure to drop.
44
+ conn.querySync("drop procedure " + schema + ".PROC1");
45
+ } else {
46
+ conn.querySync("drop procedure " + schema + ".PROC1(INT, INT, XML)");
47
+ }
48
+ if (isZOS) {
49
+ // CREATE OR REPLACE syntax is not supported on z/OS. Drop PROCEDURE first.
50
+ // When creating an SQL native procedure on z/OS, you will need to have a WLM environment
51
+ // defined for your system if you want to run the procedure in debugging mode.
52
+ // Adding "disable debug mode" to bypass this requirement.
53
+ try {
54
+ conn.querySync("drop procedure " + schema + ".PROC2");
55
+ } catch (e) { }
56
+ conn.querySync("create procedure " + schema + ".PROC2 (IN v1 INTEGER) disable debug mode BEGIN END");
57
+ } else {
58
+ conn.querySync("create or replace procedure " + schema + ".PROC2 (IN v1 INTEGER) BEGIN END");
59
+ }
60
+ result = conn.querySync("call " + schema + ".PROC2(?)", [param1]);
61
+ assert.deepEqual(result, []);
62
+ if (isZOS) {
63
+ // The DROP PROCEDURE syntax on z/OS can only specify the name of the procedure to drop.
64
+ conn.querySync("drop procedure " + schema + ".PROC2");
65
+ } else {
66
+ conn.querySync("drop procedure " + schema + ".PROC2(INT)");
67
+ }
68
+ conn.closeSync();
69
+ console.log('done');
70
+ });
@@ -1,56 +1,56 @@
1
- var common = require("./common")
2
- , odbc = require("../")
3
- , db = new odbc.Database()
4
- , fs = require("fs");
5
-
6
- db.open(common.connectionString, function(err)
7
- {
8
- if (err) {
9
- console.error(err.message);
10
- return;
11
- }
12
- let app = function (req, res) {
13
- if (req.url == "/close") {
14
- db.closeSync();
15
- db = null;
16
- res.writeHead(200, {'Content-Type': 'text/plain'});
17
- res.write("Web Application Ended.");
18
- res.end();
19
- process.exit(1);
20
- }
21
-
22
- var query = "select 1234 from sysibm.sysdummy1";
23
-
24
- db && db.query(query, function(err, rows)
25
- {
26
- if (err) {
27
- console.error(err.message);
28
- }
29
- console.log("Selected Data = ", rows);
30
- res.writeHead(200, {'Content-Type': 'text/plain'});
31
- res.write(JSON.stringify(rows));
32
- res.end();
33
- });
34
- }
35
-
36
- // Create options object of key and certificate for SSL connection.
37
- // These key and cert files are generated by below command
38
- // executed from "git bash" terminal on Windows:
39
- // openssl req -nodes -new -x509 -keyout server.key -out server.cert
40
- //
41
- // set below environment variables to use it:
42
- // IBM_DB_SSLKEY=../examples/server.key
43
- // IBM_DB_SSLCERT=../exmaples/server.cert
44
- const options = {
45
- key: fs.readFileSync(process.env.IBM_DB_SSLKEY),
46
- cert: fs.readFileSync(process.env.IBM_DB_SSLCERT)
47
- };
48
-
49
- require('https').createServer(options, app).listen(8082, "127.0.0.1");
50
- console.log("App is listening on 127.0.0.1:8082");
51
- });
52
-
53
- process.on('uncaughtException', function (err) {
54
- console.error('uncaughtException:' + err);
55
- console.error(err.stack);
56
- });
1
+ var common = require("./common")
2
+ , odbc = require("../")
3
+ , db = new odbc.Database()
4
+ , fs = require("fs");
5
+
6
+ db.open(common.connectionString, function(err)
7
+ {
8
+ if (err) {
9
+ console.error(err.message);
10
+ return;
11
+ }
12
+ let app = function (req, res) {
13
+ if (req.url == "/close") {
14
+ db.closeSync();
15
+ db = null;
16
+ res.writeHead(200, {'Content-Type': 'text/plain'});
17
+ res.write("Web Application Ended.");
18
+ res.end();
19
+ process.exit(1);
20
+ }
21
+
22
+ var query = "select 1234 from sysibm.sysdummy1";
23
+
24
+ db && db.query(query, function(err, rows)
25
+ {
26
+ if (err) {
27
+ console.error(err.message);
28
+ }
29
+ console.log("Selected Data = ", rows);
30
+ res.writeHead(200, {'Content-Type': 'text/plain'});
31
+ res.write(JSON.stringify(rows));
32
+ res.end();
33
+ });
34
+ }
35
+
36
+ // Create options object of key and certificate for SSL connection.
37
+ // These key and cert files are generated by below command
38
+ // executed from "git bash" terminal on Windows:
39
+ // openssl req -nodes -new -x509 -keyout server.key -out server.cert
40
+ //
41
+ // set below environment variables to use it:
42
+ // IBM_DB_SSLKEY=../examples/server.key
43
+ // IBM_DB_SSLCERT=../exmaples/server.cert
44
+ const options = {
45
+ key: fs.readFileSync(process.env.IBM_DB_SSLKEY),
46
+ cert: fs.readFileSync(process.env.IBM_DB_SSLCERT)
47
+ };
48
+
49
+ require('https').createServer(options, app).listen(8082, "127.0.0.1");
50
+ console.log("App is listening on 127.0.0.1:8082");
51
+ });
52
+
53
+ process.on('uncaughtException', function (err) {
54
+ console.error('uncaughtException:' + err);
55
+ console.error(err.stack);
56
+ });