This commit creates a new ConfigAdapter used in vector maps instantiations.
This adapter generates a new sql query for ONE SINGLE LAYER (carto-vl currently only supports one layer per mvt)
where the date columns are wrapped into a epoch using the `date_part` function.
Due this mvt files are smaller since we use numbers instead strings to represent dates, this is also faster in carto-gl
where we interpolate linearly between 0 and 1 to create animations.
Notice we should add a parameter to make this transformation optional.
We also should take into account the epoch precission.
The columns for non-default aggregations were the base columns not the resulting aggregated columns
In particular this could cause invalid wrapped SQL code to be passed to ST_AsMVT when the Windshaft pg-mvt renderer was used.
- In controllers: all reference to map config are now camelized, for instance: mapconfig -> mapConfig or mapconfigProvider -> mapConfigProvider
- In controllers: all map config providers created in req/res cycle are saved into `res.locals` and `mapConfigProvider` as key.
- In map-config-providers: all of them implement `.getAffectedTables()`, in order to calculate the tables involved for a given map-config. For that, `pgConnection` and `affectedTablesCache` are injected as constructor argument.
- Named Map Provider: rename references from `affectedTablesAndLastUpdate` to `affectedTables`.
- Named Map Provider Cache: In order to create new named map providers, needs affectedTablesCache.
- Extract locals middlewares (surrogate-key and cache-channel) from controllers and create an unified version of them.
- Extract last-modified middleware from named maps controller (draft).
Improve the performance of the aggregation dataview.
Instead of using a CTE (WITH) for filtered_source, which is only used in
one place to calculate ranks, inject it as a subquery.
This way the planner has a chance to ignore uneeded columns as well as
to parallelize the exectution of the window function (WindowAgg in the
query plan).
That is the part that takes most of the time of the query.
The improvement is about 20-40% in speed on PG10 with 4 cores.