]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix another problem that was causing underestimates of index size. analyze-row-size
authordrh <>
Wed, 15 Jan 2025 13:35:07 +0000 (13:35 +0000)
committerdrh <>
Wed, 15 Jan 2025 13:35:07 +0000 (13:35 +0000)
FossilOrigin-Name: a1690ecd008d9f283162542cf63047dd7f218061e1d0462dc5d4dbe3eeef23b8

manifest
manifest.uuid
src/analyze.c

index d8d975c764ad583c703d06bee72d405707daf7a7..f6af4cffdb6b901ba9db7ab812fb32cbf1d14eab 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sissues\swith\sthe\sprior\scheck-ins\son\sthis\sbranch.\sThe\scode\sseems\sto\swork\snow,\nthough\smany\stests\sfail\sbecause\sof\sthe\snew\ssqlite_stat1.stat\stext.
-D 2025-01-15T12:38:48.739
+C Fix\sanother\sproblem\sthat\swas\scausing\sunderestimates\sof\sindex\ssize.
+D 2025-01-15T13:35:07.552
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -711,7 +711,7 @@ F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
 F sqlite3.1 acdff36db796e2d00225b911d3047d580cd136547298435426ce9d40347973cc
 F sqlite3.pc.in 0977c03a4da7c4204bd60e784a0efb8d51a190448aba78a4e973fe7192bdaf03
 F src/alter.c aa93e37e4a36a0525bbb2a2aeda20d2018f0aa995542c7dc658e031375e3f532
-F src/analyze.c bd5201b9b1414d0bb9a97dbceb0bad9fecacd8ec421081892c62f758c6ef1717
+F src/analyze.c b1789c93625151a511355f26a8cd3f3ef3dbf563c527053e68e1f7e5bc33c0c8
 F src/attach.c f35bb8cc1fcdde8f6815a7ef09ae413bcac71821d530796800ba24b3c7da1e80
 F src/auth.c 54ab9c6c5803b47c0d45b76ce27eff22a03b4b1f767c5945a3a4eb13aa4c78dc
 F src/backup.c 5c97e8023aab1ce14a42387eb3ae00ba5a0644569e3476f38661fa6f824c3523
@@ -2205,8 +2205,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 76f2beded05803add0f55f6baff7fce79c08a65099782da9bfac7d5b33091ad2
-R 388bdf897b0c876017d10d958b965580
+P be26698a5ea6b1bfa248c66d8337b73ed64f532aed3201504d4c48107e188479
+R 967f3baae23feff62c85c50041f4e5f3
 U drh
-Z 67aad46a800a3f6a133673155dfbc26b
+Z 1a3fb2b5b9ac0d0e8edd1b1a367a5933
 # Remove this line to create a well-formed Fossil manifest.
index 342b48ef3c00c2b10e7c1078bda3eb2c77c409f5..fea606bdf48efd777d49af2eb827dde3b3e25245 100644 (file)
@@ -1 +1 @@
-be26698a5ea6b1bfa248c66d8337b73ed64f532aed3201504d4c48107e188479
+a1690ecd008d9f283162542cf63047dd7f218061e1d0462dc5d4dbe3eeef23b8
index deb3bb2af0d8182be9c6c1dcfb31a8a963b41a24..e4e126a8cbd1795644fc7c4a4e25305e5aad853d 100644 (file)
@@ -879,7 +879,7 @@ static void statGet(
 #endif
     }
     if( p->nRow>0 ){
-      sqlite3_str_appendf(&sStat, " sz=%lld", p->nByte/p->nRow);
+      sqlite3_str_appendf(&sStat, " sz=%lld", (p->nByte+p->nRow-1)/p->nRow);
     }
     sqlite3ResultStrAccum(context, &sStat);
   }
@@ -1203,7 +1203,6 @@ static void analyzeOneTable(
         sqlite3VdbeAddOp2(v, OP_Integer, i, regChng);
         sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, i, regTemp);
         analyzeVdbeCommentIndexWithColumnName(v,pIdx,i);
-        if( i==0 ) sqlite3VdbeAddOp2(v, OP_RowSize, iIdxCur, regRowSz);
         aGotoChng[i] = 
         sqlite3VdbeAddOp4(v, OP_Ne, regTemp, 0, regPrev+i, pColl, P4_COLLSEQ);
         sqlite3VdbeChangeP5(v, SQLITE_NULLEQ);
@@ -1259,6 +1258,7 @@ static void analyzeOneTable(
 #endif
     assert( regChng==(regStat+1) );
     {
+      sqlite3VdbeAddOp2(v, OP_RowSize, iIdxCur, regRowSz);
       sqlite3VdbeAddFunctionCall(pParse, 1, regStat, regTemp, 3+IsStat4,
                                  &statPushFuncdef, 0);
       if( db->nAnalysisLimit ){