On Wednesday 16 August 2006 12:55, Christian Nassau wrote:
> Ulrich Schöbel wrote:
> > I thought about that, but I didn't want to include
> > the selects into the locked phase, keeping lock
> > times as short as possible. Shouldn't it work
> > correctly with a deferred lock?
>
> I don't think so: imagine two processes that have succesfully carried
> out their selects (possible, since you've only got a shared lock at that
> point) and now want to proceed to the update:
>
>   SELECT(1)             SELECT(2)
>   <-- process 1 here    <-- process 2 here
>   UPDATE(1)             UPDATE(2)
>
> At this point SQLite cannot allow UPDATE(1) because it might potentially
> invalidate the result of SELECT(2) (and vice versa). So there's no sane
> way through and at least one transaction is forced to error out.
>
>
> ---------------------------------------------------------------------------
>-- To unsubscribe, send email to [EMAIL PROTECTED]
> ---------------------------------------------------------------------------
>--
Yes, sounds plausible. It's obviously the way to go.

Thanks again

Ulrich

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to