From: drh Date: Wed, 1 Sep 2010 19:29:57 +0000 (+0000) Subject: Identify additional requirements in the sqlite3_vfs object documentation. X-Git-Tag: experimental~83 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bfccdaf16e95743c3052ecfbfa3c0e5be7b87ac9;p=thirdparty%2Fsqlite.git Identify additional requirements in the sqlite3_vfs object documentation. FossilOrigin-Name: 47064453c396d5204a851b8ec08d665e2b12228a --- diff --git a/manifest b/manifest index 6239ab950e..db6b20cb41 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,8 @@ -C Add\stests\sto\squota.test. -D 2010-09-01T18:00:10 +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +C Identify\sadditional\srequirements\sin\sthe\ssqlite3_vfs\sobject\sdocumentation. +D 2010-09-01T19:29:57 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in c599a15d268b1db2aeadea19df2adc3bf2eb6bee F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -153,7 +156,7 @@ F src/mutex_os2.c 6a62583e374ba3ac1a3fcc0da2bfdac7d3942689 F src/mutex_unix.c abb8c98a6c27c57280e71522d059e929c708d019 F src/mutex_w32.c b7ed3366a1d44a62a17d4eaefdaa2e7c25f944c2 F src/notify.c 976dd0f6171d4588e89e874fcc765e92914b6d30 -F src/os.c 60178f518c4d6c0dcb59f7292232281d7bea2dcf +F src/os.c 22ac61d06e72a0dac900400147333b07b13d8e1d F src/os.h 9dbed8c2b9c1f2f2ebabc09e49829d4777c26bf9 F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e @@ -173,7 +176,7 @@ F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697 F src/select.c fb7008115d9ccd85f6b6934c15c204b7fe6bfc38 F src/shell.c 8517fc1f9c59ae4007e6cc8b9af91ab231ea2056 -F src/sqlite.h.in 37a520846e4b4479738855d146b10f7abcb1bb66 +F src/sqlite.h.in 724eea5ba1b3bb1052a5bc0b7df8de4c9534f36e F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89 F src/sqliteInt.h 4e31d3b58720d6251e08ba394641b9a63725eb8a F src/sqliteLimit.h a17dcd3fb775d63b64a43a55c54cb282f9726f44 @@ -853,7 +856,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P fb80c6f3de73ed832faaeb8c4d83e1354f132b39 -R c08f0a6930588c34007d44f357699c43 -U dan -Z efb044ac8547d8d2011ff96cf1ab3840 +P ec9af6ebd49505c4e5f90fb6450c71946cdc7291 +R a96d186ad5b38e9a650f55fba5d973fe +U drh +Z d557ec802750005cb66b740ea24b109b +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) + +iD8DBQFMfqm4oxKgR168RlERAo31AJ4ri686LwAqcfTFxWtGLmL0LsVdDwCePFzM +97huTRIYVob7HRS9mTZWZcE= +=PKm+ +-----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index 1eed96a1ea..7164a3d8db 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -ec9af6ebd49505c4e5f90fb6450c71946cdc7291 \ No newline at end of file +47064453c396d5204a851b8ec08d665e2b12228a \ No newline at end of file diff --git a/src/os.c b/src/os.c index 35b48f1a02..ba0438adef 100644 --- a/src/os.c +++ b/src/os.c @@ -183,6 +183,12 @@ int sqlite3OsSleep(sqlite3_vfs *pVfs, int nMicro){ } int sqlite3OsCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *pTimeOut){ int rc; + /* IMPLEMENTATION-OF: R-49045-42493 SQLite will use the xCurrentTimeInt64() + ** method to get the current date and time if that method is available + ** (if iVersion is 2 or greater and the function pointer is not NULL) and + ** will fall back to xCurrentTime() if xCurrentTimeInt64() is + ** unavailable. + */ if( pVfs->iVersion>=2 && pVfs->xCurrentTimeInt64 ){ rc = pVfs->xCurrentTimeInt64(pVfs, pTimeOut); }else{ diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 383d17bcfd..f95c2ba540 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -752,15 +752,15 @@ typedef struct sqlite3_mutex sqlite3_mutex; ** The zName field holds the name of the VFS module. The name must ** be unique across all VFS modules. ** -** SQLite will guarantee that the zFilename parameter to xOpen +** ^SQLite will guarantee that the zFilename parameter to xOpen ** is either a NULL pointer or string obtained -** from xFullPathname(). SQLite further guarantees that +** from xFullPathname(). ^SQLite further guarantees that ** the string will be valid and unchanged until xClose() is ** called. Because of the previous sentence, ** the [sqlite3_file] can safely store a pointer to the ** filename if it needs to remember the filename for some reason. -** If the zFilename parameter is xOpen is a NULL pointer then xOpen -** must invent its own temporary name for the file. Whenever the +** If the zFilename parameter to xOpen is a NULL pointer then xOpen +** must invent its own temporary name for the file. ^Whenever the ** xFilename parameter is NULL it will also be the case that the ** flags parameter will include [SQLITE_OPEN_DELETEONCLOSE]. ** @@ -771,7 +771,7 @@ typedef struct sqlite3_mutex sqlite3_mutex; ** If xOpen() opens a file read-only then it sets *pOutFlags to ** include [SQLITE_OPEN_READONLY]. Other bits in *pOutFlags may be set. ** -** SQLite will also add one of the following flags to the xOpen() +** ^(SQLite will also add one of the following flags to the xOpen() ** call, depending on the object being opened: ** ** +**
  • [SQLITE_OPEN_WAL] +** )^ ** ** The file I/O implementation can use the object type flags to ** change the way it deals with files. For example, an application @@ -801,10 +802,11 @@ typedef struct sqlite3_mutex sqlite3_mutex; ** ** ** The [SQLITE_OPEN_DELETEONCLOSE] flag means the file should be -** deleted when it is closed. The [SQLITE_OPEN_DELETEONCLOSE] -** will be set for TEMP databases, journals and for subjournals. +** deleted when it is closed. ^The [SQLITE_OPEN_DELETEONCLOSE] +** will be set for TEMP databases and their journals, transient +** databases, and subjournals. ** -** The [SQLITE_OPEN_EXCLUSIVE] flag is always used in conjunction +** ^The [SQLITE_OPEN_EXCLUSIVE] flag is always used in conjunction ** with the [SQLITE_OPEN_CREATE] flag, which are both directly ** analogous to the O_EXCL and O_CREAT flags of the POSIX open() ** API. The SQLITE_OPEN_EXCLUSIVE flag, when paired with the @@ -813,7 +815,7 @@ typedef struct sqlite3_mutex sqlite3_mutex; ** It is not used to indicate the file should be opened ** for exclusive access. ** -** At least szOsFile bytes of memory are allocated by SQLite +** ^At least szOsFile bytes of memory are allocated by SQLite ** to hold the [sqlite3_file] structure passed as the third ** argument to xOpen. The xOpen method does not have to ** allocate the structure; it should just fill it in. Note that @@ -823,13 +825,13 @@ typedef struct sqlite3_mutex sqlite3_mutex; ** element will be valid after xOpen returns regardless of the success ** or failure of the xOpen call. ** -** The flags argument to xAccess() may be [SQLITE_ACCESS_EXISTS] +** ^The flags argument to xAccess() may be [SQLITE_ACCESS_EXISTS] ** to test for the existence of a file, or [SQLITE_ACCESS_READWRITE] to ** test whether a file is readable and writable, or [SQLITE_ACCESS_READ] ** to test whether a file is at least readable. The file can be a ** directory. ** -** SQLite will always allocate at least mxPathname+1 bytes for the +** ^SQLite will always allocate at least mxPathname+1 bytes for the ** output buffer xFullPathname. The exact size of the output buffer ** is also passed as a parameter to both methods. If the output buffer ** is not large enough, [SQLITE_CANTOPEN] should be returned. Since this is @@ -843,10 +845,10 @@ typedef struct sqlite3_mutex sqlite3_mutex; ** of good-quality randomness into zOut. The return value is ** the actual number of bytes of randomness obtained. ** The xSleep() method causes the calling thread to sleep for at -** least the number of microseconds given. The xCurrentTime() +** least the number of microseconds given. ^The xCurrentTime() ** method returns a Julian Day Number for the current date and time as ** a floating point value. -** The xCurrentTimeInt64() method returns, as an integer, the Julian +** ^The xCurrentTimeInt64() method returns, as an integer, the Julian ** Day Number multipled by 86400000 (the number of milliseconds in ** a 24-hour day). ** ^SQLite will use the xCurrentTimeInt64() method to get the current