I forgot to mention that we're using SQLite 3.5.9. Arun
Arun Bhalla wrote: > Hi there, > > We are performing backups of the SQLite DB file by opening an IMMEDIATE > transaction and then copying the file. (cf. > <http://www.mail-archive.com/sqlite-users@sqlite.org/msg19265.html>, > <http://www.mail-archive.com/sqlite-users@sqlite.org/msg19311.html>) > > On Windows we use CopyFileA (within the same process that opened the DB > transaction) to perform the copy. We've noticed that copies fail on > Windows for databases larger than 1 GB in size. We suspect this is due > to SQLite locking bytes around the 1GB offset whenever a transaction is > opened on Windows. This may be due to the fact that the locking file > handle gets exclusive access; other file handles opened by the same > process also cannot access the same locked region. (cf. > <http://msdn.microsoft.com/en-us/library/aa365202(VS.85).aspx>) > > What we're thinking of doing is pushing the PENDING_BYTE from the first > byte past the 1GB boundary to somewhere deep in the 64-bit range (such > as perhaps the 1TB boundary). We would have to update many lock and > unlock calls in os_win.c to do so, mainly adding a high-order 32-bit > number to the lock offset. Is anyone aware of any issues with doing so, > either with SQLite or Windows? Would we have to change anything else in > SQLite other than in os_win.c? We don't use anything older than Windows > 2000, so older systems shouldn't be a concern for us. > > Thanks, > Arun > _______________________________________________ > 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