From 1a7fd9bf3170aba93d8a3e02715789df2679abe7 Mon Sep 17 00:00:00 2001 From: Mario de Frutos Date: Thu, 11 May 2017 12:47:35 +0200 Subject: [PATCH 1/6] Changed stats name from featureCount to estimatedFeatureCount --- .../stats/mapnik_stats_layergroup.js | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/test/acceptance/stats/mapnik_stats_layergroup.js b/test/acceptance/stats/mapnik_stats_layergroup.js index 1feb477e..8bee7fee 100644 --- a/test/acceptance/stats/mapnik_stats_layergroup.js +++ b/test/acceptance/stats/mapnik_stats_layergroup.js @@ -95,7 +95,7 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats[0].featureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); testClient.drain(done); }); }); @@ -112,9 +112,9 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats[0].featureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); assert.equal(layergroup.metadata.layers[1].id, mapnikBasicLayerId(1)); - assert.equal(layergroup.metadata.layers[1].meta.stats[0].featureCount, 5); + assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 5); testClient.drain(done); }); }); @@ -132,11 +132,11 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats[0].featureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); assert.equal(layergroup.metadata.layers[1].id, mapnikBasicLayerId(1)); - assert.equal(layergroup.metadata.layers[1].meta.stats[0].featureCount, 5); + assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 5); assert.equal(layergroup.metadata.layers[2].id, mapnikBasicLayerId(2)); - assert.equal(layergroup.metadata.layers[2].meta.stats[0].featureCount, 5); + assert.equal(layergroup.metadata.layers[2].meta.stats.estimatedFeatureCount, 5); testClient.drain(done); }); }); @@ -152,8 +152,7 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats[0].featureCount, 5); - assert.equal(layergroup.metadata.layers[0].meta.stats[1].featureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 10); testClient.drain(done); }); }); @@ -170,11 +169,9 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats[0].featureCount, 5); - assert.equal(layergroup.metadata.layers[0].meta.stats[1].featureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 10); assert.equal(layergroup.metadata.layers[1].id, mapnikBasicLayerId(1)); - assert.equal(layergroup.metadata.layers[1].meta.stats[0].featureCount, 5); - assert.equal(layergroup.metadata.layers[1].meta.stats[1].featureCount, 5); + assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 10); testClient.drain(done); }); }); @@ -191,12 +188,10 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats[0].featureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); assert.ok(!layergroup.metadata.layers[0].meta.stats[1]); assert.equal(layergroup.metadata.layers[1].id, mapnikBasicLayerId(1)); - assert.equal(layergroup.metadata.layers[1].meta.stats[0].featureCount, 5); - assert.equal(layergroup.metadata.layers[1].meta.stats[1].featureCount, 5); - assert.ok(!layergroup.metadata.layers[1].meta.stats[2]); + assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 10); assert.ok(!layergroup.metadata.layers[2]); testClient.drain(done); }); @@ -215,7 +210,7 @@ describe('Create mapnik layergroup', function() { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); assert.equal(layergroup.metadata.layers[0].type, 'mapnik'); - assert.equal(layergroup.metadata.layers[0].meta.stats[0].featureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); assert.equal(layergroup.metadata.layers[1].id, typeLayerId('http', 0)); assert.equal(layergroup.metadata.layers[1].type, 'http'); testClient.drain(done); @@ -236,7 +231,7 @@ describe('Create mapnik layergroup', function() { assert.equal(layergroup.metadata.layers[0].id, typeLayerId('http', 0)); assert.equal(layergroup.metadata.layers[0].type, 'http'); assert.ok(!layergroup.metadata.layers[0].meta.cartocss); - assert.equal(layergroup.metadata.layers[1].meta.stats[0].featureCount, 5); + assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 5); assert.equal(layergroup.metadata.layers[1].id, mapnikBasicLayerId(0)); assert.equal(layergroup.metadata.layers[1].type, 'mapnik'); assert.equal(layergroup.metadata.layers[1].meta.cartocss, cartocss); @@ -256,7 +251,7 @@ describe('Create mapnik layergroup', function() { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); // we don't care about stats here as is an aliased column - assert.ok(layergroup.metadata.layers[0].meta.stats[0].hasOwnProperty('featureCount')); + assert.ok(layergroup.metadata.layers[0].meta.stats.hasOwnProperty('estimatedFeatureCount')); testClient.drain(done); }); }); From 522c86e6f2c3f59f09da0c7e56013d0f660597d6 Mon Sep 17 00:00:00 2001 From: Mario de Frutos Date: Thu, 11 May 2017 14:26:00 +0200 Subject: [PATCH 2/6] Change from branch to commits for staging dependencies --- package.json | 4 ++-- yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index b14b07d3..217812fc 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,8 @@ "step-profiler": "~0.3.0", "turbo-carto": "0.19.0", "underscore": "~1.6.0", - "windshaft": "cartodb/windshaft#548-vector-buffer-size", - "windshaft-stats": "0.0.1", + "windshaft": "cartodb/windshaft#f91c03e888ab774af6443f04970f6a74ff12a1ef", + "windshaft-stats": "cartodb/windshaft-stats#0d269b812b7665e9b2fd3fee4deaa37fb7c80f95", "yargs": "~5.0.0" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index e8a320d2..8d02a27e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2261,15 +2261,15 @@ window-size@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" -windshaft-stats@0.0.1: +windshaft-stats@cartodb/windshaft-stats#0d269b812b7665e9b2fd3fee4deaa37fb7c80f95: version "0.0.1" - resolved "https://registry.yarnpkg.com/windshaft-stats/-/windshaft-stats-0.0.1.tgz#5af57a2ea71c67cdf6d8628941c88b826100d7cb" + resolved "https://codeload.github.com/cartodb/windshaft-stats/tar.gz/0d269b812b7665e9b2fd3fee4deaa37fb7c80f95" dependencies: debug "~2.2.0" -windshaft@cartodb/windshaft#548-vector-buffer-size: +windshaft@cartodb/windshaft#f91c03e888ab774af6443f04970f6a74ff12a1ef: version "3.1.1" - resolved "https://codeload.github.com/cartodb/windshaft/tar.gz/09493bfff94371989532bef6dff734e4cd5cf058" + resolved "https://codeload.github.com/cartodb/windshaft/tar.gz/f91c03e888ab774af6443f04970f6a74ff12a1ef" dependencies: abaculus cartodb/abaculus#2.0.3-cdb1 canvas cartodb/node-canvas#1.6.2-cdb2 From 59585b5cd9fca14d21cdbdae96557c4272f00e2b Mon Sep 17 00:00:00 2001 From: Mario de Frutos Date: Fri, 12 May 2017 12:50:57 +0200 Subject: [PATCH 3/6] We leave only one feature flag for stats --- lib/cartodb/backends/stats.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/cartodb/backends/stats.js b/lib/cartodb/backends/stats.js index 374de6ff..489c1740 100644 --- a/lib/cartodb/backends/stats.js +++ b/lib/cartodb/backends/stats.js @@ -7,9 +7,8 @@ module.exports = StatsBackend; StatsBackend.prototype.getStats = function(mapConfig, params, dbConnection, callback) { var enabledFeatures = global.environment.enabledFeatures; - var layerMetadataEnabled = enabledFeatures ? enabledFeatures.layerMetadata : false; var layerStatsEnabled = enabledFeatures ? enabledFeatures.layerStats: false; - if (layerMetadataEnabled && layerStatsEnabled) { + if (layerStatsEnabled) { var layerStats = windshaftStats(); layerStats.getStats(mapConfig, params, dbConnection, callback); } else { From 5417933eccdfac42e6d9fc4770c3268da966439b Mon Sep 17 00:00:00 2001 From: Mario de Frutos Date: Fri, 12 May 2017 12:51:45 +0200 Subject: [PATCH 4/6] Change to tests for layer stats because now uses CDB_EstimateRowCount fuction --- .../stats/mapnik_stats_layergroup.js | 30 +++++++++---------- test/support/prepare_db.sh | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/test/acceptance/stats/mapnik_stats_layergroup.js b/test/acceptance/stats/mapnik_stats_layergroup.js index 8bee7fee..77288d51 100644 --- a/test/acceptance/stats/mapnik_stats_layergroup.js +++ b/test/acceptance/stats/mapnik_stats_layergroup.js @@ -22,7 +22,7 @@ describe('Create mapnik layergroup', function() { var mapnikLayer1 = { type: 'mapnik', options: { - sql: 'select * from test_table limit 2', + sql: 'select * from test_table limit 1', cartocss_version: cartocssVersion, cartocss: cartocss } @@ -40,7 +40,7 @@ describe('Create mapnik layergroup', function() { var mapnikLayer3 = { type: 'mapnik', options: { - sql: 'select * from test_table_3 limit 2', + sql: 'select * from test_table_3 limit 3', cartocss_version: cartocssVersion, cartocss: cartocss } @@ -95,7 +95,7 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 1); testClient.drain(done); }); }); @@ -112,9 +112,9 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 1); assert.equal(layergroup.metadata.layers[1].id, mapnikBasicLayerId(1)); - assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 5); + assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 2); testClient.drain(done); }); }); @@ -132,11 +132,11 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 1); assert.equal(layergroup.metadata.layers[1].id, mapnikBasicLayerId(1)); - assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 5); + assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 2); assert.equal(layergroup.metadata.layers[2].id, mapnikBasicLayerId(2)); - assert.equal(layergroup.metadata.layers[2].meta.stats.estimatedFeatureCount, 5); + assert.equal(layergroup.metadata.layers[2].meta.stats.estimatedFeatureCount, 3); testClient.drain(done); }); }); @@ -152,7 +152,7 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 10); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); testClient.drain(done); }); }); @@ -169,9 +169,9 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 10); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); assert.equal(layergroup.metadata.layers[1].id, mapnikBasicLayerId(1)); - assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 10); + assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 5); testClient.drain(done); }); }); @@ -188,10 +188,10 @@ describe('Create mapnik layergroup', function() { testClient.getLayergroup(function(err, layergroup) { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 3); assert.ok(!layergroup.metadata.layers[0].meta.stats[1]); assert.equal(layergroup.metadata.layers[1].id, mapnikBasicLayerId(1)); - assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 10); + assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 5); assert.ok(!layergroup.metadata.layers[2]); testClient.drain(done); }); @@ -210,7 +210,7 @@ describe('Create mapnik layergroup', function() { assert.ok(!err); assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); assert.equal(layergroup.metadata.layers[0].type, 'mapnik'); - assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 5); + assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 1); assert.equal(layergroup.metadata.layers[1].id, typeLayerId('http', 0)); assert.equal(layergroup.metadata.layers[1].type, 'http'); testClient.drain(done); @@ -231,7 +231,7 @@ describe('Create mapnik layergroup', function() { assert.equal(layergroup.metadata.layers[0].id, typeLayerId('http', 0)); assert.equal(layergroup.metadata.layers[0].type, 'http'); assert.ok(!layergroup.metadata.layers[0].meta.cartocss); - assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 5); + assert.equal(layergroup.metadata.layers[1].meta.stats.estimatedFeatureCount, 1); assert.equal(layergroup.metadata.layers[1].id, mapnikBasicLayerId(0)); assert.equal(layergroup.metadata.layers[1].type, 'mapnik'); assert.equal(layergroup.metadata.layers[1].meta.cartocss, cartocss); diff --git a/test/support/prepare_db.sh b/test/support/prepare_db.sh index 4fbf4b7a..dcf1cba7 100755 --- a/test/support/prepare_db.sh +++ b/test/support/prepare_db.sh @@ -76,7 +76,7 @@ if test x"$PREPARE_PGSQL" = xyes; then createdb -Ttemplate_postgis -EUTF8 "${TEST_DB}" || die "Could not create test database" LOCAL_SQL_SCRIPTS='analysis_catalog windshaft.test gadm4 ported/populated_places_simple_reduced cdb_analysis_check cdb_invalidate_varnish' - REMOTE_SQL_SCRIPTS='CDB_QueryStatements CDB_QueryTables CDB_CartodbfyTable CDB_TableMetadata CDB_ForeignTable CDB_UserTables CDB_ColumnNames CDB_ZoomFromScale CDB_OverviewsSupport CDB_Overviews CDB_QuantileBins CDB_JenksBins CDB_HeadsTailsBins CDB_EqualIntervalBins CDB_Hexagon CDB_XYZ' + REMOTE_SQL_SCRIPTS='CDB_QueryStatements CDB_QueryTables CDB_CartodbfyTable CDB_TableMetadata CDB_ForeignTable CDB_UserTables CDB_ColumnNames CDB_ZoomFromScale CDB_OverviewsSupport CDB_Overviews CDB_QuantileBins CDB_JenksBins CDB_HeadsTailsBins CDB_EqualIntervalBins CDB_Hexagon CDB_XYZ CDB_EstimateRowCount' CURL_ARGS="" for i in ${REMOTE_SQL_SCRIPTS} From 5969c99e8a5168f2afb0c6f2126c381562ca70a2 Mon Sep 17 00:00:00 2001 From: Mario de Frutos Date: Fri, 12 May 2017 16:39:54 +0200 Subject: [PATCH 5/6] Removed not used parameters for layer stats --- lib/cartodb/backends/stats.js | 6 +++--- lib/cartodb/controllers/map.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/cartodb/backends/stats.js b/lib/cartodb/backends/stats.js index 489c1740..eb800e3c 100644 --- a/lib/cartodb/backends/stats.js +++ b/lib/cartodb/backends/stats.js @@ -5,13 +5,13 @@ function StatsBackend() { module.exports = StatsBackend; -StatsBackend.prototype.getStats = function(mapConfig, params, dbConnection, callback) { +StatsBackend.prototype.getStats = function(mapConfig, dbConnection, callback) { var enabledFeatures = global.environment.enabledFeatures; var layerStatsEnabled = enabledFeatures ? enabledFeatures.layerStats: false; if (layerStatsEnabled) { var layerStats = windshaftStats(); - layerStats.getStats(mapConfig, params, dbConnection, callback); + layerStats.getStats(mapConfig, dbConnection, callback); } else { - callback(null, null); + return callback(null, null); } }; diff --git a/lib/cartodb/controllers/map.js b/lib/cartodb/controllers/map.js index 353b459d..cd5bbed3 100644 --- a/lib/cartodb/controllers/map.js +++ b/lib/cartodb/controllers/map.js @@ -367,7 +367,7 @@ function(req, res, mapconfig, layergroup, analysesResults, rendererParams, callb function fetchLayersStats(err) { assert.ifError(err); var next = this; - self.statsBackend.getStats(mapconfig, rendererParams, dbConnection, function(err, layersStats) { + self.statsBackend.getStats(mapconfig, dbConnection, function(err, layersStats) { if (err) { return next(err); } From 422867762b236ef1eccb80f5da5694d4d625ba9f Mon Sep 17 00:00:00 2001 From: Mario de Frutos Date: Fri, 12 May 2017 17:14:07 +0200 Subject: [PATCH 6/6] package.json for staging --- package.json | 4 ++-- yarn.lock | 37 +++++++++++++++++++++++++++++++------ 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 217812fc..de4f6259 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,8 @@ "step-profiler": "~0.3.0", "turbo-carto": "0.19.0", "underscore": "~1.6.0", - "windshaft": "cartodb/windshaft#f91c03e888ab774af6443f04970f6a74ff12a1ef", - "windshaft-stats": "cartodb/windshaft-stats#0d269b812b7665e9b2fd3fee4deaa37fb7c80f95", + "windshaft": "cartodb/windshaft#0675de5edcb2a24179dcd6224c3f309b68f17bbd", + "windshaft-stats": "cartodb/windshaft-stats#16a973ba9addf88312ba92047e41108be2c3434f", "yargs": "~5.0.0" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 8d02a27e..3092b78f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -254,6 +254,15 @@ cartodb-psql@0.7.1, cartodb-psql@~0.7.1: step "~0.0.6" underscore "~1.6.0" +cartodb-psql@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cartodb-psql/-/cartodb-psql-0.8.0.tgz#d3811f706dae2c3bc82365c5d25af13c4235ba37" + dependencies: + debug "~2.2.0" + pg cartodb/node-postgres#6.1.2-cdb1 + step "~0.0.6" + underscore "~1.6.0" + cartodb-query-tables@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/cartodb-query-tables/-/cartodb-query-tables-0.2.0.tgz#b4d672accde04da5b890a5d56a87b761fa7eec44" @@ -402,6 +411,10 @@ d3-queue@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/d3-queue/-/d3-queue-2.0.3.tgz#07fbda3acae5358a9c5299aaf880adf0953ed2c2" +d3-queue@~3.0.5: + version "3.0.7" + resolved "https://registry.yarnpkg.com/d3-queue/-/d3-queue-3.0.7.tgz#c93a2e54b417c0959129d7d73f6cf7d4292e7618" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -430,6 +443,12 @@ debug@^1.0.4: dependencies: ms "0.6.2" +debug@~2.6.6: + version "2.6.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a" + dependencies: + ms "0.7.3" + decamelize@^1.0.0, decamelize@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1293,6 +1312,10 @@ ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" +ms@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" + mv@~2: version "2.1.1" resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" @@ -1509,7 +1532,7 @@ pg-types@1.*: postgres-date "~1.0.0" postgres-interval "~1.0.0" -pg@cartodb/node-postgres#6.1.2-cdb1: +pg@cartodb/node-postgres#6.1.2-cdb1, "pg@github:cartodb/node-postgres#6.1.2-cdb1": version "6.1.2" resolved "https://codeload.github.com/cartodb/node-postgres/tar.gz/3c81aea432ce58d20a795786c58bbb14f68f9689" dependencies: @@ -2261,15 +2284,17 @@ window-size@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" -windshaft-stats@cartodb/windshaft-stats#0d269b812b7665e9b2fd3fee4deaa37fb7c80f95: +windshaft-stats@cartodb/windshaft-stats#16a973ba9addf88312ba92047e41108be2c3434f: version "0.0.1" - resolved "https://codeload.github.com/cartodb/windshaft-stats/tar.gz/0d269b812b7665e9b2fd3fee4deaa37fb7c80f95" + resolved "https://codeload.github.com/cartodb/windshaft-stats/tar.gz/16a973ba9addf88312ba92047e41108be2c3434f" dependencies: - debug "~2.2.0" + cartodb-psql "~0.8.0" + d3-queue "~3.0.5" + debug "~2.6.6" -windshaft@cartodb/windshaft#f91c03e888ab774af6443f04970f6a74ff12a1ef: +windshaft@cartodb/windshaft#0675de5edcb2a24179dcd6224c3f309b68f17bbd: version "3.1.1" - resolved "https://codeload.github.com/cartodb/windshaft/tar.gz/f91c03e888ab774af6443f04970f6a74ff12a1ef" + resolved "https://codeload.github.com/cartodb/windshaft/tar.gz/0675de5edcb2a24179dcd6224c3f309b68f17bbd" dependencies: abaculus cartodb/abaculus#2.0.3-cdb1 canvas cartodb/node-canvas#1.6.2-cdb2