diff --git a/lib/cartodb/models/aggregation/aggregation-mapconfig.js b/lib/cartodb/models/aggregation/aggregation-mapconfig.js index bf334338..6e9b71d0 100644 --- a/lib/cartodb/models/aggregation/aggregation-mapconfig.js +++ b/lib/cartodb/models/aggregation/aggregation-mapconfig.js @@ -72,6 +72,18 @@ module.exports = class AggregationMapConfig extends MapConfig { }); } + getAggregatedColumns (index) { + const { aggregation } = this.getLayer(index).options; + + if (aggregation === undefined || aggregation.columns === undefined) { + return []; + } + + return aggregation.columns + .map(({ aggregated_column }) => aggregated_column) + .filter(aggregated_column => typeof aggregated_column === 'string'); + } + isAggregationMapConfig () { return this.isVectorOnlyMapConfig() || this.hasAnyLayerAggregation(); } diff --git a/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js b/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js index 425aade7..99f68a0f 100644 --- a/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js +++ b/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js @@ -99,6 +99,10 @@ module.exports = class AggregationMapConfigAdapter { } layer.options.sql = aggregationSql; + + const aggregatedColumns = mapConfig.getAggregatedColumns(index); + + layer.options.columns = aggregatedColumns; } return resolve({ layer, index, adapted: shouldAdapt });