@malloydata/db-snowflake 0.0.206-dev241030173920 → 0.0.206-dev241031153634
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.
|
@@ -162,29 +162,37 @@ class SnowflakeExecutor {
|
|
|
162
162
|
const pool = this.pool_;
|
|
163
163
|
return await pool.acquire().then(async (conn) => {
|
|
164
164
|
await this._setSessionParams(conn);
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
165
|
+
return new Promise((resolve, reject) => {
|
|
166
|
+
conn.execute({
|
|
167
|
+
sqlText,
|
|
168
|
+
streamResult: true,
|
|
169
|
+
complete: (err, stmt) => {
|
|
170
|
+
if (err) {
|
|
171
|
+
reject(err);
|
|
172
|
+
}
|
|
173
|
+
const stream = stmt.streamRows();
|
|
174
|
+
function streamSnowflake(onError, onData, onEnd) {
|
|
175
|
+
function handleEnd() {
|
|
176
|
+
onEnd();
|
|
177
|
+
pool.release(conn);
|
|
178
|
+
}
|
|
179
|
+
let index = 0;
|
|
180
|
+
function handleData(row) {
|
|
181
|
+
onData(row);
|
|
182
|
+
index += 1;
|
|
183
|
+
if ((options === null || options === void 0 ? void 0 : options.rowLimit) !== undefined &&
|
|
184
|
+
index >= options.rowLimit) {
|
|
185
|
+
onEnd();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
stream.on('error', onError);
|
|
189
|
+
stream.on('data', handleData);
|
|
190
|
+
stream.on('end', handleEnd);
|
|
191
|
+
}
|
|
192
|
+
return resolve((0, malloy_1.toAsyncGenerator)(streamSnowflake));
|
|
193
|
+
},
|
|
194
|
+
});
|
|
168
195
|
});
|
|
169
|
-
const stream = stmt.streamRows();
|
|
170
|
-
function streamSnowflake(onError, onData, onEnd) {
|
|
171
|
-
function handleEnd() {
|
|
172
|
-
onEnd();
|
|
173
|
-
pool.release(conn);
|
|
174
|
-
}
|
|
175
|
-
let index = 0;
|
|
176
|
-
function handleData(row) {
|
|
177
|
-
onData(row);
|
|
178
|
-
index += 1;
|
|
179
|
-
if ((options === null || options === void 0 ? void 0 : options.rowLimit) !== undefined && index >= options.rowLimit) {
|
|
180
|
-
onEnd();
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
stream.on('error', onError);
|
|
184
|
-
stream.on('data', handleData);
|
|
185
|
-
stream.on('end', handleEnd);
|
|
186
|
-
}
|
|
187
|
-
return Promise.resolve((0, malloy_1.toAsyncGenerator)(streamSnowflake));
|
|
188
196
|
});
|
|
189
197
|
}
|
|
190
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snowflake_executor.js","sourceRoot":"","sources":["../src/snowflake_executor.ts"],"names":[],"mappings":"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
|
|
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.206-
|
|
3
|
+
"version": "0.0.206-dev241031153634",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -21,10 +21,9 @@
|
|
|
21
21
|
"prepublishOnly": "npm run build"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@malloydata/malloy": "^0.0.206-
|
|
25
|
-
"@types/snowflake-sdk": "^1.6.16",
|
|
24
|
+
"@malloydata/malloy": "^0.0.206-dev241031153634",
|
|
26
25
|
"generic-pool": "^3.9.0",
|
|
27
|
-
"snowflake-sdk": "1.
|
|
26
|
+
"snowflake-sdk": "1.14.0",
|
|
28
27
|
"toml": "^3.0.0"
|
|
29
28
|
}
|
|
30
29
|
}
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
import snowflake, {
|
|
25
25
|
SnowflakeError,
|
|
26
|
-
|
|
26
|
+
RowStatement,
|
|
27
27
|
Connection,
|
|
28
28
|
ConnectionOptions,
|
|
29
29
|
} from 'snowflake-sdk';
|
|
@@ -155,7 +155,7 @@ export class SnowflakeExecutor {
|
|
|
155
155
|
sqlText,
|
|
156
156
|
complete: (
|
|
157
157
|
err: SnowflakeError | undefined,
|
|
158
|
-
_stmt:
|
|
158
|
+
_stmt: RowStatement,
|
|
159
159
|
rows?: QueryData
|
|
160
160
|
) => {
|
|
161
161
|
if (err) {
|
|
@@ -200,34 +200,46 @@ export class SnowflakeExecutor {
|
|
|
200
200
|
const pool: Pool<Connection> = this.pool_;
|
|
201
201
|
return await pool.acquire().then(async (conn: Connection) => {
|
|
202
202
|
await this._setSessionParams(conn);
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
203
|
+
|
|
204
|
+
return new Promise((resolve, reject) => {
|
|
205
|
+
conn.execute({
|
|
206
|
+
sqlText,
|
|
207
|
+
streamResult: true,
|
|
208
|
+
complete: (err: SnowflakeError | undefined, stmt: RowStatement) => {
|
|
209
|
+
if (err) {
|
|
210
|
+
reject(err);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const stream: Readable = stmt.streamRows();
|
|
214
|
+
function streamSnowflake(
|
|
215
|
+
onError: (error: Error) => void,
|
|
216
|
+
onData: (data: QueryDataRow) => void,
|
|
217
|
+
onEnd: () => void
|
|
218
|
+
) {
|
|
219
|
+
function handleEnd() {
|
|
220
|
+
onEnd();
|
|
221
|
+
pool.release(conn);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
let index = 0;
|
|
225
|
+
function handleData(this: Readable, row: QueryDataRow) {
|
|
226
|
+
onData(row);
|
|
227
|
+
index += 1;
|
|
228
|
+
if (
|
|
229
|
+
options?.rowLimit !== undefined &&
|
|
230
|
+
index >= options.rowLimit
|
|
231
|
+
) {
|
|
232
|
+
onEnd();
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
stream.on('error', onError);
|
|
236
|
+
stream.on('data', handleData);
|
|
237
|
+
stream.on('end', handleEnd);
|
|
238
|
+
}
|
|
239
|
+
return resolve(toAsyncGenerator<QueryDataRow>(streamSnowflake));
|
|
240
|
+
},
|
|
241
|
+
});
|
|
206
242
|
});
|
|
207
|
-
const stream: Readable = stmt.streamRows();
|
|
208
|
-
function streamSnowflake(
|
|
209
|
-
onError: (error: Error) => void,
|
|
210
|
-
onData: (data: QueryDataRow) => void,
|
|
211
|
-
onEnd: () => void
|
|
212
|
-
) {
|
|
213
|
-
function handleEnd() {
|
|
214
|
-
onEnd();
|
|
215
|
-
pool.release(conn);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
let index = 0;
|
|
219
|
-
function handleData(this: Readable, row: QueryDataRow) {
|
|
220
|
-
onData(row);
|
|
221
|
-
index += 1;
|
|
222
|
-
if (options?.rowLimit !== undefined && index >= options.rowLimit) {
|
|
223
|
-
onEnd();
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
stream.on('error', onError);
|
|
227
|
-
stream.on('data', handleData);
|
|
228
|
-
stream.on('end', handleEnd);
|
|
229
|
-
}
|
|
230
|
-
return Promise.resolve(toAsyncGenerator<QueryDataRow>(streamSnowflake));
|
|
231
243
|
});
|
|
232
244
|
}
|
|
233
245
|
}
|