Update Query Rewriter comments

This commit is contained in:
Javier Goizueta
2016-05-18 08:04:11 +02:00
parent 3d8f6576aa
commit cb3706e5cf
+11 -16
View File
@@ -213,24 +213,24 @@ function overview_table_for_zoom_level(table_overviews, zoom_level) {
}
// Transform an SQL query so that it uses overviews.
// overviews contains metadata about the overviews to be used:
// { 'table-name': {1: { table: 'overview-table-1' }, ... }, ... }
//
// For a given query `SELECT * FROM table`, if any of tables in it
// has overviews as defined by the provided metadat, the query will
// be transform into something similar to this:
//
// WITH _vovw_scale AS ( ... ), -- define scale level
// WITH _vovw_table AS ( ... ), -- define union of overviews and base table
// SELECT * FROM _vovw_table -- query with table replaced by _vovw_table
// SELECT * FROM -- in the query the table is replaced by:
// ( ... ) AS _vovw_table -- a union of overviews and base table
//
// This transformation can in principle be applied to arbitrary queries
// (except for the case of queries that include the name of tables with
// overviews inside text literals: at the current table name substitution
// doesnn't prevent substitution inside literals).
// But the transformation will currently only be applied to simple queries
// of the form detected by the overviews_supported_query function.
// TODO: document recent changes (zoom_level option, filters...)
// The data argument has the form:
// {
// overviews: // overview tables metadata
// { 'table-name': {1: { table: 'overview-table-1' }, ... }, ... },
// zoom_level: ..., // optional zoom level
// filters: ..., // filters definition
// unfiltered_query: ..., // query without the filters
// bbox_filter: ... // bounding-box filter
// }
OverviewsQueryRewriter.prototype.query = function(query, data, options) {
options = options || {};
@@ -258,11 +258,6 @@ OverviewsQueryRewriter.prototype.query = function(query, data, options) {
// could not or didn't need to alter the query
rewritten_query = query;
} else {
// TODO: determine if overviews can be used for the filters.
// Otherwise use the base table.
// Applicability of the filters should depend both on the expected
// row count of the result and on the columns to be filter and the
// way they're agregated in overviews.
rewritten_query = apply_filters_to_query(rewritten_query, filters, bbox_filter);
}