From 02949003a96b6eaec2bee1257bd8f26353e49c11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 14 Sep 2017 15:48:54 +0200 Subject: [PATCH] Build search query in two steps --- lib/cartodb/models/dataview/aggregation.js | 30 ++++++++++------------ 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/lib/cartodb/models/dataview/aggregation.js b/lib/cartodb/models/dataview/aggregation.js index ecf9419c..575c7202 100644 --- a/lib/cartodb/models/dataview/aggregation.js +++ b/lib/cartodb/models/dataview/aggregation.js @@ -283,20 +283,10 @@ const filterCategoriesQueryTpl = ctx => ` const searchQueryTpl = ctx => ` WITH search_unfiltered AS ( - ${filterCategoriesQueryTpl({ - query: ctx.query, - column: ctx.column, - value: '0', - userQuery: escapedUserQuery - })} + ${ctx.searchUnfiltered} ), search_filtered AS ( - ${filterCategoriesQueryTpl({ - query: ctx.query, - column: ctx.column, - value: value, - userQuery: escapedUserQuery - })} + ${ctx.searchFiltered} ), search_union AS ( SELECT * FROM search_unfiltered @@ -318,10 +308,18 @@ Aggregation.prototype.search = function(psql, userQuery, callback) { // TODO unfiltered will be wrong as filters are already applied at this point var query = searchQueryTpl({ - query: this.query, - column: this.column, - value: value, - userQuery: escapedUserQuery + searchUnfiltered: filterCategoriesQueryTpl({ + query: this.query, + column: this.column, + value: '0', + userQuery: escapedUserQuery + }), + searchFiltered: filterCategoriesQueryTpl({ + query: this.query, + column: this.column, + value: value, + userQuery: escapedUserQuery + }) }); debug(query);