From 2fbd9893bd4b8fc97b1383317adc750b69a791d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 2 Sep 2019 14:09:13 +0200 Subject: [PATCH] Going green: do not fail when source is empty --- lib/cartodb/backends/layer-stats/mapnik-layer-stats.js | 5 +++++ test/acceptance/stats/mapnik_stats_layergroup.js | 9 ++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/cartodb/backends/layer-stats/mapnik-layer-stats.js b/lib/cartodb/backends/layer-stats/mapnik-layer-stats.js index 7212eccb..3d229799 100644 --- a/lib/cartodb/backends/layer-stats/mapnik-layer-stats.js +++ b/lib/cartodb/backends/layer-stats/mapnik-layer-stats.js @@ -139,6 +139,11 @@ function _sample(ctx) { return queryUtils.queryPromise(ctx.dbConnection, sqlMaxMin) .then(maxMinRes => { const { min_id: min, id_span: span } = maxMinRes.rows[0]; + + if (!min || !span) { + return { rows: {} }; + } + const values = _getSampleValuesFromRange(min, span, limit); const sqlSample = _getSQL(ctx, sql => queryUtils.getSampleFromIdsQuery(sql, values, columns)); diff --git a/test/acceptance/stats/mapnik_stats_layergroup.js b/test/acceptance/stats/mapnik_stats_layergroup.js index 76d8770b..1f8ca067 100644 --- a/test/acceptance/stats/mapnik_stats_layergroup.js +++ b/test/acceptance/stats/mapnik_stats_layergroup.js @@ -596,8 +596,7 @@ describe(`[${desc}] Create mapnik layergroup`, function() { "metadata": { "sample": { "num_rows": 30 - }, - "sql": "select * from test_table_100 limit 0" + } } } } @@ -606,11 +605,7 @@ describe(`[${desc}] Create mapnik layergroup`, function() { testClient.getLayergroup(function(err, layergroup) { assert.ifError(err); - assert.equal(layergroup.metadata.layers[0].id, mapnikBasicLayerId(0)); - assert.equal(layergroup.metadata.layers[0].meta.stats.estimatedFeatureCount, 100); - assert(layergroup.metadata.layers[0].meta.stats.sample.length > 0); - const expectedCols = [ 'cartodb_id', 'value', 'the_geom', 'the_geom_webmercator' ].sort(); - assert.deepEqual(Object.keys(layergroup.metadata.layers[0].meta.stats.sample[0]).sort(), expectedCols); + assert.deepStrictEqual(layergroup.metadata.layers[0].meta.stats.sample, {}); testClient.drain(done); }); });