/ Timeline
SQLite training in Houston TX on 2019-11-05 (details)
Part of the 2019 Tcl Conference

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Estimate row sizes for tables and indices and use those estimates during query planning. Enhance the index_info pragma to show the estimated row sizes and to show the estimated row size for the main table as well. Allow an alternative row size estimate to be specified in the sqlite_stat1 table. check-in: d27b88b8 user: drh tags: trunk
Make sure the correct printf format is used for type tRowcnt regardless of whether 32-bit or 64-bit row counts are specified at compile-time. Closed-Leaf check-in: e97d7d30 user: drh tags: row-size-est
Move a conditional inside of an #ifdef in order to make all branches reachable regardless of compile-time options used. check-in: f7cc30d4 user: drh tags: row-size-est
Fix test cases for the new information in PRAGMA index_list. check-in: dd03be10 user: drh tags: row-size-est
Rollback some of the previous changes in the branch such that the estimated row sizes are now only used as a tie-breaker for index scans. check-in: 65553ff3 user: drh tags: row-size-est
Use #ifdefs to omit unused code in the columnType() routine depending on compile-time options. check-in: 3fd5e332 user: drh tags: row-size-est
Further refinement of the idea of multiplying run-time cost estimates by the estimated row size. check-in: 18bd6ba9 user: drh tags: row-size-est
Multiply all cursor step cost estimates by the estimated size of the row in bytes, in order to get the query planner ot make use of estimated row sizes. This check-in uses magic numbers in a few places (for example, estimates of the size of output rows) and needs lots of refinement. Consider this a proof-of-concept only. check-in: cb34cfe5 user: drh tags: row-size-est
Try to remember statistics from ANALYZE using LogEst instead of u64. Leaf check-in: 8e78557a user: drh tags: log-stats
Merge bug fixes from trunk. check-in: 1d7b2dc0 user: drh tags: row-size-est
Restore the hexrekey pragma which was accidently deleted during the pragma refactoring. Make sure the hexkey and hexrekey pragmas do not overflow buffers with a over-length key. check-in: 0aca31e1 user: drh tags: trunk
Accept the sz=N parameter on table-only lines of sqlite_stat1. check-in: e9e932aa user: drh tags: row-size-est
Fix an issue in the test8.c test module that arises because of the change to PRAGMA index_list(). Remove an unused local variable. check-in: 029430c5 user: drh tags: row-size-est
Completely remove the iScanRatio field. The PRAGMA index_list(TABLE) command shows the estimated row size in the forth column. It also generates a row for the table with an index name of NULL. The query planner still does not take row size estimates into account - that is the next step. check-in: 8b4aa0c7 user: drh tags: row-size-est
Improvements to the LogEst command-line tool used to convert between ordinary numbers and the LogEst representation. check-in: 5252aeb6 user: drh tags: row-size-est
Begin an experimental refactoring to estimate the average number of bytes in table and index rows and to use that information in query planner. Begin by renaming WhereCost to LogEst and making that type and its conversion routines available outside of where.c. check-in: 66c4a251 user: drh tags: row-size-est
In the index_list pragma, make sure the "r" column is the same on output as it was on input in the sqlite_stat1 table. Closed-Leaf check-in: de78250a user: drh tags: index-scan-rate