diff options
author | stephan <stephan@noemail.net> | 2022-09-16 11:45:09 +0000 |
---|---|---|
committer | stephan <stephan@noemail.net> | 2022-09-16 11:45:09 +0000 |
commit | 4c72171b60aa55475f1c4963d96ed7cfd3634bee (patch) | |
tree | c549e4085fbf415fbd99f3ff50fe49889b353a29 /src | |
parent | 57db2174d53b713d3bdeb38fa05d9eb1580ee9c0 (diff) | |
parent | 84e50767871d64ed2e9ffcf7dbee49d97746ce6f (diff) | |
download | sqlite-4c72171b60aa55475f1c4963d96ed7cfd3634bee.tar.gz sqlite-4c72171b60aa55475f1c4963d96ed7cfd3634bee.zip |
Merge kv-vfs branch into fiddle-opfs branch for [21915af560b1|synchronous=off fix]. Remove some duplicate debug output in OPFS test code.
FossilOrigin-Name: 13899bb98c80525276d2484598b94e4206358f243f06d45c02700024f7e226fd
Diffstat (limited to 'src')
-rw-r--r-- | src/os_kv.c | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/os_kv.c b/src/os_kv.c index 17d4c254e..b99f5574c 100644 --- a/src/os_kv.c +++ b/src/os_kv.c @@ -71,7 +71,8 @@ static int kvvfsFileSizeJrnl(sqlite3_file*, sqlite3_int64 *pSize); static int kvvfsLock(sqlite3_file*, int); static int kvvfsUnlock(sqlite3_file*, int); static int kvvfsCheckReservedLock(sqlite3_file*, int *pResOut); -static int kvvfsFileControl(sqlite3_file*, int op, void *pArg); +static int kvvfsFileControlDb(sqlite3_file*, int op, void *pArg); +static int kvvfsFileControlJrnl(sqlite3_file*, int op, void *pArg); static int kvvfsSectorSize(sqlite3_file*); static int kvvfsDeviceCharacteristics(sqlite3_file*); @@ -123,7 +124,7 @@ static sqlite3_io_methods kvvfs_db_io_methods = { kvvfsLock, /* xLock */ kvvfsUnlock, /* xUnlock */ kvvfsCheckReservedLock, /* xCheckReservedLock */ - kvvfsFileControl, /* xFileControl */ + kvvfsFileControlDb, /* xFileControl */ kvvfsSectorSize, /* xSectorSize */ kvvfsDeviceCharacteristics, /* xDeviceCharacteristics */ 0, /* xShmMap */ @@ -147,7 +148,7 @@ static sqlite3_io_methods kvvfs_jrnl_io_methods = { kvvfsLock, /* xLock */ kvvfsUnlock, /* xUnlock */ kvvfsCheckReservedLock, /* xCheckReservedLock */ - kvvfsFileControl, /* xFileControl */ + kvvfsFileControlJrnl, /* xFileControl */ kvvfsSectorSize, /* xSectorSize */ kvvfsDeviceCharacteristics, /* xDeviceCharacteristics */ 0, /* xShmMap */ @@ -860,13 +861,7 @@ static int kvvfsSyncJrnl(sqlite3_file *pProtoFile, int flags){ return i ? SQLITE_IOERR : SQLITE_OK; } static int kvvfsSyncDb(sqlite3_file *pProtoFile, int flags){ - KVVfsFile *pFile = (KVVfsFile *)pProtoFile; - int rc = SQLITE_OK; - SQLITE_KV_LOG(("xSync('%s-db')\n", pFile->zClass)); - if( pFile->szDb>0 && 0!=kvvfsWriteFileSize(pFile, pFile->szDb) ){ - rc = SQLITE_IOERR; - } - return rc; + return SQLITE_OK; } /* @@ -928,7 +923,21 @@ static int kvvfsCheckReservedLock(sqlite3_file *pProtoFile, int *pResOut){ /* ** File control method. For custom operations on an kvvfs-file. */ -static int kvvfsFileControl(sqlite3_file *pProtoFile, int op, void *pArg){ +static int kvvfsFileControlJrnl(sqlite3_file *pProtoFile, int op, void *pArg){ + SQLITE_KV_LOG(("xFileControl(%d) on journal\n", op)); + return SQLITE_NOTFOUND; +} +static int kvvfsFileControlDb(sqlite3_file *pProtoFile, int op, void *pArg){ + SQLITE_KV_LOG(("xFileControl(%d) on database\n", op)); + if( op==SQLITE_FCNTL_SYNC ){ + KVVfsFile *pFile = (KVVfsFile *)pProtoFile; + int rc = SQLITE_OK; + SQLITE_KV_LOG(("xSync('%s-db')\n", pFile->zClass)); + if( pFile->szDb>0 && 0!=kvvfsWriteFileSize(pFile, pFile->szDb) ){ + rc = SQLITE_IOERR; + } + return rc; + } return SQLITE_NOTFOUND; } |