diff --git a/lib/cartodb/models/analysis-mapconfig-adapter.js b/lib/cartodb/models/analysis-mapconfig-adapter.js index 2897114b..6d54a3af 100644 --- a/lib/cartodb/models/analysis-mapconfig-adapter.js +++ b/lib/cartodb/models/analysis-mapconfig-adapter.js @@ -26,9 +26,12 @@ var layerQueryTemplate = dot.template([ 'FROM ({{=it._query}}) _cdb_analysis_query' ].join('\n')); -function layerQuery(query, columnNames) { - var _columns = ['ST_Transform(the_geom, 3857) the_geom_webmercator'].concat(skipColumns(columnNames)); - return layerQueryTemplate({ _query: query, _columns: _columns.join(', ') }); +function layerQuery(node) { + if (node.type === 'source') { + return node.getQuery(); + } + var _columns = ['ST_Transform(the_geom, 3857) the_geom_webmercator'].concat(skipColumns(node.getColumns())); + return layerQueryTemplate({ _query: node.getQuery(), _columns: _columns.join(', ') }); } function appendFiltersToNodes(requestMapConfig, dataviewsFiltersBySourceId) { @@ -139,7 +142,7 @@ AnalysisMapConfigAdapter.prototype.getMapConfig = function(analysisConfiguration var layerSourceId = getLayerSourceId(layer); var layerNode = sourceId2Node[layerSourceId]; if (layerNode) { - var analysisSql = layerQuery(layerNode.getQuery(), layerNode.getColumns()); + var analysisSql = layerQuery(layerNode); var sqlQueryWrap = layer.options.sql_wrap; if (sqlQueryWrap) { analysisSql = sqlQueryWrap.replace(/<%=\s*sql\s*%>/g, analysisSql);