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.
- package/README.md +72 -9
- package/lib/cli.d.ts.map +1 -1
- package/lib/cli.js +1 -0
- package/lib/cli.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +58 -44
- package/lib/index.js.map +1 -1
- package/lib/teradata-connection.d.ts.map +1 -1
- package/lib/teradata-connection.js +23 -11
- package/lib/teradata-connection.js.map +1 -1
- package/lib/teradata-cursor.d.ts +1 -0
- package/lib/teradata-cursor.d.ts.map +1 -1
- package/lib/teradata-cursor.js +98 -33
- package/lib/teradata-cursor.js.map +1 -1
- package/lib/teradata-exceptions.d.ts.map +1 -1
- package/lib/teradata-exceptions.js +1 -0
- package/lib/teradata-exceptions.js.map +1 -1
- package/lib/teradata-logging.d.ts.map +1 -1
- package/lib/teradata-logging.js +5 -1
- package/lib/teradata-logging.js.map +1 -1
- package/lib/teradatasql.arm.fips.so +0 -0
- package/lib/teradatasql.arm.so +0 -0
- package/lib/teradatasql.dll +0 -0
- package/lib/teradatasql.dylib +0 -0
- package/lib/teradatasql.fips.so +0 -0
- package/lib/teradatasql.so +0 -0
- package/package.json +1 -1
- package/samples/AGKRBatchInsert.js +3 -0
- package/samples/AGKRInsertSelect.js +3 -0
- package/samples/BatchInsPerf.js +4 -1
- package/samples/BatchInsert.js +3 -0
- package/samples/BatchInsertCSV.js +4 -0
- package/samples/CancelSleep.js +8 -5
- package/samples/CharPadding.js +8 -0
- package/samples/CommitRollback.js +3 -0
- package/samples/DecimalDigits.js +3 -0
- package/samples/DriverDatabaseVersion.js +4 -0
- package/samples/ElicitFile.js +5 -0
- package/samples/ExecuteRequest.js +6 -3
- package/samples/ExportCSVResult.js +4 -0
- package/samples/ExportCSVResults.js +4 -0
- package/samples/FakeExportCSVResults.js +5 -0
- package/samples/FakeResultSetCon.js +3 -0
- package/samples/FakeResultSetEsc.js +3 -0
- package/samples/FastExportCSV.js +4 -0
- package/samples/FastExportTable.js +3 -0
- package/samples/FastLoadBatch.js +17 -10
- package/samples/FastLoadCSV.js +8 -3
- package/samples/HelpSession.js +3 -0
- package/samples/IgnoreErrors.js +5 -2
- package/samples/InsertLob.js +21 -4
- package/samples/InsertXML.js +6 -1
- package/samples/LoadCSVFile.js +6 -0
- package/samples/LobLocators.js +5 -0
- package/samples/MetadataFromPrepare.js +5 -0
- package/samples/ParamDataTypes.js +7 -0
- package/samples/ShowCommand.js +7 -0
- package/samples/StoredProc.js +33 -9
- package/samples/TJEncryptPassword.js +312 -14
- 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/>• `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/>• `PREFER` performs CRC for all HTTPS connections, and provides soft fail CRC for `VERIFY-CA` and `VERIFY-FULL` to ignore CRC communication failures.<br/>• `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/>• `DISABLE` disables HTTPS/TLS connections and uses only non-TLS connections.<br/>• `ALLOW` uses non-TLS connections unless the database requires HTTPS/TLS connections.<br/>• `PREFER` uses HTTPS/TLS connections unless the database does not offer HTTPS/TLS connections.<br/>• `REQUIRE` uses only HTTPS/TLS connections.<br/>• `VERIFY-CA` uses only HTTPS/TLS connections and verifies that the server certificate is valid and trusted.<br/>• `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
|
-
|
|
758
|
-
|
|
759
|
-
|
|
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
|
|
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
|
|
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":";
|
|
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
package/lib/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":";
|
|
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"}
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"
|
|
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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"}
|