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
[email protected]
_______________________________________________
sqlite-announce mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-announce