]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Improved detection and reporting of deliberate misinformation in the
authordrh <>
Mon, 20 Jul 2026 20:03:12 +0000 (20:03 +0000)
committerdrh <>
Mon, 20 Jul 2026 20:03:12 +0000 (20:03 +0000)
sqlite_schema table.

FossilOrigin-Name: 760af4e455e478f8ab72a574eb5f0141bb57e023beee3d16f9a8c02cbd726e45

manifest
manifest.uuid
src/build.c
src/trigger.c

index c0733f28fec079bd626e47747eb8db6540bb74f8..47d1a4a2501334b7c8765fca2d6063fbe2970d1b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\san\sincorrect\sALWAYS()\smacro\sfrom\sthe\simplementation\sof\sthe\ninternal\sexprNodeCanReturnSubtype()\sroutine\sso\sthat\sit\sworks\swith\nzero-argument\sdeterministic\sfunctions\slike\spi().
-D 2026-07-20T19:17:30.846
+C Improved\sdetection\sand\sreporting\sof\sdeliberate\smisinformation\sin\sthe\nsqlite_schema\stable.
+D 2026-07-20T20:03:12.281
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -685,7 +685,7 @@ F src/btmutex.c 30dada73a819a1ef5b7583786370dce1842e12e1ad941e4d05ac29695528daea
 F src/btree.c 462c140d0c1af68d75fd13a082f3c08883cc90496c2f02054ec6ca3592ee4b1c
 F src/btree.h 2ee0ddfdf4f8530ad1d46afffd7da21a0e243bfab10973011ac6f6b7fb4109a1
 F src/btreeInt.h 1e4a7d04e809e98abc39654b6089c60d749a724598041ff553b392a3277e9b98
-F src/build.c 86e97b26600535ab9dffd780ecbdb1560362e81bd2e9bcb179b52b2050c3302b
+F src/build.c dda58ec56d7bfa6193c21e2ccb66547412169cd488d9f7f2d462c30cfd90ea64
 F src/callback.c 3605bbf02bd7ed46c79cd48346db4a32fc51d67624400539c0532f4eead804ad
 F src/carray.c 3efe3982d5fb323334c29328a4e189ccaef6b95612a6084ad5fa124fd5db1179
 F src/complete.c f216b970ce99c5a657556cf1f17e7ddd494515d3beb63df426bf59ff43bd3d9a
@@ -803,7 +803,7 @@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
 F src/threads.c 85d8b9f05f78211c61e3739ab5db761d7118766d1916ae7f2764735106bc4e13
 F src/tokenize.c e9d52d9f7374d82dadcd11726bea8a597d43709d6672704f3f0375bf1d726912
 F src/treeview.c feaa59f14db4f7b5aacca9c5ad5aeb562c1f98262c1ffd74371f4186ade91fc5
-F src/trigger.c 5028874dd1f4fd3085bacd55c30114b5ad651525508656f65af09adf227181d5
+F src/trigger.c 74bc99aaa36dc820481960d4cde3cd7f060964525deebd527eee55ac3b6a2895
 F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf
 F src/upsert.c dd9f0fcccbfb4f20e1026a21a7254ba3f2c08e9cfa92affaff5b5ec3b00ea549
 F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165
@@ -2216,8 +2216,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 8f0ad8f33f5e040eb70b0b77d730c2e785827621bb0ad21afd9ce2efe4dad921
-R af279e7d50cb31f2ea35455a662fcf66
+P a2511c6223a08033a2c5c66faee3afa50b992dc18de7a8498c8e3d24ce1376cc
+R 35974747914c9cb01b475b116249dd8f
 U drh
-Z 3128c0a312fc4ccc65b7c5dc80669919
+Z 9d343bcd1773b2ce75149e6b1746dd1a
 # Remove this line to create a well-formed Fossil manifest.
index cf9739ffe5d9a8b2863798dd7867201d4ca059e1..a4f632e77dd8190103bfa24cc8e9e53c8ea1cdd3 100644 (file)
@@ -1 +1 @@
-a2511c6223a08033a2c5c66faee3afa50b992dc18de7a8498c8e3d24ce1376cc
+760af4e455e478f8ab72a574eb5f0141bb57e023beee3d16f9a8c02cbd726e45
index 562c36e4ecc45d84ae03c760981bb20f98feb206..7c5c095af572d8579d7ccc928490e83e1a3510a5 100644 (file)
@@ -4102,8 +4102,9 @@ void sqlite3CreateIndex(
       if( sqlite3FindIndex(db, zName, pDb->zDbSName)!=0 ){
         if( !ifNotExist ){
           sqlite3ErrorMsg(pParse, "index %s already exists", zName);
+        }else if( db->init.busy ){
+          sqlite3ErrorMsg(pParse,"");  /* corruptSchema() will do the error */
         }else{
-          assert( !db->init.busy );
           sqlite3CodeVerifySchema(pParse, iDb);
           sqlite3ForceNotReadOnly(pParse);
         }
index 6ac9c1ffdbf77aade44ee2b54d67563cb7740b92..0e96f3ebc09859d46806a9543a23830e6852f753 100644 (file)
@@ -206,8 +206,9 @@ void sqlite3BeginTrigger(
     if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash),zName) ){
       if( !noErr ){
         sqlite3ErrorMsg(pParse, "trigger %T already exists", pName);
+      }else if( db->init.busy ){
+        sqlite3ErrorMsg(pParse,""); /* Err msg generated by corruptSchema() */
       }else{
-        assert( !db->init.busy );
         sqlite3CodeVerifySchema(pParse, iDb);
         VVA_ONLY( pParse->ifNotExists = 1; )
       }