Hi Keith,

   Your observation is correct. I did not know that when selecting a table a
shared lock is aquired by the reader and writes are locked out until the
last row is read or stmt is finialized. This is true even for in-memory
database.

   One cure for this problem is to create a temorary table based on the
result set of the select statement. Then this temp table can be read without
locking out writers from the original table.

CREATE TABLE t1select AS SELECT * FROM t1;

Thanks,
-Alex



On Sun, Jun 1, 2008 at 5:37 PM, Keith Goodman <[EMAIL PROTECTED]> wrote:

>  On Sun, Jun 1, 2008 at 2:19 PM, Alex Katebi <[EMAIL PROTECTED]>
> wrote:
> > Hi All,
> >
> >   I have a in-memory database with some tables. Each table has a single
> > record writer and multiple readers.
> > Readers and writes prepare their own sqlite3_stmt for the db. Everyone
> > operates within a single thread.
> > What happens if a reader wants to read a record that has been deleted by
> the
> > writer?
>
> I must be too new to understand the question. But if the record is
> deleted then you can't select it. Are you worried about a race
> condition? I think sqlite takes care of those with locks.
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to