From: Matt Joiner Date: Fri, 23 Oct 2020 00:03:42 +0000 (+1100) Subject: sqlite storage: Working recursive CTE for excess data X-Git-Tag: v1.19.0~66 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=7fa8c604abb8d1301d37cd7c8c79a0b3b40ff3e5;p=btrtrc.git sqlite storage: Working recursive CTE for excess data --- diff --git a/storage/sqlite/sql b/storage/sqlite/sql new file mode 100644 index 00000000..a6f4bdce --- /dev/null +++ b/storage/sqlite/sql @@ -0,0 +1,11 @@ +with recursive excess( + usage_with, + last_used, + blob_rowid, + data_length +) as ( + select * from (select (select sum(length(data)) from blob), last_used, rowid, length(data) from blob order by last_used, rowid limit 1) + union all + select usage_with-data_length, blob.last_used, blob.rowid, length(data) from excess join blob + on blob.rowid=(select rowid from blob where (last_used, rowid) > (excess.last_used, blob_rowid)) +) select * from excess limit 10;