Remove prefix to context's properties

This commit is contained in:
Daniel García Aubert
2017-09-14 15:22:58 +02:00
parent 132fce84c5
commit e2ab48bee2
+21 -19
View File
@@ -273,20 +273,20 @@ Aggregation.prototype.format = function(result) {
const filterCategoriesQueryTpl = ctx => `
SELECT
${ctx._column} AS category,
${ctx._value} AS value
FROM (${ctx._query}) _cdb_aggregation_search
WHERE CAST(${ctx._column} as text) ILIKE ${ctx._userQuery}
GROUP BY ${ctx._column}
${ctx.column} AS category,
${ctx.value} AS value
FROM (${ctx.query}) _cdb_aggregation_search
WHERE CAST(${ctx.column} as text) ILIKE ${ctx.userQuery}
GROUP BY ${ctx.column}
`;
const searchQueryTpl = ctx => `
WITH
search_unfiltered AS (
${ctx._searchUnfiltered}
${ctx.searchUnfiltered}
),
search_filtered AS (
${ctx._searchFiltered}
${ctx.searchFiltered}
),
search_union AS (
SELECT * FROM search_unfiltered
@@ -302,26 +302,28 @@ const searchQueryTpl = ctx => `
Aggregation.prototype.search = function(psql, userQuery, callback) {
var self = this;
var _userQuery = psql.escapeLiteral('%' + userQuery + '%');
var _value = this.aggregation !== 'count' && this.aggregationColumn ?
var escapedUserQuery = psql.escapeLiteral('%' + userQuery + '%');
var value = this.aggregation !== 'count' && this.aggregationColumn ?
this.aggregation + '(' + this.aggregationColumn + ')' : 'count(1)';
// TODO unfiltered will be wrong as filters are already applied at this point
var query = searchQueryTpl({
_searchUnfiltered: filterCategoriesQueryTpl({
_query: this.query,
_column: this.column,
_value: '0',
_userQuery: _userQuery
searchUnfiltered: filterCategoriesQueryTpl({
query: this.query,
column: this.column,
value: '0',
userQuery: escapedUserQuery
}),
_searchFiltered: filterCategoriesQueryTpl({
_query: this.query,
_column: this.column,
_value: _value,
_userQuery: _userQuery
searchFiltered: filterCategoriesQueryTpl({
query: this.query,
column: this.column,
value: value,
userQuery: escapedUserQuery
})
});
debug(query);
psql.query(query, function(err, result) {
if (err) {
return callback(err, result);