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); }); });