From: drh <> Date: Wed, 20 Aug 2025 23:13:49 +0000 (+0000) Subject: Add an assert() to prove that sqlite3_prepare() does not return X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fheads%2Fcreate-index-error-retry-fix;p=thirdparty%2Fsqlite.git Add an assert() to prove that sqlite3_prepare() does not return SQLITE_ERROR_RETRY. FossilOrigin-Name: 6c6a8a596f5d578cc7d35c577608492c0314cdb84ed67b9f068d90fb0b42f4de --- diff --git a/manifest b/manifest index 82e28d78be..4b0ca0926b 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Change\sa\snewly\sunreachable\sbranch\sinto\san\sALWAYS(). -D 2025-08-20T21:12:40.927 +C Add\san\sassert()\sto\sprove\sthat\ssqlite3_prepare()\sdoes\snot\sreturn\nSQLITE_ERROR_RETRY. +D 2025-08-20T23:13:49.933 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -736,7 +736,7 @@ F src/pcache.c 588cc3c5ccaaadde689ed35ce5c5c891a1f7b1f4d1f56f6cf0143b74d8ee6484 F src/pcache.h 1497ce1b823cf00094bb0cf3bac37b345937e6f910890c626b16512316d3abf5 F src/pcache1.c 131ca0daf4e66b4608d2945ae76d6ed90de3f60539afbd5ef9ec65667a5f2fcd F src/pragma.c 30b535d0a66348df844ee36f890617b4cf45e9a22dcbc47ec3ca92909c50aaf1 -F src/prepare.c 4b784f1e1cf77739cb7de1d16a9e1ecb27999be76b6da9121bef482949cfba42 +F src/prepare.c 2af0b5c1ec787c8eebd21baa9d79caf4a4dc3a18e76ce2edbf2027d706bca37a F src/printf.c 5f0c957af9699e849d786e8fbaa3baab648ca5612230dc17916434c14bc8698f F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c F src/resolve.c f8d1d011aba0964ff1bdccd049d4d2c2fec217efd90d202a4bb775e926b2c25d @@ -2169,8 +2169,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P ac649e5b9ca9b8f7729defa8d646df8c0cb57977a5eedcfa2cf1147d109a17f1 -R 642ae7a3f0616f68a22b85d4f264d43c +P 99556be3fd99e6b7c520b0ae2090f59c6f58375750f9d571f9f586bce0a21504 +R eb37a0986f5d255163eb25dcab448a8c U drh -Z b37b2b7ff48f90895e102d34aa3245b4 +Z 271a48d1c25d85ce1e22ab86038bb627 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 7e2b93deb2..a5a3953478 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -99556be3fd99e6b7c520b0ae2090f59c6f58375750f9d571f9f586bce0a21504 +6c6a8a596f5d578cc7d35c577608492c0314cdb84ed67b9f068d90fb0b42f4de diff --git a/src/prepare.c b/src/prepare.c index 2abd14bac7..539360b745 100644 --- a/src/prepare.c +++ b/src/prepare.c @@ -864,6 +864,7 @@ static int sqlite3LockAndPrepare( }while( (rc==SQLITE_ERROR_RETRY && ALWAYS(cnt<=SQLITE_MAX_PREPARE_RETRY)) || (rc==SQLITE_SCHEMA && (sqlite3ResetOneSchema(db,-1), cnt)==1) ); sqlite3BtreeLeaveAll(db); + assert( rc!=SQLITE_ERROR_RETRY ); rc = sqlite3ApiExit(db, rc); assert( (rc&db->errMask)==rc ); db->busyHandler.nBusy = 0;