teradatasql 20.0.39 → 20.0.41

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 (60) hide show
  1. package/README.md +72 -9
  2. package/lib/cli.d.ts.map +1 -1
  3. package/lib/cli.js +1 -0
  4. package/lib/cli.js.map +1 -1
  5. package/lib/index.d.ts.map +1 -1
  6. package/lib/index.js +58 -44
  7. package/lib/index.js.map +1 -1
  8. package/lib/teradata-connection.d.ts.map +1 -1
  9. package/lib/teradata-connection.js +23 -11
  10. package/lib/teradata-connection.js.map +1 -1
  11. package/lib/teradata-cursor.d.ts +1 -0
  12. package/lib/teradata-cursor.d.ts.map +1 -1
  13. package/lib/teradata-cursor.js +98 -33
  14. package/lib/teradata-cursor.js.map +1 -1
  15. package/lib/teradata-exceptions.d.ts.map +1 -1
  16. package/lib/teradata-exceptions.js +1 -0
  17. package/lib/teradata-exceptions.js.map +1 -1
  18. package/lib/teradata-logging.d.ts.map +1 -1
  19. package/lib/teradata-logging.js +5 -1
  20. package/lib/teradata-logging.js.map +1 -1
  21. package/lib/teradatasql.arm.fips.so +0 -0
  22. package/lib/teradatasql.arm.so +0 -0
  23. package/lib/teradatasql.dll +0 -0
  24. package/lib/teradatasql.dylib +0 -0
  25. package/lib/teradatasql.fips.so +0 -0
  26. package/lib/teradatasql.so +0 -0
  27. package/package.json +1 -1
  28. package/samples/AGKRBatchInsert.js +3 -0
  29. package/samples/AGKRInsertSelect.js +3 -0
  30. package/samples/BatchInsPerf.js +4 -1
  31. package/samples/BatchInsert.js +3 -0
  32. package/samples/BatchInsertCSV.js +4 -0
  33. package/samples/CancelSleep.js +8 -5
  34. package/samples/CharPadding.js +8 -0
  35. package/samples/CommitRollback.js +3 -0
  36. package/samples/DecimalDigits.js +3 -0
  37. package/samples/DriverDatabaseVersion.js +4 -0
  38. package/samples/ElicitFile.js +5 -0
  39. package/samples/ExecuteRequest.js +6 -3
  40. package/samples/ExportCSVResult.js +4 -0
  41. package/samples/ExportCSVResults.js +4 -0
  42. package/samples/FakeExportCSVResults.js +5 -0
  43. package/samples/FakeResultSetCon.js +3 -0
  44. package/samples/FakeResultSetEsc.js +3 -0
  45. package/samples/FastExportCSV.js +4 -0
  46. package/samples/FastExportTable.js +3 -0
  47. package/samples/FastLoadBatch.js +17 -10
  48. package/samples/FastLoadCSV.js +8 -3
  49. package/samples/HelpSession.js +3 -0
  50. package/samples/IgnoreErrors.js +5 -2
  51. package/samples/InsertLob.js +21 -4
  52. package/samples/InsertXML.js +6 -1
  53. package/samples/LoadCSVFile.js +6 -0
  54. package/samples/LobLocators.js +5 -0
  55. package/samples/MetadataFromPrepare.js +5 -0
  56. package/samples/ParamDataTypes.js +7 -0
  57. package/samples/ShowCommand.js +7 -0
  58. package/samples/StoredProc.js +33 -9
  59. package/samples/TJEncryptPassword.js +312 -14
  60. package/samples/udfsleep.c +2 -0
package/README.md CHANGED
@@ -97,8 +97,6 @@ At the present time, the driver offers the following features.
97
97
 
98
98
  ### Installation
99
99
 
100
- The driver depends on the `ffi-napi`, `ref-napi`, `ref-array-di` packages which are available from [npmjs.com](http://www.npmjs.com).
101
-
102
100
  Use `npm install teradatasql` to download and install the driver and its dependencies automatically.
103
101
 
104
102
  <a id="License"></a>
@@ -266,7 +264,7 @@ Parameter | Default | Type | Description
266
264
  `partition` | `"DBC/SQL"` | string | Specifies the database partition. Equivalent to the Teradata JDBC Driver `PARTITION` connection parameter.
267
265
  `password` | | string | Specifies the database password. Equivalent to the Teradata JDBC Driver `PASSWORD` connection parameter.
268
266
  `proxy_bypass_hosts` | | string | Specifies a matching pattern for hostnames and addresses to bypass the proxy server identified by the `http_proxy` and/or `https_proxy` parameter. This parameter may only be specified in conjunction with the `http_proxy` and/or `https_proxy` parameter. Separate multiple hostnames and addresses with a vertical bar `\|` character. Specify an asterisk `*` as a wildcard character. When this parameter is omitted, the default pattern `localhost\|127.*\|[::1]` bypasses the proxy server identified by the `http_proxy` and/or `https_proxy` parameter for common variations of the loopback address. Equivalent to the Teradata JDBC Driver `PROXY_BYPASS_HOSTS` connection parameter.
269
- `request_timeout` | `"0"` | quoted integer | Specifies the timeout for executing each SQL request. Zero means no timeout.
267
+ `request_timeout` | `"0"` | quoted integer | Specifies the timeout in seconds for executing each SQL request. Zero means no timeout.
270
268
  `runstartup` | `"false"` | quoted boolean | Controls whether the user's `STARTUP` SQL request is executed after logon. For more information, refer to [User STARTUP SQL Request](#UserStartup). Equivalent to the Teradata JDBC Driver `RUNSTARTUP` connection parameter.
271
269
  `sessions` | | quoted integer | Specifies the number of data transfer connections for FastLoad or FastExport. The default (recommended) lets the database choose the appropriate number of connections. Equivalent to the Teradata JDBC Driver `SESSIONS` connection parameter.
272
270
  `sip_support` | `"true"` | quoted boolean | Controls whether StatementInfo parcel is used. Equivalent to the Teradata JDBC Driver `SIP_SUPPORT` connection parameter.
@@ -274,7 +272,7 @@ Parameter | Default | Type | Description
274
272
  `sslbase64` | | string | Specifies the base64url encoded contents of a PEM file that contains Certificate Authority (CA) certificates for use with `sslmode` or `oidc_sslmode` values `VERIFY-CA` or `VERIFY-FULL`. Equivalent to the Teradata JDBC Driver `SSLBASE64` connection parameter. The base64url encoded value must conform to [IETF RFC 4648 Section 5 - Base 64 Encoding with URL and Filename Safe Alphabet](https://datatracker.ietf.org/doc/html/rfc4648#section-5).<br/>Example Linux command to print the base64url encoded contents of a PEM file:<br/>`base64 -w0 < cert.pem \| tr +/ -_ \| tr -d =`
275
273
  `sslca` | | string | Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with `sslmode` or `oidc_sslmode` values `VERIFY-CA` or `VERIFY-FULL`. Equivalent to the Teradata JDBC Driver `SSLCA` connection parameter.
276
274
  `sslcapath` | | string | Specifies a directory of PEM files that contain Certificate Authority (CA) certificates for use with `sslmode` or `oidc_sslmode` values `VERIFY-CA` or `VERIFY-FULL`. Only files with an extension of `.pem` are used. Other files in the specified directory are not used. Equivalent to the Teradata JDBC Driver `SSLCAPATH` connection parameter.
277
- `sslcipher` | | string | Specifies the TLS cipher for HTTPS/TLS connections. Default lets database and driver choose the most appropriate TLS cipher. Equivalent to the Teradata JDBC Driver `SSLCIPHER` connection parameter.
275
+ `sslcipher` | | string | Specifies the TLS cipher for HTTPS/TLS connections. Default lets database and driver choose the most appropriate TLS cipher. Omitting this parameter is recommended. Use this parameter only for troubleshooting TLS handshake issues. Equivalent to the Teradata JDBC Driver `SSLCIPHER` connection parameter.
278
276
  `sslcrc` | `"ALLOW"` | string | Controls TLS certificate revocation checking (CRC) for HTTPS/TLS connections. Equivalent to the Teradata JDBC Driver `SSLCRC` connection parameter. Values are case-insensitive.<br/>&bull; `ALLOW` performs CRC for `sslmode` or `oidc_sslmode` `VERIFY-CA` and `VERIFY-FULL`, and provides soft fail CRC for `VERIFY-CA` and `VERIFY-FULL` to ignore CRC communication failures.<br/>&bull; `PREFER` performs CRC for all HTTPS connections, and provides soft fail CRC for `VERIFY-CA` and `VERIFY-FULL` to ignore CRC communication failures.<br/>&bull; `REQUIRE` performs CRC for all HTTPS connections, and requires CRC for `VERIFY-CA` and `VERIFY-FULL`.
279
277
  `sslcrl` | `"true"` | quoted boolean | Controls the use of Certificate Revocation List (CRL) for TLS certificate revocation checking for HTTPS/TLS connections. Online Certificate Status Protocol (OCSP) is preferred over CRL, so CRL is used when OSCP is unavailable. Equivalent to the Teradata JDBC Driver `SSLCRL` connection parameter.
280
278
  `sslmode` | `"PREFER"` | string | Specifies the mode for connections to the database. Equivalent to the Teradata JDBC Driver `SSLMODE` connection parameter. Values are case-insensitive.<br/>&bull; `DISABLE` disables HTTPS/TLS connections and uses only non-TLS connections.<br/>&bull; `ALLOW` uses non-TLS connections unless the database requires HTTPS/TLS connections.<br/>&bull; `PREFER` uses HTTPS/TLS connections unless the database does not offer HTTPS/TLS connections.<br/>&bull; `REQUIRE` uses only HTTPS/TLS connections.<br/>&bull; `VERIFY-CA` uses only HTTPS/TLS connections and verifies that the server certificate is valid and trusted.<br/>&bull; `VERIFY-FULL` uses only HTTPS/TLS connections, verifies that the server certificate is valid and trusted, and verifies that the server certificate matches the database hostname.
@@ -754,9 +752,12 @@ The database enforces a limited time period for reconnecting to a session after
754
752
  ### Transaction Mode
755
753
 
756
754
  The `tmode` connection parameter enables an application to specify the transaction mode for the connection.
757
- * `"tmode":"ANSI"` provides American National Standards Institute (ANSI) transaction semantics. This mode is recommended.
758
- * `"tmode":"TERA"` provides legacy Teradata transaction semantics. This mode is only recommended for legacy applications that require Teradata transaction semantics.
759
- * `"tmode":"DEFAULT"` provides the default transaction mode configured for the database, which may be either ANSI or TERA mode. `"tmode":"DEFAULT"` is the default when the `tmode` connection parameter is omitted.
755
+
756
+ `tmode` | Description
757
+ --------- | ---
758
+ `ANSI` | Provides American National Standards Institute (ANSI) transaction semantics. This mode is recommended.
759
+ `TERA` | Provides legacy Teradata transaction semantics. This mode is only recommended for legacy applications that require Teradata transaction semantics.
760
+ `DEFAULT` | Provides the default transaction mode configured for the database, which may be either ANSI or TERA mode. This is the default when the `tmode` connection parameter is omitted.
760
761
 
761
762
  While ANSI mode is generally recommended, please note that every application is different, and some applications may need to use TERA mode. The following differences between ANSI and TERA mode might affect a typical user or application:
762
763
  1. Silent truncation of inserted data occurs in TERA mode, but not ANSI mode. In ANSI mode, the database returns an error instead of truncating data.
@@ -1091,6 +1092,16 @@ Read-only attribute consisting of a sequence of seven-item sequences that each d
1091
1092
 
1092
1093
  Read-only `BigInt` attribute indicating the number of rows returned from, or affected by, the current SQL statement.
1093
1094
 
1095
+ ---
1096
+
1097
+ `.isAsyncExec`
1098
+
1099
+ Read-only `boolean` attribute indicating whether the cursor is currently executing an asynchronous SQL request via `.executeAsync()` or `.executemanyAsync()`.
1100
+
1101
+ **Important Usage Note:** This attribute reflects the current state of the cursor at the time it's read. However, checking this attribute does not guarantee that subsequent operations will succeed, because another cursor on the same connection might be executing an async operation.
1102
+
1103
+ ---
1104
+
1094
1105
  <a id="CursorMethods"></a>
1095
1106
 
1096
1107
  ### Cursor Methods
@@ -1121,9 +1132,13 @@ If a sequence of parameter values is provided as the second argument, the values
1121
1132
 
1122
1133
  `.executeAsync(` *SQLRequest* `,` *OptionalSequenceOfParameterValues* `, ignoreErrors=` *OptionalSequenceOfIgnoredErrorCodes* `)`
1123
1134
 
1124
- Asynchronously executes the SQL request. Returns a `Promise`.
1135
+ Asynchronously executes the SQL request and returns a `Promise<void>` that resolves when the SQL request execution is complete.
1125
1136
  If a sequence of parameter values is provided as the second argument, the values will be bound to question-mark parameter markers in the SQL request. Specifying parameter values as a mapping is not supported.
1126
1137
 
1138
+ The asynchronous execution allows other operations to proceed while the SQL request is being processed by the database. During execution, the cursor's `.isAsyncExec` property will return `true`.
1139
+
1140
+ The `ignoreErrors` parameter is optional. The ignored error codes must be specified as a sequence of integers.
1141
+
1127
1142
  ---
1128
1143
 
1129
1144
  `.executemany(` *SQLRequest* `,` *SequenceOfSequencesOfParameterValues* `, ignoreErrors=` *OptionalSequenceOfIgnoredErrorCodes* `)`
@@ -1137,11 +1152,47 @@ The `ignoreErrors` parameter is optional. The ignored error codes must be specif
1137
1152
 
1138
1153
  `.executemanyAsync(` *SQLRequest* `,` *SequenceOfSequencesOfParameterValues* `, ignoreErrors=` *OptionalSequenceOfIgnoredErrorCodes* `)`
1139
1154
 
1140
- Asynchronously executes the SQL request as an iterated SQL request for the batch of parameter values. Returns a `Promise`.
1155
+ Asynchronously executes the SQL request as an iterated SQL request for the batch of parameter values and returns a `Promise<void>` that resolves when the batch SQL request execution is complete.
1141
1156
  The batch of parameter values must be specified as a sequence of sequences. Specifying parameter values as a mapping is not supported.
1142
1157
 
1158
+ The asynchronous execution allows other operations to proceed while the SQL requests are being processed by the database. During execution, the cursor's `.isAsyncExec` property will return `true`.
1159
+
1143
1160
  The `ignoreErrors` parameter is optional. The ignored error codes must be specified as a sequence of integers.
1144
1161
 
1162
+ #### Async Execution Error Codes
1163
+
1164
+ You may encounter specific error codes related to concurrent SQL execution when using **any cursor methods** (`.execute()`, `.executemany()`, `.executeAsync()`, `.executemanyAsync()`, `.close()`, etc.) if an asynchronous operation is already in progress on the same cursor or connection:
1165
+
1166
+ * **Error 701**: "A SQL request is still executing. Please submit the new request later."
1167
+ - Occurs when attempting to execute a new SQL request while another request is still in progress on the same cursor
1168
+ - Can happen with `.execute()`, `.executemany()`, `.executeAsync()`, or `.executemanyAsync()` if the cursor is already executing an async operation
1169
+ - Check the `.isAsyncExec` property before submitting new requests
1170
+ - Thrown by the cursor's internal `_stopIfInAsyncExecute()` method
1171
+
1172
+ * **Error 703**: "A SQL request is still executing. Please close the cursor later."
1173
+ - Occurs when attempting to close a cursor while a SQL request is still executing on the same cursor
1174
+ - Can happen with `.close()` if the cursor is executing an async operation
1175
+ - Wait for the current async operation to complete before closing the cursor
1176
+ - Thrown by the cursor's `close()` method
1177
+
1178
+ * **Error 751**: "A SQL request is still executing. Please submit the new request later."
1179
+ - Occurs when attempting to execute a new SQL request while another request is still in progress
1180
+ - Can happen with any execution method if another cursor on the same connection is executing an async operation
1181
+ - Check the `.isAsyncExec` property of all cursors before submitting new requests
1182
+ - Thrown by the Teradata GoSQL Driver
1183
+
1184
+ * **Error 752**: "A SQL request is still executing. Please close the connection later."
1185
+ - Occurs when attempting to close a connection while a SQL request is still executing
1186
+ - Can happen with `.close()` if any cursor on the connection is executing an async operation
1187
+ - Wait for all async operations to complete before closing the connection
1188
+ - Thrown by the Teradata GoSQL Driver
1189
+
1190
+ * **Error 753**: "A SQL request is still executing. Please close rows later."
1191
+ - Occurs when attempting to close result rows while a SQL request is still executing
1192
+ - Can happen with cursor operations that close rows if an async operation is in progress
1193
+ - Wait for the current async operation to complete before closing rows
1194
+ - Thrown by the Teradata GoSQL Driver
1195
+
1145
1196
  ---
1146
1197
 
1147
1198
  `.fetchall()`
@@ -1699,6 +1750,18 @@ SQL requests can be executed after a database connection is established.
1699
1750
 
1700
1751
  ### Change Log
1701
1752
 
1753
+
1754
+ `20.0.41` - September 25, 2025
1755
+ * Add cursor method isAsyncExec()
1756
+ * GOSQL-255 exclude from revocation checking last certificate in chain if self-signed
1757
+ * GOSQL-256 token mode
1758
+
1759
+ `20.0.40` - September 5, 2025
1760
+ * GOSQL-243 panic recovery with stack traces for top-level APIs
1761
+ * Build DLL and shared library with Go 1.25.1
1762
+ * Build DLL with MinGW 15.2.0
1763
+ * Switch to golang.org/x/crypto version 0.41.0
1764
+
1702
1765
  `20.0.39` - September 2, 2025
1703
1766
  * GOSQL-242 catch and wrap panic from deserialization
1704
1767
 
package/lib/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":";AAEA,QAAA,MAAM,KAAK,KAAqB,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":";AAKA,QAAA,MAAM,KAAK,KAAqB,CAAC"}
package/lib/cli.js CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ // Copyright 2025 by Teradata Corporation. All Rights Reserved.
2
3
  "use strict";
3
4
  const index = require("./index");
4
5
  index.main(process.argv.slice(2));
package/lib/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":";AACA,YAAY,CAAC;AACb,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACjC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":";AAEA,+DAA+D;AAE/D,YAAY,CAAC;AACb,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACjC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAErI,eAAO,MAAM,QAAQ,EAAE,MAAc,CAAC;AACtC,eAAO,MAAM,YAAY,EAAE,MAAU,CAAC;AACtC,eAAO,MAAM,UAAU,EAAE,MAAgB,CAAC;AAE1C,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAEtH;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,wBAAgB,OAAO,CAAC,YAAY,GAAE,aAAkB,EAAE,YAAY,GAAE,MAAa,GAAG,kBAAkB,CAIzG;AAqPD,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAuY3C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAErI,eAAO,MAAM,QAAQ,EAAE,MAAc,CAAC;AACtC,eAAO,MAAM,YAAY,EAAE,MAAU,CAAC;AACtC,eAAO,MAAM,UAAU,EAAE,MAAgB,CAAC;AAE1C,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAEtH;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,wBAAgB,OAAO,CAAC,YAAY,GAAE,aAAkB,EAAE,YAAY,GAAE,MAAa,GAAG,kBAAkB,CAIzG;AAqPD,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAuY3C"}
package/lib/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ // Copyright 2025 by Teradata Corporation. All Rights Reserved.
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -43,7 +44,7 @@ Object.defineProperty(exports, "IntegrityError", { enumerable: true, get: functi
43
44
  Object.defineProperty(exports, "OperationalError", { enumerable: true, get: function () { return teradata_exceptions_2.OperationalError; } });
44
45
  Object.defineProperty(exports, "ProgrammingError", { enumerable: true, get: function () { return teradata_exceptions_2.ProgrammingError; } });
45
46
  exports.apilevel = "2.0";
46
- exports.threadsafety = 2;
47
+ exports.threadsafety = 2; // Threads may share the module and connections, but not cursors
47
48
  exports.paramstyle = "qmark";
48
49
  function date(year, month, day) {
49
50
  const oDate = new Date(Date.UTC(year, month, day, 0, 0, 0));
@@ -51,6 +52,7 @@ function date(year, month, day) {
51
52
  }
52
53
  exports.date = date;
53
54
  function dateFromTicks(seconds) {
55
+ // TERADATA TIMESTAMP: YYYY-MM-DD HH:MM:SS[.FFFFFF]
54
56
  const oDate = new Date(seconds * 1000);
55
57
  const sDate = oDate.toISOString().slice(0, 10);
56
58
  const sTime = oDate.toISOString().slice(11, 23);
@@ -75,7 +77,7 @@ const fs = __importStar(require("fs"));
75
77
  const teradata_connection_2 = require("./teradata-connection");
76
78
  function quoteText(s) {
77
79
  return s === null ? "null" : '"' + s.replaceAll(/[\r\n]+/g, " ").replaceAll('"', '""') + '"';
78
- }
80
+ } // end quoteText
79
81
  const SPACE = " ".charCodeAt(0);
80
82
  const COMMA = ",".charCodeAt(0);
81
83
  const DQUOT = '"'.charCodeAt(0);
@@ -96,7 +98,7 @@ function quoteCsvText(s) {
96
98
  }
97
99
  }
98
100
  return s;
99
- }
101
+ } // end quoteCsvText
100
102
  const FORMAT_TEXT = 1;
101
103
  const FORMAT_RAW = 2;
102
104
  const FORMAT_CSV = 3;
@@ -108,9 +110,10 @@ function formatValue(nFormat, bIsProp, nColumn, sKey, sValue) {
108
110
  return (bIsProp ? sKey + "=" : nColumn > 1 ? " " : "") + (sValue === null ? "null" : sValue.replaceAll(/[\r\n]+/g, "\n"));
109
111
  }
110
112
  else {
113
+ // FORMAT_CSV
111
114
  return (nColumn > 1 ? "," : "") + (sValue === null ? "" : quoteCsvText(sValue));
112
115
  }
113
- }
116
+ } // end formatValue
114
117
  const rStdin = process.stdin.fd;
115
118
  const wStdout = process.stdout.fd;
116
119
  function printValue(wCurrent, nFormat, bIsProp, nColumn, nColumnCount, sKey, sValue) {
@@ -123,7 +126,7 @@ function printValue(wCurrent, nFormat, bIsProp, nColumn, nColumnCount, sKey, sVa
123
126
  else {
124
127
  fs.writeSync(wCurrent, s);
125
128
  }
126
- }
129
+ } // end printValue
127
130
  function printArray(wCurrent, nFormat, bIsProp, aasData) {
128
131
  let asNames = aasData[0];
129
132
  let iRowStart = nFormat === FORMAT_CSV ? 0 : 1;
@@ -133,23 +136,23 @@ function printArray(wCurrent, nFormat, bIsProp, aasData) {
133
136
  printValue(wCurrent, nFormat, bIsProp, iColumn + 1, asRow.length, asNames[iColumn], asRow[iColumn]);
134
137
  }
135
138
  }
136
- }
139
+ } // end printArray
137
140
  function printNameValue(wCurrent, nFormat, sName, sValue) {
138
- printArray(wCurrent, nFormat, false, [[sName], [sValue]]);
139
- }
141
+ printArray(wCurrent, nFormat, /*bIsProp*/ false, [[sName], [sValue]]);
142
+ } // end printNameValue
140
143
  function stripControlChars(sInput) {
141
144
  let sOutput = "";
142
145
  for (let i = 0; i < sInput.length; i++) {
143
146
  let c = sInput.charCodeAt(i);
144
- if (c === TAB || c === CR || c === LF || c >= SPACE && c !== 127 && c !== 0xFFFD)
147
+ if (c === TAB || c === CR || c === LF || c >= SPACE && c !== 127 /* DEL */ && c !== 0xFFFD) // Unicode replacement character
145
148
  sOutput += sInput[i];
146
149
  }
147
150
  return sOutput;
148
- }
151
+ } // end stripControlChars
149
152
  function printResultSet(wCurrent, nFormat, bVerboseControlChars, sTitle, cur) {
150
153
  if (nFormat === FORMAT_CSV) {
151
154
  for (let iColumn = 0; iColumn < cur.description.length; iColumn++) {
152
- printValue(wCurrent, nFormat, false, iColumn + 1, cur.description.length, "", cur.description[iColumn][0]);
155
+ printValue(wCurrent, nFormat, /*bIsProp*/ false, iColumn + 1, cur.description.length, "", cur.description[iColumn][0]);
153
156
  }
154
157
  }
155
158
  for (let iRow = 0;; iRow++) {
@@ -170,11 +173,11 @@ function printResultSet(wCurrent, nFormat, bVerboseControlChars, sTitle, cur) {
170
173
  let sValue = oValue !== null ? oValue.toString() : null;
171
174
  if (sValue !== null && !bVerboseControlChars)
172
175
  sValue = stripControlChars(sValue);
173
- printValue(wCurrent, nFormat, false, iColumn + 1, row.length, sKey, sValue);
176
+ printValue(wCurrent, nFormat, /*bIsProp*/ false, iColumn + 1, row.length, sKey, sValue);
174
177
  iColumn++;
175
178
  }
176
179
  }
177
- }
180
+ } // end printResultSet
178
181
  function readLine(h) {
179
182
  let bufLine = null;
180
183
  let bufByte = Buffer.alloc(1);
@@ -205,44 +208,46 @@ function readLine(h) {
205
208
  }
206
209
  }
207
210
  else if (nBytesRead === 0 && h !== rStdin) {
211
+ // reached EOF on file
208
212
  break;
209
213
  }
210
- }
214
+ } // end for
211
215
  return bufLine !== null ? bufLine.toString() : null;
212
- }
216
+ } // end readLine
213
217
  function safePeek(stack) {
214
218
  return stack.length > 0 ? stack[stack.length - 1] : null;
215
- }
219
+ } // end safePeek
216
220
  function pushDiff(stack, o) {
217
221
  if (o !== safePeek(stack)) {
218
222
  stack.push(o);
219
223
  }
220
- }
224
+ } // end pushDiff
221
225
  function popClose(stack, exclude) {
222
226
  let h = stack.pop();
223
227
  if (h && h !== exclude) {
224
228
  fs.closeSync(h);
225
229
  }
226
- }
230
+ } // end popClose
227
231
  function findAllMatches(sInput, re) {
228
232
  let asOutput = [];
229
233
  let aMatches = [...sInput.matchAll(re)];
230
234
  for (let mat of aMatches) {
231
- asOutput.push(mat[1]);
235
+ asOutput.push(mat[1]); // [1] is the captured group
232
236
  }
233
237
  return asOutput;
234
- }
238
+ } // end findAllMatches
235
239
  function convertStringArrayToIntArray(asInput) {
236
240
  let anOutput = [];
237
241
  for (let s of asInput) {
238
242
  anOutput.push(parseInt(s));
239
243
  }
240
244
  return anOutput;
241
- }
245
+ } // end convertStringArrayToIntArray
242
246
  function convertStringArrayToIntSet(asInput) {
243
247
  return new Set(convertStringArrayToIntArray(asInput));
244
- }
248
+ } // end convertStringArrayToIntSet
245
249
  function intersect(set1, set2) {
250
+ // the .intersection method is available in ECMAScript 2024
246
251
  let setOutput = new Set();
247
252
  for (let o of set1) {
248
253
  if (set2.has(o)) {
@@ -250,10 +255,10 @@ function intersect(set1, set2) {
250
255
  }
251
256
  }
252
257
  return setOutput;
253
- }
258
+ } // end intersect
254
259
  function threadSleep(nMillis) {
255
260
  Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, nMillis);
256
- }
261
+ } // end threadSleep
257
262
  function main(asArgs) {
258
263
  if (asArgs.length === 0) {
259
264
  console.log("Arguments: Command...");
@@ -263,7 +268,7 @@ function main(asArgs) {
263
268
  console.log("# begins a comment");
264
269
  console.log("autocommit:off turns off autocommit");
265
270
  console.log("autocommit:on turns on autocommit");
266
- console.log("commit calls the connection commit method");
271
+ console.log("commit calls the connection commit method"); // mixed-case Commit will be executed as a SQL request
267
272
  console.log("cont:message sets the continuation prompt to the specified message");
268
273
  console.log("driver prints the driver name and version");
269
274
  console.log("echo:message prints the specified message");
@@ -283,7 +288,7 @@ function main(asArgs) {
283
288
  console.log("pause waits for a line from stdin");
284
289
  console.log("pid prints the process ID of Python");
285
290
  console.log("prompt:message sets the prompt to the specified message");
286
- console.log("rollback calls the connection rollback method");
291
+ console.log("rollback calls the connection rollback method"); // mixed-case Rollback will be executed as a SQL request
287
292
  console.log("sleep:ms sleeps for the specified number of milliseconds");
288
293
  console.log("sql:multi accepts multiple arguments or input lines as a SQL request up to an empty argument or input line");
289
294
  console.log("sql:semicolon accepts multiple arguments or input lines as a SQL request up to an argument or input line ending with a semicolon");
@@ -299,7 +304,7 @@ function main(asArgs) {
299
304
  return;
300
305
  }
301
306
  let nFormat = FORMAT_TEXT;
302
- let stackInput = [];
307
+ let stackInput = []; // empty stack means to read commands from args
303
308
  try {
304
309
  let wCurrent = wStdout;
305
310
  try {
@@ -312,13 +317,14 @@ function main(asArgs) {
312
317
  let sPendingCommand = null;
313
318
  let sContinuationPrompt = null;
314
319
  let sPrompt = null;
315
- let setIgnoreSQLErrors = null;
320
+ let setIgnoreSQLErrors = null; // null means ignore none
316
321
  let bVerboseConnection = true;
317
322
  let bVerboseSleep = true;
318
323
  let bVerboseSQL = false;
319
324
  let bVerboseControlChars = false;
320
325
  let bVerboseTransaction = false;
321
326
  for (let iArg = 0;;) {
327
+ // Obtain command
322
328
  let sCommand = null;
323
329
  if (safePeek(stackInput) === rStdin) {
324
330
  if (sPendingCommand !== null && sContinuationPrompt !== null) {
@@ -331,6 +337,7 @@ function main(asArgs) {
331
337
  while (sCommand === null && safePeek(stackInput) !== null) {
332
338
  sCommand = readLine(safePeek(stackInput));
333
339
  if (sCommand === null) {
340
+ // EOF reached
334
341
  popClose(stackInput, rStdin);
335
342
  }
336
343
  }
@@ -356,20 +363,22 @@ function main(asArgs) {
356
363
  }
357
364
  else {
358
365
  sPendingCommand += " " + sCommand;
359
- continue;
366
+ continue; // repeat for loop
360
367
  }
361
- }
368
+ } // end if sPendingCommand
362
369
  if (sCommand === null) {
363
- break;
370
+ break; // out of for loop
364
371
  }
372
+ // Process command
365
373
  try {
366
374
  if (sCommand === "") {
375
+ // do nothing
367
376
  }
368
377
  else if (sCommand === "-i" || sCommand === "-im" || sCommand === "-is") {
369
378
  pushDiff(stackInput, rStdin);
370
379
  sPrompt = ">>> ";
371
380
  sContinuationPrompt = "... ";
372
- setIgnoreSQLErrors = new Set();
381
+ setIgnoreSQLErrors = new Set(); // empty set means ignore all
373
382
  if (sCommand === "-im") {
374
383
  nSQLEnd = MULTI;
375
384
  }
@@ -398,6 +407,7 @@ function main(asArgs) {
398
407
  }
399
408
  }
400
409
  else if (sCommand.startsWith("#")) {
410
+ // do nothing
401
411
  }
402
412
  else if (sCommand === "time") {
403
413
  let d = new Date();
@@ -463,10 +473,10 @@ function main(asArgs) {
463
473
  con = null;
464
474
  conToClose.close();
465
475
  }
466
- sCommand = sCommand.replaceAll(",,", "\x01");
476
+ sCommand = sCommand.replaceAll(",,", "\x01"); // temporarily replace double commas (literal commas) with Ctrl+A
467
477
  let mapParams = new Map();
468
478
  for (let sPair of sCommand.split(",")) {
469
- sPair = sPair.replaceAll("\x01", ",");
479
+ sPair = sPair.replaceAll("\x01", ","); // restore literal commas
470
480
  let asPair = sPair.split("=", 2);
471
481
  if (asPair.length === 2) {
472
482
  mapParams.set(asPair[0], asPair[1]);
@@ -474,7 +484,7 @@ function main(asArgs) {
474
484
  else {
475
485
  throw new Error("Missing equal sign in connection parameter " + sPair);
476
486
  }
477
- }
487
+ } // end for sPair
478
488
  let sConnect = JSON.stringify(Object.fromEntries(mapParams));
479
489
  con = connect({}, sConnect);
480
490
  if (bVerboseConnection) {
@@ -489,7 +499,7 @@ function main(asArgs) {
489
499
  ["Status", "Remote", "Version", "Session"],
490
500
  [sStatus, sRemote, sVersion, sSession],
491
501
  ]);
492
- }
502
+ } // end if bVerboseConnection
493
503
  }
494
504
  else if (sCommand.startsWith("input:")) {
495
505
  let s = sCommand.substring("input:".length);
@@ -521,10 +531,10 @@ function main(asArgs) {
521
531
  }
522
532
  }
523
533
  else if (sCommand === "ignore:sql:all") {
524
- setIgnoreSQLErrors = new Set();
534
+ setIgnoreSQLErrors = new Set(); // empty set means ignore all
525
535
  }
526
536
  else if (sCommand === "ignore:sql:none") {
527
- setIgnoreSQLErrors = null;
537
+ setIgnoreSQLErrors = null; // null means ignore none
528
538
  }
529
539
  else if (sCommand.startsWith("ignore:sql:")) {
530
540
  let s = sCommand.substring("ignore:sql:".length);
@@ -553,6 +563,7 @@ function main(asArgs) {
553
563
  bVerboseTransaction = false;
554
564
  }
555
565
  else if (con === null) {
566
+ // commands above do not use con, commands below use con
556
567
  throw new Error("No connection available for " + sCommand);
557
568
  }
558
569
  else if (sCommand === "autocommit:off") {
@@ -589,6 +600,7 @@ function main(asArgs) {
589
600
  sPendingCommand = sCommand;
590
601
  }
591
602
  else {
603
+ // con is available
592
604
  if (bVerboseSQL) {
593
605
  fs.writeSync(wCurrent, sCommand + "\n");
594
606
  }
@@ -605,22 +617,24 @@ function main(asArgs) {
605
617
  finally {
606
618
  cur.close();
607
619
  }
608
- }
620
+ } // end else con is available
609
621
  }
610
622
  catch (ex) {
611
623
  if (ex instanceof teradata_exceptions_1.DatabaseError) {
612
624
  let sErrMsg = ex.toString();
613
625
  var bIgnore;
614
626
  if (setIgnoreSQLErrors === null) {
627
+ // null means ignore none
615
628
  bIgnore = false;
616
629
  }
617
630
  else if (setIgnoreSQLErrors.size === 0) {
631
+ // empty set means ignore all
618
632
  bIgnore = true;
619
633
  }
620
634
  else {
621
635
  let setErrorCodes = convertStringArrayToIntSet(findAllMatches(sErrMsg, /\[Error (\d+)\]/g));
622
636
  let setIntersection = intersect(setErrorCodes, setIgnoreSQLErrors);
623
- bIgnore = setIntersection.size > 0;
637
+ bIgnore = setIntersection.size > 0; // ignore when intersection is non-empty, meaning exception has at least one ignored error code
624
638
  }
625
639
  if (bIgnore) {
626
640
  printNameValue(wCurrent, nFormat, "Exception", sErrMsg);
@@ -630,10 +644,10 @@ function main(asArgs) {
630
644
  }
631
645
  }
632
646
  else {
633
- throw ex;
647
+ throw ex; // rethrow
634
648
  }
635
- }
636
- }
649
+ } // end catch
650
+ } // end for iArg
637
651
  }
638
652
  finally {
639
653
  if (con) {
@@ -652,6 +666,6 @@ function main(asArgs) {
652
666
  popClose(stackInput, rStdin);
653
667
  }
654
668
  }
655
- }
669
+ } // end main
656
670
  exports.main = main;
657
671
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}