SQLite version 3.8.1 is now available on the SQLite website:

    http://www.sqlite.org/
    http://sqlite.org/releaselog/3_8_1.html

SQLite version 3.8.1 is a regularly scheduled maintenance release. Upgrading 
from the previous release is optional, though you should upgrade if you are 
using partial indices as there was a bug related to partial indices in the 
previous release that could result in an incorrect answer for count(*) queries.

The next generation query planner that was premiered in the previous release 
continues to work well. The new query planner has been tweaked slightly in the 
current release to help it make better decisions in some cases, but is largely 
unchanged. Two new SQL functions, likelihood() and unlikely(), have been added 
to allow developers to give hints to the query planner without forcing the 
query planner into a particular decision.

Version 3.8.1 is the first SQLite release to take into account the estimated 
size of table and index rows when choosing a query plan. Row size estimates are 
based on the declared datatypes of columns. For example, a column of type 
VARCHAR(1000) is assumed to use much more space than a column of type INT. The 
datatype-based row size estimate can be overridden by appending a term of the 
form "sz=NNN" (where NNN is the average row size in bytes) to the end of the 
sqlite_stat1.stat record for a table or index. Currently, row sizes are only 
used to help the query planner choose between a table or one of its indices 
when doing a table scan or a count(*) operation, though future releases are 
likely to use the estimated row size in other contexts as well. The new PRAGMA 
stats statement can be used to view row size estimates.

Version 3.8.1 adds the SQLITE_ENABLE_STAT4 compile-time option. STAT4 is very 
similar to STAT3 in that it uses samples from indices to try to guess how many 
rows of the index will be satisfy by WHERE clause constraints. The difference 
is that STAT4 samples all columns of the index whereas the older STAT3 only 
sampled the left-most column. Users of STAT3 are encouraged to upgrade to 
STAT4. Application developers should use STAT3 and STAT4 with caution since 
both options, by design, violate the query planner stability guarantee, making 
it more difficult to ensure uniform performance is widely-deployed and 
mass-produced embedded applications.


--
D. Richard Hipp
d...@sqlite.org



_______________________________________________
sqlite-announce mailing list
sqlite-announce@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-announce

Reply via email to