@malloydata/db-snowflake 0.0.370 → 0.0.371
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/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/snowflake_connection.d.ts +14 -0
- package/dist/snowflake_connection.js +67 -23
- package/dist/snowflake_connection.js.map +1 -1
- package/dist/snowflake_connection.spec.js +19 -0
- package/dist/snowflake_connection.spec.js.map +1 -1
- package/dist/snowflake_executor.d.ts +9 -0
- package/dist/snowflake_executor.js +19 -0
- package/dist/snowflake_executor.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +22 -1
- package/src/snowflake_connection.spec.ts +21 -0
- package/src/snowflake_connection.ts +86 -23
- package/src/snowflake_executor.ts +23 -0
package/dist/index.js
CHANGED
|
@@ -30,7 +30,7 @@ const snowflake_connection_2 = require("./snowflake_connection");
|
|
|
30
30
|
(0, malloy_1.registerConnectionType)('snowflake', {
|
|
31
31
|
displayName: 'Snowflake',
|
|
32
32
|
factory: async (config) => {
|
|
33
|
-
const { name, is: _, setupSQL, timeoutMs, ...props } = config;
|
|
33
|
+
const { name, is: _, setupSQL, timeoutMs, schemaSampleTimeoutMs, ...props } = config;
|
|
34
34
|
// ConnectionConfig values are trusted to match ConnectionOptions fields
|
|
35
35
|
// because the property definitions below declare matching names/types.
|
|
36
36
|
// The double cast bridges Malloy's generic config to snowflake-sdk's
|
|
@@ -45,6 +45,11 @@ const snowflake_connection_2 = require("./snowflake_connection");
|
|
|
45
45
|
: typeof timeoutMs === 'string'
|
|
46
46
|
? parseInt(timeoutMs, 10)
|
|
47
47
|
: undefined,
|
|
48
|
+
schemaSampleTimeoutMs: typeof schemaSampleTimeoutMs === 'number'
|
|
49
|
+
? schemaSampleTimeoutMs
|
|
50
|
+
: typeof schemaSampleTimeoutMs === 'string'
|
|
51
|
+
? parseInt(schemaSampleTimeoutMs, 10)
|
|
52
|
+
: undefined,
|
|
48
53
|
});
|
|
49
54
|
},
|
|
50
55
|
properties: [
|
|
@@ -87,6 +92,13 @@ const snowflake_connection_2 = require("./snowflake_connection");
|
|
|
87
92
|
type: 'number',
|
|
88
93
|
optional: true,
|
|
89
94
|
},
|
|
95
|
+
{
|
|
96
|
+
name: 'schemaSampleTimeoutMs',
|
|
97
|
+
displayName: 'Schema Sample Timeout (ms)',
|
|
98
|
+
type: 'number',
|
|
99
|
+
optional: true,
|
|
100
|
+
description: 'Timeout for the query that samples variant columns to detect their schema (default 15000)',
|
|
101
|
+
},
|
|
90
102
|
{
|
|
91
103
|
name: 'setupSQL',
|
|
92
104
|
displayName: 'Setup SQL',
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAEH,+DAA2D;AAAnD,2HAAA,mBAAmB,OAAA;AAE3B,+CAA0D;AAG1D,iEAA2D;AAE3D,IAAA,+BAAsB,EAAC,WAAW,EAAE;IAClC,WAAW,EAAE,WAAW;IACxB,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,EAAE;QAC1C,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export interface SnowflakeConnectionOptions {
|
|
|
13
13
|
scratchSpace?: namespace;
|
|
14
14
|
queryOptions?: RunSQLOptions;
|
|
15
15
|
timeoutMs?: number;
|
|
16
|
+
schemaSampleTimeoutMs?: number;
|
|
16
17
|
setupSQL?: string;
|
|
17
18
|
}
|
|
18
19
|
type PathChain = {
|
|
@@ -30,6 +31,7 @@ export declare class SnowflakeConnection extends BaseConnection implements Conne
|
|
|
30
31
|
private scratchSpace?;
|
|
31
32
|
private queryOptions;
|
|
32
33
|
private timeoutMs;
|
|
34
|
+
private schemaSampleTimeoutMs;
|
|
33
35
|
private setupSQL;
|
|
34
36
|
constructor(name: string, options?: SnowflakeConnectionOptions);
|
|
35
37
|
get dialectName(): string;
|
|
@@ -46,6 +48,18 @@ export declare class SnowflakeConnection extends BaseConnection implements Conne
|
|
|
46
48
|
runSQLStream(sqlCommand: string, options?: RunSQLOptions): AsyncIterableIterator<QueryRecord>;
|
|
47
49
|
test(): Promise<void>;
|
|
48
50
|
private schemaFromTablePath;
|
|
51
|
+
/**
|
|
52
|
+
* Try to run a schema sampling query, with fallback.
|
|
53
|
+
* First tries the primary query (e.g. using TABLESAMPLE for speed).
|
|
54
|
+
* If that fails or returns no rows, tries the fallback query (plain
|
|
55
|
+
* LIMIT). If both fail or time out, returns undefined so the caller
|
|
56
|
+
* can degrade to sql native types.
|
|
57
|
+
*
|
|
58
|
+
* Uses tryBatch for the primary query so that a failure (e.g.
|
|
59
|
+
* TABLESAMPLE on a view) doesn't destroy the pool connection —
|
|
60
|
+
* session-scoped temp views would be lost otherwise.
|
|
61
|
+
*/
|
|
62
|
+
private runSchemaSample;
|
|
49
63
|
fetchTableSchema(tableKey: string, tablePath: string): Promise<TableSourceDef>;
|
|
50
64
|
fetchSelectSchema(sqlRef: SQLSourceRequest): Promise<SQLSourceDef>;
|
|
51
65
|
manifestTemporaryTable(sqlCommand: string): Promise<string>;
|
|
@@ -146,7 +146,7 @@ class SnowArray extends SnowField {
|
|
|
146
146
|
const TIMEOUT_MS = 1000 * 60 * 10;
|
|
147
147
|
class SnowflakeConnection extends connection_1.BaseConnection {
|
|
148
148
|
constructor(name, options) {
|
|
149
|
-
var _a, _b;
|
|
149
|
+
var _a, _b, _c;
|
|
150
150
|
super();
|
|
151
151
|
this.name = name;
|
|
152
152
|
this.dialect = new malloy_1.SnowflakeDialect();
|
|
@@ -161,6 +161,7 @@ class SnowflakeConnection extends connection_1.BaseConnection {
|
|
|
161
161
|
this.scratchSpace = options === null || options === void 0 ? void 0 : options.scratchSpace;
|
|
162
162
|
this.queryOptions = (_a = options === null || options === void 0 ? void 0 : options.queryOptions) !== null && _a !== void 0 ? _a : {};
|
|
163
163
|
this.timeoutMs = (_b = options === null || options === void 0 ? void 0 : options.timeoutMs) !== null && _b !== void 0 ? _b : TIMEOUT_MS;
|
|
164
|
+
this.schemaSampleTimeoutMs = (_c = options === null || options === void 0 ? void 0 : options.schemaSampleTimeoutMs) !== null && _c !== void 0 ? _c : 15000;
|
|
164
165
|
}
|
|
165
166
|
get dialectName() {
|
|
166
167
|
return 'snowflake';
|
|
@@ -243,12 +244,18 @@ class SnowflakeConnection extends connection_1.BaseConnection {
|
|
|
243
244
|
structDef.fields.push({ ...malloyType, name });
|
|
244
245
|
}
|
|
245
246
|
}
|
|
246
|
-
//
|
|
247
|
+
// VARIANT, ARRAY, and OBJECT columns don't have schema in metadata —
|
|
248
|
+
// we have to sample actual data and inspect it to discover the structure.
|
|
249
|
+
// This is inherently heuristic (we only look at 100 rows) and can be
|
|
250
|
+
// slow on large partitioned tables or expensive views.
|
|
247
251
|
if (variants.length > 0) {
|
|
248
|
-
|
|
249
|
-
//
|
|
250
|
-
//
|
|
251
|
-
|
|
252
|
+
const variantArgs = variants.map(v => `'${v}', "${v}"`).join(', ');
|
|
253
|
+
// Build the analysis query that flattens sampled rows and detects
|
|
254
|
+
// the type of each leaf path. We only construct from variant columns
|
|
255
|
+
// (not *) to avoid flattening the entire row on wide tables.
|
|
256
|
+
// Paths with multiple types across the sample are dropped (HAVING
|
|
257
|
+
// count(*) <= 1), and nulls are ignored.
|
|
258
|
+
const makeSampleQuery = (sampleClause) => `
|
|
252
259
|
select path, min(type) as type
|
|
253
260
|
from (
|
|
254
261
|
select
|
|
@@ -258,7 +265,7 @@ class SnowflakeConnection extends connection_1.BaseConnection {
|
|
|
258
265
|
when typeof(value) = 'DOUBLE' then 'decimal'
|
|
259
266
|
else lower(typeof(value)) end as type
|
|
260
267
|
from
|
|
261
|
-
(
|
|
268
|
+
(${sampleClause})
|
|
262
269
|
,table(flatten(input => o, recursive => true)) as meta
|
|
263
270
|
group by 1,2
|
|
264
271
|
)
|
|
@@ -267,26 +274,63 @@ class SnowflakeConnection extends connection_1.BaseConnection {
|
|
|
267
274
|
having count(*) <=1
|
|
268
275
|
order by path;
|
|
269
276
|
`;
|
|
270
|
-
const
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
277
|
+
const limitClause = `select object_construct(${variantArgs}) o` +
|
|
278
|
+
` from ${tablePath} limit 100`;
|
|
279
|
+
// Try TABLESAMPLE first — it picks random micro-partitions without
|
|
280
|
+
// scanning the whole table, which avoids the full-scan problem on
|
|
281
|
+
// large partitioned tables. TABLESAMPLE only works on base tables,
|
|
282
|
+
// not views, so if it fails we fall back to a plain LIMIT 100.
|
|
283
|
+
const tablesampleClause = `select object_construct(${variantArgs}) o` +
|
|
284
|
+
` from ${tablePath} TABLESAMPLE BLOCK (1) limit 100`;
|
|
285
|
+
const fieldPathRows = await this.runSchemaSample(makeSampleQuery(tablesampleClause), makeSampleQuery(limitClause));
|
|
286
|
+
if (fieldPathRows === undefined) {
|
|
287
|
+
// Both attempts failed or timed out — treat variants as opaque.
|
|
288
|
+
for (const name of variants) {
|
|
289
|
+
structDef.fields.push({ type: 'sql native', name });
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
// Take the schema in list form and convert it into a tree.
|
|
294
|
+
const rootObject = new SnowObject('__root__', this.dialect);
|
|
295
|
+
for (const f of fieldPathRows) {
|
|
296
|
+
const pathString = (_a = f['PATH']) === null || _a === void 0 ? void 0 : _a.valueOf().toString();
|
|
297
|
+
const fieldType = (_b = f['TYPE']) === null || _b === void 0 ? void 0 : _b.valueOf().toString();
|
|
298
|
+
if (pathString === undefined || fieldType === undefined)
|
|
299
|
+
continue;
|
|
300
|
+
const pathParser = new PathParser(pathString);
|
|
301
|
+
const path = pathParser.pathChain();
|
|
302
|
+
if ('name' in path && notVariant.get(path.name)) {
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
rootObject.walk(path, fieldType);
|
|
283
306
|
}
|
|
284
|
-
|
|
285
|
-
rootObject.walk(path, fieldType);
|
|
307
|
+
structDef.fields.push(...rootObject.fields);
|
|
286
308
|
}
|
|
287
|
-
structDef.fields.push(...rootObject.fields);
|
|
288
309
|
}
|
|
289
310
|
}
|
|
311
|
+
/**
|
|
312
|
+
* Try to run a schema sampling query, with fallback.
|
|
313
|
+
* First tries the primary query (e.g. using TABLESAMPLE for speed).
|
|
314
|
+
* If that fails or returns no rows, tries the fallback query (plain
|
|
315
|
+
* LIMIT). If both fail or time out, returns undefined so the caller
|
|
316
|
+
* can degrade to sql native types.
|
|
317
|
+
*
|
|
318
|
+
* Uses tryBatch for the primary query so that a failure (e.g.
|
|
319
|
+
* TABLESAMPLE on a view) doesn't destroy the pool connection —
|
|
320
|
+
* session-scoped temp views would be lost otherwise.
|
|
321
|
+
*/
|
|
322
|
+
async runSchemaSample(primaryQuery, fallbackQuery) {
|
|
323
|
+
var _a;
|
|
324
|
+
// tryBatch catches errors inside the pool callback, preserving the
|
|
325
|
+
// connection and any session state (temp views, session params).
|
|
326
|
+
const rows = await this.executor.tryBatch(primaryQuery, {}, this.schemaSampleTimeoutMs);
|
|
327
|
+
if (rows && rows.length > 0) {
|
|
328
|
+
return rows;
|
|
329
|
+
}
|
|
330
|
+
// Primary failed or returned no rows — try the fallback.
|
|
331
|
+
// Also use tryBatch so a timeout doesn't destroy the connection.
|
|
332
|
+
return ((_a = (await this.executor.tryBatch(fallbackQuery, {}, this.schemaSampleTimeoutMs))) !== null && _a !== void 0 ? _a : undefined);
|
|
333
|
+
}
|
|
290
334
|
async fetchTableSchema(tableKey, tablePath) {
|
|
291
335
|
const structDef = {
|
|
292
336
|
type: 'table',
|
|
@@ -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":"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"}
|
|
@@ -146,6 +146,25 @@ describe('db:Snowflake', () => {
|
|
|
146
146
|
{ name: 'TS_TZ', type: 'timestamptz' },
|
|
147
147
|
]);
|
|
148
148
|
});
|
|
149
|
+
it('discovers variant schema through a view', async () => {
|
|
150
|
+
// Create a view with a variant column, then fetch its schema.
|
|
151
|
+
// This exercises the TABLESAMPLE fallback path — TABLESAMPLE fails
|
|
152
|
+
// on views, so the code should fall back to LIMIT 100.
|
|
153
|
+
const salt = Math.random().toString(36).slice(2, 10);
|
|
154
|
+
const viewName = `malloytest.test_variant_view_${salt}`;
|
|
155
|
+
await conn.runSQL(`CREATE OR REPLACE VIEW ${viewName} AS
|
|
156
|
+
SELECT parse_json('{"a": 1, "b": "hello"}') AS data`);
|
|
157
|
+
try {
|
|
158
|
+
const schema = await conn.fetchTableSchema(viewName, viewName);
|
|
159
|
+
const dataField = schema.fields.find(f => f.name === 'DATA');
|
|
160
|
+
expect(dataField).toBeDefined();
|
|
161
|
+
// Should have discovered the inner structure, not fallen back to sql native
|
|
162
|
+
expect(dataField.type).toBe('record');
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
await conn.runSQL(`DROP VIEW IF EXISTS ${viewName}`);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
149
168
|
it('maps integer types to bigint', async () => {
|
|
150
169
|
const x = {
|
|
151
170
|
type: 'sql_select',
|
|
@@ -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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"}
|
|
@@ -19,5 +19,14 @@ export declare class SnowflakeExecutor {
|
|
|
19
19
|
private _setSessionParams;
|
|
20
20
|
private ensureSessionInitialized;
|
|
21
21
|
batch(sqlText: string, options?: RunSQLOptions, timeoutMs?: number): Promise<QueryData>;
|
|
22
|
+
/**
|
|
23
|
+
* Like batch(), but returns undefined on failure instead of throwing.
|
|
24
|
+
* This keeps the pool connection alive — generic-pool destroys
|
|
25
|
+
* connections when pool.use() sees a thrown error, which is wrong
|
|
26
|
+
* for SQL errors (the connection itself is fine). Use this for
|
|
27
|
+
* speculative queries where failure is expected and the connection
|
|
28
|
+
* may hold session state (e.g. temp views) that must be preserved.
|
|
29
|
+
*/
|
|
30
|
+
tryBatch(sqlText: string, options?: RunSQLOptions, timeoutMs?: number): Promise<QueryData | undefined>;
|
|
22
31
|
stream(sqlText: string, options?: RunSQLOptions): Promise<AsyncIterableIterator<QueryRecord>>;
|
|
23
32
|
}
|
|
@@ -208,6 +208,25 @@ class SnowflakeExecutor {
|
|
|
208
208
|
return await this._execute(sqlText, conn, options, timeoutMs);
|
|
209
209
|
});
|
|
210
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* Like batch(), but returns undefined on failure instead of throwing.
|
|
213
|
+
* This keeps the pool connection alive — generic-pool destroys
|
|
214
|
+
* connections when pool.use() sees a thrown error, which is wrong
|
|
215
|
+
* for SQL errors (the connection itself is fine). Use this for
|
|
216
|
+
* speculative queries where failure is expected and the connection
|
|
217
|
+
* may hold session state (e.g. temp views) that must be preserved.
|
|
218
|
+
*/
|
|
219
|
+
async tryBatch(sqlText, options, timeoutMs) {
|
|
220
|
+
return await this.pool_.use(async (conn) => {
|
|
221
|
+
await this.ensureSessionInitialized(conn);
|
|
222
|
+
try {
|
|
223
|
+
return await this._execute(sqlText, conn, options, timeoutMs);
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return undefined;
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
}
|
|
211
230
|
async stream(sqlText, options) {
|
|
212
231
|
const pool = this.pool_;
|
|
213
232
|
return await pool.acquire().then(async (conn) => {
|
|
@@ -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.
|
|
3
|
+
"version": "0.0.371",
|
|
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.371",
|
|
26
26
|
"generic-pool": "^3.9.0",
|
|
27
27
|
"snowflake-sdk": "2.3.1",
|
|
28
28
|
"toml": "^3.0.0"
|
package/src/index.ts
CHANGED
|
@@ -31,7 +31,14 @@ import {SnowflakeConnection} from './snowflake_connection';
|
|
|
31
31
|
registerConnectionType('snowflake', {
|
|
32
32
|
displayName: 'Snowflake',
|
|
33
33
|
factory: async (config: ConnectionConfig) => {
|
|
34
|
-
const {
|
|
34
|
+
const {
|
|
35
|
+
name,
|
|
36
|
+
is: _,
|
|
37
|
+
setupSQL,
|
|
38
|
+
timeoutMs,
|
|
39
|
+
schemaSampleTimeoutMs,
|
|
40
|
+
...props
|
|
41
|
+
} = config;
|
|
35
42
|
// ConnectionConfig values are trusted to match ConnectionOptions fields
|
|
36
43
|
// because the property definitions below declare matching names/types.
|
|
37
44
|
// The double cast bridges Malloy's generic config to snowflake-sdk's
|
|
@@ -47,6 +54,12 @@ registerConnectionType('snowflake', {
|
|
|
47
54
|
: typeof timeoutMs === 'string'
|
|
48
55
|
? parseInt(timeoutMs, 10)
|
|
49
56
|
: undefined,
|
|
57
|
+
schemaSampleTimeoutMs:
|
|
58
|
+
typeof schemaSampleTimeoutMs === 'number'
|
|
59
|
+
? schemaSampleTimeoutMs
|
|
60
|
+
: typeof schemaSampleTimeoutMs === 'string'
|
|
61
|
+
? parseInt(schemaSampleTimeoutMs, 10)
|
|
62
|
+
: undefined,
|
|
50
63
|
});
|
|
51
64
|
},
|
|
52
65
|
properties: [
|
|
@@ -89,6 +102,14 @@ registerConnectionType('snowflake', {
|
|
|
89
102
|
type: 'number',
|
|
90
103
|
optional: true,
|
|
91
104
|
},
|
|
105
|
+
{
|
|
106
|
+
name: 'schemaSampleTimeoutMs',
|
|
107
|
+
displayName: 'Schema Sample Timeout (ms)',
|
|
108
|
+
type: 'number',
|
|
109
|
+
optional: true,
|
|
110
|
+
description:
|
|
111
|
+
'Timeout for the query that samples variant columns to detect their schema (default 15000)',
|
|
112
|
+
},
|
|
92
113
|
{
|
|
93
114
|
name: 'setupSQL',
|
|
94
115
|
displayName: 'Setup SQL',
|
|
@@ -126,6 +126,27 @@ describe('db:Snowflake', () => {
|
|
|
126
126
|
]);
|
|
127
127
|
});
|
|
128
128
|
|
|
129
|
+
it('discovers variant schema through a view', async () => {
|
|
130
|
+
// Create a view with a variant column, then fetch its schema.
|
|
131
|
+
// This exercises the TABLESAMPLE fallback path — TABLESAMPLE fails
|
|
132
|
+
// on views, so the code should fall back to LIMIT 100.
|
|
133
|
+
const salt = Math.random().toString(36).slice(2, 10);
|
|
134
|
+
const viewName = `malloytest.test_variant_view_${salt}`;
|
|
135
|
+
await conn.runSQL(
|
|
136
|
+
`CREATE OR REPLACE VIEW ${viewName} AS
|
|
137
|
+
SELECT parse_json('{"a": 1, "b": "hello"}') AS data`
|
|
138
|
+
);
|
|
139
|
+
try {
|
|
140
|
+
const schema = await conn.fetchTableSchema(viewName, viewName);
|
|
141
|
+
const dataField = schema.fields.find(f => f.name === 'DATA');
|
|
142
|
+
expect(dataField).toBeDefined();
|
|
143
|
+
// Should have discovered the inner structure, not fallen back to sql native
|
|
144
|
+
expect(dataField!.type).toBe('record');
|
|
145
|
+
} finally {
|
|
146
|
+
await conn.runSQL(`DROP VIEW IF EXISTS ${viewName}`);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
|
|
129
150
|
it('maps integer types to bigint', async () => {
|
|
130
151
|
const x: malloy.SQLSourceDef = {
|
|
131
152
|
type: 'sql_select',
|
|
@@ -71,6 +71,9 @@ export interface SnowflakeConnectionOptions {
|
|
|
71
71
|
// Timeout for the statement
|
|
72
72
|
timeoutMs?: number;
|
|
73
73
|
|
|
74
|
+
// Timeout for the variant schema sampling query (default 2 minutes)
|
|
75
|
+
schemaSampleTimeoutMs?: number;
|
|
76
|
+
|
|
74
77
|
// SQL statements to run when a connection is acquired from the pool
|
|
75
78
|
setupSQL?: string;
|
|
76
79
|
}
|
|
@@ -239,6 +242,7 @@ export class SnowflakeConnection
|
|
|
239
242
|
private scratchSpace?: namespace;
|
|
240
243
|
private queryOptions: RunSQLOptions;
|
|
241
244
|
private timeoutMs: number;
|
|
245
|
+
private schemaSampleTimeoutMs: number;
|
|
242
246
|
private setupSQL: string | undefined;
|
|
243
247
|
|
|
244
248
|
constructor(
|
|
@@ -261,6 +265,7 @@ export class SnowflakeConnection
|
|
|
261
265
|
this.scratchSpace = options?.scratchSpace;
|
|
262
266
|
this.queryOptions = options?.queryOptions ?? {};
|
|
263
267
|
this.timeoutMs = options?.timeoutMs ?? TIMEOUT_MS;
|
|
268
|
+
this.schemaSampleTimeoutMs = options?.schemaSampleTimeoutMs ?? 15_000;
|
|
264
269
|
}
|
|
265
270
|
|
|
266
271
|
get dialectName(): string {
|
|
@@ -379,12 +384,18 @@ export class SnowflakeConnection
|
|
|
379
384
|
structDef.fields.push({...malloyType, name});
|
|
380
385
|
}
|
|
381
386
|
}
|
|
382
|
-
//
|
|
387
|
+
// VARIANT, ARRAY, and OBJECT columns don't have schema in metadata —
|
|
388
|
+
// we have to sample actual data and inspect it to discover the structure.
|
|
389
|
+
// This is inherently heuristic (we only look at 100 rows) and can be
|
|
390
|
+
// slow on large partitioned tables or expensive views.
|
|
383
391
|
if (variants.length > 0) {
|
|
384
|
-
|
|
385
|
-
//
|
|
386
|
-
//
|
|
387
|
-
|
|
392
|
+
const variantArgs = variants.map(v => `'${v}', "${v}"`).join(', ');
|
|
393
|
+
// Build the analysis query that flattens sampled rows and detects
|
|
394
|
+
// the type of each leaf path. We only construct from variant columns
|
|
395
|
+
// (not *) to avoid flattening the entire row on wide tables.
|
|
396
|
+
// Paths with multiple types across the sample are dropped (HAVING
|
|
397
|
+
// count(*) <= 1), and nulls are ignored.
|
|
398
|
+
const makeSampleQuery = (sampleClause: string) => `
|
|
388
399
|
select path, min(type) as type
|
|
389
400
|
from (
|
|
390
401
|
select
|
|
@@ -394,7 +405,7 @@ export class SnowflakeConnection
|
|
|
394
405
|
when typeof(value) = 'DOUBLE' then 'decimal'
|
|
395
406
|
else lower(typeof(value)) end as type
|
|
396
407
|
from
|
|
397
|
-
(
|
|
408
|
+
(${sampleClause})
|
|
398
409
|
,table(flatten(input => o, recursive => true)) as meta
|
|
399
410
|
group by 1,2
|
|
400
411
|
)
|
|
@@ -403,29 +414,81 @@ export class SnowflakeConnection
|
|
|
403
414
|
having count(*) <=1
|
|
404
415
|
order by path;
|
|
405
416
|
`;
|
|
406
|
-
const
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
417
|
+
const limitClause =
|
|
418
|
+
`select object_construct(${variantArgs}) o` +
|
|
419
|
+
` from ${tablePath} limit 100`;
|
|
420
|
+
// Try TABLESAMPLE first — it picks random micro-partitions without
|
|
421
|
+
// scanning the whole table, which avoids the full-scan problem on
|
|
422
|
+
// large partitioned tables. TABLESAMPLE only works on base tables,
|
|
423
|
+
// not views, so if it fails we fall back to a plain LIMIT 100.
|
|
424
|
+
const tablesampleClause =
|
|
425
|
+
`select object_construct(${variantArgs}) o` +
|
|
426
|
+
` from ${tablePath} TABLESAMPLE BLOCK (1) limit 100`;
|
|
427
|
+
const fieldPathRows = await this.runSchemaSample(
|
|
428
|
+
makeSampleQuery(tablesampleClause),
|
|
429
|
+
makeSampleQuery(limitClause)
|
|
430
|
+
);
|
|
411
431
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
const
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
432
|
+
if (fieldPathRows === undefined) {
|
|
433
|
+
// Both attempts failed or timed out — treat variants as opaque.
|
|
434
|
+
for (const name of variants) {
|
|
435
|
+
structDef.fields.push({type: 'sql native', name});
|
|
436
|
+
}
|
|
437
|
+
} else {
|
|
438
|
+
// Take the schema in list form and convert it into a tree.
|
|
439
|
+
const rootObject = new SnowObject('__root__', this.dialect);
|
|
440
|
+
for (const f of fieldPathRows) {
|
|
441
|
+
const pathString = f['PATH']?.valueOf().toString();
|
|
442
|
+
const fieldType = f['TYPE']?.valueOf().toString();
|
|
443
|
+
if (pathString === undefined || fieldType === undefined) continue;
|
|
444
|
+
const pathParser = new PathParser(pathString);
|
|
445
|
+
const path = pathParser.pathChain();
|
|
446
|
+
if ('name' in path && notVariant.get(path.name)) {
|
|
447
|
+
continue;
|
|
448
|
+
}
|
|
449
|
+
rootObject.walk(path, fieldType);
|
|
421
450
|
}
|
|
422
|
-
|
|
423
|
-
rootObject.walk(path, fieldType);
|
|
451
|
+
structDef.fields.push(...rootObject.fields);
|
|
424
452
|
}
|
|
425
|
-
structDef.fields.push(...rootObject.fields);
|
|
426
453
|
}
|
|
427
454
|
}
|
|
428
455
|
|
|
456
|
+
/**
|
|
457
|
+
* Try to run a schema sampling query, with fallback.
|
|
458
|
+
* First tries the primary query (e.g. using TABLESAMPLE for speed).
|
|
459
|
+
* If that fails or returns no rows, tries the fallback query (plain
|
|
460
|
+
* LIMIT). If both fail or time out, returns undefined so the caller
|
|
461
|
+
* can degrade to sql native types.
|
|
462
|
+
*
|
|
463
|
+
* Uses tryBatch for the primary query so that a failure (e.g.
|
|
464
|
+
* TABLESAMPLE on a view) doesn't destroy the pool connection —
|
|
465
|
+
* session-scoped temp views would be lost otherwise.
|
|
466
|
+
*/
|
|
467
|
+
private async runSchemaSample(
|
|
468
|
+
primaryQuery: string,
|
|
469
|
+
fallbackQuery: string
|
|
470
|
+
): Promise<QueryRecord[] | undefined> {
|
|
471
|
+
// tryBatch catches errors inside the pool callback, preserving the
|
|
472
|
+
// connection and any session state (temp views, session params).
|
|
473
|
+
const rows = await this.executor.tryBatch(
|
|
474
|
+
primaryQuery,
|
|
475
|
+
{},
|
|
476
|
+
this.schemaSampleTimeoutMs
|
|
477
|
+
);
|
|
478
|
+
if (rows && rows.length > 0) {
|
|
479
|
+
return rows;
|
|
480
|
+
}
|
|
481
|
+
// Primary failed or returned no rows — try the fallback.
|
|
482
|
+
// Also use tryBatch so a timeout doesn't destroy the connection.
|
|
483
|
+
return (
|
|
484
|
+
(await this.executor.tryBatch(
|
|
485
|
+
fallbackQuery,
|
|
486
|
+
{},
|
|
487
|
+
this.schemaSampleTimeoutMs
|
|
488
|
+
)) ?? undefined
|
|
489
|
+
);
|
|
490
|
+
}
|
|
491
|
+
|
|
429
492
|
async fetchTableSchema(
|
|
430
493
|
tableKey: string,
|
|
431
494
|
tablePath: string
|
|
@@ -248,6 +248,29 @@ export class SnowflakeExecutor {
|
|
|
248
248
|
});
|
|
249
249
|
}
|
|
250
250
|
|
|
251
|
+
/**
|
|
252
|
+
* Like batch(), but returns undefined on failure instead of throwing.
|
|
253
|
+
* This keeps the pool connection alive — generic-pool destroys
|
|
254
|
+
* connections when pool.use() sees a thrown error, which is wrong
|
|
255
|
+
* for SQL errors (the connection itself is fine). Use this for
|
|
256
|
+
* speculative queries where failure is expected and the connection
|
|
257
|
+
* may hold session state (e.g. temp views) that must be preserved.
|
|
258
|
+
*/
|
|
259
|
+
public async tryBatch(
|
|
260
|
+
sqlText: string,
|
|
261
|
+
options?: RunSQLOptions,
|
|
262
|
+
timeoutMs?: number
|
|
263
|
+
): Promise<QueryData | undefined> {
|
|
264
|
+
return await this.pool_.use(async (conn: Connection) => {
|
|
265
|
+
await this.ensureSessionInitialized(conn);
|
|
266
|
+
try {
|
|
267
|
+
return await this._execute(sqlText, conn, options, timeoutMs);
|
|
268
|
+
} catch {
|
|
269
|
+
return undefined;
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
|
|
251
274
|
public async stream(
|
|
252
275
|
sqlText: string,
|
|
253
276
|
options?: RunSQLOptions
|