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.
> >> 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