Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix some comments in new code on this branch. No changes to code. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | fcntl_shm_read |
Files: | files | file ages | folders |
SHA3-256: |
cbec1bfe4b9f0e9fc9849db623694902 |
User & Date: | dan 2017-11-03 19:34:17.982 |
Context
2017-11-03
| ||
19:34 | Fix some comments in new code on this branch. No changes to code. (Closed-Leaf check-in: cbec1bfe4b user: dan tags: fcntl_shm_read) | |
17:51 | Merge latest trunk changes with this branch. (check-in: 585e0a09c5 user: dan tags: fcntl_shm_read) | |
Changes
Changes to src/sqlite.h.in.
︙ | ︙ | |||
504 505 506 507 508 509 510 | #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8)) #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8)) #define SQLITE_BUSY_SNAPSHOT (SQLITE_BUSY | (2<<8)) #define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8)) #define SQLITE_CANTOPEN_ISDIR (SQLITE_CANTOPEN | (2<<8)) #define SQLITE_CANTOPEN_FULLPATH (SQLITE_CANTOPEN | (3<<8)) #define SQLITE_CANTOPEN_CONVPATH (SQLITE_CANTOPEN | (4<<8)) | < | 504 505 506 507 508 509 510 511 512 513 514 515 516 517 | #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8)) #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8)) #define SQLITE_BUSY_SNAPSHOT (SQLITE_BUSY | (2<<8)) #define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8)) #define SQLITE_CANTOPEN_ISDIR (SQLITE_CANTOPEN | (2<<8)) #define SQLITE_CANTOPEN_FULLPATH (SQLITE_CANTOPEN | (3<<8)) #define SQLITE_CANTOPEN_CONVPATH (SQLITE_CANTOPEN | (4<<8)) #define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8)) #define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8)) #define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8)) #define SQLITE_READONLY_ROLLBACK (SQLITE_READONLY | (3<<8)) #define SQLITE_READONLY_DBMOVED (SQLITE_READONLY | (4<<8)) #define SQLITE_ABORT_ROLLBACK (SQLITE_ABORT | (2<<8)) #define SQLITE_CONSTRAINT_CHECK (SQLITE_CONSTRAINT | (1<<8)) |
︙ | ︙ | |||
1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 | ** The [SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE] opcode causes all write ** operations since the previous successful call to ** [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 #define SQLITE_FCNTL_GET_LOCKPROXYFILE 2 #define SQLITE_FCNTL_SET_LOCKPROXYFILE 3 #define SQLITE_FCNTL_LAST_ERRNO 4 #define SQLITE_FCNTL_SIZE_HINT 5 | > > > > > > > > > > > > > > | 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 | ** The [SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE] opcode causes all write ** operations since the previous successful call to ** [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]. ** ** <li>[[SQLITE_FCNTL_READ_SHM]] ** The [SQLITE_FCNTL_READ_SHM] opcode may be used to read data from ** the shared-memory region used by wal mode if the previous call ** to the xShmMap method returned SQLITE_READONLY_CANTLOCK. The argument ** must point to an instance of a structure declared as: ** <blockquote><pre> ** struct ReadShmArg { void *pBuf; int nBuf }; ** </pre></blockquote>)^ ** Before returning, this operation allocates a buffer large enough for ** the entire shared-memory using sqlite3_malloc() and populates it with ** a copy thereof. ReadShmArg.pBuf is set to point to the buffer, and ** ReadShmArg to its size in bytes. It is the responsibility of the caller ** to eventually free the buffer using sqlite3_free(). ** </ul> */ #define SQLITE_FCNTL_LOCKSTATE 1 #define SQLITE_FCNTL_GET_LOCKPROXYFILE 2 #define SQLITE_FCNTL_SET_LOCKPROXYFILE 3 #define SQLITE_FCNTL_LAST_ERRNO 4 #define SQLITE_FCNTL_SIZE_HINT 5 |
︙ | ︙ |
Changes to src/wal.c.
︙ | ︙ | |||
2341 2342 2343 2344 2345 2346 2347 | } if( !useWal ){ rc = walIndexReadHdr(pWal, pChanged); if( rc==SQLITE_READONLY_CANTLOCK ){ /* This is a readonly_shm connection and there are no other connections ** to the database. So the *-shm file may not be accessed using mmap. | > | | 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 | } if( !useWal ){ rc = walIndexReadHdr(pWal, pChanged); if( rc==SQLITE_READONLY_CANTLOCK ){ /* This is a readonly_shm connection and there are no other connections ** to the database. So the *-shm file may not be accessed using mmap. ** Try to open an "unlocked" transaction - one that loads the *-shm ** file into memory using read() - instead. */ assert( pWal->nWiData>0 && pWal->apWiData[0]==0 ); assert( pWal->readOnly & WAL_SHM_RDONLY ); return walBeginUnlocked(pWal, pChanged); } if( rc==SQLITE_BUSY ){ /* If there is not a recovery running in another thread or process ** then convert BUSY errors to WAL_RETRY. If recovery is known to |
︙ | ︙ |