Hi Ludo, On Fri, 09 Feb 2018 10:41:13 +0100 l...@gnu.org (Ludovic Courtès) wrote:
> Yes. Also, in practice, everyone’s going to make the same /api/* > requests (because there are only two clients, the Emacs and the Web UI, > and they typically always do the same requests), which in turn means > we’ll always get the same ‘db-get-builds’ call, possibly with just a > different limit, but it’s still the same statement. > So I think we should be fine. Right. > >> Indeed! Should we change ‘sqlite-finalize’ to a noop when called on a > >> cached statement? (Otherwise users would have to keep track of whether > >> or not a statement is cached.) > > > > Hmm maybe that's a good way. But its a little magic. > > Yes, but I think we have no other option: now that caching is built into > sqlite3.scm, it has to be properly handled by all of that module. For > the user, it should be a simple matter of choosing #:cache? #t > or #:cache? #f, and then (sqlite3) should just DTRT. Yeah, but then let's add sqlite-uncache or something that can be used to remove it from the cache after all. And make sqlite-finalize a noop if it's cached. Sounds good. So a savvy user could do sqlite-uncache and then sqlite-finalize and it would be gone.