Changeset

13346:53c347043cb5

mod_storage_internal: Clear archive item count cache after experimental trim The previous count would be invalid at this point. Should be possible to math out how many items are left, but this is left as future work.
author Kim Alvefur <zash@zash.se>
date Sun, 26 Nov 2023 18:02:13 +0100
parents 13345:a74251a790ed
children 13347:5fe8a8e16b27
files plugins/mod_storage_internal.lua
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_storage_internal.lua	Sun Nov 26 17:41:38 2023 +0100
+++ b/plugins/mod_storage_internal.lua	Sun Nov 26 18:02:13 2023 +0100
@@ -348,6 +348,7 @@
 end
 
 function archive:trim(username, to_when)
+	local cache_key = jid_join(username, host, self.store);
 	local list, err = datamanager.list_open(username, host, self.store);
 	if not list then
 		if err == nil then
@@ -378,13 +379,14 @@
 	if i == 1 then return 0; end
 	local ok, err = datamanager.list_shift(username, host, self.store, i);
 	if not ok then return ok, err; end
+	archive_item_count_cache:set(cache_key, nil); -- TODO calculate how many items are left
 	return i-1;
 end
 
 function archive:delete(username, query)
 	local cache_key = jid_join(username, host, self.store);
 	if not query or next(query) == nil then
-		archive_item_count_cache:set(cache_key, nil);
+		archive_item_count_cache:set(cache_key, nil); -- nil because we don't check if the following succeeds
 		return datamanager.list_store(username, host, self.store, nil);
 	end