Overhaul SQL utilities for greater coverage and flexibility.
Expand and rename preaggregation optimizations.
Add vgplot region interactor for point-typed screen-space selections.
Changelog
Breaking: Rewrite mosaic-sql package to use a complete AST formulation. Add additional SQL helper methods.
Breaking: Drop agg SQL expression helper. We now perform automatic analysis to determine if an expression is an aggregate expression.
Breaking: Remove automatic internal casts, such as casting count() aggregates to 32-bit integers. As we dropped Arrow-JS in favor of Flechette, Arrow parsing now gracefully handles 64-bit integers, decimals, and other type conversions.
Add more SQL operators, math functions, isIn function, conditionals, and more.
Move SQL transforms for binning and M4 to mosaic-sql package in a new transforms folder.
Update plots, inputs, and spec parsing to use new SQL utilities. SQL expressions no longer provide column dependency lists, param listeners, or idiosyncratic annotations. Instead, needed metadata is now extracted using visitor methods that walk the SQL expression AST. All query generator methods now create full, analyzable ASTs using our updated SQL builders.
Breaking: Rename coordinator dataCubeIndexer to preaggregator.
Breaking: Rename coordinator indexes option key to preagg.
Breaking: Rename pre-aggregation index method to request.
Breaking: Rename pre-aggregation dropIndexTables method to dropPreAggregateTables.
Rename other internal methods and comments to use the terminology of "pre-aggregation" and "pre-aggregated materialized views".
Update documentation to use the terminology of "pre-aggregation" and "pre-aggregated materialized views".
Update pre-aggregation optimizations to support arbitrary aggregate expressions, not just individual aggregate function calls. We use the SQL facilities to rewrite expressions for more complex optimized aggregations.
Update pre-aggregation optimizations to support aggregates with FILTER clauses.
Refactor pre-aggregation optimizations, moving them to the new mosaic-core/preagg folder.
Add region interactor for 2D selection of individual point values.
Add use of SQL IN operator for single-value point selections.
Add channels mark property to spec types.
Fix empty selection resolution to use false literal.
Fix interactor facet handling and datum extraction.
Refactor BrushStyles types to dedicated file.
Update facet handling to follow changes in Observable Plot.
Highlights
region
interactor for point-typed screen-space selections.Changelog
mosaic-sql
package to use a complete AST formulation. Add additional SQL helper methods.agg
SQL expression helper. We now perform automatic analysis to determine if an expression is an aggregate expression.isIn
function, conditionals, and more.mosaic-sql
package in a newtransforms
folder.dataCubeIndexer
topreaggregator
.indexes
option key topreagg
.index
method torequest
.dropIndexTables
method todropPreAggregateTables
.mosaic-core/preagg
folder.region
interactor for 2D selection of individual point values.channels
mark property to spec types.label
, addclip
,ariaLabel
,ariaDescription
mosaic-sql
andmosaic-core
.