Steps 2 and 3 can be swapped Also you can convert an existing database from one mode to another (although not, I suspect (I have not tried), in the middle of a transaction and if in the DB is wal mode and you are changing to journal then this would force a checkpoint). Paul www.sandersonforensics.com skype: r3scue193 twitter: @sandersonforens Tel +44 (0)1326 572786 http://sandersonforensics.com/forum/content.php?195-SQLite-Forensic-Toolkit -Forensic Toolkit for SQLite email from a work address for a fully functional demo licence
On 24 November 2016 at 12:10, Simon Slavin <slav...@bigfraud.org> wrote: > > On 24 Nov 2016, at 11:02am, Florian Weimer <fwei...@redhat.com> wrote: > >> The scenario is special in the follow way. There is no database server, all >> access goes directly to the database. Unprivileged users without write >> access to the RPM database are expected to run read-only queries against the >> database. Privileged users (basically, root) is expected to use locking to >> exclude concurrent writers. But read-only users should not be able to stop >> acquisition of a write lock. >> >> Is there a way to do this with SQLite? > > From the above you would want to use WAL mode. You can read about it here: > > <https://www.sqlite.org/wal.html> > > To put a database into WAL mode, > > 1) Open the database file. > 2) If the database file is newly created (i.e. blank) Put at least one schema > element into the file (e.g. create a TABLE). > 3) Issue the command "PRAGMA journal_mode=WAL" in any program. > 4) Close the database file normally. > > You can use the SQLite command-line tool to do the above if you wish, rather > than having to write your own software to do it. Once the database is set to > this mode, that information is saved in the database file. All connections > which open it will automatically know it must be handled in WAL mode. > >> One way that would work is to copy the database file after each modification >> to a read-only public view. But the database can be fairly large, so this >> doesn't look feasible until we have reflink support at the file system level. > > You should not have to worry about this level of things yourself. The SQLite > library handles this problem for you. > > Simon. > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users