1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-23 21:49:02 +03:00

Fix calls to sqlite3_wal_checkpoint_v2(SQLITE_CHECKPOINT_NOOP) so that they do not return SQLITE_MISUSE.

FossilOrigin-Name: 117f4093f08e0abbde2041f70898220e237e250664f6ede6d4eb2a8a44050466
This commit is contained in:
dan
2025-12-11 11:05:26 +00:00
parent c0160fa11a
commit 9334b9f1b8
6 changed files with 36 additions and 26 deletions

View File

@@ -1,5 +1,5 @@
C Use\smacros\sfor\sthe\sdefault\svalues\sfor\sQRF\slimits\sin\sthe\sCLI,\srather\sthan\nhard-coded\smagic\snumbers.
D 2025-12-10T19:43:06.818
C Fix\scalls\sto\ssqlite3_wal_checkpoint_v2(SQLITE_CHECKPOINT_NOOP)\sso\sthat\sthey\sdo\snot\sreturn\sSQLITE_MISUSE.
D 2025-12-11T11:05:26.817
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -700,7 +700,7 @@ F src/insert.c dfd311b0ac2d4f6359e62013db67799757f4d2cc56cca5c10f4888acfbbfa3fd
F src/json.c fb031340edee159c07ad37dbe668ffe945ed86f525b0eb3822e4a67cbc498a72
F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
F src/loadext.c 4747f72084dc80520a2d23e5bb0bc0760672208a81a2b115ce0b657acd65edf4
F src/main.c 8ee5d36123330e7a6a8ef3acd6c05cdc254d6d4ef6ca2e472c702ac1ee9a5617
F src/main.c 21fb86045bbf6b6329251a0ce6771735b6c71287cc9fcda1f2005d4ac5f25b52
F src/malloc.c 410e570b30c26cc36e3372577df50f7a96ee3eed5b2b161c6b6b48773c650c5e
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c 3bb59158c38e05f6270e761a9f435bf19827a264c13d1631c58b84bdc96d73b2
@@ -747,7 +747,7 @@ F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
F src/tclsqlite.c 85b5a20df96016e5d1d8fdc68c8a4c279c5b93e2049b77cd806c2cc50b9d8c56
F src/tclsqlite.h 614b3780a62522bc9f8f2b9fb22689e8009958e7aa77e572d0f3149050af348a
F src/test1.c 0e71fbcb484a271564e98e0158192c28c24f5521594218c3ba48bcb4cf634f91
F src/test1.c 2986148389a86555db7e6b731767154f165a2c7bc690131f90596fa6263fe79d
F src/test2.c 62f0830958f9075692c29c6de51b495ae8969e1bef85f239ffcd9ba5fb44a5ff
F src/test3.c 432646f581d8af1bb495e58fc98234380250954f5d5535e507fc785eccc3987a
F src/test4.c 0ac87fc13cdb334ab3a71823f99b6c32a6bebe5d603cd6a71d84c823d43a25a0
@@ -1080,7 +1080,7 @@ F test/e_uri.test 86564382132d9c453845eeb5293c7e375487b625900ab56c181a0464908417
F test/e_vacuum.test 89fc48e8beee2f9dfd6de1fbb2edea6542dae9121dc0fbe6313764169e742104
F test/e_wal.test db7c33642711cf3c7959714b5f012aca08cacfa78da0382f95e849eb3ba66aa4
F test/e_walauto.test 248af31e73c98df23476a22bdb815524c9dc3ba8
F test/e_walckpt.test 28c371a6bb5e5fe7f31679c1df1763a19d19e8a0
F test/e_walckpt.test 16e7d006e8687654ee59e7ad5a6d285ba23f0fe0eeb87f790afd6bc9cf1d1924
F test/e_walhook.test 01b494287ba9e60b70f6ebf3c6c62e0ffe01788e344a4846b08e5de0b344cb66
F test/emptytable.test a38110becbdfa6325cd65cb588dca658cd885f62
F test/enc.test b5503a87b31cea8a5084c6e447383f9ca08933bd2f29d97b6b6201081b2343eb
@@ -1987,7 +1987,7 @@ F test/wal_common.tcl 204d1721ac13c5e0c7fae6380315b5ab7f4e8423f580d826c5e9df1995
F test/walbak.test 018d4e5a3d45c6298d11b99f09a8ef6876527946
F test/walbig.test f437473a16cfb314867c6b5d1dbcd519e73e3434
F test/walblock.test 6bb472e82730e7e4e81395e907a01d8cfc2bd9e1f01f8a9184ca572e2955a4bf
F test/walckptnoop.test b13a2c3140f2c913cfd422d9a224544757d04b8b14ab4c267ab9910467c0b9be
F test/walckptnoop.test 5f6123750f40cb86633a7e014f9fb805d0eb494b811840086dc72e554e68c7c1
F test/walcksum.test 50e204500eed9c691b6045e467bb2923f49aa93d8adf315e2be135fdb202c1c2
F test/walcrash.test 21038858cc552077b0522f50b0fa87e38139306a
F test/walcrash2.test a0edab4e5390f03b99a790de89aad15d6ec70b36
@@ -2184,8 +2184,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P f883b854976d2aa679c87edce3b577f38b5fa518f707706320d1ddb38365e2dd
R 24498b37569a2ae0c2c4ec1e4e3d901c
U drh
Z ecafff39bd33cce7916df7333bda9286
P 4ef66da15bfe69d940cfbeff2be2b7e13da156495b349b453d68e70f4dcca36a
R 1bcbdbc59f286581654febdd8dfdb24d
U dan
Z e8da1f0e06bab901a86a82364a0bd8bb
# Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
4ef66da15bfe69d940cfbeff2be2b7e13da156495b349b453d68e70f4dcca36a
117f4093f08e0abbde2041f70898220e237e250664f6ede6d4eb2a8a44050466

View File

@@ -2562,11 +2562,12 @@ int sqlite3_wal_checkpoint_v2(
if( pnLog ) *pnLog = -1;
if( pnCkpt ) *pnCkpt = -1;
assert( SQLITE_CHECKPOINT_NOOP==-1 );
assert( SQLITE_CHECKPOINT_PASSIVE==0 );
assert( SQLITE_CHECKPOINT_FULL==1 );
assert( SQLITE_CHECKPOINT_RESTART==2 );
assert( SQLITE_CHECKPOINT_TRUNCATE==3 );
if( eMode<SQLITE_CHECKPOINT_PASSIVE || eMode>SQLITE_CHECKPOINT_TRUNCATE ){
if( eMode<SQLITE_CHECKPOINT_NOOP || eMode>SQLITE_CHECKPOINT_TRUNCATE ){
/* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint
** mode: */
return SQLITE_MISUSE_BKPT;

View File

@@ -7676,7 +7676,8 @@ static int SQLITE_TCLAPI test_wal_checkpoint_v2(
int nCkpt = -555;
Tcl_Obj *pRet;
const char * aMode[] = { "passive", "full", "restart", "truncate", 0 };
const char * aMode[] = {"noop", "passive", "full", "restart", "truncate", 0};
assert( SQLITE_CHECKPOINT_NOOP==-1 );
assert( SQLITE_CHECKPOINT_PASSIVE==0 );
assert( SQLITE_CHECKPOINT_FULL==1 );
assert( SQLITE_CHECKPOINT_RESTART==2 );
@@ -7690,12 +7691,15 @@ static int SQLITE_TCLAPI test_wal_checkpoint_v2(
if( objc==4 ){
zDb = Tcl_GetString(objv[3]);
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) || (
TCL_OK!=Tcl_GetIntFromObj(0, objv[2], &eMode)
&& TCL_OK!=Tcl_GetIndexFromObj(interp, objv[2], aMode, "mode", 0, &eMode)
)){
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
return TCL_ERROR;
}
if( TCL_OK!=Tcl_GetIntFromObj(0, objv[2], &eMode) ){
if( TCL_OK!=Tcl_GetIndexFromObj(interp, objv[2], aMode, "mode", 0,&eMode) ){
return TCL_ERROR;
}
eMode = eMode - 1;
}
rc = sqlite3_wal_checkpoint_v2(db, zDb, eMode, &nLog, &nCkpt);
if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){

View File

@@ -605,14 +605,15 @@ foreach {tn script} {
sqlite3 db test.db
foreach {tn mode res} {
0 -1001 {1 {SQLITE_MISUSE - not an error}}
1 -1 {1 {SQLITE_MISUSE - not an error}}
2 0 {0 {0 -1 -1}}
3 1 {0 {0 -1 -1}}
4 2 {0 {0 -1 -1}}
5 3 {0 {0 -1 -1}}
6 4 {1 {SQLITE_MISUSE - not an error}}
7 114 {1 {SQLITE_MISUSE - not an error}}
8 1000000 {1 {SQLITE_MISUSE - not an error}}
1 -2 {1 {SQLITE_MISUSE - not an error}}
2 -1 {0 {0 -1 -1}}
3 0 {0 {0 -1 -1}}
4 1 {0 {0 -1 -1}}
5 2 {0 {0 -1 -1}}
6 3 {0 {0 -1 -1}}
7 4 {1 {SQLITE_MISUSE - not an error}}
8 114 {1 {SQLITE_MISUSE - not an error}}
9 1000000 {1 {SQLITE_MISUSE - not an error}}
} {
do_test 4.$tn {
list [catch "wal_checkpoint_v2 db $mode" msg] $msg

View File

@@ -102,7 +102,11 @@ do_catchsql_test 1.8 {
PRAGMA wal_checkpoint = noop;
} {0 {0 5 0}}
do_execsql_test 1.9 {
do_test 1.9 {
sqlite3_wal_checkpoint_v2 db noop
} {0 5 0}
do_execsql_test 1.10 {
PRAGMA journal_mode = delete;
PRAGMA wal_checkpoint = noop;
} {delete 0 -1 -1}