@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.
- package/dist/src/preagg/PreAggregator.d.ts.map +1 -1
- package/dist/src/preagg/PreAggregator.js +22 -22
- package/dist/src/preagg/PreAggregator.js.map +1 -1
- package/dist/src/util/field-info.js +17 -3
- package/dist/src/util/field-info.js.map +1 -1
- package/package.json +5 -5
- package/src/preagg/PreAggregator.ts +23 -24
- package/src/util/field-info.ts +20 -5
|
@@ -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,
|
|
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
|
-
|
|
282
|
-
.
|
|
283
|
-
.
|
|
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] =
|
|
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
|
|
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
|
-
|
|
297
|
-
|
|
298
|
-
.
|
|
299
|
-
.
|
|
300
|
-
.
|
|
301
|
-
.
|
|
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":"AAAA,OAAO,EAA2G,YAAY,EAAE,YAAY,EAA8C,MAAM,oBAAoB,CAAC;AAKrN,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvO,OAAO,EAAE,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAwB1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,aAAa;IACjB,OAAO,CAA2D;IACjE,MAAM,CAA6B;IACnC,EAAE,CAAc;IAChB,OAAO,CAAS;IAChB,QAAQ,CAAU;IAE1B;;;;OAIG;IACH,YAAY,WAAwB,EAAE,EACpC,MAAM,GAAG,QAAQ,EACjB,OAAO,GAAG,IAAI,KACS,EAAE;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,OAAO,CAAC,KAAc;QACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,IAAI,MAAM,CAAC,MAAc;QACvB,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,MAAM,WAAW,CAAC,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACH,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAoB,EAAE,SAAoB,EAAE,YAAoC;QACtF,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,YAAY,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvD,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACrC,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QAEhC,oDAAoD;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,8DAA8D;QAC9D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,2DAA2D;YAC3D,+DAA+D;YAC/D,wCAAwC;YACxC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAChD,oEAAoE;YACpE,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;QAChD,CAAC;QAED,yCAAyC;QACzC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAEtB,gEAAgE;QAChE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,0DAA0D;YAC1D,kDAAkD;YAClD,6DAA6D;YAC7D,IAAI,YAAY,CAAC,SAAS,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YAChD,mDAAmD;YACnD,oEAAoE;YACpE,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;YACnD,sDAAsD;YACtD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;QAC1C,CAAC;QAED,oDAAoD;QACpD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAC9B,CAAC;QAED,2CAA2C;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,IAA2C,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,+CAA+C;YAC/C,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;YAChD,8CAA8C;YAC9C,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,mCAAmC;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1D,IAAI,GAAG,gBAAgB,CACrB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAgB,EACnC,MAAM,EAAE,UAAU,EAAE,MAAM,CAC3B,CAAC;YACF,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;gBACpB,YAAY,CAAC,MAAM,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aACtD,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,MAAuB;IAC5C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;IACpC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClE,IAAI,SAAsC,CAAC;IAC3C,IAAI,OAA6C,CAAC;IAElD,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC9C,CAAC;IAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnB,OAAO,GAAG,MAAM,CAAC,WAAW,CAC1B,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAC/C,CAAC;YACF,MAAM;QACR,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,CAAC,EAAE,GAAI,IAAyB,CAAC;YAClE,IAAI,CAAC,MAAM;gBAAE,MAAM;YAEnB,gCAAgC;YAChC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,sCAAsC;YACxC,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,oDAAoD;gBACpD,4BAA4B;gBAC5B,SAAS,GAAG,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC;oBAC7B,CAAC,CAAC,SAAS,CAAC,SAAS,EAAG,CAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;oBAClE,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAE,CAAE,UAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,8BAA8B;gBAC9B,SAAS,GAAG,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC;oBAC7B,CAAC,CAAC,GAAG,CAAE,CAA4B,CAAC,OAAO,CAAC,GAAG,CAC3C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAC3D,CAAC;oBACJ,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO,GAAG,MAAM,CAAC,WAAW,CACzB,UAAqC,CAAC,OAAO,CAAC,GAAG,CAChD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC3C,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,GAAG,GAAsD,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAE/E;;;;;;;;GAQG;AACH,SAAS,WAAW,CAClB,KAAmB,EACnB,SAAiB,EACjB,GAAe;IAEf,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,KAAK,CAAE,CAAC;IACxE,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,yBAAyB;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;IACnD,MAAM,GAAG,GAAG,MAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU;QAC5B,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,KAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IAC7D,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACvB,KAAkB,EAClB,MAA2B,EAC3B,UAA+B,EAC/B,MAAc;IAEd,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IACrD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE3B,wDAAwD;IACxD,uCAAuC;IACvC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7C,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;IAEpB,6CAA6C;IAC7C,KAAK;SACF,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;SAChD,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhD,0DAA0D;IAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;IAChC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAQ,CAAC;aACjC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,sCAAsC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;IAEzD,qCAAqC;IACrC,MAAM,MAAM,GAAG,YAAY;SACxB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;SACpB,IAAI,CAAC,KAAK,CAAC;SACX,OAAO,CAAC,IAAI,CAAC;SACb,MAAM,CAAC,OAAO,CAAC;SACf,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9C,OAAO,IAAI,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,KAAiB,EAAE,MAA0B;IACnE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAI,IAAoB,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,MAAM,CAAE,CAAiB,CAAC,KAAe,GAAG,CAAC,CAAC,CAAC;gBAC3D,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,kDAAkD;oBAClD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAChC,OAAO,MAAM,CAAA;gBACf,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,MAAM,CAAE,IAAoB,CAAC,KAAe,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAY,EAAE,IAAc;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,CAAC,CAAQ,EAAE,EAAE;QAC5B,8CAA8C;QAC9C,+CAA+C;QAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO;QACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEZ,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvC,iCAAiC;YACjC,sDAAsD;YACtD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,8DAA8D;gBAC9D,2DAA2D;gBAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACxE,CAAC;gBACF,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAkB;IAC1C,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;WAC3B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAC3B,yCAAyC;IACzC,KAAK,CAAe;IACpB,4DAA4D;IAC5D,MAAM,CAAc;IACpB,0EAA0E;IAC1E,MAAM,CAA0B;IAChC;8DAC0D;IAC1D,MAAM,CAAsB;IAC5B,+DAA+D;IAC/D,MAAM,CAAc;IACpB;qEACiE;IACjE,IAAI,CAAU;IAEd;;;OAGG;IACH,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAA2B;QACpE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAmB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAU,CAAC,SAAS,CAAE,CAAC,CAAC;IACvE,CAAC;CACF"}
|
|
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(
|
|
59
|
-
|
|
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":"AACA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;AACzB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;AACzB,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAE1D,MAAM,OAAO,GAAsD;IACjE,CAAC,KAAK,CAAC,EAAE,KAAK;IACd,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAC9C,CAAC,GAAG,CAAC,EAAE,GAAG;IACV,CAAC,GAAG,CAAC,EAAE,GAAG;IACV,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;AAEF;;;;GAIG;AACH,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAoB;IAC3D,OAAO,KAAK;SACT,IAAI,CAAC,KAAK,CAAC;SACX,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAe,EAAE,MAA0B;IAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACpD,OAAO,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,OAAO;aAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1C,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CAAC,EAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAoB;IACrF,qDAAqD;IACrD,6DAA6D;IAC7D,MAAM,CAAC,GAAG,KAAK;SACZ,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC
|
|
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.
|
|
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.
|
|
37
|
-
"@uwdata/mosaic-sql": "^0.
|
|
36
|
+
"@uwdata/flechette": "^2.4.0",
|
|
37
|
+
"@uwdata/mosaic-sql": "^0.24.2"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@uwdata/mosaic-duckdb": "^0.
|
|
40
|
+
"@uwdata/mosaic-duckdb": "^0.24.2"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
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
|
-
|
|
347
|
-
.
|
|
348
|
-
.
|
|
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] =
|
|
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
|
|
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
|
-
|
|
365
|
-
|
|
366
|
-
.
|
|
367
|
-
.
|
|
368
|
-
.
|
|
369
|
-
.
|
|
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
|
}
|
package/src/util/field-info.ts
CHANGED
|
@@ -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(
|
|
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}`,
|