@malloydata/db-snowflake 0.0.380 → 0.0.382

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.
@@ -98,9 +98,12 @@ class SnowflakeConnection extends connection_1.BaseConnection {
98
98
  return `tt${hash.slice(0, this.dialect.maxIdentifierLength - 2)}`;
99
99
  }
100
100
  async runSQL(sql, options = {}) {
101
- var _a, _b;
102
- const rowLimit = (_a = options === null || options === void 0 ? void 0 : options.rowLimit) !== null && _a !== void 0 ? _a : (_b = this.queryOptions) === null || _b === void 0 ? void 0 : _b.rowLimit;
103
- let rows = await this.executor.batch(sql, options, this.timeoutMs);
101
+ const effectiveOptions = {
102
+ ...this.queryOptions,
103
+ ...options,
104
+ };
105
+ const rowLimit = effectiveOptions.rowLimit;
106
+ let rows = await this.executor.batch(sql, effectiveOptions, this.timeoutMs);
104
107
  if (rowLimit !== undefined && rows.length > rowLimit) {
105
108
  rows = rows.slice(0, rowLimit);
106
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"snowflake_connection.js","sourceRoot":"","sources":["../src/snowflake_connection.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAqEH,gDAOC;AA3DD,+CAAwE;AACxE,8DAA6D;AAE7D,6DAAuD;AACvD,yEAMoC;AAEpC,iEAA+D;AAwC/D,SAAgB,kBAAkB,CAChC,KAAiC,EACjC,gBAAwB;IAExB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,wBAAwB,CAAC;IACzD,IAAI,KAAK,CAAC,KAAK,IAAI,gBAAgB;QAAE,OAAO,uBAAuB,CAAC;IACpE,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAmCD;;GAEG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AAElC,MAAa,mBACX,SAAQ,2BAAc;IAqBtB,YACkB,IAAY,EAC5B,OAAoC;;QAEpC,KAAK,EAAE,CAAC;QAHQ,SAAI,GAAJ,IAAI,CAAQ;QAdb,YAAO,GAAG,IAAI,yBAAgB,EAAE,CAAC;QAkBhD,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;QAClD,IAAI,CAAC,qBAAqB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,qBAAqB,mCAAI,KAAM,CAAC;QACtE,IAAI,CAAC,oBAAoB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,mCAAI,IAAI,CAAC;QAClE,IAAI,CAAC,4BAA4B;YAC/B,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,4BAA4B,mCAAI,SAAW,CAAC;IACzD,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,aAAa,GAAmB,EAAE,CAAC;QACzC,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,IACE,QAAQ,KAAK,SAAS;gBACtB,QAAQ,KAAK,OAAO;gBACpB,QAAQ,KAAK,QAAQ,EACrB,CAAC;gBACD,aAAa,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;YAC7C,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,qEAAqE;QACrE,+DAA+D;QAC/D,iDAAiD;QACjD,kEAAkE;QAClE,4DAA4D;QAC5D,yDAAyD;QACzD,gEAAgE;QAChE,+DAA+D;QAC/D,+DAA+D;QAC/D,gDAAgD;QAChD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,aAAa;iBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC;iBACpC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,iEAAiE;YACjE,iEAAiE;YACjE,4DAA4D;YAC5D,yCAAyC;YACzC,MAAM,eAAe,GAAG,CAAC,YAAoB,EAAE,EAAE,CAAC;;;;;;;;aAQ3C,YAAY;;;;;OAKlB,CAAC;YACF,MAAM,eAAe,GAAG,2BAA2B,WAAW,KAAK,CAAC;YACpE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,kBAAkB,CACjC,KAAK,EACL,IAAI,CAAC,4BAA4B,CAClC,CAAC;YACF,MAAM,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpC,IAAI,aAAwC,CAAC;YAE7C,IAAI,QAAQ,KAAK,uBAAuB,EAAE,CAAC;gBACzC,2DAA2D;gBAC3D,4DAA4D;gBAC5D,6DAA6D;gBAC7D,8DAA8D;gBAC9D,qCAAqC;gBACrC,aAAa;oBACX,MAAA,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAC3B,eAAe,CAAC,GAAG,eAAe,SAAS,SAAS,EAAE,CAAC,EACvD,EAAE,EACF,IAAI,CAAC,qBAAqB,CAC3B,CAAC,mCAAI,SAAS,CAAC;YACpB,CAAC;YAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,gBAAgB,GAAG,eAAe,CACtC,GAAG,eAAe,SAAS,SAAS,gCAAgC,CAAC,EAAE,CACxE,CAAC;gBACF,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;oBACpC,2DAA2D;oBAC3D,wDAAwD;oBACxD,2DAA2D;oBAC3D,6DAA6D;oBAC7D,QAAQ;oBACR,aAAa;wBACX,MAAA,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAC3B,gBAAgB,EAChB,EAAE,EACF,IAAI,CAAC,qBAAqB,CAC3B,CAAC,mCAAI,SAAS,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACN,wDAAwD;oBACxD,2DAA2D;oBAC3D,2DAA2D;oBAC3D,2CAA2C;oBAC3C,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CACxC,gBAAgB,EAChB,eAAe,CAAC,GAAG,eAAe,SAAS,SAAS,UAAU,CAAC,EAAE,CAAC,CACnE,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAG,IAAA,mDAAwB,GAAE,CAAC;YACzC,yDAAyD;YACzD,2DAA2D;YAC3D,0CAA0C;YAC1C,2DAA2D;YAC3D,yDAAyD;YACzD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBACzC,IAAA,4CAAiB,EAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;oBAC9B,MAAM,UAAU,GAAG,MAAA,CAAC,CAAC,MAAM,CAAC,0CAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;oBACnD,MAAM,SAAS,GAAG,MAAA,CAAC,CAAC,MAAM,CAAC,0CAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;oBAClD,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;wBAAE,SAAS;oBAClE,MAAM,UAAU,GAAG,IAAI,qCAAU,CAAC,UAAU,CAAC,CAAC;oBAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,MAAK,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/D,SAAS;oBACX,CAAC;oBACD,IAAA,gDAAqB,EAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,wEAAwE;YACxE,mDAAmD;YACnD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBACzC,SAAS,CAAC,MAAM,CAAC,IAAI,CACnB,IAAA,6CAAkB,EAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CACtD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,cAAc,CAC1B,SAAiB;;QAEjB,MAAM,MAAM,GAAG,IAAA,8CAAuB,EAAC,SAAS,CAAC,CAAC;QAClD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1E,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACvC;cACQ,WAAW;+BACM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;6BACjC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;eAC5C,EACT,EAAE,EACF,IAAI,CAAC,qBAAqB,CAC3B,CAAC;QACF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,MAAA,GAAG,CAAC,IAAI,CAAC,mCAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAA,GAAG,CAAC,IAAI,CAAC,mCAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,kEAAkE;QAClE,gEAAgE;QAChE,yDAAyD;QACzD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAClE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5E,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,eAAe,CAC3B,YAAoB,EACpB,aAAqB;;QAErB,mEAAmE;QACnE,iEAAiE;QACjE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACvC,YAAY,EACZ,EAAE,EACF,IAAI,CAAC,qBAAqB,CAC3B,CAAC;QACF,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,yDAAyD;QACzD,iEAAiE;QACjE,OAAO,CACL,MAAA,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAC3B,aAAa,EACb,EAAE,EACF,IAAI,CAAC,qBAAqB,CAC3B,CAAC,mCAAI,SAAS,CAChB,CAAC;IACJ,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;AAtZD,kDAsZC"}
1
+ {"version":3,"file":"snowflake_connection.js","sourceRoot":"","sources":["../src/snowflake_connection.ts"],"names":[],"mappings":"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"}
@@ -421,10 +421,10 @@ class SnowflakeExecutorTestSetup {
421
421
  constructor(executor) {
422
422
  this.executor_ = executor;
423
423
  }
424
- async runBatch(sqlText) {
424
+ async runBatch(sqlText, options, timeoutMs) {
425
425
  let ret = [];
426
426
  await (async () => {
427
- const rows = await this.executor_.batch(sqlText);
427
+ const rows = await this.executor_.batch(sqlText, options, timeoutMs);
428
428
  return rows;
429
429
  })().then((rows) => {
430
430
  ret = rows;
@@ -477,6 +477,147 @@ describeSnowflakeExecutor('db:SnowflakeExecutor', () => {
477
477
  const rows = await db.runStreaming(query, { rowLimit: 2 });
478
478
  expect(rows.length).toBe(2);
479
479
  });
480
+ it('aborts batch immediately when signal is already aborted', async () => {
481
+ const controller = new AbortController();
482
+ controller.abort();
483
+ await expect(db.runBatch('select 1 as one', { abortSignal: controller.signal })).rejects.toThrow('Query aborted');
484
+ });
485
+ it('aborts stream immediately when signal is already aborted', async () => {
486
+ const controller = new AbortController();
487
+ controller.abort();
488
+ await expect(db.runStreaming('select 1 as one', { abortSignal: controller.signal })).rejects.toThrow('Query aborted');
489
+ });
490
+ it('cancels long-running batch on timeout and does not hang', async () => {
491
+ // Use a long-running statement so the client-side timeout triggers
492
+ // rather than the query finishing first.
493
+ const longRunningSql = 'CALL SYSTEM$WAIT(60)';
494
+ const start = Date.now();
495
+ await expect(db.runBatch(longRunningSql, {}, 500)).rejects.toBeInstanceOf(Error);
496
+ const elapsed = Date.now() - start;
497
+ // Should fail well before the Jest 100s timeout; give a generous upper bound.
498
+ expect(elapsed).toBeLessThan(30000);
499
+ // Subsequent queries should still work after a timeout-induced cancel.
500
+ const rows = await db.runBatch('select 1 as one');
501
+ expect(rows.length).toBe(1);
502
+ });
503
+ describe('abort-under-contention', () => {
504
+ it('aborted stream() settles immediately and does not block subsequent queries', async () => {
505
+ // Use a dedicated executor with pool size 1 so contention is guaranteed.
506
+ const connOptions = snowflake_executor_1.SnowflakeExecutor.getConnectionOptionsFromEnv() ||
507
+ snowflake_executor_1.SnowflakeExecutor.getConnectionOptionsFromToml();
508
+ const executor = new snowflake_executor_1.SnowflakeExecutor(connOptions, { min: 1, max: 1 });
509
+ try {
510
+ // Step 1: start a slow query that holds the only connection.
511
+ const slowQueryPromise = executor.batch("SELECT SYSTEM$WAIT(4, 'SECONDS')");
512
+ // Give the slow query a moment to acquire the connection.
513
+ await new Promise(r => setTimeout(r, 500));
514
+ // Step 2: start a second stream() with an AbortController.
515
+ const tag = `abort_test_${Date.now()}`;
516
+ const abortController = new AbortController();
517
+ const streamPromise = executor
518
+ .stream(`SELECT '${tag}' AS tag`, {
519
+ abortSignal: abortController.signal,
520
+ })
521
+ .then(async (iter) => {
522
+ const rows = [];
523
+ for await (const row of iter) {
524
+ rows.push(row);
525
+ }
526
+ return rows;
527
+ });
528
+ // Step 3: abort while still blocked on pool acquisition.
529
+ await new Promise(r => setTimeout(r, 200));
530
+ abortController.abort();
531
+ // Step 4: let the slow query finish.
532
+ await slowQueryPromise;
533
+ // The aborted stream should settle promptly.
534
+ const settleStart = Date.now();
535
+ const streamResult = await Promise.race([
536
+ streamPromise,
537
+ new Promise((_, reject) => setTimeout(() => reject(new Error('stream did not settle in time')), 3000)),
538
+ ]).catch(() => undefined);
539
+ const settleMs = Date.now() - settleStart;
540
+ if (streamResult !== undefined) {
541
+ expect(streamResult.length).toBe(0);
542
+ }
543
+ expect(settleMs).toBeLessThan(3000);
544
+ // Step 5: a third trivial query should run right away.
545
+ const thirdStart = Date.now();
546
+ const rows = await executor.batch('SELECT 1 AS val');
547
+ const thirdMs = Date.now() - thirdStart;
548
+ expect(rows.length).toBe(1);
549
+ expect(thirdMs).toBeLessThan(5000);
550
+ // Step 6: verify the tagged query never executed.
551
+ try {
552
+ const history = await executor.batch(`SELECT COUNT(*) AS cnt
553
+ FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY_BY_USER())
554
+ WHERE QUERY_TEXT LIKE '%${tag}%'
555
+ AND QUERY_TEXT NOT LIKE '%INFORMATION_SCHEMA%'`);
556
+ const cnt = Number(history[0]['CNT']);
557
+ expect(cnt).toBe(0);
558
+ }
559
+ catch {
560
+ // QUERY_HISTORY_BY_USER may not be available in all environments.
561
+ }
562
+ }
563
+ finally {
564
+ await executor.done();
565
+ }
566
+ });
567
+ });
568
+ /**
569
+ * test that abort fires after the connection is acquired and
570
+ * `conn.execute()` has been entered, but before Snowflake invokes the
571
+ * `complete` callback. This is distinct from `abort-under-contention`,
572
+ * which aborts while still waiting on `pool.acquire()`.
573
+ */
574
+ describe('abort-mid-execute', () => {
575
+ it('batch: abort cancels in-flight execute and returns the pool', async () => {
576
+ const connOptions = snowflake_executor_1.SnowflakeExecutor.getConnectionOptionsFromEnv() ||
577
+ snowflake_executor_1.SnowflakeExecutor.getConnectionOptionsFromToml();
578
+ const executor = new snowflake_executor_1.SnowflakeExecutor(connOptions, { min: 1, max: 1 });
579
+ try {
580
+ const slowSql = "SELECT SYSTEM$WAIT(30, 'SECONDS')";
581
+ const abortController = new AbortController();
582
+ const batchPromise = executor.batch(slowSql, {
583
+ abortSignal: abortController.signal,
584
+ });
585
+ // Past session init + pool handoff; the long statement should be in flight.
586
+ await new Promise(r => setTimeout(r, 1000));
587
+ abortController.abort();
588
+ const settleStart = Date.now();
589
+ await expect(batchPromise).rejects.toBeInstanceOf(Error);
590
+ expect(Date.now() - settleStart).toBeLessThan(20000);
591
+ const rows = await executor.batch('SELECT 1 AS val');
592
+ expect(rows.length).toBe(1);
593
+ }
594
+ finally {
595
+ await executor.done();
596
+ }
597
+ });
598
+ it('stream: abort cancels in-flight execute and returns the pool', async () => {
599
+ const connOptions = snowflake_executor_1.SnowflakeExecutor.getConnectionOptionsFromEnv() ||
600
+ snowflake_executor_1.SnowflakeExecutor.getConnectionOptionsFromToml();
601
+ const executor = new snowflake_executor_1.SnowflakeExecutor(connOptions, { min: 1, max: 1 });
602
+ try {
603
+ const slowSql = "SELECT SYSTEM$WAIT(30, 'SECONDS')";
604
+ const abortController = new AbortController();
605
+ const streamPromise = executor.stream(slowSql, {
606
+ abortSignal: abortController.signal,
607
+ });
608
+ await new Promise(r => setTimeout(r, 800));
609
+ abortController.abort();
610
+ const settleStart = Date.now();
611
+ await expect(streamPromise).rejects.toBeInstanceOf(Error);
612
+ expect(Date.now() - settleStart).toBeLessThan(20000);
613
+ const rows = await executor.batch('SELECT 1 AS val');
614
+ expect(rows.length).toBe(1);
615
+ }
616
+ finally {
617
+ await executor.done();
618
+ }
619
+ });
620
+ });
480
621
  });
481
622
  describe('setupSQL', () => {
482
623
  const connOptions = snowflake_executor_1.SnowflakeExecutor.getConnectionOptionsFromEnv() ||
@@ -1 +1 @@
1
- {"version":3,"file":"snowflake_connection.spec.js","sourceRoot":"","sources":["../src/snowflake_connection.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snowflake_connection.spec.js","sourceRoot":"","sources":["../src/snowflake_connection.spec.ts"],"names":[],"mappings":"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"}
@@ -143,59 +143,77 @@ class SnowflakeExecutor {
143
143
  });
144
144
  }
145
145
  async _execute(sqlText, conn, options, timeoutMs) {
146
- var _a;
146
+ const abortSignal = options === null || options === void 0 ? void 0 : options.abortSignal;
147
+ // Fail fast if already aborted before we even start executing
148
+ if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {
149
+ throw new Error('Query aborted');
150
+ }
147
151
  let _statement;
148
152
  const cancel = () => {
149
153
  _statement === null || _statement === void 0 ? void 0 : _statement.cancel();
150
154
  };
151
155
  const timeoutId = timeoutMs ? setTimeout(cancel, timeoutMs) : undefined;
152
- (_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.addEventListener('abort', cancel);
156
+ if (abortSignal) {
157
+ abortSignal.addEventListener('abort', cancel, { once: true });
158
+ }
153
159
  return await new Promise((resolve, reject) => {
154
- _statement = conn.execute({
155
- sqlText,
156
- complete: (err, _stmt, rows) => {
157
- var _a;
158
- (_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener('abort', cancel);
159
- if (timeoutId) {
160
- clearTimeout(timeoutId);
161
- }
162
- if (err) {
163
- reject(err);
164
- }
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 : []);
169
- }
170
- },
171
- });
160
+ try {
161
+ _statement = conn.execute({
162
+ sqlText,
163
+ complete: (err, _stmt, rows) => {
164
+ if (abortSignal) {
165
+ abortSignal.removeEventListener('abort', cancel);
166
+ }
167
+ if (timeoutId) {
168
+ clearTimeout(timeoutId);
169
+ }
170
+ if (err) {
171
+ reject(err);
172
+ }
173
+ else {
174
+ // Snowflake occasionally calls complete with no rows (e.g. DDL); without this branch
175
+ // the Promise never settles and generic-pool holds the connection forever.
176
+ resolve(rows !== null && rows !== void 0 ? rows : []);
177
+ }
178
+ },
179
+ });
180
+ }
181
+ catch (err) {
182
+ if (abortSignal) {
183
+ abortSignal.removeEventListener('abort', cancel);
184
+ }
185
+ if (timeoutId) {
186
+ clearTimeout(timeoutId);
187
+ }
188
+ reject(err);
189
+ }
172
190
  });
173
191
  }
174
- async _setSessionParams(conn) {
192
+ async _setSessionParams(conn, options, timeoutMs) {
175
193
  // set some default session parameters
176
194
  // ensure we do not ignore case for quoted identifiers
177
- await this._execute('ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = FALSE;', conn);
195
+ await this._execute('ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = FALSE;', conn, options, timeoutMs);
178
196
  // set utc as the default timezone which is the malloy convention
179
- await this._execute("ALTER SESSION SET TIMEZONE = 'UTC';", conn);
197
+ await this._execute("ALTER SESSION SET TIMEZONE = 'UTC';", conn, options, timeoutMs);
180
198
  // ensure week starts on Sunday which is the malloy convention
181
- await this._execute('ALTER SESSION SET WEEK_START = 7;', conn);
199
+ await this._execute('ALTER SESSION SET WEEK_START = 7;', conn, options, timeoutMs);
182
200
  // so javascript can parse the dates
183
- await this._execute("ALTER SESSION SET TIMESTAMP_NTZ_OUTPUT_FORMAT='YYYY-MM-DDTHH24:MI:SS.FF3TZH:TZM';", conn);
201
+ await this._execute("ALTER SESSION SET TIMESTAMP_NTZ_OUTPUT_FORMAT='YYYY-MM-DDTHH24:MI:SS.FF3TZH:TZM';", conn, options, timeoutMs);
184
202
  if (this.setupSQL) {
185
203
  for (const stmt of this.setupSQL.split(';\n')) {
186
204
  const trimmed = stmt.trim();
187
205
  if (trimmed) {
188
- await this._execute(trimmed, conn);
206
+ await this._execute(trimmed, conn, options, timeoutMs);
189
207
  }
190
208
  }
191
209
  }
192
210
  }
193
- ensureSessionInitialized(connection) {
211
+ ensureSessionInitialized(connection, options, timeoutMs) {
194
212
  const existing = this.sessionInitialized.get(connection);
195
213
  if (existing) {
196
214
  return existing;
197
215
  }
198
- const init = this._setSessionParams(connection).catch(err => {
216
+ const init = this._setSessionParams(connection, options, timeoutMs).catch(err => {
199
217
  this.sessionInitialized.delete(connection);
200
218
  throw err;
201
219
  });
@@ -204,7 +222,7 @@ class SnowflakeExecutor {
204
222
  }
205
223
  async batch(sqlText, options, timeoutMs) {
206
224
  return await this.pool_.use(async (conn) => {
207
- await this.ensureSessionInitialized(conn);
225
+ await this.ensureSessionInitialized(conn, options, timeoutMs);
208
226
  return await this._execute(sqlText, conn, options, timeoutMs);
209
227
  });
210
228
  }
@@ -218,7 +236,7 @@ class SnowflakeExecutor {
218
236
  */
219
237
  async tryBatch(sqlText, options, timeoutMs) {
220
238
  return await this.pool_.use(async (conn) => {
221
- await this.ensureSessionInitialized(conn);
239
+ await this.ensureSessionInitialized(conn, options, timeoutMs);
222
240
  try {
223
241
  return await this._execute(sqlText, conn, options, timeoutMs);
224
242
  }
@@ -228,93 +246,136 @@ class SnowflakeExecutor {
228
246
  });
229
247
  }
230
248
  async stream(sqlText, options) {
249
+ var _a, _b;
250
+ // Fail fast if already aborted before we acquire a connection
251
+ if ((_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {
252
+ throw new Error('Query aborted');
253
+ }
231
254
  const pool = this.pool_;
232
- return await pool.acquire().then(async (conn) => {
255
+ const conn = await pool.acquire();
256
+ const releaseOnce = (() => {
233
257
  let released = false;
234
- const releaseOnce = () => {
258
+ return () => {
235
259
  if (!released) {
236
260
  released = true;
237
261
  pool.release(conn).catch(() => { });
238
262
  }
239
263
  };
240
- try {
241
- await this.ensureSessionInitialized(conn);
242
- }
243
- catch (initErr) {
244
- releaseOnce();
245
- throw initErr;
264
+ })();
265
+ try {
266
+ await this.ensureSessionInitialized(conn, options);
267
+ }
268
+ catch (err) {
269
+ releaseOnce();
270
+ throw err;
271
+ }
272
+ // Check again after the awaits — signal may have fired while we were blocked
273
+ if ((_b = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _b === void 0 ? void 0 : _b.aborted) {
274
+ releaseOnce();
275
+ throw new Error('Query aborted');
276
+ }
277
+ // Track the statement so abort can cancel it during conn.execute()
278
+ let _statement;
279
+ const abortSignal = options === null || options === void 0 ? void 0 : options.abortSignal;
280
+ const cancelFromAbort = abortSignal
281
+ ? () => {
282
+ _statement === null || _statement === void 0 ? void 0 : _statement.cancel();
246
283
  }
247
- return new Promise((resolve, reject) => {
248
- var _a;
249
- const cancel = () => {
250
- statement === null || statement === void 0 ? void 0 : statement.cancel();
251
- };
252
- (_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.addEventListener('abort', cancel);
253
- const statement = conn.execute({
284
+ : undefined;
285
+ if (cancelFromAbort) {
286
+ abortSignal.addEventListener('abort', cancelFromAbort, { once: true });
287
+ }
288
+ return new Promise((resolve, reject) => {
289
+ try {
290
+ _statement = conn.execute({
254
291
  sqlText,
255
292
  streamResult: true,
256
- complete: (err, stmt) => {
257
- var _a, _b;
293
+ complete: (err, _stmt) => {
258
294
  if (err) {
259
- (_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener('abort', cancel);
295
+ if (cancelFromAbort) {
296
+ abortSignal.removeEventListener('abort', cancelFromAbort);
297
+ }
260
298
  releaseOnce();
261
299
  reject(err);
262
300
  return;
263
301
  }
264
- const stream = stmt.streamRows();
302
+ const stream = _stmt.streamRows();
265
303
  function streamSnowflake(onError, onData, onEnd) {
266
- var _a;
267
304
  let streamEnded = false;
268
- function handleEnd(cancelled = false) {
269
- var _a;
270
- if (streamEnded) {
271
- return;
305
+ // Replace the pre-execute abort listener with one that also
306
+ // tears down the stream.
307
+ const onAbort = abortSignal
308
+ ? () => {
309
+ _stmt.cancel();
310
+ handleEnd();
272
311
  }
312
+ : undefined;
313
+ if (cancelFromAbort) {
314
+ abortSignal.removeEventListener('abort', cancelFromAbort);
315
+ }
316
+ function cleanup() {
273
317
  streamEnded = true;
274
- (_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener('abort', onAbort);
275
- if (cancelled) {
276
- stmt.cancel();
318
+ stream.removeListener('data', handleData);
319
+ stream.removeListener('error', handleError);
320
+ stream.removeListener('end', handleEnd);
321
+ if (onAbort) {
322
+ abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.removeEventListener('abort', onAbort);
323
+ }
324
+ if (!stream.destroyed) {
325
+ stream.destroy();
277
326
  }
278
- stream.destroy();
327
+ }
328
+ function handleEnd() {
329
+ if (streamEnded)
330
+ return;
331
+ cleanup();
279
332
  onEnd();
280
333
  releaseOnce();
281
334
  }
282
- function onAbort() {
283
- handleEnd(true);
335
+ function handleError(error) {
336
+ if (streamEnded)
337
+ return;
338
+ cleanup();
339
+ onError(error);
340
+ releaseOnce();
284
341
  }
285
- (_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.addEventListener('abort', onAbort);
286
- let index = 0;
287
342
  function handleData(row) {
288
- if (streamEnded) {
343
+ if (streamEnded)
289
344
  return;
290
- }
291
345
  onData(row);
292
- index += 1;
293
346
  if ((options === null || options === void 0 ? void 0 : options.rowLimit) !== undefined &&
294
- index >= options.rowLimit) {
295
- handleEnd(true);
347
+ ++index >= options.rowLimit) {
348
+ _stmt.cancel();
349
+ handleEnd();
296
350
  }
297
351
  }
298
- stream.on('error', streamErr => {
299
- var _a;
300
- if (streamEnded) {
301
- return;
302
- }
303
- streamEnded = true;
304
- (_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener('abort', onAbort);
305
- stream.destroy();
306
- releaseOnce();
307
- onError(streamErr);
308
- });
352
+ let index = 0;
353
+ stream.on('error', handleError);
309
354
  stream.on('data', handleData);
310
355
  stream.on('end', handleEnd);
356
+ // Wire abort signal to cancel the stream
357
+ if (onAbort) {
358
+ if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {
359
+ onAbort();
360
+ }
361
+ else {
362
+ abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.addEventListener('abort', onAbort, {
363
+ once: true,
364
+ });
365
+ }
366
+ }
311
367
  }
312
- // Remove the pre-stream abort listener; streamSnowflake installs its own.
313
- (_b = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _b === void 0 ? void 0 : _b.removeEventListener('abort', cancel);
314
- return resolve((0, malloy_1.toAsyncGenerator)(streamSnowflake));
368
+ resolve((0, malloy_1.toAsyncGenerator)(streamSnowflake));
315
369
  },
316
370
  });
317
- });
371
+ }
372
+ catch (err) {
373
+ if (cancelFromAbort) {
374
+ abortSignal.removeEventListener('abort', cancelFromAbort);
375
+ }
376
+ releaseOnce();
377
+ reject(err);
378
+ }
318
379
  });
319
380
  }
320
381
  }
@@ -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.380",
3
+ "version": "0.0.382",
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.380",
25
+ "@malloydata/malloy": "0.0.382",
26
26
  "generic-pool": "^3.9.0",
27
27
  "snowflake-sdk": "2.3.1",
28
28
  "toml": "^3.0.0"
@@ -22,7 +22,7 @@
22
22
  */
23
23
 
24
24
  import * as malloy from '@malloydata/malloy';
25
- import type {QueryData, RunSQLOptions} from '@malloydata/malloy';
25
+ import type {QueryData, QueryRecord, RunSQLOptions} from '@malloydata/malloy';
26
26
  import {
27
27
  createTestRuntime,
28
28
  describeIfDatabaseAvailable,
@@ -437,10 +437,14 @@ class SnowflakeExecutorTestSetup {
437
437
  this.executor_ = executor;
438
438
  }
439
439
 
440
- async runBatch(sqlText: string): Promise<QueryData> {
440
+ async runBatch(
441
+ sqlText: string,
442
+ options?: RunSQLOptions,
443
+ timeoutMs?: number
444
+ ): Promise<QueryData> {
441
445
  let ret: QueryData = [];
442
446
  await (async () => {
443
- const rows = await this.executor_.batch(sqlText);
447
+ const rows = await this.executor_.batch(sqlText, options, timeoutMs);
444
448
  return rows;
445
449
  })().then((rows: QueryData) => {
446
450
  ret = rows;
@@ -504,6 +508,186 @@ describeSnowflakeExecutor('db:SnowflakeExecutor', () => {
504
508
  const rows = await db.runStreaming(query, {rowLimit: 2});
505
509
  expect(rows.length).toBe(2);
506
510
  });
511
+
512
+ it('aborts batch immediately when signal is already aborted', async () => {
513
+ const controller = new AbortController();
514
+ controller.abort();
515
+ await expect(
516
+ db.runBatch('select 1 as one', {abortSignal: controller.signal})
517
+ ).rejects.toThrow('Query aborted');
518
+ });
519
+
520
+ it('aborts stream immediately when signal is already aborted', async () => {
521
+ const controller = new AbortController();
522
+ controller.abort();
523
+ await expect(
524
+ db.runStreaming('select 1 as one', {abortSignal: controller.signal})
525
+ ).rejects.toThrow('Query aborted');
526
+ });
527
+
528
+ it('cancels long-running batch on timeout and does not hang', async () => {
529
+ // Use a long-running statement so the client-side timeout triggers
530
+ // rather than the query finishing first.
531
+ const longRunningSql = 'CALL SYSTEM$WAIT(60)';
532
+ const start = Date.now();
533
+ await expect(db.runBatch(longRunningSql, {}, 500)).rejects.toBeInstanceOf(
534
+ Error
535
+ );
536
+ const elapsed = Date.now() - start;
537
+ // Should fail well before the Jest 100s timeout; give a generous upper bound.
538
+ expect(elapsed).toBeLessThan(30_000);
539
+ // Subsequent queries should still work after a timeout-induced cancel.
540
+ const rows = await db.runBatch('select 1 as one');
541
+ expect(rows.length).toBe(1);
542
+ });
543
+
544
+ describe('abort-under-contention', () => {
545
+ it('aborted stream() settles immediately and does not block subsequent queries', async () => {
546
+ // Use a dedicated executor with pool size 1 so contention is guaranteed.
547
+ const connOptions =
548
+ SnowflakeExecutor.getConnectionOptionsFromEnv() ||
549
+ SnowflakeExecutor.getConnectionOptionsFromToml();
550
+ const executor = new SnowflakeExecutor(connOptions, {min: 1, max: 1});
551
+
552
+ try {
553
+ // Step 1: start a slow query that holds the only connection.
554
+ const slowQueryPromise = executor.batch(
555
+ "SELECT SYSTEM$WAIT(4, 'SECONDS')"
556
+ );
557
+
558
+ // Give the slow query a moment to acquire the connection.
559
+ await new Promise(r => setTimeout(r, 500));
560
+
561
+ // Step 2: start a second stream() with an AbortController.
562
+ const tag = `abort_test_${Date.now()}`;
563
+ const abortController = new AbortController();
564
+
565
+ const streamPromise = executor
566
+ .stream(`SELECT '${tag}' AS tag`, {
567
+ abortSignal: abortController.signal,
568
+ })
569
+ .then(async (iter: AsyncIterableIterator<QueryRecord>) => {
570
+ const rows: QueryRecord[] = [];
571
+ for await (const row of iter) {
572
+ rows.push(row);
573
+ }
574
+ return rows;
575
+ });
576
+
577
+ // Step 3: abort while still blocked on pool acquisition.
578
+ await new Promise(r => setTimeout(r, 200));
579
+ abortController.abort();
580
+
581
+ // Step 4: let the slow query finish.
582
+ await slowQueryPromise;
583
+
584
+ // The aborted stream should settle promptly.
585
+ const settleStart = Date.now();
586
+ const streamResult = await Promise.race([
587
+ streamPromise,
588
+ new Promise<never>((_, reject) =>
589
+ setTimeout(
590
+ () => reject(new Error('stream did not settle in time')),
591
+ 3000
592
+ )
593
+ ),
594
+ ]).catch(() => undefined);
595
+ const settleMs = Date.now() - settleStart;
596
+
597
+ if (streamResult !== undefined) {
598
+ expect(streamResult.length).toBe(0);
599
+ }
600
+ expect(settleMs).toBeLessThan(3000);
601
+
602
+ // Step 5: a third trivial query should run right away.
603
+ const thirdStart = Date.now();
604
+ const rows = await executor.batch('SELECT 1 AS val');
605
+ const thirdMs = Date.now() - thirdStart;
606
+
607
+ expect(rows.length).toBe(1);
608
+ expect(thirdMs).toBeLessThan(5000);
609
+
610
+ // Step 6: verify the tagged query never executed.
611
+ try {
612
+ const history = await executor.batch(
613
+ `SELECT COUNT(*) AS cnt
614
+ FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY_BY_USER())
615
+ WHERE QUERY_TEXT LIKE '%${tag}%'
616
+ AND QUERY_TEXT NOT LIKE '%INFORMATION_SCHEMA%'`
617
+ );
618
+ const cnt = Number(history[0]['CNT']);
619
+ expect(cnt).toBe(0);
620
+ } catch {
621
+ // QUERY_HISTORY_BY_USER may not be available in all environments.
622
+ }
623
+ } finally {
624
+ await executor.done();
625
+ }
626
+ });
627
+ });
628
+
629
+ /**
630
+ * test that abort fires after the connection is acquired and
631
+ * `conn.execute()` has been entered, but before Snowflake invokes the
632
+ * `complete` callback. This is distinct from `abort-under-contention`,
633
+ * which aborts while still waiting on `pool.acquire()`.
634
+ */
635
+ describe('abort-mid-execute', () => {
636
+ it('batch: abort cancels in-flight execute and returns the pool', async () => {
637
+ const connOptions =
638
+ SnowflakeExecutor.getConnectionOptionsFromEnv() ||
639
+ SnowflakeExecutor.getConnectionOptionsFromToml();
640
+ const executor = new SnowflakeExecutor(connOptions, {min: 1, max: 1});
641
+
642
+ try {
643
+ const slowSql = "SELECT SYSTEM$WAIT(30, 'SECONDS')";
644
+ const abortController = new AbortController();
645
+ const batchPromise = executor.batch(slowSql, {
646
+ abortSignal: abortController.signal,
647
+ });
648
+
649
+ // Past session init + pool handoff; the long statement should be in flight.
650
+ await new Promise(r => setTimeout(r, 1000));
651
+ abortController.abort();
652
+
653
+ const settleStart = Date.now();
654
+ await expect(batchPromise).rejects.toBeInstanceOf(Error);
655
+ expect(Date.now() - settleStart).toBeLessThan(20_000);
656
+
657
+ const rows = await executor.batch('SELECT 1 AS val');
658
+ expect(rows.length).toBe(1);
659
+ } finally {
660
+ await executor.done();
661
+ }
662
+ });
663
+
664
+ it('stream: abort cancels in-flight execute and returns the pool', async () => {
665
+ const connOptions =
666
+ SnowflakeExecutor.getConnectionOptionsFromEnv() ||
667
+ SnowflakeExecutor.getConnectionOptionsFromToml();
668
+ const executor = new SnowflakeExecutor(connOptions, {min: 1, max: 1});
669
+
670
+ try {
671
+ const slowSql = "SELECT SYSTEM$WAIT(30, 'SECONDS')";
672
+ const abortController = new AbortController();
673
+ const streamPromise = executor.stream(slowSql, {
674
+ abortSignal: abortController.signal,
675
+ });
676
+
677
+ await new Promise(r => setTimeout(r, 800));
678
+ abortController.abort();
679
+
680
+ const settleStart = Date.now();
681
+ await expect(streamPromise).rejects.toBeInstanceOf(Error);
682
+ expect(Date.now() - settleStart).toBeLessThan(20_000);
683
+
684
+ const rows = await executor.batch('SELECT 1 AS val');
685
+ expect(rows.length).toBe(1);
686
+ } finally {
687
+ await executor.done();
688
+ }
689
+ });
690
+ });
507
691
  });
508
692
 
509
693
  describe('setupSQL', () => {
@@ -113,7 +113,7 @@ export interface SnowflakeConnectionOptions {
113
113
  // Timeout for the statement
114
114
  timeoutMs?: number;
115
115
 
116
- // Timeout for the variant schema sampling query (default 2 minutes)
116
+ // Timeout for the variant schema sampling query (default 15 seconds)
117
117
  schemaSampleTimeoutMs?: number;
118
118
 
119
119
  // Row limit used inside the variant schema sample (default 1000). When the
@@ -241,8 +241,12 @@ export class SnowflakeConnection
241
241
  sql: string,
242
242
  options: RunSQLOptions = {}
243
243
  ): Promise<MalloyQueryData> {
244
- const rowLimit = options?.rowLimit ?? this.queryOptions?.rowLimit;
245
- let rows = await this.executor.batch(sql, options, this.timeoutMs);
244
+ const effectiveOptions: RunSQLOptions = {
245
+ ...this.queryOptions,
246
+ ...options,
247
+ };
248
+ const rowLimit = effectiveOptions.rowLimit;
249
+ let rows = await this.executor.batch(sql, effectiveOptions, this.timeoutMs);
246
250
  if (rowLimit !== undefined && rows.length > rowLimit) {
247
251
  rows = rows.slice(0, rowLimit);
248
252
  }
@@ -168,71 +168,114 @@ export class SnowflakeExecutor {
168
168
  options?: RunSQLOptions,
169
169
  timeoutMs?: number
170
170
  ): Promise<QueryData> {
171
+ const abortSignal = options?.abortSignal;
172
+ // Fail fast if already aborted before we even start executing
173
+ if (abortSignal?.aborted) {
174
+ throw new Error('Query aborted');
175
+ }
171
176
  let _statement: RowStatement | undefined;
172
177
  const cancel = () => {
173
178
  _statement?.cancel();
174
179
  };
175
180
  const timeoutId = timeoutMs ? setTimeout(cancel, timeoutMs) : undefined;
176
- options?.abortSignal?.addEventListener('abort', cancel);
181
+ if (abortSignal) {
182
+ abortSignal.addEventListener('abort', cancel, {once: true});
183
+ }
177
184
  return await new Promise((resolve, reject) => {
178
- _statement = conn.execute({
179
- sqlText,
180
- complete: (
181
- err: SnowflakeError | undefined,
182
- _stmt: RowStatement,
183
- rows?: QueryData
184
- ) => {
185
- options?.abortSignal?.removeEventListener('abort', cancel);
186
- if (timeoutId) {
187
- clearTimeout(timeoutId);
188
- }
189
- if (err) {
190
- reject(err);
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 ?? []);
195
- }
196
- },
197
- });
185
+ try {
186
+ _statement = conn.execute({
187
+ sqlText,
188
+ complete: (
189
+ err: SnowflakeError | undefined,
190
+ _stmt: RowStatement,
191
+ rows?: QueryData
192
+ ) => {
193
+ if (abortSignal) {
194
+ abortSignal.removeEventListener('abort', cancel);
195
+ }
196
+ if (timeoutId) {
197
+ clearTimeout(timeoutId);
198
+ }
199
+ if (err) {
200
+ reject(err);
201
+ } else {
202
+ // Snowflake occasionally calls complete with no rows (e.g. DDL); without this branch
203
+ // the Promise never settles and generic-pool holds the connection forever.
204
+ resolve(rows ?? []);
205
+ }
206
+ },
207
+ });
208
+ } catch (err) {
209
+ if (abortSignal) {
210
+ abortSignal.removeEventListener('abort', cancel);
211
+ }
212
+ if (timeoutId) {
213
+ clearTimeout(timeoutId);
214
+ }
215
+ reject(err);
216
+ }
198
217
  });
199
218
  }
200
219
 
201
- private async _setSessionParams(conn: Connection) {
220
+ private async _setSessionParams(
221
+ conn: Connection,
222
+ options?: RunSQLOptions,
223
+ timeoutMs?: number
224
+ ) {
202
225
  // set some default session parameters
203
226
  // ensure we do not ignore case for quoted identifiers
204
227
  await this._execute(
205
228
  'ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = FALSE;',
206
- conn
229
+ conn,
230
+ options,
231
+ timeoutMs
207
232
  );
208
233
  // set utc as the default timezone which is the malloy convention
209
- await this._execute("ALTER SESSION SET TIMEZONE = 'UTC';", conn);
234
+ await this._execute(
235
+ "ALTER SESSION SET TIMEZONE = 'UTC';",
236
+ conn,
237
+ options,
238
+ timeoutMs
239
+ );
210
240
  // ensure week starts on Sunday which is the malloy convention
211
- await this._execute('ALTER SESSION SET WEEK_START = 7;', conn);
241
+ await this._execute(
242
+ 'ALTER SESSION SET WEEK_START = 7;',
243
+ conn,
244
+ options,
245
+ timeoutMs
246
+ );
212
247
  // so javascript can parse the dates
213
248
  await this._execute(
214
249
  "ALTER SESSION SET TIMESTAMP_NTZ_OUTPUT_FORMAT='YYYY-MM-DDTHH24:MI:SS.FF3TZH:TZM';",
215
- conn
250
+ conn,
251
+ options,
252
+ timeoutMs
216
253
  );
217
254
  if (this.setupSQL) {
218
255
  for (const stmt of this.setupSQL.split(';\n')) {
219
256
  const trimmed = stmt.trim();
220
257
  if (trimmed) {
221
- await this._execute(trimmed, conn);
258
+ await this._execute(trimmed, conn, options, timeoutMs);
222
259
  }
223
260
  }
224
261
  }
225
262
  }
226
263
 
227
- private ensureSessionInitialized(connection: Connection): Promise<void> {
264
+ private ensureSessionInitialized(
265
+ connection: Connection,
266
+ options?: RunSQLOptions,
267
+ timeoutMs?: number
268
+ ): Promise<void> {
228
269
  const existing = this.sessionInitialized.get(connection);
229
270
  if (existing) {
230
271
  return existing;
231
272
  }
232
- const init = this._setSessionParams(connection).catch(err => {
233
- this.sessionInitialized.delete(connection);
234
- throw err;
235
- });
273
+ const init = this._setSessionParams(connection, options, timeoutMs).catch(
274
+ err => {
275
+ this.sessionInitialized.delete(connection);
276
+ throw err;
277
+ }
278
+ );
236
279
  this.sessionInitialized.set(connection, init);
237
280
  return init;
238
281
  }
@@ -243,7 +286,7 @@ export class SnowflakeExecutor {
243
286
  timeoutMs?: number
244
287
  ): Promise<QueryData> {
245
288
  return await this.pool_.use(async (conn: Connection) => {
246
- await this.ensureSessionInitialized(conn);
289
+ await this.ensureSessionInitialized(conn, options, timeoutMs);
247
290
  return await this._execute(sqlText, conn, options, timeoutMs);
248
291
  });
249
292
  }
@@ -262,7 +305,7 @@ export class SnowflakeExecutor {
262
305
  timeoutMs?: number
263
306
  ): Promise<QueryData | undefined> {
264
307
  return await this.pool_.use(async (conn: Connection) => {
265
- await this.ensureSessionInitialized(conn);
308
+ await this.ensureSessionInitialized(conn, options, timeoutMs);
266
309
  try {
267
310
  return await this._execute(sqlText, conn, options, timeoutMs);
268
311
  } catch {
@@ -275,100 +318,153 @@ export class SnowflakeExecutor {
275
318
  sqlText: string,
276
319
  options?: RunSQLOptions
277
320
  ): Promise<AsyncIterableIterator<QueryRecord>> {
321
+ // Fail fast if already aborted before we acquire a connection
322
+ if (options?.abortSignal?.aborted) {
323
+ throw new Error('Query aborted');
324
+ }
325
+
278
326
  const pool: Pool<Connection> = this.pool_;
279
- return await pool.acquire().then(async (conn: Connection) => {
327
+ const conn: Connection = await pool.acquire();
328
+
329
+ const releaseOnce = (() => {
280
330
  let released = false;
281
- const releaseOnce = () => {
331
+ return () => {
282
332
  if (!released) {
283
333
  released = true;
284
334
  pool.release(conn).catch(() => {});
285
335
  }
286
336
  };
337
+ })();
287
338
 
288
- try {
289
- await this.ensureSessionInitialized(conn);
290
- } catch (initErr) {
291
- releaseOnce();
292
- throw initErr;
293
- }
339
+ try {
340
+ await this.ensureSessionInitialized(conn, options);
341
+ } catch (err) {
342
+ releaseOnce();
343
+ throw err;
344
+ }
345
+
346
+ // Check again after the awaits — signal may have fired while we were blocked
347
+ if (options?.abortSignal?.aborted) {
348
+ releaseOnce();
349
+ throw new Error('Query aborted');
350
+ }
294
351
 
295
- return new Promise((resolve, reject) => {
296
- const cancel = () => {
297
- statement?.cancel();
298
- };
299
- options?.abortSignal?.addEventListener('abort', cancel);
352
+ // Track the statement so abort can cancel it during conn.execute()
353
+ let _statement: RowStatement | undefined;
354
+ const abortSignal = options?.abortSignal;
355
+ const cancelFromAbort = abortSignal
356
+ ? () => {
357
+ _statement?.cancel();
358
+ }
359
+ : undefined;
300
360
 
301
- const statement = conn.execute({
361
+ if (cancelFromAbort) {
362
+ abortSignal!.addEventListener('abort', cancelFromAbort, {once: true});
363
+ }
364
+
365
+ return new Promise((resolve, reject) => {
366
+ try {
367
+ _statement = conn.execute({
302
368
  sqlText,
303
369
  streamResult: true,
304
- complete: (err: SnowflakeError | undefined, stmt: RowStatement) => {
370
+ complete: (err: SnowflakeError | undefined, _stmt: RowStatement) => {
305
371
  if (err) {
306
- options?.abortSignal?.removeEventListener('abort', cancel);
372
+ if (cancelFromAbort) {
373
+ abortSignal!.removeEventListener('abort', cancelFromAbort);
374
+ }
307
375
  releaseOnce();
308
376
  reject(err);
309
377
  return;
310
378
  }
311
379
 
312
- const stream: Readable = stmt.streamRows();
380
+ const stream: Readable = _stmt.streamRows();
381
+
313
382
  function streamSnowflake(
314
383
  onError: (error: Error) => void,
315
384
  onData: (data: QueryRecord) => void,
316
385
  onEnd: () => void
317
386
  ) {
318
387
  let streamEnded = false;
319
- function handleEnd(cancelled = false) {
320
- if (streamEnded) {
321
- return;
322
- }
388
+
389
+ // Replace the pre-execute abort listener with one that also
390
+ // tears down the stream.
391
+ const onAbort = abortSignal
392
+ ? () => {
393
+ _stmt.cancel();
394
+ handleEnd();
395
+ }
396
+ : undefined;
397
+
398
+ if (cancelFromAbort) {
399
+ abortSignal!.removeEventListener('abort', cancelFromAbort);
400
+ }
401
+
402
+ function cleanup() {
323
403
  streamEnded = true;
324
- options?.abortSignal?.removeEventListener('abort', onAbort);
325
- if (cancelled) {
326
- stmt.cancel();
404
+ stream.removeListener('data', handleData);
405
+ stream.removeListener('error', handleError);
406
+ stream.removeListener('end', handleEnd);
407
+ if (onAbort) {
408
+ abortSignal?.removeEventListener('abort', onAbort);
327
409
  }
328
- stream.destroy();
410
+ if (!stream.destroyed) {
411
+ stream.destroy();
412
+ }
413
+ }
414
+
415
+ function handleEnd() {
416
+ if (streamEnded) return;
417
+ cleanup();
329
418
  onEnd();
330
419
  releaseOnce();
331
420
  }
332
421
 
333
- function onAbort() {
334
- handleEnd(true);
422
+ function handleError(error: Error) {
423
+ if (streamEnded) return;
424
+ cleanup();
425
+ onError(error);
426
+ releaseOnce();
335
427
  }
336
428
 
337
- options?.abortSignal?.addEventListener('abort', onAbort);
338
-
339
- let index = 0;
340
429
  function handleData(this: Readable, row: QueryRecord) {
341
- if (streamEnded) {
342
- return;
343
- }
430
+ if (streamEnded) return;
344
431
  onData(row);
345
- index += 1;
346
432
  if (
347
433
  options?.rowLimit !== undefined &&
348
- index >= options.rowLimit
434
+ ++index >= options.rowLimit
349
435
  ) {
350
- handleEnd(true);
436
+ _stmt.cancel();
437
+ handleEnd();
351
438
  }
352
439
  }
353
- stream.on('error', streamErr => {
354
- if (streamEnded) {
355
- return;
356
- }
357
- streamEnded = true;
358
- options?.abortSignal?.removeEventListener('abort', onAbort);
359
- stream.destroy();
360
- releaseOnce();
361
- onError(streamErr);
362
- });
440
+
441
+ let index = 0;
442
+ stream.on('error', handleError);
363
443
  stream.on('data', handleData);
364
444
  stream.on('end', handleEnd);
445
+
446
+ // Wire abort signal to cancel the stream
447
+ if (onAbort) {
448
+ if (abortSignal?.aborted) {
449
+ onAbort();
450
+ } else {
451
+ abortSignal?.addEventListener('abort', onAbort, {
452
+ once: true,
453
+ });
454
+ }
455
+ }
365
456
  }
366
- // Remove the pre-stream abort listener; streamSnowflake installs its own.
367
- options?.abortSignal?.removeEventListener('abort', cancel);
368
- return resolve(toAsyncGenerator<QueryRecord>(streamSnowflake));
457
+
458
+ resolve(toAsyncGenerator<QueryRecord>(streamSnowflake));
369
459
  },
370
460
  });
371
- });
461
+ } catch (err) {
462
+ if (cancelFromAbort) {
463
+ abortSignal!.removeEventListener('abort', cancelFromAbort);
464
+ }
465
+ releaseOnce();
466
+ reject(err);
467
+ }
372
468
  });
373
469
  }
374
470
  }