Branko Čibej <br...@e-reka.si> writes:

> The restriction that you may not invoke a callback from within a sqlite
> transaction remains. That's what the temporary results tables are for --
> they live outside transactions on the main wc-db.

I don't understand the temporary table approach.  Taking the
temp__node_props_cache table as an example: it gets populated by a
transaction and lives beyond that transaction.  The table then gets
queried by a second transaction and the callbacks are made while that
second transaction is in progress.  So callbacks are still being invoked
from within a transaction.

As far as I can see using a temporary table has made the overall "read
properties" operation into one that modifies the database, to create the
temporary table. I guess that by the time the callbacks are made the
database write-lock has been dropped, but there would have been no
write-lock if the temporary table were not used.

-- 
Philip

Reply via email to