@malloydata/db-snowflake 0.0.425 → 0.0.427
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.js +19 -5
- package/dist/snowflake_connection.js.map +1 -1
- package/dist/snowflake_executor.d.ts +15 -0
- package/dist/snowflake_executor.js +35 -0
- package/dist/snowflake_executor.js.map +1 -1
- package/dist/snowflake_query_metadata.spec.d.ts +1 -0
- package/dist/snowflake_query_metadata.spec.js +102 -0
- package/dist/snowflake_query_metadata.spec.js.map +1 -0
- package/package.json +2 -2
- package/src/snowflake_connection.ts +17 -3
- package/src/snowflake_executor.ts +35 -0
- package/src/snowflake_query_metadata.spec.ts +130 -0
|
@@ -63,7 +63,7 @@ async function sampleVariantBlocks(runSample, blockPercents = exports.VARIANT_SA
|
|
|
63
63
|
const TIMEOUT_MS = 1000 * 60 * 10;
|
|
64
64
|
class SnowflakeConnection extends connection_1.BaseConnection {
|
|
65
65
|
constructor(name, options) {
|
|
66
|
-
var _a, _b, _c
|
|
66
|
+
var _a, _b, _c;
|
|
67
67
|
super();
|
|
68
68
|
this.name = name;
|
|
69
69
|
this.dialect = new malloy_1.SnowflakeDialect();
|
|
@@ -77,11 +77,19 @@ class SnowflakeConnection extends connection_1.BaseConnection {
|
|
|
77
77
|
this.executor = new snowflake_executor_1.SnowflakeExecutor(connOptions, options === null || options === void 0 ? void 0 : options.poolOptions, this.setupSQL);
|
|
78
78
|
this.scratchSpace = options === null || options === void 0 ? void 0 : options.scratchSpace;
|
|
79
79
|
this.queryOptions = (_a = options === null || options === void 0 ? void 0 : options.queryOptions) !== null && _a !== void 0 ? _a : {};
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
// A configured value that is unset, blank, non-numeric, zero, or negative
|
|
81
|
+
// falls back to the default; only a positive value overrides it, matching
|
|
82
|
+
// the BigQuery connector. `> 0` guards the negative case a bare `||` would
|
|
83
|
+
// let through: the executor schedules setTimeout(cancel, timeoutMs), which
|
|
84
|
+
// with a negative value fires immediately and aborts the statement.
|
|
85
|
+
const configuredTimeout = Number(options === null || options === void 0 ? void 0 : options.timeoutMs);
|
|
86
|
+
this.timeoutMs = configuredTimeout > 0 ? configuredTimeout : TIMEOUT_MS;
|
|
87
|
+
const configuredSampleTimeout = Number(options === null || options === void 0 ? void 0 : options.schemaSampleTimeoutMs);
|
|
88
|
+
this.schemaSampleTimeoutMs =
|
|
89
|
+
configuredSampleTimeout > 0 ? configuredSampleTimeout : 15000;
|
|
90
|
+
this.schemaSampleRowLimit = (_b = options === null || options === void 0 ? void 0 : options.schemaSampleRowLimit) !== null && _b !== void 0 ? _b : 1000;
|
|
83
91
|
this.schemaSampleFullScanMaxBytes =
|
|
84
|
-
(
|
|
92
|
+
(_c = options === null || options === void 0 ? void 0 : options.schemaSampleFullScanMaxBytes) !== null && _c !== void 0 ? _c : 100000000;
|
|
85
93
|
}
|
|
86
94
|
get dialectName() {
|
|
87
95
|
return 'snowflake';
|
|
@@ -122,6 +130,10 @@ class SnowflakeConnection extends connection_1.BaseConnection {
|
|
|
122
130
|
const effectiveOptions = {
|
|
123
131
|
...this.queryOptions,
|
|
124
132
|
...options,
|
|
133
|
+
// queryMetadata is per-call only; everything else (rowLimit, etc.)
|
|
134
|
+
// inherits the connection defaults. Validated here, so the executor
|
|
135
|
+
// renders a bag it can trust.
|
|
136
|
+
queryMetadata: this.queryMetadataBag(options.queryMetadata),
|
|
125
137
|
};
|
|
126
138
|
const rowLimit = effectiveOptions.rowLimit;
|
|
127
139
|
let rows = await this.executor.batch(sql, effectiveOptions, this.timeoutMs);
|
|
@@ -134,6 +146,8 @@ class SnowflakeConnection extends connection_1.BaseConnection {
|
|
|
134
146
|
const streamQueryOptions = {
|
|
135
147
|
...this.queryOptions,
|
|
136
148
|
...options,
|
|
149
|
+
// per-call only, validated here (see runSQL)
|
|
150
|
+
queryMetadata: this.queryMetadataBag(options.queryMetadata),
|
|
137
151
|
};
|
|
138
152
|
for await (const row of await this.executor.stream(sqlCommand, streamQueryOptions)) {
|
|
139
153
|
yield row;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snowflake_connection.js","sourceRoot":"","sources":["../src/snowflake_connection.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAqEH,gDAOC;AA4BD,kDAaC;AApGD,+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;AAED;;;;GAIG;AACU,QAAA,6BAA6B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAU,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACI,KAAK,UAAU,mBAAmB,CACvC,SAAuE,EACvE,gBAAmC,qCAA6B;IAEhE,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;QAC3C,mEAAmE;QACnE,6EAA6E;QAC7E,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACzC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,+DAA+D;IACjE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,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,gBAAgB,GAAkB;YACtC,GAAG,IAAI,CAAC,YAAY;YACpB,GAAG,OAAO;SACX,CAAC;QACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QAC3C,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5E,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,CAAC,YAAoB,EAAE,EAAE,CAChD,eAAe,CACb,GAAG,eAAe,SAAS,SAAS,uBAAuB,YAAY,WAAW,CAAC,EAAE,CACtF,CAAC;gBACJ,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;oBACpC,gEAAgE;oBAChE,iEAAiE;oBACjE,oDAAoD;oBACpD,oEAAoE;oBACpE,iCAAiC;oBACjC,aAAa,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,EAAE,CACvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACpB,gBAAgB,CAAC,YAAY,CAAC,EAC9B,EAAE,EACF,IAAI,CAAC,qBAAqB,CAC3B,CACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,wDAAwD;oBACxD,2DAA2D;oBAC3D,2DAA2D;oBAC3D,2CAA2C;oBAC3C,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CACxC,gBAAgB,CAAC,CAAC,CAAC,EACnB,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,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,iEAAiE;QACjE,gEAAgE;QAChE,gEAAgE;QAChE,uBAAuB;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACvC;cACQ,WAAW;;;eAGV,EACT,EAAE,EACF,IAAI,CAAC,qBAAqB,EAC1B,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAC9C,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;AAhaD,kDAgaC"}
|
|
1
|
+
{"version":3,"file":"snowflake_connection.js","sourceRoot":"","sources":["../src/snowflake_connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import type { Connection, ConnectionOptions, Binds } from 'snowflake-sdk';
|
|
2
2
|
import type { Options as PoolOptions } from 'generic-pool';
|
|
3
3
|
import type { QueryData, QueryRecord, RunSQLOptions } from '@malloydata/malloy';
|
|
4
|
+
/**
|
|
5
|
+
* Render a query's metadata into a Snowflake `QUERY_TAG` value: the property
|
|
6
|
+
* bag serialized as JSON, so the properties are queryable in `QUERY_HISTORY` /
|
|
7
|
+
* `QUERY_ATTRIBUTION_HISTORY`. Case is preserved. Clamped to Snowflake's
|
|
8
|
+
* 2000-char limit as a runtime backstop.
|
|
9
|
+
*
|
|
10
|
+
* The tag is applied per statement via `parameters.QUERY_TAG` (see `_execute`);
|
|
11
|
+
* the connection-level `connOptions.queryTag` is deliberately never set,
|
|
12
|
+
* because the SDK overwrites caller-supplied per-statement parameters whenever
|
|
13
|
+
* it is (snowflake-sdk `statement.js`).
|
|
14
|
+
*
|
|
15
|
+
* The bag arrives already validated: SnowflakeConnection checks it before
|
|
16
|
+
* handing it to the executor.
|
|
17
|
+
*/
|
|
18
|
+
export declare function snowflakeQueryTag(options?: RunSQLOptions): string | undefined;
|
|
4
19
|
export interface ConnectionConfigFile {
|
|
5
20
|
config_file_path?: string;
|
|
6
21
|
connection_name?: string;
|
|
@@ -41,6 +41,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
};
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
43
|
exports.SnowflakeExecutor = void 0;
|
|
44
|
+
exports.snowflakeQueryTag = snowflakeQueryTag;
|
|
44
45
|
const snowflake_sdk_1 = __importDefault(require("snowflake-sdk"));
|
|
45
46
|
const toml = __importStar(require("toml"));
|
|
46
47
|
const fs = __importStar(require("fs"));
|
|
@@ -48,6 +49,31 @@ const path = __importStar(require("path"));
|
|
|
48
49
|
const malloy_1 = require("@malloydata/malloy");
|
|
49
50
|
// Disable snowflake-sdk logging by default (issue #2565)
|
|
50
51
|
snowflake_sdk_1.default.configure({ logLevel: 'OFF' });
|
|
52
|
+
// Snowflake QUERY_TAG is a single free-form string, max 2000 chars.
|
|
53
|
+
const MAX_QUERY_TAG_LENGTH = 2000;
|
|
54
|
+
/**
|
|
55
|
+
* Render a query's metadata into a Snowflake `QUERY_TAG` value: the property
|
|
56
|
+
* bag serialized as JSON, so the properties are queryable in `QUERY_HISTORY` /
|
|
57
|
+
* `QUERY_ATTRIBUTION_HISTORY`. Case is preserved. Clamped to Snowflake's
|
|
58
|
+
* 2000-char limit as a runtime backstop.
|
|
59
|
+
*
|
|
60
|
+
* The tag is applied per statement via `parameters.QUERY_TAG` (see `_execute`);
|
|
61
|
+
* the connection-level `connOptions.queryTag` is deliberately never set,
|
|
62
|
+
* because the SDK overwrites caller-supplied per-statement parameters whenever
|
|
63
|
+
* it is (snowflake-sdk `statement.js`).
|
|
64
|
+
*
|
|
65
|
+
* The bag arrives already validated: SnowflakeConnection checks it before
|
|
66
|
+
* handing it to the executor.
|
|
67
|
+
*/
|
|
68
|
+
function snowflakeQueryTag(options) {
|
|
69
|
+
const bag = options === null || options === void 0 ? void 0 : options.queryMetadata;
|
|
70
|
+
if (bag === undefined || Object.keys(bag).length === 0)
|
|
71
|
+
return undefined;
|
|
72
|
+
const tag = JSON.stringify(bag);
|
|
73
|
+
return tag.length > MAX_QUERY_TAG_LENGTH
|
|
74
|
+
? tag.slice(0, MAX_QUERY_TAG_LENGTH)
|
|
75
|
+
: tag;
|
|
76
|
+
}
|
|
51
77
|
// function columnNameToLowerCase(row: QueryRecord): QueryRecord {
|
|
52
78
|
// const ret: QueryRecord = {};
|
|
53
79
|
// for (const key in row) {
|
|
@@ -131,6 +157,10 @@ class SnowflakeExecutor {
|
|
|
131
157
|
if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {
|
|
132
158
|
throw new Error('Query aborted');
|
|
133
159
|
}
|
|
160
|
+
// Apply the query tag per statement (never via connOptions.queryTag — the
|
|
161
|
+
// SDK clobbers per-statement parameters when that is set).
|
|
162
|
+
const queryTag = snowflakeQueryTag(options);
|
|
163
|
+
const parameters = queryTag ? { QUERY_TAG: queryTag } : undefined;
|
|
134
164
|
let _statement;
|
|
135
165
|
const cancel = () => {
|
|
136
166
|
_statement === null || _statement === void 0 ? void 0 : _statement.cancel();
|
|
@@ -144,6 +174,7 @@ class SnowflakeExecutor {
|
|
|
144
174
|
_statement = conn.execute({
|
|
145
175
|
sqlText,
|
|
146
176
|
binds,
|
|
177
|
+
parameters,
|
|
147
178
|
complete: (err, _stmt, rows) => {
|
|
148
179
|
if (abortSignal) {
|
|
149
180
|
abortSignal.removeEventListener('abort', cancel);
|
|
@@ -261,6 +292,9 @@ class SnowflakeExecutor {
|
|
|
261
292
|
releaseOnce();
|
|
262
293
|
throw new Error('Query aborted');
|
|
263
294
|
}
|
|
295
|
+
// Apply the query tag per statement (see _execute).
|
|
296
|
+
const queryTag = snowflakeQueryTag(options);
|
|
297
|
+
const parameters = queryTag ? { QUERY_TAG: queryTag } : undefined;
|
|
264
298
|
// Track the statement so abort can cancel it during conn.execute()
|
|
265
299
|
let _statement;
|
|
266
300
|
const abortSignal = options === null || options === void 0 ? void 0 : options.abortSignal;
|
|
@@ -277,6 +311,7 @@ class SnowflakeExecutor {
|
|
|
277
311
|
_statement = conn.execute({
|
|
278
312
|
sqlText,
|
|
279
313
|
streamResult: true,
|
|
314
|
+
parameters,
|
|
280
315
|
complete: (err, _stmt) => {
|
|
281
316
|
if (err) {
|
|
282
317
|
if (cancelFromAbort) {
|
|
@@ -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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright Contributors to the Malloy project
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const snowflake_sdk_1 = __importDefault(require("snowflake-sdk"));
|
|
11
|
+
const snowflake_connection_1 = require("./snowflake_connection");
|
|
12
|
+
const snowflake_executor_1 = require("./snowflake_executor");
|
|
13
|
+
function installFakeSnowflake(queryId = 'q-abc-123') {
|
|
14
|
+
const calls = [];
|
|
15
|
+
const fakeStmt = {
|
|
16
|
+
getQueryId: () => queryId,
|
|
17
|
+
cancel: () => { },
|
|
18
|
+
};
|
|
19
|
+
const fakeConn = {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
execute(opts) {
|
|
22
|
+
calls.push({ sqlText: opts.sqlText, parameters: opts.parameters });
|
|
23
|
+
// DDL/ALTER SESSION statements return no rows; a SELECT returns one row.
|
|
24
|
+
const rows = /^\s*select/i.test(opts.sqlText) ? [{ T: 1 }] : [];
|
|
25
|
+
opts.complete(undefined, fakeStmt, rows);
|
|
26
|
+
return fakeStmt;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
const fakePool = {
|
|
30
|
+
use: (fn) => fn(fakeConn),
|
|
31
|
+
acquire: async () => fakeConn,
|
|
32
|
+
release: async () => { },
|
|
33
|
+
drain: async () => { },
|
|
34
|
+
clear: () => { },
|
|
35
|
+
};
|
|
36
|
+
const spy = jest
|
|
37
|
+
.spyOn(snowflake_sdk_1.default, 'createPool')
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
39
|
+
.mockReturnValue(fakePool);
|
|
40
|
+
return { calls, spy };
|
|
41
|
+
}
|
|
42
|
+
// Non-empty so the constructor never falls back to reading connections.toml.
|
|
43
|
+
const CONN_OPTIONS = { account: 'test', username: 'test' };
|
|
44
|
+
const lastCall = (calls) => calls[calls.length - 1];
|
|
45
|
+
// Parse a captured QUERY_TAG value (it is a JSON string) into an object.
|
|
46
|
+
const tagOf = (call) => JSON.parse(call.parameters.QUERY_TAG);
|
|
47
|
+
describe('snowflakeQueryTag', () => {
|
|
48
|
+
it('renders the property bag as a JSON QUERY_TAG', () => {
|
|
49
|
+
expect(JSON.parse((0, snowflake_executor_1.snowflakeQueryTag)({ queryMetadata: { team: 'finance' } }))).toEqual({ team: 'finance' });
|
|
50
|
+
});
|
|
51
|
+
it('treats application_name as an ordinary property', () => {
|
|
52
|
+
expect(JSON.parse((0, snowflake_executor_1.snowflakeQueryTag)({
|
|
53
|
+
queryMetadata: { application_name: 'my-app', team: 'finance' },
|
|
54
|
+
}))).toEqual({ application_name: 'my-app', team: 'finance' });
|
|
55
|
+
});
|
|
56
|
+
it('preserves case', () => {
|
|
57
|
+
expect(JSON.parse((0, snowflake_executor_1.snowflakeQueryTag)({ queryMetadata: { Team: 'Finance' } }))).toEqual({ Team: 'Finance' });
|
|
58
|
+
});
|
|
59
|
+
it('returns undefined when there is no metadata', () => {
|
|
60
|
+
expect((0, snowflake_executor_1.snowflakeQueryTag)(undefined)).toBeUndefined();
|
|
61
|
+
expect((0, snowflake_executor_1.snowflakeQueryTag)({})).toBeUndefined();
|
|
62
|
+
expect((0, snowflake_executor_1.snowflakeQueryTag)({ queryMetadata: {} })).toBeUndefined();
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe('db-snowflake queryMetadata wiring (offline)', () => {
|
|
66
|
+
afterEach(() => jest.restoreAllMocks());
|
|
67
|
+
it('applies per-call metadata as a JSON parameters.QUERY_TAG on the data statement', async () => {
|
|
68
|
+
const { calls } = installFakeSnowflake();
|
|
69
|
+
const conn = new snowflake_connection_1.SnowflakeConnection('sf', { connOptions: CONN_OPTIONS });
|
|
70
|
+
await conn.runSQL('SELECT 1 AS T', {
|
|
71
|
+
queryMetadata: { team: 'finance' },
|
|
72
|
+
});
|
|
73
|
+
expect(lastCall(calls).sqlText).toBe('SELECT 1 AS T');
|
|
74
|
+
expect(tagOf(lastCall(calls))).toEqual({ team: 'finance' });
|
|
75
|
+
});
|
|
76
|
+
it('does not inherit metadata from the connection default (queryOptions)', async () => {
|
|
77
|
+
const { calls } = installFakeSnowflake();
|
|
78
|
+
const conn = new snowflake_connection_1.SnowflakeConnection('sf', {
|
|
79
|
+
connOptions: CONN_OPTIONS,
|
|
80
|
+
queryOptions: { queryMetadata: { application_name: 'my-app' } },
|
|
81
|
+
});
|
|
82
|
+
await conn.runSQL('SELECT 1 AS T');
|
|
83
|
+
// queryMetadata is per-call only; a queryOptions default is ignored.
|
|
84
|
+
expect(lastCall(calls).parameters).toBeUndefined();
|
|
85
|
+
});
|
|
86
|
+
it('sets no parameters when no metadata is present', async () => {
|
|
87
|
+
const { calls } = installFakeSnowflake();
|
|
88
|
+
const conn = new snowflake_connection_1.SnowflakeConnection('sf', { connOptions: CONN_OPTIONS });
|
|
89
|
+
await conn.runSQL('SELECT 1 AS T');
|
|
90
|
+
expect(lastCall(calls).parameters).toBeUndefined();
|
|
91
|
+
});
|
|
92
|
+
it('never injects queryTag into the connection options (per-statement only)', async () => {
|
|
93
|
+
const { calls, spy } = installFakeSnowflake();
|
|
94
|
+
const conn = new snowflake_connection_1.SnowflakeConnection('sf', { connOptions: CONN_OPTIONS });
|
|
95
|
+
await conn.runSQL('SELECT 1 AS T', { queryMetadata: { team: 'finance' } });
|
|
96
|
+
// The tag rides parameters.QUERY_TAG, never the connection options.
|
|
97
|
+
const passedConnOptions = spy.mock.calls[0][0];
|
|
98
|
+
expect(passedConnOptions['queryTag']).toBeUndefined();
|
|
99
|
+
expect(tagOf(lastCall(calls))).toEqual({ team: 'finance' });
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=snowflake_query_metadata.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snowflake_query_metadata.spec.js","sourceRoot":"","sources":["../src/snowflake_query_metadata.spec.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.427",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"prepublishOnly": "npm run build"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@malloydata/malloy": "0.0.
|
|
26
|
+
"@malloydata/malloy": "0.0.427",
|
|
27
27
|
"generic-pool": "^3.9.0",
|
|
28
28
|
"snowflake-sdk": "2.3.1",
|
|
29
29
|
"toml": "^3.0.0"
|
|
@@ -199,8 +199,16 @@ export class SnowflakeConnection
|
|
|
199
199
|
);
|
|
200
200
|
this.scratchSpace = options?.scratchSpace;
|
|
201
201
|
this.queryOptions = options?.queryOptions ?? {};
|
|
202
|
-
|
|
203
|
-
|
|
202
|
+
// A configured value that is unset, blank, non-numeric, zero, or negative
|
|
203
|
+
// falls back to the default; only a positive value overrides it, matching
|
|
204
|
+
// the BigQuery connector. `> 0` guards the negative case a bare `||` would
|
|
205
|
+
// let through: the executor schedules setTimeout(cancel, timeoutMs), which
|
|
206
|
+
// with a negative value fires immediately and aborts the statement.
|
|
207
|
+
const configuredTimeout = Number(options?.timeoutMs);
|
|
208
|
+
this.timeoutMs = configuredTimeout > 0 ? configuredTimeout : TIMEOUT_MS;
|
|
209
|
+
const configuredSampleTimeout = Number(options?.schemaSampleTimeoutMs);
|
|
210
|
+
this.schemaSampleTimeoutMs =
|
|
211
|
+
configuredSampleTimeout > 0 ? configuredSampleTimeout : 15_000;
|
|
204
212
|
this.schemaSampleRowLimit = options?.schemaSampleRowLimit ?? 1000;
|
|
205
213
|
this.schemaSampleFullScanMaxBytes =
|
|
206
214
|
options?.schemaSampleFullScanMaxBytes ?? 100_000_000;
|
|
@@ -267,6 +275,10 @@ export class SnowflakeConnection
|
|
|
267
275
|
const effectiveOptions: RunSQLOptions = {
|
|
268
276
|
...this.queryOptions,
|
|
269
277
|
...options,
|
|
278
|
+
// queryMetadata is per-call only; everything else (rowLimit, etc.)
|
|
279
|
+
// inherits the connection defaults. Validated here, so the executor
|
|
280
|
+
// renders a bag it can trust.
|
|
281
|
+
queryMetadata: this.queryMetadataBag(options.queryMetadata),
|
|
270
282
|
};
|
|
271
283
|
const rowLimit = effectiveOptions.rowLimit;
|
|
272
284
|
let rows = await this.executor.batch(sql, effectiveOptions, this.timeoutMs);
|
|
@@ -280,9 +292,11 @@ export class SnowflakeConnection
|
|
|
280
292
|
sqlCommand: string,
|
|
281
293
|
options: RunSQLOptions = {}
|
|
282
294
|
): AsyncIterableIterator<QueryRecord> {
|
|
283
|
-
const streamQueryOptions = {
|
|
295
|
+
const streamQueryOptions: RunSQLOptions = {
|
|
284
296
|
...this.queryOptions,
|
|
285
297
|
...options,
|
|
298
|
+
// per-call only, validated here (see runSQL)
|
|
299
|
+
queryMetadata: this.queryMetadataBag(options.queryMetadata),
|
|
286
300
|
};
|
|
287
301
|
|
|
288
302
|
for await (const row of await this.executor.stream(
|
|
@@ -22,6 +22,32 @@ import {toAsyncGenerator} from '@malloydata/malloy';
|
|
|
22
22
|
// Disable snowflake-sdk logging by default (issue #2565)
|
|
23
23
|
snowflake.configure({logLevel: 'OFF'});
|
|
24
24
|
|
|
25
|
+
// Snowflake QUERY_TAG is a single free-form string, max 2000 chars.
|
|
26
|
+
const MAX_QUERY_TAG_LENGTH = 2000;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Render a query's metadata into a Snowflake `QUERY_TAG` value: the property
|
|
30
|
+
* bag serialized as JSON, so the properties are queryable in `QUERY_HISTORY` /
|
|
31
|
+
* `QUERY_ATTRIBUTION_HISTORY`. Case is preserved. Clamped to Snowflake's
|
|
32
|
+
* 2000-char limit as a runtime backstop.
|
|
33
|
+
*
|
|
34
|
+
* The tag is applied per statement via `parameters.QUERY_TAG` (see `_execute`);
|
|
35
|
+
* the connection-level `connOptions.queryTag` is deliberately never set,
|
|
36
|
+
* because the SDK overwrites caller-supplied per-statement parameters whenever
|
|
37
|
+
* it is (snowflake-sdk `statement.js`).
|
|
38
|
+
*
|
|
39
|
+
* The bag arrives already validated: SnowflakeConnection checks it before
|
|
40
|
+
* handing it to the executor.
|
|
41
|
+
*/
|
|
42
|
+
export function snowflakeQueryTag(options?: RunSQLOptions): string | undefined {
|
|
43
|
+
const bag = options?.queryMetadata;
|
|
44
|
+
if (bag === undefined || Object.keys(bag).length === 0) return undefined;
|
|
45
|
+
const tag = JSON.stringify(bag);
|
|
46
|
+
return tag.length > MAX_QUERY_TAG_LENGTH
|
|
47
|
+
? tag.slice(0, MAX_QUERY_TAG_LENGTH)
|
|
48
|
+
: tag;
|
|
49
|
+
}
|
|
50
|
+
|
|
25
51
|
export interface ConnectionConfigFile {
|
|
26
52
|
// a toml file with snowflake connection settings
|
|
27
53
|
// if not provided, we will try to read ~/.snowflake/config
|
|
@@ -158,6 +184,10 @@ export class SnowflakeExecutor {
|
|
|
158
184
|
if (abortSignal?.aborted) {
|
|
159
185
|
throw new Error('Query aborted');
|
|
160
186
|
}
|
|
187
|
+
// Apply the query tag per statement (never via connOptions.queryTag — the
|
|
188
|
+
// SDK clobbers per-statement parameters when that is set).
|
|
189
|
+
const queryTag = snowflakeQueryTag(options);
|
|
190
|
+
const parameters = queryTag ? {QUERY_TAG: queryTag} : undefined;
|
|
161
191
|
let _statement: RowStatement | undefined;
|
|
162
192
|
const cancel = () => {
|
|
163
193
|
_statement?.cancel();
|
|
@@ -171,6 +201,7 @@ export class SnowflakeExecutor {
|
|
|
171
201
|
_statement = conn.execute({
|
|
172
202
|
sqlText,
|
|
173
203
|
binds,
|
|
204
|
+
parameters,
|
|
174
205
|
complete: (
|
|
175
206
|
err: SnowflakeError | undefined,
|
|
176
207
|
_stmt: RowStatement,
|
|
@@ -345,6 +376,9 @@ export class SnowflakeExecutor {
|
|
|
345
376
|
throw new Error('Query aborted');
|
|
346
377
|
}
|
|
347
378
|
|
|
379
|
+
// Apply the query tag per statement (see _execute).
|
|
380
|
+
const queryTag = snowflakeQueryTag(options);
|
|
381
|
+
const parameters = queryTag ? {QUERY_TAG: queryTag} : undefined;
|
|
348
382
|
// Track the statement so abort can cancel it during conn.execute()
|
|
349
383
|
let _statement: RowStatement | undefined;
|
|
350
384
|
const abortSignal = options?.abortSignal;
|
|
@@ -363,6 +397,7 @@ export class SnowflakeExecutor {
|
|
|
363
397
|
_statement = conn.execute({
|
|
364
398
|
sqlText,
|
|
365
399
|
streamResult: true,
|
|
400
|
+
parameters,
|
|
366
401
|
complete: (err: SnowflakeError | undefined, _stmt: RowStatement) => {
|
|
367
402
|
if (err) {
|
|
368
403
|
if (cancelFromAbort) {
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Contributors to the Malloy project
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import snowflake from 'snowflake-sdk';
|
|
7
|
+
import type {RowStatement} from 'snowflake-sdk';
|
|
8
|
+
import {SnowflakeConnection} from './snowflake_connection';
|
|
9
|
+
import {snowflakeQueryTag} from './snowflake_executor';
|
|
10
|
+
|
|
11
|
+
// A minimal fake generic-pool + snowflake connection so runSQL / executor
|
|
12
|
+
// logic runs fully offline. Records the execute options of every statement.
|
|
13
|
+
interface ExecCall {
|
|
14
|
+
sqlText: string;
|
|
15
|
+
parameters?: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function installFakeSnowflake(queryId = 'q-abc-123'): {
|
|
19
|
+
calls: ExecCall[];
|
|
20
|
+
spy: jest.SpyInstance;
|
|
21
|
+
} {
|
|
22
|
+
const calls: ExecCall[] = [];
|
|
23
|
+
const fakeStmt = {
|
|
24
|
+
getQueryId: () => queryId,
|
|
25
|
+
cancel: () => {},
|
|
26
|
+
} as unknown as RowStatement;
|
|
27
|
+
const fakeConn = {
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
+
execute(opts: any): RowStatement {
|
|
30
|
+
calls.push({sqlText: opts.sqlText, parameters: opts.parameters});
|
|
31
|
+
// DDL/ALTER SESSION statements return no rows; a SELECT returns one row.
|
|
32
|
+
const rows = /^\s*select/i.test(opts.sqlText) ? [{T: 1}] : [];
|
|
33
|
+
opts.complete(undefined, fakeStmt, rows);
|
|
34
|
+
return fakeStmt;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
const fakePool = {
|
|
38
|
+
use: (fn: (c: unknown) => Promise<unknown>) => fn(fakeConn),
|
|
39
|
+
acquire: async () => fakeConn,
|
|
40
|
+
release: async () => {},
|
|
41
|
+
drain: async () => {},
|
|
42
|
+
clear: () => {},
|
|
43
|
+
};
|
|
44
|
+
const spy = jest
|
|
45
|
+
.spyOn(snowflake, 'createPool')
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
47
|
+
.mockReturnValue(fakePool as any);
|
|
48
|
+
return {calls, spy};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Non-empty so the constructor never falls back to reading connections.toml.
|
|
52
|
+
const CONN_OPTIONS = {account: 'test', username: 'test'};
|
|
53
|
+
|
|
54
|
+
const lastCall = (calls: ExecCall[]): ExecCall => calls[calls.length - 1];
|
|
55
|
+
|
|
56
|
+
// Parse a captured QUERY_TAG value (it is a JSON string) into an object.
|
|
57
|
+
const tagOf = (call: ExecCall): unknown =>
|
|
58
|
+
JSON.parse((call.parameters as {QUERY_TAG: string}).QUERY_TAG);
|
|
59
|
+
|
|
60
|
+
describe('snowflakeQueryTag', () => {
|
|
61
|
+
it('renders the property bag as a JSON QUERY_TAG', () => {
|
|
62
|
+
expect(
|
|
63
|
+
JSON.parse(snowflakeQueryTag({queryMetadata: {team: 'finance'}})!)
|
|
64
|
+
).toEqual({team: 'finance'});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('treats application_name as an ordinary property', () => {
|
|
68
|
+
expect(
|
|
69
|
+
JSON.parse(
|
|
70
|
+
snowflakeQueryTag({
|
|
71
|
+
queryMetadata: {application_name: 'my-app', team: 'finance'},
|
|
72
|
+
})!
|
|
73
|
+
)
|
|
74
|
+
).toEqual({application_name: 'my-app', team: 'finance'});
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('preserves case', () => {
|
|
78
|
+
expect(
|
|
79
|
+
JSON.parse(snowflakeQueryTag({queryMetadata: {Team: 'Finance'}})!)
|
|
80
|
+
).toEqual({Team: 'Finance'});
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it('returns undefined when there is no metadata', () => {
|
|
84
|
+
expect(snowflakeQueryTag(undefined)).toBeUndefined();
|
|
85
|
+
expect(snowflakeQueryTag({})).toBeUndefined();
|
|
86
|
+
expect(snowflakeQueryTag({queryMetadata: {}})).toBeUndefined();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
describe('db-snowflake queryMetadata wiring (offline)', () => {
|
|
91
|
+
afterEach(() => jest.restoreAllMocks());
|
|
92
|
+
|
|
93
|
+
it('applies per-call metadata as a JSON parameters.QUERY_TAG on the data statement', async () => {
|
|
94
|
+
const {calls} = installFakeSnowflake();
|
|
95
|
+
const conn = new SnowflakeConnection('sf', {connOptions: CONN_OPTIONS});
|
|
96
|
+
await conn.runSQL('SELECT 1 AS T', {
|
|
97
|
+
queryMetadata: {team: 'finance'},
|
|
98
|
+
});
|
|
99
|
+
expect(lastCall(calls).sqlText).toBe('SELECT 1 AS T');
|
|
100
|
+
expect(tagOf(lastCall(calls))).toEqual({team: 'finance'});
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it('does not inherit metadata from the connection default (queryOptions)', async () => {
|
|
104
|
+
const {calls} = installFakeSnowflake();
|
|
105
|
+
const conn = new SnowflakeConnection('sf', {
|
|
106
|
+
connOptions: CONN_OPTIONS,
|
|
107
|
+
queryOptions: {queryMetadata: {application_name: 'my-app'}},
|
|
108
|
+
});
|
|
109
|
+
await conn.runSQL('SELECT 1 AS T');
|
|
110
|
+
// queryMetadata is per-call only; a queryOptions default is ignored.
|
|
111
|
+
expect(lastCall(calls).parameters).toBeUndefined();
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
it('sets no parameters when no metadata is present', async () => {
|
|
115
|
+
const {calls} = installFakeSnowflake();
|
|
116
|
+
const conn = new SnowflakeConnection('sf', {connOptions: CONN_OPTIONS});
|
|
117
|
+
await conn.runSQL('SELECT 1 AS T');
|
|
118
|
+
expect(lastCall(calls).parameters).toBeUndefined();
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
it('never injects queryTag into the connection options (per-statement only)', async () => {
|
|
122
|
+
const {calls, spy} = installFakeSnowflake();
|
|
123
|
+
const conn = new SnowflakeConnection('sf', {connOptions: CONN_OPTIONS});
|
|
124
|
+
await conn.runSQL('SELECT 1 AS T', {queryMetadata: {team: 'finance'}});
|
|
125
|
+
// The tag rides parameters.QUERY_TAG, never the connection options.
|
|
126
|
+
const passedConnOptions = spy.mock.calls[0][0] as Record<string, unknown>;
|
|
127
|
+
expect(passedConnOptions['queryTag']).toBeUndefined();
|
|
128
|
+
expect(tagOf(lastCall(calls))).toEqual({team: 'finance'});
|
|
129
|
+
});
|
|
130
|
+
});
|