aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/mod_storage_internal.lua5
-rw-r--r--plugins/mod_storage_memory.lua5
-rw-r--r--plugins/mod_storage_sql.lua5
3 files changed, 12 insertions, 3 deletions
diff --git a/plugins/mod_storage_internal.lua b/plugins/mod_storage_internal.lua
index 28caa071..1ee860d6 100644
--- a/plugins/mod_storage_internal.lua
+++ b/plugins/mod_storage_internal.lua
@@ -218,11 +218,14 @@ function archive:summary(username, query)
local iter, err = self:find(username, query)
if not iter then return iter, err; end
local counts = {};
- for _, _, _, with in iter do
+ local latest = {};
+ for _, _, when, with in iter do
counts[with] = (counts[with] or 0) + 1;
+ latest[with] = when;
end
return {
counts = counts;
+ latest = latest;
};
end
diff --git a/plugins/mod_storage_memory.lua b/plugins/mod_storage_memory.lua
index cac9bc40..6a04e003 100644
--- a/plugins/mod_storage_memory.lua
+++ b/plugins/mod_storage_memory.lua
@@ -171,11 +171,14 @@ function archive_store:summary(username, query)
local iter, err = self:find(username, query)
if not iter then return iter, err; end
local counts = {};
- for _, _, _, with in iter do
+ local latest = {};
+ for _, _, when, with in iter do
counts[with] = (counts[with] or 0) + 1;
+ latest[with] = when;
end
return {
counts = counts;
+ latest = latest;
};
end
diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua
index d6779946..dc960cad 100644
--- a/plugins/mod_storage_sql.lua
+++ b/plugins/mod_storage_sql.lua
@@ -424,7 +424,7 @@ function archive_store:summary(username, query)
local user,store = username,self.store;
local ok, result = engine:transaction(function()
local sql_query = [[
- SELECT DISTINCT "with", COUNT(*)
+ SELECT DISTINCT "with", COUNT(*), MAX("when")
FROM "prosodyarchive"
WHERE %s
GROUP BY "with"
@@ -447,12 +447,15 @@ function archive_store:summary(username, query)
end);
if not ok then return ok, result end
local counts = {};
+ local latest = {};
for row in result do
local with, count = row[1], row[2];
counts[with] = count;
+ latest[with] = row[3];
end
return {
counts = counts;
+ latest = latest;
};
end