@malloydata/db-snowflake 0.0.367 → 0.0.368
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.
|
@@ -60,6 +60,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
60
60
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
61
61
|
exports.SnowflakeExecutor = void 0;
|
|
62
62
|
const snowflake_sdk_1 = __importDefault(require("snowflake-sdk"));
|
|
63
|
+
const generic_pool_1 = require("generic-pool");
|
|
63
64
|
const toml = __importStar(require("toml"));
|
|
64
65
|
const fs = __importStar(require("fs"));
|
|
65
66
|
const path = __importStar(require("path"));
|
|
@@ -76,7 +77,28 @@ snowflake_sdk_1.default.configure({ logLevel: 'OFF' });
|
|
|
76
77
|
class SnowflakeExecutor {
|
|
77
78
|
constructor(connOptions, poolOptions, setupSQL) {
|
|
78
79
|
this.setupSQL = setupSQL;
|
|
79
|
-
|
|
80
|
+
const factory = {
|
|
81
|
+
create: async () => {
|
|
82
|
+
const conn = await new Promise((resolve, reject) => {
|
|
83
|
+
const c = snowflake_sdk_1.default.createConnection(connOptions);
|
|
84
|
+
c.connect(err => {
|
|
85
|
+
if (err)
|
|
86
|
+
reject(err);
|
|
87
|
+
else
|
|
88
|
+
resolve(c);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
await this._setSessionParams(conn);
|
|
92
|
+
return conn;
|
|
93
|
+
},
|
|
94
|
+
destroy: async (conn) => {
|
|
95
|
+
await new Promise(resolve => conn.destroy(() => resolve()));
|
|
96
|
+
},
|
|
97
|
+
validate: (conn) => {
|
|
98
|
+
return Promise.resolve(conn.isUp());
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
this.pool_ = (0, generic_pool_1.createPool)(factory, {
|
|
80
102
|
...SnowflakeExecutor.defaultPoolOptions_,
|
|
81
103
|
...(poolOptions !== null && poolOptions !== void 0 ? poolOptions : {}),
|
|
82
104
|
});
|
|
@@ -169,7 +191,6 @@ class SnowflakeExecutor {
|
|
|
169
191
|
});
|
|
170
192
|
}
|
|
171
193
|
async _setSessionParams(conn) {
|
|
172
|
-
// set some default session parameters
|
|
173
194
|
// ensure we do not ignore case for quoted identifiers
|
|
174
195
|
await this._execute('ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = FALSE;', conn);
|
|
175
196
|
// set utc as the default timezone which is the malloy convention
|
|
@@ -189,14 +210,12 @@ class SnowflakeExecutor {
|
|
|
189
210
|
}
|
|
190
211
|
async batch(sqlText, options, timeoutMs) {
|
|
191
212
|
return await this.pool_.use(async (conn) => {
|
|
192
|
-
await this._setSessionParams(conn);
|
|
193
213
|
return await this._execute(sqlText, conn, options, timeoutMs);
|
|
194
214
|
});
|
|
195
215
|
}
|
|
196
216
|
async stream(sqlText, options) {
|
|
197
217
|
const pool = this.pool_;
|
|
198
218
|
return await pool.acquire().then(async (conn) => {
|
|
199
|
-
await this._setSessionParams(conn);
|
|
200
219
|
return new Promise((resolve, reject) => {
|
|
201
220
|
conn.execute({
|
|
202
221
|
sqlText,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snowflake_executor.js","sourceRoot":"","sources":["../src/snowflake_executor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQH,kEAAsC;
|
|
1
|
+
{"version":3,"file":"snowflake_executor.js","sourceRoot":"","sources":["../src/snowflake_executor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@malloydata/db-snowflake",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.368",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"prepublishOnly": "npm run build"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@malloydata/malloy": "0.0.
|
|
25
|
+
"@malloydata/malloy": "0.0.368",
|
|
26
26
|
"generic-pool": "^3.9.0",
|
|
27
27
|
"snowflake-sdk": "2.3.1",
|
|
28
28
|
"toml": "^3.0.0"
|
|
@@ -28,6 +28,7 @@ import type {
|
|
|
28
28
|
ConnectionOptions,
|
|
29
29
|
} from 'snowflake-sdk';
|
|
30
30
|
import snowflake from 'snowflake-sdk';
|
|
31
|
+
import {createPool} from 'generic-pool';
|
|
31
32
|
import type {Pool, Options as PoolOptions} from 'generic-pool';
|
|
32
33
|
import * as toml from 'toml';
|
|
33
34
|
import * as fs from 'fs';
|
|
@@ -79,7 +80,27 @@ export class SnowflakeExecutor {
|
|
|
79
80
|
setupSQL?: string
|
|
80
81
|
) {
|
|
81
82
|
this.setupSQL = setupSQL;
|
|
82
|
-
|
|
83
|
+
const factory = {
|
|
84
|
+
create: async (): Promise<Connection> => {
|
|
85
|
+
const conn = await new Promise<Connection>((resolve, reject) => {
|
|
86
|
+
const c = snowflake.createConnection(connOptions);
|
|
87
|
+
c.connect(err => {
|
|
88
|
+
if (err) reject(err);
|
|
89
|
+
else resolve(c);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
await this._setSessionParams(conn);
|
|
93
|
+
return conn;
|
|
94
|
+
},
|
|
95
|
+
destroy: async (conn: Connection): Promise<void> => {
|
|
96
|
+
await new Promise<void>(resolve => conn.destroy(() => resolve()));
|
|
97
|
+
},
|
|
98
|
+
validate: (conn: Connection): Promise<boolean> => {
|
|
99
|
+
return Promise.resolve(conn.isUp());
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
this.pool_ = createPool(factory, {
|
|
83
104
|
...SnowflakeExecutor.defaultPoolOptions_,
|
|
84
105
|
...(poolOptions ?? {}),
|
|
85
106
|
});
|
|
@@ -194,7 +215,6 @@ export class SnowflakeExecutor {
|
|
|
194
215
|
}
|
|
195
216
|
|
|
196
217
|
private async _setSessionParams(conn: Connection) {
|
|
197
|
-
// set some default session parameters
|
|
198
218
|
// ensure we do not ignore case for quoted identifiers
|
|
199
219
|
await this._execute(
|
|
200
220
|
'ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = FALSE;',
|
|
@@ -225,7 +245,6 @@ export class SnowflakeExecutor {
|
|
|
225
245
|
timeoutMs?: number
|
|
226
246
|
): Promise<QueryData> {
|
|
227
247
|
return await this.pool_.use(async (conn: Connection) => {
|
|
228
|
-
await this._setSessionParams(conn);
|
|
229
248
|
return await this._execute(sqlText, conn, options, timeoutMs);
|
|
230
249
|
});
|
|
231
250
|
}
|
|
@@ -236,8 +255,6 @@ export class SnowflakeExecutor {
|
|
|
236
255
|
): Promise<AsyncIterableIterator<QueryRecord>> {
|
|
237
256
|
const pool: Pool<Connection> = this.pool_;
|
|
238
257
|
return await pool.acquire().then(async (conn: Connection) => {
|
|
239
|
-
await this._setSessionParams(conn);
|
|
240
|
-
|
|
241
258
|
return new Promise((resolve, reject) => {
|
|
242
259
|
conn.execute({
|
|
243
260
|
sqlText,
|