@malloydata/db-snowflake 0.0.368 → 0.0.370
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/dist/snowflake_connection.d.ts +2 -1
- package/dist/snowflake_connection.js +5 -2
- package/dist/snowflake_connection.js.map +1 -1
- package/dist/snowflake_executor.d.ts +2 -0
- package/dist/snowflake_executor.js +79 -30
- package/dist/snowflake_executor.js.map +1 -1
- package/package.json +2 -2
- package/src/snowflake_connection.ts +7 -2
- package/src/snowflake_executor.ts +81 -29
|
@@ -22,7 +22,7 @@ type PathChain = {
|
|
|
22
22
|
name: string;
|
|
23
23
|
next?: PathChain;
|
|
24
24
|
};
|
|
25
|
-
export declare class SnowflakeConnection extends BaseConnection implements Connection, PersistSQLResults, StreamingConnection, TestableConnection {
|
|
25
|
+
export declare class SnowflakeConnection extends BaseConnection implements Connection, PooledConnection, PersistSQLResults, StreamingConnection, TestableConnection {
|
|
26
26
|
readonly name: string;
|
|
27
27
|
private readonly dialect;
|
|
28
28
|
private executor;
|
|
@@ -39,6 +39,7 @@ export declare class SnowflakeConnection extends BaseConnection implements Conne
|
|
|
39
39
|
canStream(): this is StreamingConnection;
|
|
40
40
|
getDigest(): string;
|
|
41
41
|
estimateQueryCost(_sqlCommand: string): Promise<QueryRunStats>;
|
|
42
|
+
drain(): Promise<void>;
|
|
42
43
|
close(): Promise<void>;
|
|
43
44
|
private getTempViewName;
|
|
44
45
|
runSQL(sql: string, options?: RunSQLOptions): Promise<MalloyQueryData>;
|
|
@@ -187,9 +187,12 @@ class SnowflakeConnection extends connection_1.BaseConnection {
|
|
|
187
187
|
async estimateQueryCost(_sqlCommand) {
|
|
188
188
|
return {};
|
|
189
189
|
}
|
|
190
|
-
async
|
|
190
|
+
async drain() {
|
|
191
191
|
await this.executor.done();
|
|
192
192
|
}
|
|
193
|
+
async close() {
|
|
194
|
+
await this.drain();
|
|
195
|
+
}
|
|
193
196
|
getTempViewName(sqlCommand) {
|
|
194
197
|
const hash = (0, malloy_1.makeDigest)(sqlCommand);
|
|
195
198
|
return `tt${hash.slice(0, this.dialect.maxIdentifierLength - 2)}`;
|
|
@@ -306,7 +309,7 @@ class SnowflakeConnection extends connection_1.BaseConnection {
|
|
|
306
309
|
};
|
|
307
310
|
// create temp table with same schema as the query
|
|
308
311
|
const tempTableName = this.getTempViewName(sqlRef.selectStr);
|
|
309
|
-
this.runSQL(`CREATE OR REPLACE TEMP VIEW ${tempTableName} AS (${sqlRef.selectStr});`);
|
|
312
|
+
await this.runSQL(`CREATE OR REPLACE TEMP VIEW ${tempTableName} AS (${sqlRef.selectStr});`);
|
|
310
313
|
await this.schemaFromTablePath(tempTableName, structDef);
|
|
311
314
|
return structDef;
|
|
312
315
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snowflake_connection.js","sourceRoot":"","sources":["../src/snowflake_connection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snowflake_connection.js","sourceRoot":"","sources":["../src/snowflake_connection.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAqBH,+CAM4B;AAC5B,8DAA6D;AAE7D,6DAAuD;AA8BvD,MAAM,SAAS;IACb,YACW,IAAY,EACZ,IAAY,EACZ,OAAgB;QAFhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IACxB,CAAC;IACJ,QAAQ;QACN,OAAO;YACL,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAgB,EAAE,UAAkB;QACvC,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,IAAY,EAAE,SAAiB,EAAE,CAAU;QACrD,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,UAAW,SAAQ,SAAS;IAEhC,YAAY,IAAY,EAAE,CAAU;QAClC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAF3B,aAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;IAGxC,CAAC;IAED,IAAI,MAAM;QACR,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ;QACN,MAAM,GAAG,GAAc;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,KAAK;SACZ,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,CAAC,IAAe,EAAE,SAAiB;QACrC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,2DAA2D;gBAC3D,8CAA8C;gBAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,IAAI,CAAC,IAAI,EACT,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CACnD,CAAC;oBACF,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;IACJ,CAAC;CACF;AAED,MAAM,SAAU,SAAQ,SAAS;IAI/B,YAAY,IAAY,EAAE,CAAU;QAClC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAJ1B,YAAO,GAAG,SAAS,CAAC;IAKpB,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,IAAA,mBAAU,EAClB,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAC,EACjD,IAAI,CAAC,IAAI,CACV,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,IAAA,mBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAA,mBAAU,EACf,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAC9C,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAe,EAAE,SAAiB;QACrC,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC;gBACjD,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAChC,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AAElC,MAAa,mBACX,SAAQ,2BAAc;IAkBtB,YACkB,IAAY,EAC5B,OAAoC;;QAEpC,KAAK,EAAE,CAAC;QAHQ,SAAI,GAAJ,IAAI,CAAQ;QAXb,YAAO,GAAG,IAAI,yBAAgB,EAAE,CAAC;QAehD,IAAI,WAAW,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAC;QACvC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,mEAAmE;YACnE,WAAW,GAAG,sCAAiB,CAAC,4BAA4B,EAAE,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,sCAAiB,CACnC,WAAW,EACX,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EACpB,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCAAI,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,UAAU,CAAC;IACpD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,qCAAqC;IACrC,IAAW,eAAe;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,SAAS;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY;YAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC7D,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,IAAA,mBAAU,EACf,WAAW,EACX,IAAI,CAAC,WAAW,CAAC,OAAO,EACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,EACzB,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EACzB,IAAI,CAAC,WAAW,CAAC,MAAM,EACvB,OAAO,EACP,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,eAAe,CAAC,UAAkB;QACxC,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC;QACpC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,GAAW,EACX,UAAyB,EAAE;;QAE3B,MAAM,QAAQ,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,CAAC;QAClE,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YACrD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,CAAC,YAAY,CACxB,UAAkB,EAClB,UAAyB,EAAE;QAE3B,MAAM,kBAAkB,GAAG;YACzB,GAAG,IAAI,CAAC,YAAY;YACpB,GAAG,OAAO;SACX,CAAC;QAEF,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAChD,UAAU,EACV,kBAAkB,CACnB,EAAE,CAAC;YACF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,SAAiB,EACjB,SAAoB;;QAEpB,MAAM,SAAS,GAAG,kBAAkB,SAAS,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,yDAAyD;YACzD,MAAM,QAAQ,GAAI,GAAG,CAAC,MAAM,CAAY,CAAC,iBAAiB,EAAE,CAAC;YAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAW,CAAC;YAEnC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC3B,kEAAkE;gBAClE,0CAA0C;gBAC1C,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,CACrE,QAAQ,CACT;oBACC,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,QAAQ,CAAC;gBACb,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;gBACpE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,GAAG,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,kEAAkE;QAClE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,uBAAuB;YACvB,mDAAmD;YACnD,4CAA4C;YAC5C,MAAM,WAAW,GAAG;;;;;;;;;;iDAUuB,SAAS;;;;;;;;OAQnD,CAAC;YACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE7D,0DAA0D;YAE1D,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAE5D,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,MAAA,CAAC,CAAC,MAAM,CAAC,0CAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;gBACnD,MAAM,SAAS,GAAG,MAAA,CAAC,CAAC,MAAM,CAAC,0CAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;gBAClD,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;oBAAE,SAAS;gBAClE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;gBACpC,IAAI,MAAM,IAAI,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,wCAAwC;oBACxC,SAAS;gBACX,CAAC;gBACD,6CAA6C;gBAC7C,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACnC,CAAC;YACD,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,QAAgB,EAChB,SAAiB;QAEjB,MAAM,SAAS,GAAmB;YAChC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,QAAQ;YACd,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,MAAM,EAAE,EAAE;SACX,CAAC;QACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAwB;QAC9C,MAAM,SAAS,GAAiB;YAC9B,IAAI,EAAE,YAAY;YAClB,GAAG,MAAM;YACT,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,IAAA,eAAM,EAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;SAClD,CAAC;QACF,kDAAkD;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,MAAM,CACf,+BAA+B,aAAa,QAAQ,MAAM,CAAC,SAAS,IAAI,CACzE,CAAC;QAEF,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,UAAkB;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,gCAAgC,SAAS,QAAQ,UAAU,IAAI,CAAC;QAC5E,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AApPD,kDAoPC;AAED,MAAa,UAAW,SAAQ,mBAAU;IACxC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,EAAE;YACd,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,OAAO,UAAU,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAChD,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAc,EAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAC,CAAC;QAChD,IAAI,IAAI,GAAc,KAAK,CAAC;QAC5B,SAAS,CAAC;YACR,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAC,CAAC;gBAC3C,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,GAAG,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;gBAC7B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC5B,8CAA8C;gBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,IAAI,GAAG,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAC,CAAC;gBAChC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAjDD,gCAiDC"}
|
|
@@ -10,12 +10,14 @@ export declare class SnowflakeExecutor {
|
|
|
10
10
|
private static defaultConnectionOptions;
|
|
11
11
|
private pool_;
|
|
12
12
|
private setupSQL;
|
|
13
|
+
private sessionInitialized;
|
|
13
14
|
constructor(connOptions: ConnectionOptions, poolOptions?: PoolOptions, setupSQL?: string);
|
|
14
15
|
static getConnectionOptionsFromEnv(): ConnectionOptions | undefined;
|
|
15
16
|
static getConnectionOptionsFromToml(options?: ConnectionConfigFile): ConnectionOptions;
|
|
16
17
|
done(): Promise<void>;
|
|
17
18
|
_execute(sqlText: string, conn: Connection, options?: RunSQLOptions, timeoutMs?: number): Promise<QueryData>;
|
|
18
19
|
private _setSessionParams;
|
|
20
|
+
private ensureSessionInitialized;
|
|
19
21
|
batch(sqlText: string, options?: RunSQLOptions, timeoutMs?: number): Promise<QueryData>;
|
|
20
22
|
stream(sqlText: string, options?: RunSQLOptions): Promise<AsyncIterableIterator<QueryRecord>>;
|
|
21
23
|
}
|
|
@@ -60,7 +60,6 @@ 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");
|
|
64
63
|
const toml = __importStar(require("toml"));
|
|
65
64
|
const fs = __importStar(require("fs"));
|
|
66
65
|
const path = __importStar(require("path"));
|
|
@@ -76,29 +75,9 @@ snowflake_sdk_1.default.configure({ logLevel: 'OFF' });
|
|
|
76
75
|
// }
|
|
77
76
|
class SnowflakeExecutor {
|
|
78
77
|
constructor(connOptions, poolOptions, setupSQL) {
|
|
78
|
+
this.sessionInitialized = new WeakMap();
|
|
79
79
|
this.setupSQL = setupSQL;
|
|
80
|
-
|
|
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
|
+
this.pool_ = snowflake_sdk_1.default.createPool(connOptions, {
|
|
102
81
|
...SnowflakeExecutor.defaultPoolOptions_,
|
|
103
82
|
...(poolOptions !== null && poolOptions !== void 0 ? poolOptions : {}),
|
|
104
83
|
});
|
|
@@ -183,14 +162,17 @@ class SnowflakeExecutor {
|
|
|
183
162
|
if (err) {
|
|
184
163
|
reject(err);
|
|
185
164
|
}
|
|
186
|
-
else
|
|
187
|
-
|
|
165
|
+
else {
|
|
166
|
+
// Snowflake occasionally calls complete with no rows (e.g. DDL); without this branch
|
|
167
|
+
// the Promise never settles and generic-pool holds the connection forever.
|
|
168
|
+
resolve(rows !== null && rows !== void 0 ? rows : []);
|
|
188
169
|
}
|
|
189
170
|
},
|
|
190
171
|
});
|
|
191
172
|
});
|
|
192
173
|
}
|
|
193
174
|
async _setSessionParams(conn) {
|
|
175
|
+
// set some default session parameters
|
|
194
176
|
// ensure we do not ignore case for quoted identifiers
|
|
195
177
|
await this._execute('ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = FALSE;', conn);
|
|
196
178
|
// set utc as the default timezone which is the malloy convention
|
|
@@ -208,41 +190,108 @@ class SnowflakeExecutor {
|
|
|
208
190
|
}
|
|
209
191
|
}
|
|
210
192
|
}
|
|
193
|
+
ensureSessionInitialized(connection) {
|
|
194
|
+
const existing = this.sessionInitialized.get(connection);
|
|
195
|
+
if (existing) {
|
|
196
|
+
return existing;
|
|
197
|
+
}
|
|
198
|
+
const init = this._setSessionParams(connection).catch(err => {
|
|
199
|
+
this.sessionInitialized.delete(connection);
|
|
200
|
+
throw err;
|
|
201
|
+
});
|
|
202
|
+
this.sessionInitialized.set(connection, init);
|
|
203
|
+
return init;
|
|
204
|
+
}
|
|
211
205
|
async batch(sqlText, options, timeoutMs) {
|
|
212
206
|
return await this.pool_.use(async (conn) => {
|
|
207
|
+
await this.ensureSessionInitialized(conn);
|
|
213
208
|
return await this._execute(sqlText, conn, options, timeoutMs);
|
|
214
209
|
});
|
|
215
210
|
}
|
|
216
211
|
async stream(sqlText, options) {
|
|
217
212
|
const pool = this.pool_;
|
|
218
213
|
return await pool.acquire().then(async (conn) => {
|
|
214
|
+
let released = false;
|
|
215
|
+
const releaseOnce = () => {
|
|
216
|
+
if (!released) {
|
|
217
|
+
released = true;
|
|
218
|
+
pool.release(conn).catch(() => { });
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
try {
|
|
222
|
+
await this.ensureSessionInitialized(conn);
|
|
223
|
+
}
|
|
224
|
+
catch (initErr) {
|
|
225
|
+
releaseOnce();
|
|
226
|
+
throw initErr;
|
|
227
|
+
}
|
|
219
228
|
return new Promise((resolve, reject) => {
|
|
220
|
-
|
|
229
|
+
var _a;
|
|
230
|
+
const cancel = () => {
|
|
231
|
+
statement === null || statement === void 0 ? void 0 : statement.cancel();
|
|
232
|
+
};
|
|
233
|
+
(_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.addEventListener('abort', cancel);
|
|
234
|
+
const statement = conn.execute({
|
|
221
235
|
sqlText,
|
|
222
236
|
streamResult: true,
|
|
223
237
|
complete: (err, stmt) => {
|
|
238
|
+
var _a, _b;
|
|
224
239
|
if (err) {
|
|
240
|
+
(_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener('abort', cancel);
|
|
241
|
+
releaseOnce();
|
|
225
242
|
reject(err);
|
|
243
|
+
return;
|
|
226
244
|
}
|
|
227
245
|
const stream = stmt.streamRows();
|
|
228
246
|
function streamSnowflake(onError, onData, onEnd) {
|
|
229
|
-
|
|
247
|
+
var _a;
|
|
248
|
+
let streamEnded = false;
|
|
249
|
+
function handleEnd(cancelled = false) {
|
|
250
|
+
var _a;
|
|
251
|
+
if (streamEnded) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
streamEnded = true;
|
|
255
|
+
(_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener('abort', onAbort);
|
|
256
|
+
if (cancelled) {
|
|
257
|
+
stmt.cancel();
|
|
258
|
+
}
|
|
259
|
+
stream.destroy();
|
|
230
260
|
onEnd();
|
|
231
|
-
|
|
261
|
+
releaseOnce();
|
|
232
262
|
}
|
|
263
|
+
function onAbort() {
|
|
264
|
+
handleEnd(true);
|
|
265
|
+
}
|
|
266
|
+
(_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.addEventListener('abort', onAbort);
|
|
233
267
|
let index = 0;
|
|
234
268
|
function handleData(row) {
|
|
269
|
+
if (streamEnded) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
235
272
|
onData(row);
|
|
236
273
|
index += 1;
|
|
237
274
|
if ((options === null || options === void 0 ? void 0 : options.rowLimit) !== undefined &&
|
|
238
275
|
index >= options.rowLimit) {
|
|
239
|
-
|
|
276
|
+
handleEnd(true);
|
|
240
277
|
}
|
|
241
278
|
}
|
|
242
|
-
stream.on('error',
|
|
279
|
+
stream.on('error', streamErr => {
|
|
280
|
+
var _a;
|
|
281
|
+
if (streamEnded) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
streamEnded = true;
|
|
285
|
+
(_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener('abort', onAbort);
|
|
286
|
+
stream.destroy();
|
|
287
|
+
releaseOnce();
|
|
288
|
+
onError(streamErr);
|
|
289
|
+
});
|
|
243
290
|
stream.on('data', handleData);
|
|
244
291
|
stream.on('end', handleEnd);
|
|
245
292
|
}
|
|
293
|
+
// Remove the pre-stream abort listener; streamSnowflake installs its own.
|
|
294
|
+
(_b = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _b === void 0 ? void 0 : _b.removeEventListener('abort', cancel);
|
|
246
295
|
return resolve((0, malloy_1.toAsyncGenerator)(streamSnowflake));
|
|
247
296
|
},
|
|
248
297
|
});
|
|
@@ -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.370",
|
|
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.370",
|
|
26
26
|
"generic-pool": "^3.9.0",
|
|
27
27
|
"snowflake-sdk": "2.3.1",
|
|
28
28
|
"toml": "^3.0.0"
|
|
@@ -226,6 +226,7 @@ export class SnowflakeConnection
|
|
|
226
226
|
extends BaseConnection
|
|
227
227
|
implements
|
|
228
228
|
Connection,
|
|
229
|
+
PooledConnection,
|
|
229
230
|
PersistSQLResults,
|
|
230
231
|
StreamingConnection,
|
|
231
232
|
TestableConnection
|
|
@@ -303,10 +304,14 @@ export class SnowflakeConnection
|
|
|
303
304
|
return {};
|
|
304
305
|
}
|
|
305
306
|
|
|
306
|
-
async
|
|
307
|
+
public async drain(): Promise<void> {
|
|
307
308
|
await this.executor.done();
|
|
308
309
|
}
|
|
309
310
|
|
|
311
|
+
async close(): Promise<void> {
|
|
312
|
+
await this.drain();
|
|
313
|
+
}
|
|
314
|
+
|
|
310
315
|
private getTempViewName(sqlCommand: string): string {
|
|
311
316
|
const hash = makeDigest(sqlCommand);
|
|
312
317
|
return `tt${hash.slice(0, this.dialect.maxIdentifierLength - 2)}`;
|
|
@@ -447,7 +452,7 @@ export class SnowflakeConnection
|
|
|
447
452
|
};
|
|
448
453
|
// create temp table with same schema as the query
|
|
449
454
|
const tempTableName = this.getTempViewName(sqlRef.selectStr);
|
|
450
|
-
this.runSQL(
|
|
455
|
+
await this.runSQL(
|
|
451
456
|
`CREATE OR REPLACE TEMP VIEW ${tempTableName} AS (${sqlRef.selectStr});`
|
|
452
457
|
);
|
|
453
458
|
|
|
@@ -28,7 +28,6 @@ import type {
|
|
|
28
28
|
ConnectionOptions,
|
|
29
29
|
} from 'snowflake-sdk';
|
|
30
30
|
import snowflake from 'snowflake-sdk';
|
|
31
|
-
import {createPool} from 'generic-pool';
|
|
32
31
|
import type {Pool, Options as PoolOptions} from 'generic-pool';
|
|
33
32
|
import * as toml from 'toml';
|
|
34
33
|
import * as fs from 'fs';
|
|
@@ -74,33 +73,16 @@ export class SnowflakeExecutor {
|
|
|
74
73
|
|
|
75
74
|
private pool_: Pool<Connection>;
|
|
76
75
|
private setupSQL: string | undefined;
|
|
76
|
+
|
|
77
|
+
private sessionInitialized = new WeakMap<Connection, Promise<void>>();
|
|
78
|
+
|
|
77
79
|
constructor(
|
|
78
80
|
connOptions: ConnectionOptions,
|
|
79
81
|
poolOptions?: PoolOptions,
|
|
80
82
|
setupSQL?: string
|
|
81
83
|
) {
|
|
82
84
|
this.setupSQL = setupSQL;
|
|
83
|
-
|
|
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, {
|
|
85
|
+
this.pool_ = snowflake.createPool(connOptions, {
|
|
104
86
|
...SnowflakeExecutor.defaultPoolOptions_,
|
|
105
87
|
...(poolOptions ?? {}),
|
|
106
88
|
});
|
|
@@ -206,8 +188,10 @@ export class SnowflakeExecutor {
|
|
|
206
188
|
}
|
|
207
189
|
if (err) {
|
|
208
190
|
reject(err);
|
|
209
|
-
} else
|
|
210
|
-
|
|
191
|
+
} else {
|
|
192
|
+
// Snowflake occasionally calls complete with no rows (e.g. DDL); without this branch
|
|
193
|
+
// the Promise never settles and generic-pool holds the connection forever.
|
|
194
|
+
resolve(rows ?? []);
|
|
211
195
|
}
|
|
212
196
|
},
|
|
213
197
|
});
|
|
@@ -215,6 +199,7 @@ export class SnowflakeExecutor {
|
|
|
215
199
|
}
|
|
216
200
|
|
|
217
201
|
private async _setSessionParams(conn: Connection) {
|
|
202
|
+
// set some default session parameters
|
|
218
203
|
// ensure we do not ignore case for quoted identifiers
|
|
219
204
|
await this._execute(
|
|
220
205
|
'ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = FALSE;',
|
|
@@ -239,12 +224,26 @@ export class SnowflakeExecutor {
|
|
|
239
224
|
}
|
|
240
225
|
}
|
|
241
226
|
|
|
227
|
+
private ensureSessionInitialized(connection: Connection): Promise<void> {
|
|
228
|
+
const existing = this.sessionInitialized.get(connection);
|
|
229
|
+
if (existing) {
|
|
230
|
+
return existing;
|
|
231
|
+
}
|
|
232
|
+
const init = this._setSessionParams(connection).catch(err => {
|
|
233
|
+
this.sessionInitialized.delete(connection);
|
|
234
|
+
throw err;
|
|
235
|
+
});
|
|
236
|
+
this.sessionInitialized.set(connection, init);
|
|
237
|
+
return init;
|
|
238
|
+
}
|
|
239
|
+
|
|
242
240
|
public async batch(
|
|
243
241
|
sqlText: string,
|
|
244
242
|
options?: RunSQLOptions,
|
|
245
243
|
timeoutMs?: number
|
|
246
244
|
): Promise<QueryData> {
|
|
247
245
|
return await this.pool_.use(async (conn: Connection) => {
|
|
246
|
+
await this.ensureSessionInitialized(conn);
|
|
248
247
|
return await this._execute(sqlText, conn, options, timeoutMs);
|
|
249
248
|
});
|
|
250
249
|
}
|
|
@@ -255,13 +254,36 @@ export class SnowflakeExecutor {
|
|
|
255
254
|
): Promise<AsyncIterableIterator<QueryRecord>> {
|
|
256
255
|
const pool: Pool<Connection> = this.pool_;
|
|
257
256
|
return await pool.acquire().then(async (conn: Connection) => {
|
|
257
|
+
let released = false;
|
|
258
|
+
const releaseOnce = () => {
|
|
259
|
+
if (!released) {
|
|
260
|
+
released = true;
|
|
261
|
+
pool.release(conn).catch(() => {});
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
try {
|
|
266
|
+
await this.ensureSessionInitialized(conn);
|
|
267
|
+
} catch (initErr) {
|
|
268
|
+
releaseOnce();
|
|
269
|
+
throw initErr;
|
|
270
|
+
}
|
|
271
|
+
|
|
258
272
|
return new Promise((resolve, reject) => {
|
|
259
|
-
|
|
273
|
+
const cancel = () => {
|
|
274
|
+
statement?.cancel();
|
|
275
|
+
};
|
|
276
|
+
options?.abortSignal?.addEventListener('abort', cancel);
|
|
277
|
+
|
|
278
|
+
const statement = conn.execute({
|
|
260
279
|
sqlText,
|
|
261
280
|
streamResult: true,
|
|
262
281
|
complete: (err: SnowflakeError | undefined, stmt: RowStatement) => {
|
|
263
282
|
if (err) {
|
|
283
|
+
options?.abortSignal?.removeEventListener('abort', cancel);
|
|
284
|
+
releaseOnce();
|
|
264
285
|
reject(err);
|
|
286
|
+
return;
|
|
265
287
|
}
|
|
266
288
|
|
|
267
289
|
const stream: Readable = stmt.streamRows();
|
|
@@ -270,26 +292,56 @@ export class SnowflakeExecutor {
|
|
|
270
292
|
onData: (data: QueryRecord) => void,
|
|
271
293
|
onEnd: () => void
|
|
272
294
|
) {
|
|
273
|
-
|
|
295
|
+
let streamEnded = false;
|
|
296
|
+
function handleEnd(cancelled = false) {
|
|
297
|
+
if (streamEnded) {
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
streamEnded = true;
|
|
301
|
+
options?.abortSignal?.removeEventListener('abort', onAbort);
|
|
302
|
+
if (cancelled) {
|
|
303
|
+
stmt.cancel();
|
|
304
|
+
}
|
|
305
|
+
stream.destroy();
|
|
274
306
|
onEnd();
|
|
275
|
-
|
|
307
|
+
releaseOnce();
|
|
276
308
|
}
|
|
277
309
|
|
|
310
|
+
function onAbort() {
|
|
311
|
+
handleEnd(true);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
options?.abortSignal?.addEventListener('abort', onAbort);
|
|
315
|
+
|
|
278
316
|
let index = 0;
|
|
279
317
|
function handleData(this: Readable, row: QueryRecord) {
|
|
318
|
+
if (streamEnded) {
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
280
321
|
onData(row);
|
|
281
322
|
index += 1;
|
|
282
323
|
if (
|
|
283
324
|
options?.rowLimit !== undefined &&
|
|
284
325
|
index >= options.rowLimit
|
|
285
326
|
) {
|
|
286
|
-
|
|
327
|
+
handleEnd(true);
|
|
287
328
|
}
|
|
288
329
|
}
|
|
289
|
-
stream.on('error',
|
|
330
|
+
stream.on('error', streamErr => {
|
|
331
|
+
if (streamEnded) {
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
streamEnded = true;
|
|
335
|
+
options?.abortSignal?.removeEventListener('abort', onAbort);
|
|
336
|
+
stream.destroy();
|
|
337
|
+
releaseOnce();
|
|
338
|
+
onError(streamErr);
|
|
339
|
+
});
|
|
290
340
|
stream.on('data', handleData);
|
|
291
341
|
stream.on('end', handleEnd);
|
|
292
342
|
}
|
|
343
|
+
// Remove the pre-stream abort listener; streamSnowflake installs its own.
|
|
344
|
+
options?.abortSignal?.removeEventListener('abort', cancel);
|
|
293
345
|
return resolve(toAsyncGenerator<QueryRecord>(streamSnowflake));
|
|
294
346
|
},
|
|
295
347
|
});
|