]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Additional documentation on the new VFS interface. No changes to code.
authordrh <drh@noemail.net>
Fri, 21 Jul 2017 14:49:58 +0000 (14:49 +0000)
committerdrh <drh@noemail.net>
Fri, 21 Jul 2017 14:49:58 +0000 (14:49 +0000)
FossilOrigin-Name: 83077ec8b5804e6c709fa4f0b50afec9eae6d5b603cc4c3e8a408ed6b2bfaf28

manifest
manifest.uuid
src/sqlite.h.in

index 894b3ba0e94b25b8d460f37c228c62825ade9771..2d98b37e4a6f8d38a95acb086b6e732fcba09ea5 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\sdocumentation\stext\sfor\sthe\snew\sVFS\sinterfaces\sused\sby\sbatch-atomic\nwrites.
-D 2017-07-20T21:18:49.851
+C Additional\sdocumentation\son\sthe\snew\sVFS\sinterface.\s\sNo\schanges\sto\scode.
+D 2017-07-21T14:49:58.073
 F Makefile.in d9873c9925917cca9990ee24be17eb9613a668012c85a343aef7e5536ae266e8
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 02b469e9dcd5b7ee63fc1fb05babc174260ee4cfa4e0ef2e48c3c6801567a016
@@ -455,7 +455,7 @@ F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
 F src/select.c c6bf96a7f9d7d68f929de84738c599a30d0a725ab0b54420e70545743cd5ee7b
 F src/shell.c bd6a37cbe8bf64ef6a6a74fdc50f067d3148149b4ce2b4d03154663e66ded55f
 F src/shell.c.in b5725acacba95ccefa57b6d068f710e29ba8239c3aa704628a1902a1f729c175
-F src/sqlite.h.in 6178cd914ca32535015ff57df78438f87a0f16609e9e47b1bc5f373ffe892686
+F src/sqlite.h.in c75b4de3d60133036ccfbbcf6afbb5d8ce492a902ff3e7cc5c3ef3ab28db0ee9
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 967154985ed2ae62f90d9029bb5b5071793d847f1696a2ebe9e8cc0b042ae60b
 F src/sqliteInt.h 437217b5d22e9c8f3c53f90324915a535f649262b1281eaabed4e31653576b51
@@ -1637,7 +1637,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P f2c6b5845028ef25dcd17e23e11b93c9f7296c26c7a21718fdae8f4b48c4e1da 929bc46b8be0111a7b6e3d6fe129f0cad869c6a551bd47569c122742597b9f1c
-R fd0dcdf56ec4d6602162b3b1d1594e27
+P 5e944eea5a32cb4d27a2d5ae283b9ce6fe08c1bc584256e8e8c78583c415eb2a
+R f393cb3c25ccb9e4336ceb20b0531651
 U drh
-Z 9b7e24481f0b473c93f9af036e52968c
+Z be7280aa4eb1e26b2cd69105d776b2e5
index 2096e2df55026c0698016bd083e9f19ffe588cce..190e2660c84271099c7bbf86b15d09f064a69ee6 100644 (file)
@@ -1 +1 @@
-5e944eea5a32cb4d27a2d5ae283b9ce6fe08c1bc584256e8e8c78583c415eb2a
\ No newline at end of file
+83077ec8b5804e6c709fa4f0b50afec9eae6d5b603cc4c3e8a408ed6b2bfaf28
\ No newline at end of file
index a24863080994387b8199a8affabe799d374876c1..92f5414c1dcdc253f7d500f7036cfeaae45a71dc 100644 (file)
@@ -582,9 +582,9 @@ int sqlite3_exec(
 ** elevated privileges.
 **
 ** The SQLITE_IOCAP_BATCH_ATOMIC property means that the underlying
-** filesystem can multiple write operations atomically when those
-** write operations are bracketed by [SQLITE_IOCAP_BEGIN_ATOMIC_WRITE] and
-** [SQLITE_IOCAP_ATOMIC_WRITE_COMMIT].
+** filesystem supports doing multiple write operations atomically when those
+** write operations are bracketed by [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] and
+** [SQLITE_FCNTL_ATOMIC_WRITE_COMMIT].
 */
 #define SQLITE_IOCAP_ATOMIC                 0x00000001
 #define SQLITE_IOCAP_ATOMIC512              0x00000002
@@ -1021,22 +1021,38 @@ struct sqlite3_io_methods {
 ** this opcode.  
 **
 ** <li>[[SQLITE_FCNTL_BEGIN_ATOMIC_WRITE]]
-** If the [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] opcode returns SQLITE_OK, that
+** If the [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] opcode returns SQLITE_OK, then
+** the file descriptor is placed in "batch write mode", which
 ** means all subsequent write operations will be deferred and done
 ** atomically at the next [SQLITE_FCNTL_COMMIT_ATOMIC_WRITE].  Systems
 ** that do not support batch atomic writes will return SQLITE_NOTFOUND.
+** ^Following a successful SQLITE_FCNTL_BEGIN_ATOMIC_WRITE and prior to
+** the closing [SQLITE_FCNTL_COMMIT_ATOMIC_WRITE] or
+** [SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE], SQLite will make
+** no VFS interface calls on the same [sqlite3_file] file descriptor
+** except for calls to the xWrite method and the xFileControl method
+** with [SQLITE_FCNTL_SIZE_HINT].
 **
 ** <li>[[SQLITE_FCNTL_COMMIT_ATOMIC_WRITE]]
-** If the [SQLITE_FCNTL_COMMIT_ATOMIC_WRITE] opcode causes all write
+** The [SQLITE_FCNTL_COMMIT_ATOMIC_WRITE] opcode causes all write
 ** operations since the previous successful call to 
 ** [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] to be performed atomically.
 ** This file control returns [SQLITE_OK] if and only if the writes were
 ** all performed successfully and have been committed to persistent storage.
+** ^Regardless of whether or not it is successful, this file control takes
+** the file descriptor out of batch write mode so that all subsequent
+** write operations are independent.
+** ^SQLite will never invoke SQLITE_FCNTL_COMMIT_ATOMIC_WRITE without
+** a prior successful call to [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE].
 **
 ** <li>[[SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE]]
-** If the [SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE] opcode causes all write
+** The [SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE] opcode causes all write
 ** operations since the previous successful call to 
-** [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] to be rollback.
+** [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] to be rolled back.
+** ^This file control takes the file descriptor out of batch write mode
+** so that all subsequent write operations are independent.
+** ^SQLite will never invoke SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE without
+** a prior successful call to [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE].
 ** </ul>
 */
 #define SQLITE_FCNTL_LOCKSTATE               1