@uwdata/mosaic-core 0.21.1 → 0.22.0

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,4 +1,4 @@
1
- import { ExprNode, SelectQuery, MaybeArray } from '@uwdata/mosaic-sql';
1
+ import { ExprNode, SelectQuery, MaybeArray, TableRefNode } 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';
@@ -20,7 +20,7 @@ interface ActiveColumnsResult {
20
20
  predicate?: ActivePredicate;
21
21
  }
22
22
  interface PreAggregateInfoOptions {
23
- table: string;
23
+ table: TableRefNode;
24
24
  create: string;
25
25
  active: ActiveColumnsResult;
26
26
  select: SelectQuery;
@@ -121,7 +121,7 @@ export declare class PreAggregator {
121
121
  */
122
122
  export declare class PreAggregateInfo {
123
123
  /** The name of the materialized view. */
124
- table: string;
124
+ table: TableRefNode;
125
125
  /** The SQL query used to generate the materialized view. */
126
126
  create: string;
127
127
  /** A result promise returned for the materialized view creation query. */
@@ -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,MAAM,oBAAoB,CAAC;AAC7I,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,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,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;AA8LD;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,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,EAAE,MAAM,oBAAoB,CAAC;AAC3J,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,MAAM,CAAC;IACf,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;AA8LD;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,yCAAyC;IACzC,KAAK,EAAE,YAAY,CAAC;IACpB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,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,3 +1,4 @@
1
+ import { TableRefNode } from '@uwdata/mosaic-sql';
1
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';
2
3
  import { preaggColumns } from './preagg-columns.js';
3
4
  import { fnv_hash } from '../util/hash.js';
@@ -269,12 +270,12 @@ function binInterval(scale, pixelSize, bin) {
269
270
  * @returns Pre-aggregation information.
270
271
  */
271
272
  function preaggregateInfo(clientQuery, active, preaggCols, schema) {
272
- const { group, output, preagg } = preaggCols;
273
+ const { dims, groupby, output, preagg } = preaggCols;
273
274
  const { columns } = active;
274
275
  // build materialized view construction query
275
276
  const query = clientQuery
276
- .setSelect({ ...preagg, ...columns })
277
- .groupby(Object.keys(columns));
277
+ .setSelect({ ...groupby, ...preagg, ...columns })
278
+ .groupby(Object.keys(columns ?? {}));
278
279
  // ensure active clause columns are selected by subqueries
279
280
  const [subq] = query.subqueries;
280
281
  if (subq) {
@@ -290,12 +291,12 @@ function preaggregateInfo(clientQuery, active, preaggCols, schema) {
290
291
  // generate creation query string and hash id
291
292
  const create = query.toString();
292
293
  const id = (fnv_hash(create) >>> 0).toString(16);
293
- const table = `${schema}.preagg_${id}`;
294
+ const table = new TableRefNode([schema, `preagg_${id}`]);
294
295
  // generate preaggregate select query
295
296
  const select = QueryBuilder
296
- .select(group, output)
297
+ .select(dims, output)
297
298
  .from(table)
298
- .groupby(group)
299
+ .groupby(dims, Object.keys(groupby))
299
300
  .having(having)
300
301
  .orderby(order);
301
302
  return new PreAggregateInfo({ table, create, active, select });
@@ -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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"}
@@ -1,7 +1,8 @@
1
1
  import type { ExprNode } from '@uwdata/mosaic-sql';
2
2
  import type { MosaicClient } from '../MosaicClient.js';
3
3
  export interface PreAggColumnsResult {
4
- group: string[];
4
+ dims: string[];
5
+ groupby: Record<string, ExprNode>;
5
6
  preagg: Record<string, ExprNode>;
6
7
  output: Record<string, ExprNode>;
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preagg-columns.d.ts","sourceRoot":"","sources":["../../../src/preagg/preagg-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgC,QAAQ,EAAsB,MAAM,oBAAoB,CAAC;AACrG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,mBAAmB,GAAG,IAAI,CA2D9E"}
1
+ {"version":3,"file":"preagg-columns.d.ts","sourceRoot":"","sources":["../../../src/preagg/preagg-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgC,QAAQ,EAAsB,MAAM,oBAAoB,CAAC;AACrG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,mBAAmB,GAAG,IAAI,CA0E9E"}
@@ -1,4 +1,4 @@
1
- import { collectAggregates, FromClauseNode, isAggregateExpression, isSelectQuery, isTableRef, rewrite, sql } from '@uwdata/mosaic-sql';
1
+ import { collectAggregates, FromClauseNode, isAggregateExpression, isColumnRef, isSelectQuery, isTableRef, rewrite, sql } from '@uwdata/mosaic-sql';
2
2
  import { sufficientStatistics } from './sufficient-statistics.js';
3
3
  /**
4
4
  * Determine pre-aggregation columns for a given Mosaic client.
@@ -25,7 +25,16 @@ export function preaggColumns(client) {
25
25
  const aggrs = new Map();
26
26
  const preagg = {};
27
27
  const output = {};
28
- const group = []; // list of grouping dimension columns
28
+ const dims = []; // selected grouping dimensions
29
+ // groupby entries, these may or may not be selected
30
+ const groupby = {};
31
+ for (const expr of q._groupby) {
32
+ // ignore integer index, as expr will be in select clause
33
+ if (expr.type !== "LITERAL") {
34
+ const alias = isColumnRef(expr) ? expr.column : `${expr}`;
35
+ groupby[alias] = expr;
36
+ }
37
+ }
29
38
  // generate a scalar subquery for a global average
30
39
  const avg = (ref) => {
31
40
  const name = ref.column;
@@ -41,7 +50,7 @@ export function preaggColumns(client) {
41
50
  const nodes = collectAggregates(expr);
42
51
  if (nodes.length === 0) {
43
52
  // if no aggregates, expr is a groupby dimension
44
- group.push(alias);
53
+ dims.push(alias);
45
54
  preagg[alias] = expr;
46
55
  }
47
56
  else {
@@ -63,7 +72,12 @@ export function preaggColumns(client) {
63
72
  // bail if the query has no aggregates
64
73
  if (!aggrs.size)
65
74
  return null;
66
- return { group, preagg, output };
75
+ return {
76
+ dims,
77
+ groupby,
78
+ preagg,
79
+ output
80
+ };
67
81
  }
68
82
  /**
69
83
  * Identify a shared base (source) query and extract a value from it.
@@ -1 +1 @@
1
- {"version":3,"file":"preagg-columns.js","sourceRoot":"","sources":["../../../src/preagg/preagg-columns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preagg-columns.js","sourceRoot":"","sources":["../../../src/preagg/preagg-columns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AASlE;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,IAAI,CAAC,MAAM,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAEzB,kCAAkC;IAClC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,wBAAwB;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,YAAY,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC;QACxD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;IACjD,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAa,EAAE,CAAC,CAAC,+BAA+B;IAE1D,oDAAoD;IACpD,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,yDAAyD;QACzD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,MAAM,GAAG,GAAG,CAAC,GAAkB,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;QACxB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1E,OAAO,GAAG,CAAA,eAAe,IAAI,IAAI,GAAG,WAAW,IAAI,IAAI,CAAC;IAC1D,CAAC,CAAC;IAEF,sDAAsD;IACtD,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACxC,iDAAiD;QACjD,sDAAsD;QACtD,IAAI,qBAAqB,CAAC,IAAK,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAK,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,gDAAgD;YAChD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,6BAA6B;gBAC7B,IAAI,IAAI,CAAC,UAAU;oBAAE,OAAO,IAAI,CAAC;gBAEjC,4CAA4C;gBAC5C,gDAAgD;gBAChD,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG;oBAAE,OAAO,IAAI,CAAC;gBACtB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACvB,CAAC;YAED,sDAAsD;YACtD,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAK,EAAE,KAAK,CAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAE7B,OAAO;QACL,IAAI;QACJ,OAAO;QACP,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,OAAO,CACd,KAAY,EACZ,GAA0B;IAE1B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;IAE9B,eAAe;IACf,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,qCAAqC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"js-type.d.ts","sourceRoot":"","sources":["../../../src/util/js-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgD3C"}
1
+ {"version":3,"file":"js-type.d.ts","sourceRoot":"","sources":["../../../src/util/js-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiD3C"}
@@ -24,6 +24,7 @@ export function jsType(type) {
24
24
  case 'TIMESTAMPTZ':
25
25
  case 'TIMESTAMP WITH TIME ZONE':
26
26
  case 'TIME':
27
+ case 'TIMESTAMP_MS':
27
28
  case 'TIMESTAMP_NS':
28
29
  return 'date';
29
30
  case 'BOOLEAN':
@@ -1 +1 @@
1
- {"version":3,"file":"js-type.js","sourceRoot":"","sources":["../../../src/util/js-type.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC,CAAC,WAAW;QAC5B,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,0BAA0B,CAAC;QAChC,KAAK,MAAM,CAAC;QACZ,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,KAAK,CAAC;QACX,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC;QAClB;YACE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/D,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"js-type.js","sourceRoot":"","sources":["../../../src/util/js-type.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC,CAAC,WAAW;QAC5B,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,0BAA0B,CAAC;QAChC,KAAK,MAAM,CAAC;QACZ,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,KAAK,CAAC;QACX,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC;QAClB;YACE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/D,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uwdata/mosaic-core",
3
- "version": "0.21.1",
3
+ "version": "0.22.0",
4
4
  "description": "Scalable and extensible linked data views.",
5
5
  "keywords": [
6
6
  "mosaic",
@@ -32,12 +32,12 @@
32
32
  "prepublishOnly": "npm run test && npm run lint && tsc --build"
33
33
  },
34
34
  "dependencies": {
35
- "@duckdb/duckdb-wasm": "1.30.0",
36
- "@uwdata/flechette": "^2.2.5",
37
- "@uwdata/mosaic-sql": "^0.21.1"
35
+ "@duckdb/duckdb-wasm": "1.32.0",
36
+ "@uwdata/flechette": "^2.3.0",
37
+ "@uwdata/mosaic-sql": "^0.22.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@uwdata/mosaic-duckdb": "^0.21.1"
40
+ "@uwdata/mosaic-duckdb": "^0.22.0"
41
41
  },
42
- "gitHead": "296762423ac032193344646ad4f10cf604ca69a2"
42
+ "gitHead": "98e09fca9a7b58c51a46eca56e2c159dc4e544fb"
43
43
  }
@@ -1,4 +1,4 @@
1
- import { ExprNode, ScaleOptions, SelectQuery, Query, ExprValue, MaybeArray, FunctionNode, BetweenOpNode, AndNode } from '@uwdata/mosaic-sql';
1
+ import { ExprNode, ScaleOptions, SelectQuery, Query, ExprValue, MaybeArray, FunctionNode, BetweenOpNode, AndNode, TableRefNode } 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';
@@ -25,7 +25,7 @@ interface ActiveColumnsResult {
25
25
  }
26
26
 
27
27
  interface PreAggregateInfoOptions {
28
- table: string;
28
+ table: TableRefNode;
29
29
  create: string;
30
30
  active: ActiveColumnsResult;
31
31
  select: SelectQuery;
@@ -333,13 +333,13 @@ function preaggregateInfo(
333
333
  preaggCols: PreAggColumnsResult,
334
334
  schema: string
335
335
  ): PreAggregateInfo {
336
- const { group, output, preagg } = preaggCols;
336
+ const { dims, groupby, output, preagg } = preaggCols;
337
337
  const { columns } = active;
338
338
 
339
339
  // build materialized view construction query
340
340
  const query = clientQuery
341
- .setSelect({ ...preagg, ...columns })
342
- .groupby(Object.keys(columns!));
341
+ .setSelect({ ...groupby, ...preagg, ...columns })
342
+ .groupby(Object.keys(columns ?? {}));
343
343
 
344
344
  // ensure active clause columns are selected by subqueries
345
345
  const [subq] = query.subqueries;
@@ -358,13 +358,13 @@ function preaggregateInfo(
358
358
  // generate creation query string and hash id
359
359
  const create = query.toString();
360
360
  const id = (fnv_hash(create) >>> 0).toString(16);
361
- const table = `${schema}.preagg_${id}`;
361
+ const table = new TableRefNode([schema, `preagg_${id}`]);
362
362
 
363
363
  // generate preaggregate select query
364
364
  const select = QueryBuilder
365
- .select(group, output)
365
+ .select(dims, output)
366
366
  .from(table)
367
- .groupby(group)
367
+ .groupby(dims, Object.keys(groupby))
368
368
  .having(having)
369
369
  .orderby(order);
370
370
 
@@ -420,7 +420,7 @@ function isAggregateQuery(query: SelectQuery): boolean {
420
420
  */
421
421
  export class PreAggregateInfo {
422
422
  /** The name of the materialized view. */
423
- table: string;
423
+ table: TableRefNode;
424
424
  /** The SQL query used to generate the materialized view. */
425
425
  create: string;
426
426
  /** A result promise returned for the materialized view creation query. */
@@ -1,10 +1,11 @@
1
1
  import type { AggregateNode, ColumnRefNode, ExprNode, Query, SelectQuery } from '@uwdata/mosaic-sql';
2
2
  import type { MosaicClient } from '../MosaicClient.js';
3
- import { collectAggregates, FromClauseNode, isAggregateExpression, isSelectQuery, isTableRef, rewrite, sql } from '@uwdata/mosaic-sql';
3
+ import { collectAggregates, FromClauseNode, isAggregateExpression, isColumnRef, isSelectQuery, isTableRef, rewrite, sql } from '@uwdata/mosaic-sql';
4
4
  import { sufficientStatistics } from './sufficient-statistics.js';
5
5
 
6
6
  export interface PreAggColumnsResult {
7
- group: string[];
7
+ dims: string[];
8
+ groupby: Record<string, ExprNode>;
8
9
  preagg: Record<string, ExprNode>;
9
10
  output: Record<string, ExprNode>;
10
11
  }
@@ -34,7 +35,17 @@ export function preaggColumns(client: MosaicClient): PreAggColumnsResult | null
34
35
  const aggrs = new Map<AggregateNode, ExprNode>();
35
36
  const preagg: Record<string, ExprNode> = {};
36
37
  const output: Record<string, ExprNode> = {};
37
- const group: string[] = []; // list of grouping dimension columns
38
+ const dims: string[] = []; // selected grouping dimensions
39
+
40
+ // groupby entries, these may or may not be selected
41
+ const groupby: Record<string, ExprNode> = {};
42
+ for (const expr of q._groupby) {
43
+ // ignore integer index, as expr will be in select clause
44
+ if (expr.type !== "LITERAL") {
45
+ const alias = isColumnRef(expr) ? expr.column : `${expr}`;
46
+ groupby[alias] = expr;
47
+ }
48
+ }
38
49
 
39
50
  // generate a scalar subquery for a global average
40
51
  const avg = (ref: ColumnRefNode) => {
@@ -52,8 +63,8 @@ export function preaggColumns(client: MosaicClient): PreAggColumnsResult | null
52
63
  const nodes = collectAggregates(expr!);
53
64
  if (nodes.length === 0) {
54
65
  // if no aggregates, expr is a groupby dimension
55
- group.push(alias);
56
- preagg[alias] = expr!;
66
+ dims.push(alias);
67
+ preagg[alias] = expr;
57
68
  } else {
58
69
  for (const node of nodes) {
59
70
  // bail if distinct aggregate
@@ -74,7 +85,12 @@ export function preaggColumns(client: MosaicClient): PreAggColumnsResult | null
74
85
  // bail if the query has no aggregates
75
86
  if (!aggrs.size) return null;
76
87
 
77
- return { group, preagg, output };
88
+ return {
89
+ dims,
90
+ groupby,
91
+ preagg,
92
+ output
93
+ };
78
94
  }
79
95
 
80
96
  /**
@@ -26,6 +26,7 @@ export function jsType(type: string): JSType {
26
26
  case 'TIMESTAMPTZ':
27
27
  case 'TIMESTAMP WITH TIME ZONE':
28
28
  case 'TIME':
29
+ case 'TIMESTAMP_MS':
29
30
  case 'TIMESTAMP_NS':
30
31
  return 'date';
31
32
  case 'BOOLEAN':
@@ -54,4 +55,4 @@ export function jsType(type: string): JSType {
54
55
  }
55
56
  throw new Error(`Unsupported type: ${type}`);
56
57
  }
57
- }
58
+ }