Martin Alfredsson <[EMAIL PROTECTED]> wrote:
> Snipped this from http://www.sqlite.org/cvstrac/wiki?p=DatabaseIsLocked
>
> >Trying to write to a table while a SELECT is active on that same table.
> >As of check-in [3355] <http://www.sqlite.org/cvstrac/chngview?cn=3355>
> (2006-08-16 after version 3.3.7) this is now allowed.
>
> Is this true, will it be included in 3.3.8 ?
> Any time estimate when release with this is released ?
>
Hold on there! Check-in [3355] does *not* permit writing to views.
Check-in [3355] has to do with what operations you are allowed to
do on the database while a SELECT is pending. In other words, it
has to do with using an sqlite3_exec() that is issued from within the
callback of another sqlite3_exec(). Or what changes you can make
using one prepared statement while a second prepared statement
still has not returned SQLITE_DONE or been finalized.
It has always been the case that while reading one table in SQLite,
you could simulatenously write to a separate table using the same
database connection. But you could not, formerly, write to the
same table you were reading.
You could not, for example, do this (in TCL):
db eval {SELECT rowid, * FROM table1} {
db eval {UPDATE table1 SET x=y+2 WHERE rowid=$rowid}
}
Check-in [3355] relaxes this restriction. After check-in [3355],
you are allowed to modify a table that is being used in a SELECT
statement using a parallel statement or within the callback from
sqlite3_exec().
--
D. Richard Hipp <[EMAIL PROTECTED]>
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------