aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2024-10-22 18:26:03 +0000
committerdrh <>2024-10-22 18:26:03 +0000
commit96501c89d504d56fbef8c6d5b8f9bcab85a735d0 (patch)
treed1a9b04c3b19d448fb2a2b746f494da0981a4b35 /src
parentc8284c766a7e525898a72858540bc12365fa55f6 (diff)
downloadsqlite-96501c89d504d56fbef8c6d5b8f9bcab85a735d0.tar.gz
sqlite-96501c89d504d56fbef8c6d5b8f9bcab85a735d0.zip
Rename to SQLITE_IOCAP_SUBPAGE_READ.
FossilOrigin-Name: dd446ef1816f4e95ce29de0b3841dd0a6c983646fd2dd271c2db8f3263478164
Diffstat (limited to 'src')
-rw-r--r--src/os_unix.c2
-rw-r--r--src/os_win.c2
-rw-r--r--src/pager.c4
-rw-r--r--src/sqlite.h.in14
4 files changed, 12 insertions, 10 deletions
diff --git a/src/os_unix.c b/src/os_unix.c
index d99965821..c13c5cece 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -4128,7 +4128,7 @@ static void setDeviceCharacteristics(unixFile *pFd){
if( pFd->ctrlFlags & UNIXFILE_PSOW ){
pFd->deviceCharacteristics |= SQLITE_IOCAP_POWERSAFE_OVERWRITE;
}
- pFd->deviceCharacteristics |= SQLITE_IOCAP_BYPASS;
+ pFd->deviceCharacteristics |= SQLITE_IOCAP_SUBPAGE_READ;
pFd->sectorSize = SQLITE_DEFAULT_SECTOR_SIZE;
}
diff --git a/src/os_win.c b/src/os_win.c
index 47fff58cc..97743412e 100644
--- a/src/os_win.c
+++ b/src/os_win.c
@@ -3660,7 +3660,7 @@ static int winSectorSize(sqlite3_file *id){
*/
static int winDeviceCharacteristics(sqlite3_file *id){
winFile *p = (winFile*)id;
- return SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN | SQLITE_IOCAP_BYPASS |
+ return SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN | SQLITE_IOCAP_SUBPAGE_READ |
((p->ctrlFlags & WINFILE_PSOW)?SQLITE_IOCAP_POWERSAFE_OVERWRITE:0);
}
diff --git a/src/pager.c b/src/pager.c
index 1b624a300..baaf4afbf 100644
--- a/src/pager.c
+++ b/src/pager.c
@@ -809,7 +809,7 @@ static const unsigned char aJournalMagic[] = {
** by the b-tree layer. This is the case if:
**
** (1) the database file is open
-** (2) the VFS for the database has BYPASS capability
+** (2) the VFS for the database is able to do unaligned sub-page reads
** (3) there are no dirty pages in the cache, and
** (4) the desired page is not currently in the wal file.
*/
@@ -819,7 +819,7 @@ int sqlite3PagerDirectReadOk(Pager *pPager, Pgno pgno){
if( pPager->fd->pMethods==0 ) return 0; /* Case (1) */
assert( pPager->fd->pMethods->xDeviceCharacteristics!=0 );
if( (pPager->fd->pMethods->xDeviceCharacteristics(pPager->fd)
- & SQLITE_IOCAP_BYPASS)==0 ){
+ & SQLITE_IOCAP_SUBPAGE_READ)==0 ){
return 0; /* Case (2) */
}
if( sqlite3PCacheIsDirty(pPager->pPCache) ) return 0; /* Failed (3) */
diff --git a/src/sqlite.h.in b/src/sqlite.h.in
index 2db643b28..f91088a77 100644
--- a/src/sqlite.h.in
+++ b/src/sqlite.h.in
@@ -653,10 +653,12 @@ int sqlite3_exec(
** write operations are bracketed by [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] and
** [SQLITE_FCNTL_COMMIT_ATOMIC_WRITE].
**
-** The SQLITE_IOCAP_BYPASS property means that it is ok for the
-** B-tree layer to bypass the pager and VFS and read content directly
-** from the filesystem (the SQLITE_DIRECT_OVERFLOW_READ optimization)
-** when that is beneficial for performance.
+** The SQLITE_IOCAP_SUBPAGE_READ property means that it is ok to read
+** from the database file in amounts that are not a multiple of the
+** page size and that do not begin at a page boundary. Without this
+** property, SQLite is careful to only do full-page reads and write
+** on aligned pages, with the one exception that it will do a sub-page
+** read of the first page to access the database header.
*/
#define SQLITE_IOCAP_ATOMIC 0x00000001
#define SQLITE_IOCAP_ATOMIC512 0x00000002
@@ -673,7 +675,7 @@ int sqlite3_exec(
#define SQLITE_IOCAP_POWERSAFE_OVERWRITE 0x00001000
#define SQLITE_IOCAP_IMMUTABLE 0x00002000
#define SQLITE_IOCAP_BATCH_ATOMIC 0x00004000
-#define SQLITE_IOCAP_BYPASS 0x00008000
+#define SQLITE_IOCAP_SUBPAGE_READ 0x00008000
/*
** CAPI3REF: File Locking Levels
@@ -820,7 +822,7 @@ struct sqlite3_file {
** <li> [SQLITE_IOCAP_POWERSAFE_OVERWRITE]
** <li> [SQLITE_IOCAP_IMMUTABLE]
** <li> [SQLITE_IOCAP_BATCH_ATOMIC]
-** <li> [SQLITE_IOCAP_BYPASS]
+** <li> [SQLITE_IOCAP_SUBPAGE_READ]
** </ul>
**
** The SQLITE_IOCAP_ATOMIC property means that all writes of