teradatasql 20.0.0
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/LICENSE +196 -0
- package/README.md +1447 -0
- package/THIRDPARTYLICENSE +40 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +50 -0
- package/lib/index.js.map +1 -0
- package/lib/teradata-connection.d.ts +74 -0
- package/lib/teradata-connection.d.ts.map +1 -0
- package/lib/teradata-connection.js +280 -0
- package/lib/teradata-connection.js.map +1 -0
- package/lib/teradata-cursor.d.ts +58 -0
- package/lib/teradata-cursor.d.ts.map +1 -0
- package/lib/teradata-cursor.js +746 -0
- package/lib/teradata-cursor.js.map +1 -0
- package/lib/teradata-exceptions.d.ts +19 -0
- package/lib/teradata-exceptions.d.ts.map +1 -0
- package/lib/teradata-exceptions.js +52 -0
- package/lib/teradata-exceptions.js.map +1 -0
- package/lib/teradata-logging.d.ts +23 -0
- package/lib/teradata-logging.d.ts.map +1 -0
- package/lib/teradata-logging.js +79 -0
- package/lib/teradata-logging.js.map +1 -0
- package/lib/teradatasql.dll +0 -0
- package/lib/teradatasql.dylib +0 -0
- package/lib/teradatasql.so +0 -0
- package/package.json +33 -0
- package/samples/AGKRBatchInsert.js +38 -0
- package/samples/AGKRInsertSelect.js +28 -0
- package/samples/BatchInsPerf.js +47 -0
- package/samples/BatchInsert.js +17 -0
- package/samples/BatchInsertCSV.js +54 -0
- package/samples/CharPadding.js +31 -0
- package/samples/CommitRollback.js +31 -0
- package/samples/DecimalDigits.js +49 -0
- package/samples/DriverDatabaseVersion.js +14 -0
- package/samples/ElicitFile.js +19 -0
- package/samples/ExportCSVResult.js +54 -0
- package/samples/ExportCSVResults.js +60 -0
- package/samples/FakeExportCSVResults.js +82 -0
- package/samples/FakeResultSetCon.js +72 -0
- package/samples/FakeResultSetEsc.js +72 -0
- package/samples/FastExportCSV.js +102 -0
- package/samples/FastExportTable.js +76 -0
- package/samples/FastLoadBatch.js +152 -0
- package/samples/FastLoadCSV.js +116 -0
- package/samples/HelpSession.js +18 -0
- package/samples/IgnoreErrors.js +125 -0
- package/samples/InsertLob.js +62 -0
- package/samples/InsertXML.js +37 -0
- package/samples/LoadCSVFile.js +41 -0
- package/samples/LobLocators.js +57 -0
- package/samples/MetadataFromPrepare.js +23 -0
- package/samples/ParamDataTypes.js +70 -0
- package/samples/ShowCommand.js +31 -0
- package/samples/StoredProc.js +77 -0
- package/samples/TJEncryptPassword.js +270 -0
- package/samples/airports.csv +9 -0
- package/samples/udfinc.c +6 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
_________________________________________________________________________________
|
|
2
|
+
|
|
3
|
+
Teradata SQL Driver for Node.js includes the following third-party components:
|
|
4
|
+
|
|
5
|
+
_________________________________________________________________________________
|
|
6
|
+
|
|
7
|
+
OSAT 8809
|
|
8
|
+
|
|
9
|
+
The Go runtime and standard library are included in this product in
|
|
10
|
+
binary form. Use of the Go runtime and standard library is governed by
|
|
11
|
+
the terms of the license below:
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Copyright (c) 2009 The Go Authors. All rights reserved.
|
|
15
|
+
|
|
16
|
+
Redistribution and use in source and binary forms, with or without
|
|
17
|
+
modification, are permitted provided that the following conditions are
|
|
18
|
+
met:
|
|
19
|
+
|
|
20
|
+
* Redistributions of source code must retain the above copyright
|
|
21
|
+
notice, this list of conditions and the following disclaimer.
|
|
22
|
+
* Redistributions in binary form must reproduce the above
|
|
23
|
+
copyright notice, this list of conditions and the following disclaimer
|
|
24
|
+
in the documentation and/or other materials provided with the
|
|
25
|
+
distribution.
|
|
26
|
+
* Neither the name of Google Inc. nor the names of its
|
|
27
|
+
contributors may be used to endorse or promote products derived from
|
|
28
|
+
this software without specific prior written permission.
|
|
29
|
+
|
|
30
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
31
|
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
32
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
33
|
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
34
|
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
35
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
36
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
37
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
38
|
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
39
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
40
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ITDConnParams, TeradataConnection } from "./teradata-connection";
|
|
2
|
+
export { ITDConnParams, TeradataConnection };
|
|
3
|
+
export { BINARY, DATE, NUMBER, STRING, TeradataCursor } from "./teradata-cursor";
|
|
4
|
+
export { TeradataLogging } from "./teradata-logging";
|
|
5
|
+
export { InterfaceError, DatabaseError, DataError, IntegrityError, OperationalError, ProgrammingError } from "./teradata-exceptions";
|
|
6
|
+
export declare const apilevel: string;
|
|
7
|
+
export declare const threadsafety: number;
|
|
8
|
+
export declare const paramstyle: string;
|
|
9
|
+
export declare function date(year: number, month: number, day: number): string;
|
|
10
|
+
export declare function dateFromTicks(seconds: number): string;
|
|
11
|
+
export declare function timestamp(year: number, month: number, day: number, hour: number, minute: number, second: number): Date;
|
|
12
|
+
export declare function timestampFromTicks(seconds: number): Date;
|
|
13
|
+
export declare function connect(objConParams?: ITDConnParams, strConParams?: string): TeradataConnection;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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;AAE1E,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"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.connect = exports.timestampFromTicks = exports.timestamp = exports.dateFromTicks = exports.date = exports.paramstyle = exports.threadsafety = exports.apilevel = exports.ProgrammingError = exports.OperationalError = exports.IntegrityError = exports.DataError = exports.DatabaseError = exports.InterfaceError = exports.TeradataLogging = exports.TeradataCursor = exports.STRING = exports.NUMBER = exports.DATE = exports.BINARY = exports.TeradataConnection = void 0;
|
|
4
|
+
const teradata_connection_1 = require("./teradata-connection");
|
|
5
|
+
Object.defineProperty(exports, "TeradataConnection", { enumerable: true, get: function () { return teradata_connection_1.TeradataConnection; } });
|
|
6
|
+
var teradata_cursor_1 = require("./teradata-cursor");
|
|
7
|
+
Object.defineProperty(exports, "BINARY", { enumerable: true, get: function () { return teradata_cursor_1.BINARY; } });
|
|
8
|
+
Object.defineProperty(exports, "DATE", { enumerable: true, get: function () { return teradata_cursor_1.DATE; } });
|
|
9
|
+
Object.defineProperty(exports, "NUMBER", { enumerable: true, get: function () { return teradata_cursor_1.NUMBER; } });
|
|
10
|
+
Object.defineProperty(exports, "STRING", { enumerable: true, get: function () { return teradata_cursor_1.STRING; } });
|
|
11
|
+
Object.defineProperty(exports, "TeradataCursor", { enumerable: true, get: function () { return teradata_cursor_1.TeradataCursor; } });
|
|
12
|
+
var teradata_logging_1 = require("./teradata-logging");
|
|
13
|
+
Object.defineProperty(exports, "TeradataLogging", { enumerable: true, get: function () { return teradata_logging_1.TeradataLogging; } });
|
|
14
|
+
var teradata_exceptions_1 = require("./teradata-exceptions");
|
|
15
|
+
Object.defineProperty(exports, "InterfaceError", { enumerable: true, get: function () { return teradata_exceptions_1.InterfaceError; } });
|
|
16
|
+
Object.defineProperty(exports, "DatabaseError", { enumerable: true, get: function () { return teradata_exceptions_1.DatabaseError; } });
|
|
17
|
+
Object.defineProperty(exports, "DataError", { enumerable: true, get: function () { return teradata_exceptions_1.DataError; } });
|
|
18
|
+
Object.defineProperty(exports, "IntegrityError", { enumerable: true, get: function () { return teradata_exceptions_1.IntegrityError; } });
|
|
19
|
+
Object.defineProperty(exports, "OperationalError", { enumerable: true, get: function () { return teradata_exceptions_1.OperationalError; } });
|
|
20
|
+
Object.defineProperty(exports, "ProgrammingError", { enumerable: true, get: function () { return teradata_exceptions_1.ProgrammingError; } });
|
|
21
|
+
exports.apilevel = "2.0";
|
|
22
|
+
exports.threadsafety = 2;
|
|
23
|
+
exports.paramstyle = "qmark";
|
|
24
|
+
function date(year, month, day) {
|
|
25
|
+
const oDate = new Date(Date.UTC(year, month, day, 0, 0, 0));
|
|
26
|
+
return oDate.toISOString().slice(0, 10);
|
|
27
|
+
}
|
|
28
|
+
exports.date = date;
|
|
29
|
+
function dateFromTicks(seconds) {
|
|
30
|
+
const oDate = new Date(seconds * 1000);
|
|
31
|
+
const sDate = oDate.toISOString().slice(0, 10);
|
|
32
|
+
const sTime = oDate.toISOString().slice(11, 23);
|
|
33
|
+
return `${sDate} ${sTime}000`;
|
|
34
|
+
}
|
|
35
|
+
exports.dateFromTicks = dateFromTicks;
|
|
36
|
+
function timestamp(year, month, day, hour, minute, second) {
|
|
37
|
+
return new Date(year, month, day, hour, minute, second);
|
|
38
|
+
}
|
|
39
|
+
exports.timestamp = timestamp;
|
|
40
|
+
function timestampFromTicks(seconds) {
|
|
41
|
+
return new Date(seconds * 1000);
|
|
42
|
+
}
|
|
43
|
+
exports.timestampFromTicks = timestampFromTicks;
|
|
44
|
+
function connect(objConParams = {}, strConParams = "{}") {
|
|
45
|
+
const con = new teradata_connection_1.TeradataConnection();
|
|
46
|
+
con.connect(objConParams, strConParams);
|
|
47
|
+
return con;
|
|
48
|
+
}
|
|
49
|
+
exports.connect = connect;
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;AAAA,+DAA0E;AAElD,mGAFA,wCAAkB,OAEA;AAC1C,qDAAiF;AAAxE,yGAAA,MAAM,OAAA;AAAE,uGAAA,IAAI,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,iHAAA,cAAc,OAAA;AACrD,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,6DAAqI;AAA5H,qHAAA,cAAc,OAAA;AAAE,oHAAA,aAAa,OAAA;AAAE,gHAAA,SAAS,OAAA;AAAE,qHAAA,cAAc,OAAA;AAAE,uHAAA,gBAAgB,OAAA;AAAE,uHAAA,gBAAgB,OAAA;AAExF,QAAA,QAAQ,GAAW,KAAK,CAAC;AACzB,QAAA,YAAY,GAAW,CAAC,CAAC;AACzB,QAAA,UAAU,GAAW,OAAO,CAAC;AAE1C,SAAgB,IAAI,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;IACzD,MAAM,KAAK,GAAS,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAHD,oBAGC;AAED,SAAgB,aAAa,CAAC,OAAe;IAEzC,MAAM,KAAK,GAAS,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAW,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAW,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxD,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC;AAClC,CAAC;AAND,sCAMC;AAED,SAAgB,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW,EAAE,IAAY,EAAE,MAAc,EAAE,MAAc;IAC5G,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAFD,8BAEC;AAED,SAAgB,kBAAkB,CAAC,OAAe;IAC9C,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACpC,CAAC;AAFD,gDAEC;AAED,SAAgB,OAAO,CAAC,eAA8B,EAAE,EAAE,eAAuB,IAAI;IACjF,MAAM,GAAG,GAAuB,IAAI,wCAAkB,EAAE,CAAC;IACzD,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACxC,OAAO,GAAG,CAAC;AACf,CAAC;AAJD,0BAIC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { TeradataCursor } from "./teradata-cursor";
|
|
2
|
+
export interface ITDConnParams {
|
|
3
|
+
account?: string;
|
|
4
|
+
browser?: string;
|
|
5
|
+
browser_tab_timeout?: string;
|
|
6
|
+
browser_timeout?: string;
|
|
7
|
+
column_name?: string;
|
|
8
|
+
connect_failure_ttl?: string;
|
|
9
|
+
connect_function?: string;
|
|
10
|
+
connect_timeout?: string;
|
|
11
|
+
cop?: string;
|
|
12
|
+
coplast?: string;
|
|
13
|
+
database?: string;
|
|
14
|
+
dbs_port?: string;
|
|
15
|
+
encryptdata?: string;
|
|
16
|
+
error_query_count?: string;
|
|
17
|
+
error_query_interval?: string;
|
|
18
|
+
error_table_1_suffix?: string;
|
|
19
|
+
error_table_2_suffix?: string;
|
|
20
|
+
error_table_database?: string;
|
|
21
|
+
fake_result_sets?: string;
|
|
22
|
+
field_quote?: string;
|
|
23
|
+
field_sep?: string;
|
|
24
|
+
govern?: string;
|
|
25
|
+
host?: string;
|
|
26
|
+
https_port?: string;
|
|
27
|
+
lob_support?: string;
|
|
28
|
+
log?: string;
|
|
29
|
+
logdata?: string;
|
|
30
|
+
logmech?: string;
|
|
31
|
+
logon_sequence_number?: string;
|
|
32
|
+
logon_timeout?: string;
|
|
33
|
+
manage_error_tables?: string;
|
|
34
|
+
max_message_body?: string;
|
|
35
|
+
oidc_scope?: string;
|
|
36
|
+
oidc_token?: string;
|
|
37
|
+
partition?: string;
|
|
38
|
+
password?: string;
|
|
39
|
+
request_timeout?: string;
|
|
40
|
+
runstartup?: string;
|
|
41
|
+
sessions?: string;
|
|
42
|
+
sip_support?: string;
|
|
43
|
+
sp_spl?: string;
|
|
44
|
+
sslca?: string;
|
|
45
|
+
sslcapath?: string;
|
|
46
|
+
sslcipher?: string;
|
|
47
|
+
sslcrc?: string;
|
|
48
|
+
sslmode?: string;
|
|
49
|
+
sslprotocol?: string;
|
|
50
|
+
teradata_values?: string;
|
|
51
|
+
tmode?: string;
|
|
52
|
+
user?: string;
|
|
53
|
+
}
|
|
54
|
+
export declare class TeradataConnection {
|
|
55
|
+
private poolHandle;
|
|
56
|
+
private lib;
|
|
57
|
+
private ref;
|
|
58
|
+
private byteArray;
|
|
59
|
+
private logLevel;
|
|
60
|
+
private logger;
|
|
61
|
+
private sVersionNumber;
|
|
62
|
+
constructor();
|
|
63
|
+
get uLog(): number;
|
|
64
|
+
get uPoolHandle(): number | null;
|
|
65
|
+
get autocommit(): boolean;
|
|
66
|
+
set autocommit(value: boolean);
|
|
67
|
+
cursor(): TeradataCursor;
|
|
68
|
+
connect(connectParams?: ITDConnParams, sJSON?: string): void;
|
|
69
|
+
close(): void;
|
|
70
|
+
cancel(): void;
|
|
71
|
+
commit(): void;
|
|
72
|
+
rollback(): void;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=teradata-connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teradata-connection.d.ts","sourceRoot":"","sources":["../../../src/teradata-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.TeradataConnection = void 0;
|
|
23
|
+
const ffi = __importStar(require("ffi-napi"));
|
|
24
|
+
const ref = __importStar(require("ref-napi"));
|
|
25
|
+
const arrayType = require("ref-array-di")(ref);
|
|
26
|
+
const fs = require("fs");
|
|
27
|
+
const path = require("path");
|
|
28
|
+
const os = require("os");
|
|
29
|
+
const teradata_cursor_1 = require("./teradata-cursor");
|
|
30
|
+
const teradata_logging_1 = require("./teradata-logging");
|
|
31
|
+
const teradata_exceptions_1 = require("./teradata-exceptions");
|
|
32
|
+
class TeradataConnection {
|
|
33
|
+
constructor() {
|
|
34
|
+
this.sVersionNumber = "";
|
|
35
|
+
if (!["arm64", "x64"].includes(process.arch)) {
|
|
36
|
+
throw new Error("This package requires 64-bit Node.js. 32-bit Node.js is not supported.");
|
|
37
|
+
}
|
|
38
|
+
const sPackageJsonPathName = path.resolve(__dirname, "..", "package.json");
|
|
39
|
+
try {
|
|
40
|
+
const packageJson = fs.readFileSync(sPackageJsonPathName);
|
|
41
|
+
JSON.parse(packageJson, (key, value) => {
|
|
42
|
+
if (key === "version") {
|
|
43
|
+
this.sVersionNumber = value;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.log(`sPackageJsonPathName=${sPackageJsonPathName}`);
|
|
49
|
+
fs.stat(sPackageJsonPathName, (err, stat) => {
|
|
50
|
+
if (err) {
|
|
51
|
+
console.log(err);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
if (stat.isFile()) {
|
|
55
|
+
console.log(stat);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
console.log(`${sPackageJsonPathName} is not a file.`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
throw new teradata_exceptions_1.OperationalError(error.message);
|
|
63
|
+
}
|
|
64
|
+
this.poolHandle = null;
|
|
65
|
+
this.ref = ref;
|
|
66
|
+
this.byteArray = new arrayType(this.ref.types.byte);
|
|
67
|
+
this.logLevel = 0;
|
|
68
|
+
this.logger = new teradata_logging_1.TeradataLogging(this.logLevel);
|
|
69
|
+
const osType = process.platform;
|
|
70
|
+
let sExtension = "";
|
|
71
|
+
if (osType === "win32") {
|
|
72
|
+
sExtension = "dll";
|
|
73
|
+
}
|
|
74
|
+
else if (osType === "darwin") {
|
|
75
|
+
sExtension = "dylib";
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
sExtension = "so";
|
|
79
|
+
}
|
|
80
|
+
const sLibPathName = path.resolve(__dirname, "teradatasql." + sExtension);
|
|
81
|
+
try {
|
|
82
|
+
this.lib = ffi.Library(`${sLibPathName}`, {
|
|
83
|
+
jsgoCreateConnection: ["void", ["ulong", "char*", "char*", "char**", this.ref.refType(this.ref.types.ulong)]],
|
|
84
|
+
jsgoCloseConnection: ["void", ["ulong", "ulong", "char**"]],
|
|
85
|
+
jsgoCancelRequest: ["void", ["ulong", "ulong", "char**"]],
|
|
86
|
+
jsgoCreateRows: ["void", ["ulong", "ulong", "char*", "ulong", "void*", "char**", this.ref.refType(this.ref.types.ulong)]],
|
|
87
|
+
jsgoFetchRow: ["void", ["ulong", "ulong", "char**", this.ref.refType(this.ref.types.long), "void**", "long"]],
|
|
88
|
+
jsgoResultMetaData: [
|
|
89
|
+
"void",
|
|
90
|
+
["ulong", "ulong", "char**", this.ref.refType(this.ref.types.ulong), this.ref.refType(this.ref.types.int), "void**"],
|
|
91
|
+
],
|
|
92
|
+
jsgoNextResult: ["void", ["ulong", "ulong", "char**", "char*"]],
|
|
93
|
+
jsgoCloseRows: ["void", ["ulong", "ulong", "char**"]],
|
|
94
|
+
jsgoFreePointer: ["void", ["ulong", "void*"]],
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.log(`sLibPathName=${sLibPathName}`);
|
|
99
|
+
fs.stat(sLibPathName, (err, stat) => {
|
|
100
|
+
if (err) {
|
|
101
|
+
console.log(err);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
if (stat.isFile()) {
|
|
105
|
+
console.log(stat);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
console.log(`${sLibPathName} is not a file.`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
throw new teradata_exceptions_1.OperationalError(error.message);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
get uLog() {
|
|
116
|
+
return this.logLevel;
|
|
117
|
+
}
|
|
118
|
+
get uPoolHandle() {
|
|
119
|
+
return this.poolHandle;
|
|
120
|
+
}
|
|
121
|
+
get autocommit() {
|
|
122
|
+
this.logger.traceLog("> enter autocommit getter");
|
|
123
|
+
let result;
|
|
124
|
+
try {
|
|
125
|
+
const cur = this.cursor();
|
|
126
|
+
cur.execute("{fn teradata_nativesql}{fn teradata_autocommit}");
|
|
127
|
+
const row = cur.fetchone();
|
|
128
|
+
if (row && row[0] === "true") {
|
|
129
|
+
result = true;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
result = false;
|
|
133
|
+
}
|
|
134
|
+
cur.close();
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
this.logger.traceLog("< leave autocommit getter");
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
set autocommit(value) {
|
|
142
|
+
this.logger.traceLog("> enter autocommit setter");
|
|
143
|
+
if (typeof value !== "boolean") {
|
|
144
|
+
throw new TypeError(`value unexpected type ${typeof value}`);
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
const s = value ? "on" : "off";
|
|
148
|
+
const cur = this.cursor();
|
|
149
|
+
cur.execute("{fn teradata_nativesql}{fn teradata_autocommit_" + s + "}");
|
|
150
|
+
cur.close();
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
this.logger.traceLog("< leave autocommit setter");
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
cursor() {
|
|
157
|
+
return new teradata_cursor_1.TeradataCursor(this, this.lib, this.ref, this.byteArray);
|
|
158
|
+
}
|
|
159
|
+
connect(connectParams = {}, sJSON = "{}") {
|
|
160
|
+
const kwargs = { ...JSON.parse(sJSON) };
|
|
161
|
+
Object.keys(kwargs).forEach((key) => {
|
|
162
|
+
if (kwargs[key] === true) {
|
|
163
|
+
kwargs[key] = "true";
|
|
164
|
+
}
|
|
165
|
+
else if (kwargs[key] === false) {
|
|
166
|
+
kwargs[key] = "false";
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
const traceback = Error().stack;
|
|
170
|
+
let sFrame;
|
|
171
|
+
let sFrames = [];
|
|
172
|
+
let listFrames = [];
|
|
173
|
+
if (traceback) {
|
|
174
|
+
traceback.replace(path.sep, "/");
|
|
175
|
+
sFrames = traceback.split("\n at").slice(1);
|
|
176
|
+
for (const fr of sFrames) {
|
|
177
|
+
sFrame = fr.split("/").pop();
|
|
178
|
+
if (sFrame) {
|
|
179
|
+
sFrame = sFrame.split(":")[0];
|
|
180
|
+
if (!listFrames.includes(sFrame)) {
|
|
181
|
+
listFrames.push(sFrame);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (process.platform === "win32") {
|
|
187
|
+
listFrames = listFrames.map((frame) => frame.split(" (C")[0].trim());
|
|
188
|
+
}
|
|
189
|
+
kwargs.client_kind = "S";
|
|
190
|
+
kwargs.client_vmname = "Node.js " + process.version;
|
|
191
|
+
kwargs.client_osname = os.version().split(":")[0] + " " + os.arch();
|
|
192
|
+
kwargs.client_stack = listFrames.join(" ");
|
|
193
|
+
kwargs.client_extra = "NODEJS=" + process.version + ";";
|
|
194
|
+
const combinedConnectParams = { ...connectParams, ...kwargs };
|
|
195
|
+
this.logLevel = combinedConnectParams.log ? Number(combinedConnectParams.log) : 0;
|
|
196
|
+
this.logger = new teradata_logging_1.TeradataLogging(this.logLevel);
|
|
197
|
+
this.logger.traceLog("> enter connect TeradataConnection");
|
|
198
|
+
try {
|
|
199
|
+
const jsgoFreePointer = this.lib.jsgoFreePointer;
|
|
200
|
+
const inputString = this.ref.allocCString(JSON.stringify(combinedConnectParams));
|
|
201
|
+
const sVersionNumberPtr = this.ref.allocCString(this.sVersionNumber);
|
|
202
|
+
const cStringPtrType = this.ref.refType(this.ref.types.char);
|
|
203
|
+
const jsgoCreateConnection = this.lib.jsgoCreateConnection;
|
|
204
|
+
const poolHandlePtr = this.ref.alloc(this.ref.types.ulong);
|
|
205
|
+
const outputPtrPtr = this.ref.alloc(cStringPtrType);
|
|
206
|
+
jsgoCreateConnection(this.uLog, sVersionNumberPtr, inputString, outputPtrPtr, poolHandlePtr);
|
|
207
|
+
let outputString = this.ref.allocCString("");
|
|
208
|
+
outputString = this.ref.deref(outputPtrPtr);
|
|
209
|
+
if (outputString.length > 0) {
|
|
210
|
+
const msg = this.ref.readCString(outputString);
|
|
211
|
+
jsgoFreePointer(this.uLog, outputString);
|
|
212
|
+
throw new teradata_exceptions_1.OperationalError(msg);
|
|
213
|
+
}
|
|
214
|
+
this.poolHandle = this.ref.readUInt64LE(poolHandlePtr);
|
|
215
|
+
}
|
|
216
|
+
finally {
|
|
217
|
+
this.logger.traceLog("< leave connect TeradataConnection");
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
close() {
|
|
221
|
+
this.logger.traceLog("> enter close TeradataConnection");
|
|
222
|
+
try {
|
|
223
|
+
const jsgoCloseConnection = this.lib.jsgoCloseConnection;
|
|
224
|
+
const jsgoFreePointer = this.lib.jsgoFreePointer;
|
|
225
|
+
const cStringPtrType = this.ref.refType(this.ref.types.char);
|
|
226
|
+
const outputPtrPtr = this.ref.alloc(cStringPtrType);
|
|
227
|
+
jsgoCloseConnection(this.uLog, this.poolHandle, outputPtrPtr);
|
|
228
|
+
let outputString = this.ref.allocCString("");
|
|
229
|
+
outputString = this.ref.deref(outputPtrPtr);
|
|
230
|
+
if (outputString.length > 0) {
|
|
231
|
+
const msg = this.ref.readCString(outputString);
|
|
232
|
+
jsgoFreePointer(this.uLog, outputString);
|
|
233
|
+
throw new teradata_exceptions_1.OperationalError(msg);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
finally {
|
|
237
|
+
this.logger.traceLog("< leave close TeradataConnection");
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
cancel() {
|
|
241
|
+
this.logger.traceLog("> enter cancel TeradataConnection");
|
|
242
|
+
try {
|
|
243
|
+
const jsgoCancelRequest = this.lib.jsgoCancelRequest;
|
|
244
|
+
const jsgoFreePointer = this.lib.jsgoFreePointer;
|
|
245
|
+
const cStringPtrType = this.ref.refType(this.ref.types.char);
|
|
246
|
+
const outputPtrPtr = this.ref.alloc(cStringPtrType);
|
|
247
|
+
jsgoCancelRequest(this.uLog, this.poolHandle, outputPtrPtr);
|
|
248
|
+
let outputString = this.ref.allocCString("");
|
|
249
|
+
outputString = this.ref.deref(outputPtrPtr);
|
|
250
|
+
if (outputString.length > 0) {
|
|
251
|
+
const msg = this.ref.readCString(outputString);
|
|
252
|
+
jsgoFreePointer(this.uLog, outputString);
|
|
253
|
+
throw new teradata_exceptions_1.OperationalError(msg);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
finally {
|
|
257
|
+
this.logger.traceLog("< leave cancel TeradataConnection");
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
commit() {
|
|
261
|
+
this.logger.traceLog("> enter commit TeradataConnection");
|
|
262
|
+
try {
|
|
263
|
+
this.cursor().execute("{fn teradata_commit}");
|
|
264
|
+
}
|
|
265
|
+
finally {
|
|
266
|
+
this.logger.traceLog("< leave commit TeradataConnection");
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
rollback() {
|
|
270
|
+
this.logger.traceLog("> enter rollback TeradataConnection");
|
|
271
|
+
try {
|
|
272
|
+
this.cursor().execute("{fn teradata_rollback}");
|
|
273
|
+
}
|
|
274
|
+
finally {
|
|
275
|
+
this.logger.traceLog("< leave rollback TeradataConnection");
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
exports.TeradataConnection = TeradataConnection;
|
|
280
|
+
//# sourceMappingURL=teradata-connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teradata-connection.js","sourceRoot":"","sources":["../../../src/teradata-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { TeradataConnection } from "./teradata-connection";
|
|
2
|
+
export declare const BINARY: string;
|
|
3
|
+
export declare const DATE: string;
|
|
4
|
+
export declare const NUMBER: string;
|
|
5
|
+
export declare const STRING: string;
|
|
6
|
+
export declare type Row = any[] | null;
|
|
7
|
+
export declare type Rows = any[];
|
|
8
|
+
export declare class TeradataCursor {
|
|
9
|
+
private desc;
|
|
10
|
+
private rowCount;
|
|
11
|
+
private rowNumber;
|
|
12
|
+
private conn;
|
|
13
|
+
private uRowsHand;
|
|
14
|
+
private arraySize;
|
|
15
|
+
private bClosed;
|
|
16
|
+
private lib;
|
|
17
|
+
private ref;
|
|
18
|
+
private byteArray;
|
|
19
|
+
private logger;
|
|
20
|
+
constructor(connection: TeradataConnection, ffiLib: any, ffiRef: any, ffiByteArray: any);
|
|
21
|
+
get description(): Row;
|
|
22
|
+
get rowcount(): bigint;
|
|
23
|
+
get rownumber(): bigint | null;
|
|
24
|
+
get connection(): TeradataConnection;
|
|
25
|
+
get uRowsHandle(): number | null;
|
|
26
|
+
get arraysize(): number;
|
|
27
|
+
set arraysize(value: number);
|
|
28
|
+
callproc(procname: string, parameters?: any[]): void;
|
|
29
|
+
close(): void;
|
|
30
|
+
_stopIfClosed(): void;
|
|
31
|
+
_closeRows(): void;
|
|
32
|
+
execute(operation: string, parameters?: any[], ignoreErrors?: number | number[] | null): void;
|
|
33
|
+
executemany(procname: string, seqOfParameters: any[] | null, ignoreErrors?: number | number[] | null): void;
|
|
34
|
+
fetchone(): Row;
|
|
35
|
+
fetchall(): Rows;
|
|
36
|
+
fetchmany(nDesiredRowCount?: number): Rows;
|
|
37
|
+
nextset(): boolean;
|
|
38
|
+
setinputsizes(sizes: number): void;
|
|
39
|
+
setoutputsize(size: number, column: number): void;
|
|
40
|
+
next(): any[];
|
|
41
|
+
fetchmany_(nDesiredRowCount?: number): any[] | null;
|
|
42
|
+
private _obtainResultMetaData;
|
|
43
|
+
private _deserializeBool;
|
|
44
|
+
private _deserializeBytes;
|
|
45
|
+
private _deserializeCharacterValue;
|
|
46
|
+
private _deserializeDate;
|
|
47
|
+
private _deserializeDouble;
|
|
48
|
+
private _deserializeInt;
|
|
49
|
+
private _deserializeLong;
|
|
50
|
+
private _deserializeNull;
|
|
51
|
+
private _deserializeNumber;
|
|
52
|
+
private _deserializeString;
|
|
53
|
+
private _deserializeTime;
|
|
54
|
+
private _deserializeTimeWithTimeZone;
|
|
55
|
+
private _deserializeTimestamp;
|
|
56
|
+
private _deserializeTimestampWithTimeZone;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=teradata-cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teradata-cursor.d.ts","sourceRoot":"","sources":["../../../src/teradata-cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI3D,eAAO,MAAM,MAAM,EAAE,MAAqB,CAAC;AAC3C,eAAO,MAAM,IAAI,EAAE,MAAe,CAAC;AACnC,eAAO,MAAM,MAAM,EAAE,MAAiB,CAAC;AACvC,eAAO,MAAM,MAAM,EAAE,MAAiB,CAAC;AAEvC,oBAAY,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/B,oBAAY,IAAI,GAAG,GAAG,EAAE,CAAC;AAEzB,qBAAa,cAAc;IAEvB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,MAAM,CAAkB;gBAEpB,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG;IAWvF,IAAI,WAAW,IAAI,GAAG,CAErB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,IAAI,UAAU,IAAI,kBAAkB,CAEnC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAM1B;IAKD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAsBpD,KAAK,IAAI,IAAI;IAYb,aAAa,IAAI,IAAI;IAWrB,UAAU,IAAI,IAAI;IA8BlB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,YAAY,GAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAW,GAAG,IAAI;IAenG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY,GAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAW,GAAG,IAAI;IA8IjH,QAAQ,IAAI,GAAG;IAgBf,QAAQ,IAAI,IAAI;IAsBhB,SAAS,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAiB1C,OAAO,IAAI,OAAO;IAyClB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIjD,IAAI,IAAI,GAAG,EAAE;IAmBb,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI;IAmJnD,OAAO,CAAC,qBAAqB;IAgH7B,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,0BAA0B;IAwDlC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,4BAA4B;IAIpC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,iCAAiC;CAG5C"}
|