Merge pull request #1161 from CartoDB/fix_parsing_columns_histograms_1160
Fixes 1160: Prevent using cast column as part of __ctx_query
This commit is contained in:
commit
809c267419
3
NEWS.md
3
NEWS.md
@ -21,6 +21,9 @@ Announcements:
|
||||
- Remove `bootstrapFonts` at process startup (now done in `windshaft@6.0.0`)
|
||||
- Stop checking the installed version of some dependencies while testing
|
||||
|
||||
Bug Fixes:
|
||||
- Parsing date column in numeric histograms (#1160)
|
||||
|
||||
## 8.1.1
|
||||
Released 2020-02-17
|
||||
|
||||
|
@ -52,10 +52,18 @@ Numeric histogram:
|
||||
*/
|
||||
module.exports = class NumericHistogram extends BaseHistogram {
|
||||
_buildQuery (psql, override, callback) {
|
||||
let column = this.column;
|
||||
let query = this.query;
|
||||
// for date type we have to cast the column using an alias
|
||||
// and using that alias to prevent multiple calls to the cast
|
||||
if (this._columnType === 'date') {
|
||||
query = `(SELECT *, ${utils.columnCastTpl({ column })} as __cdb_cast_date FROM (${this.query}) __cdb_original_query)`;
|
||||
column = '__cdb_cast_date';
|
||||
}
|
||||
const histogramSql = this._buildQueryTpl({
|
||||
column: this._columnType === 'date' ? utils.columnCastTpl({ column: this.column }) : this.column,
|
||||
column,
|
||||
isFloatColumn: this._columnType === 'float',
|
||||
query: this.query,
|
||||
query,
|
||||
start: this._getBinStart(override),
|
||||
end: this._getBinEnd(override),
|
||||
bins: this._getBinsCount(override),
|
||||
|
@ -325,6 +325,15 @@ describe('histogram-dataview for date column type', function () {
|
||||
column: 'd',
|
||||
aggregation: 'minute'
|
||||
}
|
||||
},
|
||||
date_histogram_no_agg: {
|
||||
options: {
|
||||
column: 'd'
|
||||
},
|
||||
source: {
|
||||
id: 'minute-histogram-source-tz'
|
||||
},
|
||||
type: 'histogram'
|
||||
}
|
||||
},
|
||||
[
|
||||
@ -1232,6 +1241,21 @@ describe('histogram-dataview for date column type', function () {
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should work with dates without aggregation', function (done) {
|
||||
var params = {
|
||||
start: 1171583400,
|
||||
end: 1171584600
|
||||
};
|
||||
this.testClient = new TestClient(mapConfig, 1234);
|
||||
this.testClient.getDataview('date_histogram_no_agg', params, function (err, dataview) {
|
||||
assert.ifError(err);
|
||||
assert.strictEqual(dataview.type, 'histogram');
|
||||
assert.strictEqual(dataview.bins.length, 6);
|
||||
assert.strictEqual(dataview.bins_count, 6);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('histogram-dataview: special float valuer', function () {
|
||||
|
Loading…
Reference in New Issue
Block a user