I've finally implemented the backup API and it works like a charm 
except on an important point.
The example given on the site clearly says:

   "If another thread writes to database connection pDb while this 
function is sleeping, then the backup database (database connection 
pFile) is automatically updated along with pDb. The backup process is 
continued after the xSleep() call returns as if nothing had happened. 
If the database file underlying connection pDb is written to by a 
different process or thread using a different database connection while 
this function is sleeping, then SQLite detects this within the next 
call made to sqlite3_backup_step() and restarts the backup from the 
beginning."

My experiments show beyond doubt that even when the writes to the 
source db occur using the same (pDb) connection, then the next 
backup_step always restarts the backup from the beginning.  Contrary to 
what is documented above, the backup connection is _not_ currently 
transparently updated (as per standard Windows dll build v3.6.22 
downloaded from the site).

It makes backups much more prone to endless restart in case of periodic 
modifications.

Is this documentation anticipation for a next-to-come feature or a 
genuine bug?


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to