@uwdata/mosaic-core 0.24.0 → 0.24.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"PreAggregator.d.ts","sourceRoot":"","sources":["../../../src/preagg/PreAggregator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,WAAW,EAAoB,UAAU,EAAwC,YAAY,EAA4D,MAAM,oBAAoB,CAAC;AACrN,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAa,YAAY,EAAoB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxG,QAAA,MAAM,IAAI;;;CAA+B,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,0GAA0G;IAC1G,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gHAAgH;IAChH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;AAE1E,UAAU,mBAAmB;IAC3B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,aAAa;IACjB,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC;IACzE,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAU;IAE1B;;;;OAIG;gBACS,WAAW,EAAE,WAAW,EAAE,EACpC,MAAiB,EACjB,OAAc,EACf,GAAE,mBAAwB;IAQ3B;;;;;;OAMG;IACH,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAKzB;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;OAMG;IACH,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAKxB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;;;OAQG;IACH,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAK9B;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAKb;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,GAAG,IAAI,GAAG,gBAAgB,GAAG,OAAO,IAAI,GAAG,IAAI;CAoEjI;AA0ND;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,yCAAyC;IACzC,KAAK,EAAE,YAAY,CAAC;IACpB,4DAA4D;IAC5D,MAAM,EAAE,WAAW,CAAC;IACpB,0EAA0E;IAC1E,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAChC;8DAC0D;IAC1D,MAAM,EAAE,mBAAmB,CAAC;IAC5B,+DAA+D;IAC/D,MAAM,EAAE,WAAW,CAAC;IACpB;qEACiE;IACjE,IAAI,EAAE,OAAO,CAAC;IAEd;;;OAGG;gBACS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,uBAAuB;IAStE;;;;OAIG;IACH,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,WAAW;CAGxC"}
1
+ {"version":3,"file":"PreAggregator.d.ts","sourceRoot":"","sources":["../../../src/preagg/PreAggregator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,WAAW,EAAoB,UAAU,EAAwC,YAAY,EAAwO,MAAM,oBAAoB,CAAC;AACjY,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAa,YAAY,EAAoB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxG,QAAA,MAAM,IAAI;;;CAA+B,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,0GAA0G;IAC1G,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gHAAgH;IAChH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;AAE1E,UAAU,mBAAmB;IAC3B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,aAAa;IACjB,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC;IACzE,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAU;IAE1B;;;;OAIG;gBACS,WAAW,EAAE,WAAW,EAAE,EACpC,MAAiB,EACjB,OAAc,EACf,GAAE,mBAAwB;IAQ3B;;;;;;OAMG;IACH,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAKzB;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;OAMG;IACH,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAKxB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;;;OAQG;IACH,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAK9B;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAKb;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,GAAG,IAAI,GAAG,gBAAgB,GAAG,OAAO,IAAI,GAAG,IAAI;CAoEjI;AA0ND;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,yCAAyC;IACzC,KAAK,EAAE,YAAY,CAAC;IACpB,4DAA4D;IAC5D,MAAM,EAAE,WAAW,CAAC;IACpB,0EAA0E;IAC1E,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAChC;8DAC0D;IAC1D,MAAM,EAAE,mBAAmB,CAAC;IAC5B,+DAA+D;IAC/D,MAAM,EAAE,WAAW,CAAC;IACpB;qEACiE;IACjE,IAAI,EAAE,OAAO,CAAC;IAEd;;;OAGG;gBACS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,uBAAuB;IAStE;;;;OAIG;IACH,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,WAAW;CAGxC"}
@@ -1,7 +1,6 @@
1
- import { TableRefNode, createSchema } from '@uwdata/mosaic-sql';
2
- import { Query as QueryBuilder, and, asNode, ceil, collectColumns, createTable, float64, floor, isBetween, int32, mul, round, scaleTransform, sub, isSelectQuery, isAggregateExpression, ColumnNameRefNode } from '@uwdata/mosaic-sql';
3
- import { preaggColumns } from './preagg-columns.js';
1
+ import { Query, TableRefNode, createSchema, and, asNode, ceil, collectColumns, createTable, float64, floor, isBetween, int32, mul, round, scaleTransform, sub, isSelectQuery, isAggregateExpression, ColumnNameRefNode } from '@uwdata/mosaic-sql';
4
2
  import { fnv_hash } from '../util/hash.js';
3
+ import { preaggColumns } from './preagg-columns.js';
5
4
  const Skip = { skip: true, result: null };
6
5
  /**
7
6
  * Build and query optimized pre-aggregated materaialized views, for fast
@@ -271,34 +270,35 @@ function binInterval(scale, pixelSize, bin) {
271
270
  */
272
271
  function preaggregateInfo(query, active, preaggCols, schema) {
273
272
  const { dims, groupby, output, preagg } = preaggCols;
274
- const { columns } = active;
275
- // push any having or orderby criteria to output queries
276
- // note: mutates the construction query
277
- const { _select, _having, _orderby } = query;
278
- query._having = [];
279
- query._orderby = [];
273
+ const { columns = {} } = active;
280
274
  // build materialized view construction query
281
- query
282
- .setSelect({ ...groupby, ...preagg, ...columns })
283
- .setGroupby(dims, Object.keys(columns ?? {}));
275
+ const create = Query
276
+ .from(query._from)
277
+ .with(query._with)
278
+ .sample(query._sample)
279
+ .where(query._where)
280
+ .select({ ...groupby, ...preagg, ...columns })
281
+ .groupby(dims, Object.keys(columns));
284
282
  // ensure active clause columns are selected by subqueries
285
- const [subq] = query.subqueries;
283
+ const [subq] = create.subqueries;
286
284
  if (subq) {
287
285
  const cols = Object.values(columns)
288
286
  .flatMap(c => collectColumns(c).map(c => c.column));
289
287
  subqueryPushdown(subq, cols);
290
288
  }
291
- // generate creation query and hash id
292
- const create = query;
289
+ // generate preagg table name using creation query hash
293
290
  const id = (fnv_hash(create.toString()) >>> 0).toString(16);
294
291
  const table = new TableRefNode([schema, `preagg_${id}`]);
295
- // generate preaggregate select query
296
- const select = QueryBuilder
297
- .select(dims, output)
298
- .from(table)
299
- .groupby(dims)
300
- .having(_having)
301
- .orderby(replaceIndices(_orderby, _select));
292
+ // generate preaggregate select query from original query
293
+ // replace select, from, groupby; sanitize orderby; remove CTEs, where
294
+ const select = query.clone()
295
+ .setSelect(dims, output)
296
+ .setFrom(table)
297
+ .setGroupby(dims)
298
+ .setOrderby(replaceIndices(query._orderby, query._select))
299
+ .sample(null);
300
+ select._with = [];
301
+ select.setWhere();
302
302
  return new PreAggregateInfo({ table, create, active, select });
303
303
  }
304
304
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PreAggregator.js","sourceRoot":"","sources":["../../../src/preagg/PreAggregator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PreAggregator.js","sourceRoot":"","sources":["../../../src/preagg/PreAggregator.ts"],"names":[],"mappings":"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"}
@@ -50,13 +50,27 @@ export async function queryFieldInfo(mc, fields) {
50
50
  * @returns Promise resolving to field information.
51
51
  */
52
52
  async function getFieldInfo(mc, { table, column, stats }) {
53
+ const isAggregate = isNode(column) && isAggregateExpression(column);
53
54
  // generate and issue a query for field metadata info
54
55
  // use GROUP BY ALL to differentiate & consolidate aggregates
55
56
  const q = Query
56
57
  .from({ source: table })
57
- .select({ column })
58
- .groupby(isNode(column) && isAggregateExpression(column) ? sql `ALL` : []);
59
- const [desc] = Array.from(await mc.query(Query.describe(q)));
58
+ .select({ column }, isAggregate ? '*' : {})
59
+ .groupby(isAggregate ? sql `ALL` : []);
60
+ let desc;
61
+ try {
62
+ [desc] = Array.from(await mc.query(Query.describe(q)));
63
+ }
64
+ catch {
65
+ // provide dummy description node upon query failure
66
+ // this handles true aggregates within window functions
67
+ // DuckDB fails to handle these when using GROUP BY ALL
68
+ desc = {
69
+ column_name: 'column',
70
+ column_type: 'DOUBLE',
71
+ null: 'YES'
72
+ };
73
+ }
60
74
  const info = {
61
75
  table,
62
76
  column: `${column}`,
@@ -1 +1 @@
1
- {"version":3,"file":"field-info.js","sourceRoot":"","sources":["../../../src/util/field-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-info.js","sourceRoot":"","sources":["../../../src/util/field-info.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uwdata/mosaic-core",
3
- "version": "0.24.0",
3
+ "version": "0.24.2",
4
4
  "description": "Scalable and extensible linked data views.",
5
5
  "keywords": [
6
6
  "mosaic",
@@ -33,11 +33,11 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@duckdb/duckdb-wasm": "1.33.1-dev42.0",
36
- "@uwdata/flechette": "^2.3.0",
37
- "@uwdata/mosaic-sql": "^0.23.0"
36
+ "@uwdata/flechette": "^2.4.0",
37
+ "@uwdata/mosaic-sql": "^0.24.2"
38
38
  },
39
39
  "devDependencies": {
40
- "@uwdata/mosaic-duckdb": "^0.23.0"
40
+ "@uwdata/mosaic-duckdb": "^0.24.2"
41
41
  },
42
- "gitHead": "4d41d46038d4438ce9283d13b875abf0a9b9c2f4"
42
+ "gitHead": "d4d41a3275dbd6bc7995e1d1a82b0be18769bbca"
43
43
  }
@@ -1,11 +1,10 @@
1
- import { ExprNode, ScaleOptions, SelectQuery, Query, ExprValue, MaybeArray, FunctionNode, BetweenOpNode, AndNode, TableRefNode, createSchema, SelectClauseNode, LiteralNode, OrderByNode } from '@uwdata/mosaic-sql';
1
+ import { ExprNode, ScaleOptions, SelectQuery, Query, ExprValue, MaybeArray, FunctionNode, BetweenOpNode, AndNode, TableRefNode, createSchema, SelectClauseNode, LiteralNode, OrderByNode, and, asNode, ceil, collectColumns, createTable, float64, floor, isBetween, int32, mul, round, scaleTransform, sub, isSelectQuery, isAggregateExpression, ColumnNameRefNode } from '@uwdata/mosaic-sql';
2
2
  import type { Coordinator } from '../Coordinator.js';
3
3
  import type { MosaicClient } from '../MosaicClient.js';
4
4
  import type { Selection } from '../Selection.js';
5
5
  import type { BinMethod, ClauseSource, IntervalMetadata, SelectionClause } from '../SelectionClause.js';
6
- import { Query as QueryBuilder, and, asNode, ceil, collectColumns, createTable, float64, floor, isBetween, int32, mul, round, scaleTransform, sub, isSelectQuery, isAggregateExpression, ColumnNameRefNode } from '@uwdata/mosaic-sql';
7
- import { preaggColumns, PreAggColumnsResult } from './preagg-columns.js';
8
6
  import { fnv_hash } from '../util/hash.js';
7
+ import { preaggColumns, PreAggColumnsResult } from './preagg-columns.js';
9
8
 
10
9
  const Skip = { skip: true, result: null };
11
10
 
@@ -334,39 +333,39 @@ function preaggregateInfo(
334
333
  schema: string
335
334
  ): PreAggregateInfo {
336
335
  const { dims, groupby, output, preagg } = preaggCols;
337
- const { columns } = active;
338
-
339
- // push any having or orderby criteria to output queries
340
- // note: mutates the construction query
341
- const { _select, _having, _orderby } = query;
342
- query._having = [];
343
- query._orderby = [];
336
+ const { columns = {} } = active;
344
337
 
345
338
  // build materialized view construction query
346
- query
347
- .setSelect({ ...groupby, ...preagg, ...columns })
348
- .setGroupby(dims, Object.keys(columns ?? {}));
339
+ const create = Query
340
+ .from(query._from)
341
+ .with(query._with)
342
+ .sample(query._sample)
343
+ .where(query._where)
344
+ .select({ ...groupby, ...preagg, ...columns })
345
+ .groupby(dims, Object.keys(columns));
349
346
 
350
347
  // ensure active clause columns are selected by subqueries
351
- const [subq] = query.subqueries;
348
+ const [subq] = create.subqueries;
352
349
  if (subq) {
353
- const cols = Object.values(columns!)
350
+ const cols = Object.values(columns)
354
351
  .flatMap(c => collectColumns(c).map(c => c.column));
355
352
  subqueryPushdown(subq, cols);
356
353
  }
357
354
 
358
- // generate creation query and hash id
359
- const create = query;
355
+ // generate preagg table name using creation query hash
360
356
  const id = (fnv_hash(create.toString()) >>> 0).toString(16);
361
357
  const table = new TableRefNode([schema, `preagg_${id}`]);
362
358
 
363
- // generate preaggregate select query
364
- const select = QueryBuilder
365
- .select(dims, output)
366
- .from(table)
367
- .groupby(dims)
368
- .having(_having)
369
- .orderby(replaceIndices(_orderby, _select));
359
+ // generate preaggregate select query from original query
360
+ // replace select, from, groupby; sanitize orderby; remove CTEs, where
361
+ const select = query.clone()
362
+ .setSelect(dims, output)
363
+ .setFrom(table)
364
+ .setGroupby(dims)
365
+ .setOrderby(replaceIndices(query._orderby, query._select))
366
+ .sample(null);
367
+ select._with = [];
368
+ select.setWhere();
370
369
 
371
370
  return new PreAggregateInfo({ table, create, active, select });
372
371
  }
@@ -57,16 +57,31 @@ export async function queryFieldInfo(mc: Coordinator, fields: FieldInfoRequest[]
57
57
  * @returns Promise resolving to field information.
58
58
  */
59
59
  async function getFieldInfo(mc: Coordinator, { table, column, stats }: FieldInfoRequest): Promise<FieldInfo> {
60
+ const isAggregate = isNode(column) && isAggregateExpression(column);
61
+
60
62
  // generate and issue a query for field metadata info
61
63
  // use GROUP BY ALL to differentiate & consolidate aggregates
62
64
  const q = Query
63
65
  .from({ source: table })
64
- .select({ column })
65
- .groupby(isNode(column) && isAggregateExpression(column) ? sql`ALL` : []);
66
+ .select({ column }, isAggregate ? '*' : {})
67
+ .groupby(isAggregate ? sql`ALL` : []);
68
+
69
+ let desc: ColumnDescription;
70
+ try {
71
+ [desc] = Array.from(
72
+ await mc.query(Query.describe(q))
73
+ ) as ColumnDescription[];
74
+ } catch {
75
+ // provide dummy description node upon query failure
76
+ // this handles true aggregates within window functions
77
+ // DuckDB fails to handle these when using GROUP BY ALL
78
+ desc = {
79
+ column_name: 'column',
80
+ column_type: 'DOUBLE',
81
+ null: 'YES'
82
+ };
83
+ }
66
84
 
67
- const [desc] = Array.from(
68
- await mc.query(Query.describe(q))
69
- ) as ColumnDescription[];
70
85
  const info: FieldInfo = {
71
86
  table,
72
87
  column: `${column}`,