From 6f04214f5d3dc686aa81f7c6d3bc9b5c80eb4e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Fri, 1 Dec 2017 17:06:03 +0100 Subject: [PATCH] Simplify to pass test --- .../models/aggregation/base-aggregation.js | 4 -- .../models/aggregation/raster-aggregation.js | 45 +------------------ .../models/aggregation/vector-aggregation.js | 45 +------------------ 3 files changed, 4 insertions(+), 90 deletions(-) diff --git a/lib/cartodb/models/aggregation/base-aggregation.js b/lib/cartodb/models/aggregation/base-aggregation.js index d7f92f70..98c5a09c 100644 --- a/lib/cartodb/models/aggregation/base-aggregation.js +++ b/lib/cartodb/models/aggregation/base-aggregation.js @@ -3,7 +3,3 @@ module.exports = class BaseAggregation { throw new Error('Unimplemented method'); } }; - -module.exports.baseQueryTemplate = ctx => ` - select ${ctx} blah.., blah, blah... -`; diff --git a/lib/cartodb/models/aggregation/raster-aggregation.js b/lib/cartodb/models/aggregation/raster-aggregation.js index c0d65a37..51c30773 100644 --- a/lib/cartodb/models/aggregation/raster-aggregation.js +++ b/lib/cartodb/models/aggregation/raster-aggregation.js @@ -1,54 +1,13 @@ const BaseAggregation = require('./base-aggregation'); -const { baseQueryTemplate } = BaseAggregation; module.exports = class RasterAggregation extends BaseAggregation { sql (options) { return rasterAggregationQueryTemplate({ - source_query: options.sql, + sourceQuery: options.sql, res: options.resolution, columns: options.columns }); } }; -const rasterAggregationQueryTemplate = ctx => ` - WITH - _cdb_source AS ( - -- original query - ${ctx.source_query} - ), - _cdb_resolution AS ( - SELECT ${ctx.res}*CDB_XYZ_Resolution(CDB_ZoomFromScale(!scale_denominator!)) - AS _cdb_grid_size - -- equivalent to: - -- ${ctx.res}*!scale_denominator!*0.00028 - ), - _cdb_gridded AS ( - SELECT - Floor(ST_X(_cdb_source.the_geom_webmercator)/_cdb_grid_size)::int AS _cdb_gx, - Floor(ST_Y(_cdb_source.the_geom_webmercator)/_cdb_grid_size)::int AS _cdb_gy, - count(*) AS _cdb_feature_count - FROM _cdb_source, _cdb_resolution - GROUP BY _cdb_gx, _cdb_gy - ), - _cdb_webmercator AS ( - SELECT - row_number() over() AS cartodb_id, - _cdb_feature_count, - ST_SetSRID( - ST_MakePoint( - _cdb_gx*_cdb_grid_size + _cdb_grid_size/2, - _cdb_gy*_cdb_grid_size + _cdb_grid_size/2 - ), - 3857 - ) AS the_geom_webmercator - FROM _cdb_gridded, _cdb_resolution - ) - SELECT - cartodb_id, - ST_Transform(the_geom_webmercator, 4326) AS the_geom, - the_geom_webmercator, - _cdb_feature_count - FROM _cdb_webmercator - ${baseQueryTemplate(ctx)} -`; +const rasterAggregationQueryTemplate = ctx => `${ctx.sourceQuery}`; diff --git a/lib/cartodb/models/aggregation/vector-aggregation.js b/lib/cartodb/models/aggregation/vector-aggregation.js index 42f070ac..d30f2429 100644 --- a/lib/cartodb/models/aggregation/vector-aggregation.js +++ b/lib/cartodb/models/aggregation/vector-aggregation.js @@ -1,54 +1,13 @@ const BaseAggregation = require('./base-aggregation'); -const { baseQueryTemplate } = BaseAggregation; module.exports = class VectorAggregation extends BaseAggregation { sql (options) { return vectorAggregationQueryTemplate({ - source_query: options.sql, + sourceQuery: options.sql, res: options.resolution, columns: options.columns }); } }; -const vectorAggregationQueryTemplate = ctx => ` - WITH - _cdb_source AS ( - -- original query - ${ctx.source_query} - ), - _cdb_resolution AS ( - SELECT ${ctx.res}*CDB_XYZ_Resolution(CDB_ZoomFromScale(!scale_denominator!)) - AS _cdb_grid_size - -- equivalent to: - -- ${ctx.res}*!scale_denominator!*0.00028 - ), - _cdb_gridded AS ( - SELECT - Floor(ST_X(_cdb_source.the_geom_webmercator)/_cdb_grid_size)::int AS _cdb_gx, - Floor(ST_Y(_cdb_source.the_geom_webmercator)/_cdb_grid_size)::int AS _cdb_gy, - count(*) AS _cdb_feature_count - FROM _cdb_source, _cdb_resolution - GROUP BY _cdb_gx, _cdb_gy - ), - _cdb_webmercator AS ( - SELECT - row_number() over() AS cartodb_id, - _cdb_feature_count, - ST_SetSRID( - ST_MakePoint( - _cdb_gx*_cdb_grid_size + _cdb_grid_size/2, - _cdb_gy*_cdb_grid_size + _cdb_grid_size/2 - ), - 3857 - ) AS the_geom_webmercator - FROM _cdb_gridded, _cdb_resolution - ) - SELECT - cartodb_id, - ST_Transform(the_geom_webmercator, 4326) AS the_geom, - the_geom_webmercator, - _cdb_feature_count - FROM _cdb_webmercator - ${baseQueryTemplate(ctx)} -`; +const vectorAggregationQueryTemplate = ctx => `${ctx.sourceQuery}`;