]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix the fuzzinvariants.c test module so that it does not generate
authordrh <>
Tue, 19 Mar 2024 14:38:39 +0000 (14:38 +0000)
committerdrh <>
Tue, 19 Mar 2024 14:38:39 +0000 (14:38 +0000)
invariants that depend on rowid when SQLITE_ALLOW_ROWID_IN_VIEW is used,
since rowid values can be unreliable in that context.

FossilOrigin-Name: 0d711aaaa14472a82f8893e1b07d845073f3d018bd5b8093ec0b00ffbbc8cd5a

manifest
manifest.uuid
test/fuzzinvariants.c

index e338d56c6ed9fce23832bc70106a4a7077c42f84..1bd5d0bc66f9147f11c8bff03fac634da42fc78a 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improvements\sto\sthe\sfirst\scheck-in\son\sthis\sbranch,\scausing\sless\scollateral\ndamage.
-D 2024-03-19T14:21:26.201
+C Fix\sthe\sfuzzinvariants.c\stest\smodule\sso\sthat\sit\sdoes\snot\sgenerate\ninvariants\sthat\sdepend\son\srowid\swhen\sSQLITE_ALLOW_ROWID_IN_VIEW\sis\sused,\nsince\srowid\svalues\scan\sbe\sunreliable\sin\sthat\scontext.
+D 2024-03-19T14:38:39.687
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -1257,7 +1257,7 @@ F test/fuzzdata8.db 4a53b6d077c6a5c23b609d8d3ac66996fa55ba3f8d02f9b6efdd0214a767
 F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8
 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14
 F test/fuzzerfault.test f64c4aef4c9e9edf1d6dc0d3f1e65dcc81e67c996403c88d14f09b74807a42bc
-F test/fuzzinvariants.c b34530e8431f2cf3591eff588fc7684d6fdef466916fb46141c8c5374a3d8099
+F test/fuzzinvariants.c 4355043e98cd8555c62462fcbba91c17c6492b0b017bbbe68656d5f2208f6444
 F test/gcfault.test 4ea410ac161e685f17b19e1f606f58514a2850e806c65b846d05f60d436c5b0d
 F test/gencol1.test e169bdfa11c7ed5e9f322a98a7db3afe9e66235750b68c923efee8e1876b46ec
 F test/genesis.tcl 1e2e2e8e5cc4058549a154ff1892fe5c9de19f98
@@ -2180,8 +2180,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P b8e045c9e1d098d116f8745704b10ed76569d4b063c0b81cce16bc136930755d
-R 9d63476358fa70a434b2b00bc72db1e7
+P 7bc882897b6910f93695ad372445df7791b096412089ccbcd4fde365c62fa074
+R 1d0ab0a71fdecadee0025e4c9e79a52a
 U drh
-Z f699d32733c11fd3a8c679549f29c036
+Z ef38e4f5190d6a950df6cf2eac0e14a7
 # Remove this line to create a well-formed Fossil manifest.
index add372b711e583b0231d84ab69cb12200c80712b..6d341e4ed101a57cbddd10e37e3314ac1a385f6f 100644 (file)
@@ -1 +1 @@
-7bc882897b6910f93695ad372445df7791b096412089ccbcd4fde365c62fa074
\ No newline at end of file
+0d711aaaa14472a82f8893e1b07d845073f3d018bd5b8093ec0b00ffbbc8cd5a
\ No newline at end of file
index 5d473f19f31ad009ab12c67fcfa16e1245806953..00b2c117425cbd0f32f16481cac808d0ca93d23d 100644 (file)
@@ -296,6 +296,14 @@ static char *fuzz_invariant_sql(sqlite3_stmt *pStmt, int iCnt){
       ** WHERE clause. */
       continue;
     }
+#ifdef SQLITE_ALLOW_ROWID_IN_VIEW
+    if( sqlite3_strlike("%rowid%",zColName,0)==0
+     || sqlite3_strlike("%oid%",zColName,0)==0
+    ){
+      /* ROWID values are unreliable if SQLITE_ALLOW_ROWID_IN_VIEW is used */
+      continue;
+    }
+#endif
     for(j=0; j<i; j++){
       const char *zPrior = sqlite3_column_name(pBase, j);
       if( sqlite3_stricmp(zPrior, zColName)==0 ) break;