From 14cf3c109313537d9250856dfc5774dd7bf7c335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Arroyo=20Torrens?= Date: Thu, 16 Aug 2018 12:16:20 +0200 Subject: [PATCH 1/4] Fix typo --- lib/cartodb/backends/dataview.js | 4 ++-- test/acceptance/health_check.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/cartodb/backends/dataview.js b/lib/cartodb/backends/dataview.js index 542bbb4e..a2f5327a 100644 --- a/lib/cartodb/backends/dataview.js +++ b/lib/cartodb/backends/dataview.js @@ -28,7 +28,7 @@ DataviewBackend.prototype.getDataview = function (mapConfigProvider, user, param var dataviewDefinition = getDataviewDefinition(mapConfig.obj(), dataviewName); if (!dataviewDefinition) { - const error = new Error(`Dataview '${dataviewName}' does not exists`); + const error = new Error(`Dataview '${dataviewName}' does not exist`); error.type = 'dataview'; error.http_status = 400; return callback(error); @@ -157,7 +157,7 @@ DataviewBackend.prototype.search = function (mapConfigProvider, user, dataviewNa var dataviewDefinition = getDataviewDefinition(mapConfig.obj(), dataviewName); if (!dataviewDefinition) { - const error = new Error(`Dataview '${dataviewName}' does not exists`); + const error = new Error(`Dataview '${dataviewName}' does not exist`); error.type = 'dataview'; error.http_status = 400; return callback(error); diff --git a/test/acceptance/health_check.js b/test/acceptance/health_check.js index 576a6e6f..667feba4 100644 --- a/test/acceptance/health_check.js +++ b/test/acceptance/health_check.js @@ -96,7 +96,7 @@ describe('health checks', function () { }); }); - it('not err if disabled file does not exists', function(done) { + it('not err if disabled file does not exist', function(done) { global.environment.disabled_file = '/tmp/ftreftrgtrccre'; var server = new CartodbWindshaft(serverOptions); From 925328c43bf7c2d893ce0481b41202daffbbaa23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Arroyo=20Torrens?= Date: Thu, 16 Aug 2018 13:38:26 +0200 Subject: [PATCH 2/4] Fix bug in date-wrapper regarding to columns with spaces --- lib/cartodb/utils/date-wrapper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cartodb/utils/date-wrapper.js b/lib/cartodb/utils/date-wrapper.js index 9d5657b1..3d458978 100644 --- a/lib/cartodb/utils/date-wrapper.js +++ b/lib/cartodb/utils/date-wrapper.js @@ -14,7 +14,7 @@ const DATE_OIDS = Object.freeze({ function wrapDates(originalQuery, fields) { return ` SELECT - ${fields.map(field => _isDateType(field) ? _castColumnToEpoch(field.name) : `${field.name}`).join(',')} + ${fields.map(field => _isDateType(field) ? _castColumnToEpoch(field.name) : `"${field.name}"`).join(',')} FROM (${originalQuery}) _cdb_epoch_transformation `; } From 31263b7b22698e9bfd48440ef57f3a88103db6ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Arroyo=20Torrens?= Date: Thu, 16 Aug 2018 13:55:39 +0200 Subject: [PATCH 3/4] Add unit test --- test/unit/cartodb/utils/date-wrapper.test.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 test/unit/cartodb/utils/date-wrapper.test.js diff --git a/test/unit/cartodb/utils/date-wrapper.test.js b/test/unit/cartodb/utils/date-wrapper.test.js new file mode 100644 index 00000000..e4fab99a --- /dev/null +++ b/test/unit/cartodb/utils/date-wrapper.test.js @@ -0,0 +1,18 @@ +var assert = require('assert'); +var dateWrapper = require('../../../../lib/cartodb/utils/date-wrapper'); + +describe('date-wrapper', function() { + + it('should wrap property fields with spaces', function() { + const actual = dateWrapper.wrapDates( + 'select * from table', + [{name: 'a'}, {name: 'b c'}] + ); + const expected = ` + SELECT + "a","b c" + FROM + (select * from table) _cdb_epoch_transformation `; + assert.equal(actual, expected); + }); +}); From e0f49ca8f53ad62ecdc85d5a7f4a0a31b515a9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Arroyo=20Torrens?= Date: Thu, 16 Aug 2018 15:34:06 +0200 Subject: [PATCH 4/4] Fix aggregation-query dimension functions regarding to spaces in columns --- lib/cartodb/models/aggregation/aggregation-query.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/cartodb/models/aggregation/aggregation-query.js b/lib/cartodb/models/aggregation/aggregation-query.js index 4f7060c5..4ae3bc33 100644 --- a/lib/cartodb/models/aggregation/aggregation-query.js +++ b/lib/cartodb/models/aggregation/aggregation-query.js @@ -117,17 +117,19 @@ const dimensionNames = (ctx, table) => { let dimensions = aggregateDimensions(ctx); if (table) { return sep(Object.keys(dimensions).map( - dimension_name => `${table}.${dimension_name}` + dimension_name => `${table}."${dimension_name}"` )); } - return sep(Object.keys(dimensions)); + return sep(Object.keys(dimensions).map(dimension_name => { + return `"${dimension_name}"`; + })); }; const dimensionDefs = ctx => { let dimensions = aggregateDimensions(ctx); return sep(Object.keys(dimensions).map(dimension_name => { const expression = dimensions[dimension_name]; - return `${expression} AS ${dimension_name}`; + return `"${expression}" AS "${dimension_name}"`; })); };