···146146 {sql| CREATE TABLE IF NOT EXISTS records (
147147 path TEXT NOT NULL PRIMARY KEY,
148148 cid TEXT NOT NULL,
149149- data BLOB NOT NULL,
150150- since TEXT NOT NULL
149149+ since TEXT NOT NULL,
150150+ data BLOB NOT NULL
151151 );
152152 CREATE INDEX IF NOT EXISTS records_cid_idx ON records (cid);
153153 |sql}]
···166166 let list_records =
167167 [%rapper
168168 get_many
169169- {sql| SELECT @string{path}, @CID{cid}, @Blob{data}, @string{since} FROM records WHERE path LIKE %string{collection}/% |sql}]
169169+ {sql| SELECT @string{path}, @CID{cid}, @Blob{data}, @string{since} FROM records
170170+ WHERE path LIKE %string{collection}/%
171171+ ORDER BY since DESC LIMIT %int{limit} OFFSET %int{offset}
172172+ |sql}]
170173171174 let put_record =
172175 [%rapper
···345348 {path; cid; value= Lex.of_cbor data; since} )
346349 >>= Lwt.return
347350348348-let list_records conn collection : record list Lwt.t =
349349- Queries.list_records ~collection conn
351351+let list_records conn ?(limit = 100) ?(offset = 0) collection :
352352+ record list Lwt.t =
353353+ Queries.list_records ~collection ~limit ~offset conn
350354 >$! List.map (fun (path, cid, data, since) ->
351355 {path; cid; value= Lex.of_cbor data; since} )
352356 >>= Lwt.return