From e53122de7e7d86ecc5f19190fa878df66cc9c323 Mon Sep 17 00:00:00 2001 From: javi Date: Thu, 21 Mar 2013 11:39:55 +0100 Subject: [PATCH] fixed last_update in laytergroup response --- lib/cartodb/server_options.js | 11 +++++++---- test/acceptance/multilayer.js | 6 +++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/cartodb/server_options.js b/lib/cartodb/server_options.js index 3be61a58..24c0b4df 100644 --- a/lib/cartodb/server_options.js +++ b/lib/cartodb/server_options.js @@ -82,9 +82,8 @@ module.exports = function(){ }; me.findLastUpdated = function (username, api_key, tableNames, callback) { - - var sql = 'SELECT EXTRACT(EPOCH FROM max(updated_at)) FROM CDB_TableMetadata WHERE m.tabname::name = any ({' - + tableNames.join(',') + '})'; + var sql = 'SELECT EXTRACT(EPOCH FROM max(updated_at)) as max FROM CDB_TableMetadata m WHERE m.tabname::name = any (\'{' + + tableNames.join(',') + '}\')'; // call sql api me.sqlQuery(username, api_key, sql, function(err, rows){ @@ -93,7 +92,11 @@ module.exports = function(){ callback(new Error('could not find last updated timestamp: ' + msg)); return; } - var last_updated = rows[0].max; + // when the table has not updated_at means it hasn't been changed so a default last_updated is set + var last_updated = 0; + if(rows.length !== 0) { + last_updated = rows[0].max || 0; + } callback(null, last_updated); }); }; diff --git a/test/acceptance/multilayer.js b/test/acceptance/multilayer.js index 601983df..9691fff0 100644 --- a/test/acceptance/multilayer.js +++ b/test/acceptance/multilayer.js @@ -66,9 +66,9 @@ suite('multilayer', function() { + '$windshaft$)' }); expectedBody.last_updated = JSON.stringify({ - 'q': 'SELECT EXTRACT(EPOCH FROM max(updated_at)) ' - + 'FROM CDB_TableMetadata WHERE m.tabname::name = any ({' - + qTables + '})' + 'q': 'SELECT EXTRACT(EPOCH FROM max(updated_at)) as max ' + + 'FROM CDB_TableMetadata m WHERE m.tabname::name = any (\'{' + + qTables + '}\')' }); if ( expected_token ) { //assert.equal(parsedBody.layergroupid, expectedBody.layergroupid);