Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix long-standing typos in comments. |
---|---|
Timelines: | family | ancestors | descendants | both | experimental-costs |
Files: | files | file ages | folders |
SHA1: |
b9f91317c34d07769a95dc2f905a6cca |
User & Date: | drh 2014-04-30 13:19:09.070 |
Context
2014-04-30
| ||
14:22 | Improved rendering of LogEst values corresponding to real values near 0.0 in the tool/logest.c utility program. (check-in: 32910c8c59 user: drh tags: experimental-costs) | |
13:19 | Fix long-standing typos in comments. (check-in: b9f91317c3 user: drh tags: experimental-costs) | |
2014-04-29
| ||
19:01 | Test that the default values used when sqlite_stat1 data is not available are calculated correctly. Fixes for the same. (check-in: e2d42f909d user: dan tags: experimental-costs) | |
Changes
Changes to src/sqliteInt.h.
︙ | ︙ | |||
521 522 523 524 525 526 527 | /* ** Estimated quantities used for query planning are stored as 16-bit ** logarithms. For quantity X, the value stored is 10*log2(X). This ** gives a possible range of values of approximately 1.0e986 to 1e-986. ** But the allowed values are "grainy". Not every value is representable. ** For example, quantities 16 and 17 are both represented by a LogEst | | | | 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 | /* ** Estimated quantities used for query planning are stored as 16-bit ** logarithms. For quantity X, the value stored is 10*log2(X). This ** gives a possible range of values of approximately 1.0e986 to 1e-986. ** But the allowed values are "grainy". Not every value is representable. ** For example, quantities 16 and 17 are both represented by a LogEst ** of 40. However, since LogEst quantaties are suppose to be estimates, ** not exact values, this imprecision is not a problem. ** ** "LogEst" is short for "Logarithmic Estimate". ** ** Examples: ** 1 -> 0 20 -> 43 10000 -> 132 ** 2 -> 10 25 -> 46 25000 -> 146 ** 3 -> 16 100 -> 66 1000000 -> 199 ** 4 -> 20 1000 -> 99 1048576 -> 200 ** 10 -> 33 1024 -> 100 4294967296 -> 320 |
︙ | ︙ |
Changes to src/util.c.
︙ | ︙ | |||
1242 1243 1244 1245 1246 1247 1248 | if( b>a+49 ) return b; if( b>a+31 ) return b+1; return b+x[b-a]; } } /* | | | | 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 | if( b>a+49 ) return b; if( b>a+31 ) return b+1; return b+x[b-a]; } } /* ** Convert an integer into a LogEst. In other words, compute an ** approximation for 10*log2(x). */ LogEst sqlite3LogEst(u64 x){ static LogEst a[] = { 0, 2, 3, 5, 6, 7, 8, 9 }; LogEst y = 40; if( x<8 ){ if( x<2 ) return 0; while( x<8 ){ y -= 10; x <<= 1; } |
︙ | ︙ |