From 4e53803b3b3699926244724d550f16d4e8c7cb4f Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Wed, 31 May 2017 12:51:07 -0400 Subject: [PATCH 1/9] Create BBoxFilter independently from rewrite data --- lib/cartodb/backends/dataview.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/cartodb/backends/dataview.js b/lib/cartodb/backends/dataview.js index e0515efe..f2e9c7df 100644 --- a/lib/cartodb/backends/dataview.js +++ b/lib/cartodb/backends/dataview.js @@ -43,6 +43,12 @@ DataviewBackend.prototype.getDataview = function (mapConfigProvider, user, param ownFilter = !!ownFilter; var query = (ownFilter) ? dataviewDefinition.sql.own_filter_on : dataviewDefinition.sql.own_filter_off; + var bboxFilter = null; + if (params.bbox) { + bboxFilter = new BBoxFilter({column: 'the_geom_webmercator', srid: 3857}, {bbox: params.bbox}); + query = bboxFilter.sql(query); + } + var sourceId = dataviewDefinition.source.id; // node.id var layer = _.find(mapConfig.obj().layers, function(l) { return l.options.source && (l.options.source.id === sourceId); @@ -56,8 +62,6 @@ DataviewBackend.prototype.getDataview = function (mapConfigProvider, user, param } if (params.bbox) { - var bboxFilter = new BBoxFilter({column: 'the_geom_webmercator', srid: 3857}, {bbox: params.bbox}); - query = bboxFilter.sql(query); if ( queryRewriteData ) { var bbox_filter_definition = { type: 'bbox', From ef3cad65995e1eb70a84d1f5abd3f3f4ace4446e Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Wed, 31 May 2017 12:52:41 -0400 Subject: [PATCH 2/9] Extract to function --- lib/cartodb/backends/dataview.js | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/cartodb/backends/dataview.js b/lib/cartodb/backends/dataview.js index f2e9c7df..82b8f438 100644 --- a/lib/cartodb/backends/dataview.js +++ b/lib/cartodb/backends/dataview.js @@ -81,16 +81,7 @@ DataviewBackend.prototype.getDataview = function (mapConfigProvider, user, param overviewsQueryRewriter, queryRewriteData, { bbox: params.bbox } ); - var overrideParams = _.reduce(_.pick(params, 'start', 'end', 'bins'), - function castNumbers(overrides, val, k) { - if (!Number.isFinite(+val)) { - throw new Error('Invalid number format for parameter \'' + k + '\''); - } - overrides[k] = +val; - return overrides; - }, - {ownFilter: ownFilter} - ); + var overrideParams = getOverrideParams(params, ownFilter); var dataview = dataviewFactory.getDataview(query, dataviewDefinition); dataview.getResult(pg, overrideParams, this); @@ -101,6 +92,19 @@ DataviewBackend.prototype.getDataview = function (mapConfigProvider, user, param ); }; +function getOverrideParams(params, ownFilter) { + return _.reduce(_.pick(params, 'start', 'end', 'bins'), + function castNumbers(overrides, val, k) { + if (!Number.isFinite(+val)) { + throw new Error('Invalid number format for parameter \'' + k + '\''); + } + overrides[k] = +val; + return overrides; + }, + {ownFilter: ownFilter} + ); +} + DataviewBackend.prototype.search = function (mapConfigProvider, user, params, callback) { var dataviewName = params.dataviewName; From 62514fc563e6f4da476ef0c58d39e3fd36717e4f Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Wed, 31 May 2017 12:57:38 -0400 Subject: [PATCH 3/9] Extract query rewrite data to function --- lib/cartodb/backends/dataview.js | 64 +++++++++++++++++--------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/lib/cartodb/backends/dataview.js b/lib/cartodb/backends/dataview.js index 82b8f438..18ff2fb2 100644 --- a/lib/cartodb/backends/dataview.js +++ b/lib/cartodb/backends/dataview.js @@ -49,42 +49,14 @@ DataviewBackend.prototype.getDataview = function (mapConfigProvider, user, param query = bboxFilter.sql(query); } - var sourceId = dataviewDefinition.source.id; // node.id - var layer = _.find(mapConfig.obj().layers, function(l) { - return l.options.source && (l.options.source.id === sourceId); - }); - var queryRewriteData = layer && layer.options.query_rewrite_data; - if (queryRewriteData && dataviewDefinition.node.type === 'source') { - queryRewriteData = _.extend({}, queryRewriteData, { - filters: dataviewDefinition.node.filters, - unfiltered_query: dataviewDefinition.sql.own_filter_on - }); - } - - if (params.bbox) { - if ( queryRewriteData ) { - var bbox_filter_definition = { - type: 'bbox', - options: { - column: 'the_geom_webmercator', - srid: 3857 - }, - params: { - bbox: params.bbox - } - }; - queryRewriteData = _.extend(queryRewriteData, { bbox_filter: bbox_filter_definition }); - } - } + var queryRewriteData = getQueryRewriteData(mapConfig, dataviewDefinition, params); var dataviewFactory = DataviewFactoryWithOverviews.getFactory( overviewsQueryRewriter, queryRewriteData, { bbox: params.bbox } ); - var overrideParams = getOverrideParams(params, ownFilter); - var dataview = dataviewFactory.getDataview(query, dataviewDefinition); - dataview.getResult(pg, overrideParams, this); + dataview.getResult(pg, getOverrideParams(params, ownFilter), this); }, function returnCallback(err, result) { return callback(err, result); @@ -92,6 +64,38 @@ DataviewBackend.prototype.getDataview = function (mapConfigProvider, user, param ); }; +function getQueryRewriteData(mapConfig, dataviewDefinition, params) { + var sourceId = dataviewDefinition.source.id; // node.id + var layer = _.find(mapConfig.obj().layers, function(l) { + return l.options.source && (l.options.source.id === sourceId); + }); + var queryRewriteData = layer && layer.options.query_rewrite_data; + if (queryRewriteData && dataviewDefinition.node.type === 'source') { + queryRewriteData = _.extend({}, queryRewriteData, { + filters: dataviewDefinition.node.filters, + unfiltered_query: dataviewDefinition.sql.own_filter_on + }); + } + + if (params.bbox) { + if ( queryRewriteData ) { + var bbox_filter_definition = { + type: 'bbox', + options: { + column: 'the_geom_webmercator', + srid: 3857 + }, + params: { + bbox: params.bbox + } + }; + queryRewriteData = _.extend(queryRewriteData, { bbox_filter: bbox_filter_definition }); + } + } + + return queryRewriteData; +} + function getOverrideParams(params, ownFilter) { return _.reduce(_.pick(params, 'start', 'end', 'bins'), function castNumbers(overrides, val, k) { From b4fbe0b8cffd5fa3360de7a803f4659742643975 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Wed, 31 May 2017 12:58:35 -0400 Subject: [PATCH 4/9] No in advance var definition --- lib/cartodb/backends/dataview.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/cartodb/backends/dataview.js b/lib/cartodb/backends/dataview.js index 18ff2fb2..d4c40f79 100644 --- a/lib/cartodb/backends/dataview.js +++ b/lib/cartodb/backends/dataview.js @@ -43,9 +43,8 @@ DataviewBackend.prototype.getDataview = function (mapConfigProvider, user, param ownFilter = !!ownFilter; var query = (ownFilter) ? dataviewDefinition.sql.own_filter_on : dataviewDefinition.sql.own_filter_off; - var bboxFilter = null; if (params.bbox) { - bboxFilter = new BBoxFilter({column: 'the_geom_webmercator', srid: 3857}, {bbox: params.bbox}); + var bboxFilter = new BBoxFilter({column: 'the_geom_webmercator', srid: 3857}, {bbox: params.bbox}); query = bboxFilter.sql(query); } From 4b562e6768f48e5e2621ae36180ce95f48026f20 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Wed, 31 May 2017 13:00:37 -0400 Subject: [PATCH 5/9] Merge conditions --- lib/cartodb/backends/dataview.js | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/cartodb/backends/dataview.js b/lib/cartodb/backends/dataview.js index d4c40f79..a77ba585 100644 --- a/lib/cartodb/backends/dataview.js +++ b/lib/cartodb/backends/dataview.js @@ -76,20 +76,18 @@ function getQueryRewriteData(mapConfig, dataviewDefinition, params) { }); } - if (params.bbox) { - if ( queryRewriteData ) { - var bbox_filter_definition = { - type: 'bbox', - options: { - column: 'the_geom_webmercator', - srid: 3857 - }, - params: { - bbox: params.bbox - } - }; - queryRewriteData = _.extend(queryRewriteData, { bbox_filter: bbox_filter_definition }); - } + if (params.bbox && queryRewriteData) { + var bbox_filter_definition = { + type: 'bbox', + options: { + column: 'the_geom_webmercator', + srid: 3857 + }, + params: { + bbox: params.bbox + } + }; + queryRewriteData = _.extend(queryRewriteData, { bbox_filter: bbox_filter_definition }); } return queryRewriteData; From 849caf9b585c317b09a8a3b8f9c8c0f1b10c4b94 Mon Sep 17 00:00:00 2001 From: Mario de Frutos Date: Thu, 15 Jun 2017 18:30:13 +0200 Subject: [PATCH 6/9] Upgrade to cammshaft 0.55.4 (#702) --- NEWS.md | 6 ++++++ package.json | 4 ++-- yarn.lock | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/NEWS.md b/NEWS.md index 8953bd0c..b8208751 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,11 @@ # Changelog +## 3.9.2 +Released 2017-06-16 + +Announcements: + - Upgrades camshaft to [0.55.4](https://github.com/CartoDB/camshaft/releases/tag/0.55.4). + ## 3.9.1 Released 2017-06-06 diff --git a/package.json b/package.json index b13e49c7..8258d70e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "3.9.1", + "version": "3.9.2", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" @@ -20,7 +20,7 @@ ], "dependencies": { "body-parser": "~1.14.0", - "camshaft": "0.55.3", + "camshaft": "0.55.4", "cartodb-psql": "0.8.0", "cartodb-query-tables": "0.2.0", "cartodb-redis": "0.13.2", diff --git a/yarn.lock b/yarn.lock index f647ca8f..038778ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -198,9 +198,9 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" -camshaft@0.55.3: - version "0.55.3" - resolved "https://registry.yarnpkg.com/camshaft/-/camshaft-0.55.3.tgz#45fc7fa7b779b5ad19ad92cce16fca4e4cf5a3ec" +camshaft@0.55.4: + version "0.55.4" + resolved "https://registry.yarnpkg.com/camshaft/-/camshaft-0.55.4.tgz#9b83e2fd4adc0f471976d7b0ef319e28b8864adc" dependencies: async "^1.5.2" bunyan "1.8.1" From 2a366ec16fb6eecf805e7000643d27c85f38536f Mon Sep 17 00:00:00 2001 From: Mario de Frutos Date: Thu, 15 Jun 2017 18:32:28 +0200 Subject: [PATCH 7/9] Stubs next version --- NEWS.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index b8208751..b9a32405 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # Changelog +## 3.9.3 +Released 2017-mm-dd + + + ## 3.9.2 Released 2017-06-16 diff --git a/package.json b/package.json index 8258d70e..0176e5ff 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "3.9.2", + "version": "3.9.3", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From 8e95cf20c06c3ff0f9cf0af57d57718f81a6e3d5 Mon Sep 17 00:00:00 2001 From: Mario de Frutos Date: Fri, 16 Jun 2017 11:13:40 +0200 Subject: [PATCH 8/9] Upgrade camshaft to 0.55.5 (#703) --- NEWS.md | 5 +++-- package.json | 4 ++-- yarn.lock | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/NEWS.md b/NEWS.md index b9a32405..87ec5032 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,9 +1,10 @@ # Changelog ## 3.9.3 -Released 2017-mm-dd - +Released 2017-06-16 +Announcements: + - Upgrades camshaft to [0.55.5](https://github.com/CartoDB/camshaft/releases/tag/0.55.5). ## 3.9.2 Released 2017-06-16 diff --git a/package.json b/package.json index 0176e5ff..d034e5c6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "3.9.3", + "version": "3.9.4", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" @@ -20,7 +20,7 @@ ], "dependencies": { "body-parser": "~1.14.0", - "camshaft": "0.55.4", + "camshaft": "0.55.5", "cartodb-psql": "0.8.0", "cartodb-query-tables": "0.2.0", "cartodb-redis": "0.13.2", diff --git a/yarn.lock b/yarn.lock index 038778ce..3bae7d4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -198,9 +198,9 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" -camshaft@0.55.4: - version "0.55.4" - resolved "https://registry.yarnpkg.com/camshaft/-/camshaft-0.55.4.tgz#9b83e2fd4adc0f471976d7b0ef319e28b8864adc" +camshaft@0.55.5: + version "0.55.5" + resolved "https://registry.yarnpkg.com/camshaft/-/camshaft-0.55.5.tgz#6831f74022b06e12ddab8e00953c7cc859598ac4" dependencies: async "^1.5.2" bunyan "1.8.1" From e2b976d9d0b8f039cdacf5da9acc655edde9ad4a Mon Sep 17 00:00:00 2001 From: Mario de Frutos Date: Fri, 16 Jun 2017 11:16:17 +0200 Subject: [PATCH 9/9] Fix version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d034e5c6..c32459f0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "3.9.4", + "version": "3.9.3", "description": "A map tile server for CartoDB", "keywords": [ "cartodb"