Relax the locking requirements on BTree cursors. Any number of read and
write cursors can be open at the same time now, but a write cannot occur
as long as one or more read cursors are open.
Before this change, one or more read cursors could be open on a table,
or a single write cursor, but not both. Both policies have the same
desirable effect: they prevent writes to a table while a sequential scan
of that table is underway. But the new policy is a little less restrictive.
Both policies prevent an UPDATE from occurring inside a SELECT (which is
what we want) but the new policy allows a SELECT to occur inside an
UPDATE. (CVS 739)
FossilOrigin-Name:
8c2a0836980341faa479cfe6c716409e6057367d