teradatasql
Version:
Teradata SQL Driver for Node.js
97 lines • 3.69 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const teradatasql = __importStar(require("teradatasql"));
async function worker(cur) {
let dStart = 0;
let dElapsed = 0;
try {
dStart = Date.now();
let sql = "select mysleep (10)";
console.log(`worker ${sql}`);
await cur.executeAsync(sql);
dElapsed = Date.now() - dStart;
}
catch (error) {
dElapsed = Date.now() - dStart;
console.log(`worker received error: ${error.message.split("\n")[0]}`);
}
finally {
console.log(`worker completed in ${dElapsed / 1000} seconds`);
}
}
async function main() {
const con = teradatasql.connect({ host: "whomooz", user: "guest", password: "please" });
try {
const cur = con.cursor();
try {
let sql = "drop function mysleep";
console.log(`main ${sql}`);
cur.execute(sql, undefined, 5589);
sql =
"create function mysleep (integer) returns integer language c no sql parameter style sql external name 'CS!udfsleep!udfsleep.c!F!udfsleep'";
console.log(`main ${sql}`);
cur.execute(sql);
try {
console.log("main starting worker");
const result = worker(cur);
console.log("main waiting for 5 seconds");
const dStart = Date.now();
await new Promise((resolve) => setTimeout(resolve, 5000));
const dElapsed = Date.now() - dStart;
console.log(`main waited ${dElapsed / 1000} seconds`);
try {
console.log("main calling cancel");
con.cancel();
console.log("main completed cancel");
}
catch (error) {
console.log(`main ${error.message}`);
}
try {
console.log("main waiting for worker to finish");
await result;
console.log("main done waiting for worker");
}
catch (error) {
console.log(`main ${error.message}`);
}
}
finally {
sql = "drop function mysleep";
console.log(`main ${sql}`);
cur.execute(sql);
}
}
finally {
cur.close();
}
}
finally {
con.close();
}
}
main();
//# sourceMappingURL=CancelSleep.js.map