Comparison

plugins/mod_storage_internal.lua @ 8393:b6a7b83f8d87

mod_storage_internal: Allow truncating deletion at the beginning or end of an archive store
author Kim Alvefur <zash@zash.se>
date Thu, 09 Nov 2017 01:42:01 +0100
parent 8310:1759491b53db
child 8394:4892c22403d5
comparison
equal deleted inserted replaced
8392:ff8e122526f4 8393:b6a7b83f8d87
189 if query["end"] then 189 if query["end"] then
190 items:filter(function (item) 190 items:filter(function (item)
191 return item.when > query["end"]; 191 return item.when > query["end"];
192 end); 192 end);
193 end 193 end
194 if query.truncate then
195 if query.reverse then
196 -- Before: { 1, 2, 3, 4, 5, }
197 -- After: { 1, 2, 3 }
198 while #items > query.truncate do
199 table.remove(items);
200 end
201 else
202 -- Before: { 1, 2, 3, 4, 5, }
203 -- After: { 3, 4, 5 }
204 while #items > query.truncate do
205 table.remove(items, 1);
206 end
207 end
208 end
194 end 209 end
195 local count = count_before - #items; 210 local count = count_before - #items;
196 local ok, err = datamanager.list_store(username, host, self.store, items); 211 local ok, err = datamanager.list_store(username, host, self.store, items);
197 if not ok then return ok, err; end 212 if not ok then return ok, err; end
198 return count; 213 return count;