Subject: CVS commit: pkgsrc
From: Adam Ciarcinski
Date: 2017-08-02 18:14:59
Message id: 20170802161459.1A72AFACD@cvs.NetBSD.org

Log Message:
Release 3.20.0:

1. Update the text of error messages returned by sqlite3_errmsg() for some error \ 
codes.
2. Add new pointer passing interfaces.
3. Backwards-incompatible changes to some extensions in order to take advantage \ 
of the improved security offered by the new pointer passing interfaces:
  a. Extending FTS5 → requires sqlite3_bind_pointer() to find the fts5_api \ 
pointer.
  b. carray(PTR,N) → requires sqlite3_bind_pointer() to set the PTR parameter.
  c. remember(V,PTR) → requires sqlite3_bind_pointer() to set the PTR parameter.
4. Added the SQLITE_STMT virtual table extension.
5. Added the COMPLETION extension - designed to suggest tab-completions for \ 
interactive user interfaces. This is a work in progress. Expect further \ 
enhancements in future releases.
6. Added the UNION virtual table extension.
7. The built-in date and time functions have been enhanced so that they can be \ 
used in CHECK constraints, in indexes on expressions, and in the WHERE clauses \ 
of partial indexes, provided that they do not use the 'now', 'localtime', or \ 
'utc' keywords. Futher information.
8. Added the sqlite3_prepare_v3() and sqlite3_prepare16_v3() interfaces with the \ 
extra "prepFlags" parameters.
9. Provide the SQLITE_PREPARE_PERSISTENT flag for sqlite3_prepare_v3() and use \ 
it to limit lookaside memory misuse by FTS3, FTS5, and the R-Tree extension.
10. Added the PRAGMA secure_delete=FAST command. When secure_delete is set to \ 
FAST, old content is overwritten with zeros as long as that does not increase \ 
the amount of I/O. Deleted content might still persist on the free-page list but \ 
will be purged from all b-tree pages.
11. Enhancements to the command-line shell:
  a. Add support for tab-completion using the COMPLETION extension, for both \ 
readline and linenoise.
  b. Add the ".cd" command.
  c. Enhance the ".schema" command to show the schema of all attached \ 
databases.
  d. Enhance ".tables" so that it shows the schema names for all \ 
attached if the name is anything other than "main".
  e. The ".import" command ignores an initial UTF-8 BOM.
  f. Added the "--newlines" option to the ".dump" command to \ 
cause U+000a and U+000d characters to be output literally rather than escaped \ 
using the replace() function.
12. Query planner enhancements:
  a. When generating individual loops for each ORed term of an OR scan, move any \ 
constant WHERE expressions outside of the loop, as is done for top-level loops.
  b. The query planner examines the values of bound parameters to help determine \ 
if a partial index is usable.
  c. When deciding between two plans with the same estimated cost, bias the \ 
selection toward the one that does not use the sorter.
  d. Evaluate WHERE clause constraints involving correlated subqueries last, in \ 
the hope that they never have be evaluated at all.
  e. Do not use the flattening optimization for a sub-query on the RHS of a LEFT \ 
JOIN if that subquery reads data from a virtual table as doing so prevents the \ 
query planner from creating automatic indexes on the results of the sub-query, \ 
which can slow down the query.
13. Add SQLITE_STMTSTATUS_REPREPARE, SQLITE_STMTSTATUS_RUN, and \ 
SQLITE_STMTSTATUS_MEMUSED options for the sqlite3_stmt_status() interface.
14. Provide PRAGMA functions for PRAGMA integrity_check, PRAGMA quick_check, and \ 
PRAGMA foreign_key_check.
15. Add the -withoutnulls option to the TCL interface eval method.
16. Enhance the sqlite3_analyzer.exe utility program so that it shows the number \ 
of bytes of metadata on btree pages.
17. The SQLITE_DBCONFIG_ENABLE_QPSG run-time option and the SQLITE_ENABLE_QPSG \ 
compile-time option enable the query planner stability guarantee. See also \ 
ticket 892fc34f173e99d8
18. Miscellaneous optimizations result in a 2% reduction in CPU cycles used.

Bug Fixes:

19. Fix the behavior of sqlite3_column_name() for queries that use the \ 
flattening optimization so that the result is consistent with other queries that \ 
do not use that optimization, and with PostgreSQL, MySQL, and SQLServer. Ticket \ 
de3403bf5ae.
20. Fix the query planner so that it knows not to use automatic indexes on the \ 
right table of LEFT JOIN if the WHERE clause uses the IS operator. Fix for \ 
ce68383bf6aba.
21. Ensure that the query planner knows that any column of a flattened LEFT JOIN \ 
can be NULL even if that column is labeled with "NOT NULL". Fix for \ 
ticket 892fc34f173e99d8.
22. Fix rare false-positives in PRAGMA integrity_check when run on a database \ 
connection with attached databases. Ticket a4e06e75a9ab61a12
23. Fix a bug (discovered by OSSFuzz) that causes an assertion fault if certain \ 
dodgy CREATE TABLE declarations are used.

Files:
RevisionActionfile
1.35modifypkgsrc/databases/sqlite3/Makefile.version
1.6modifypkgsrc/databases/sqlite3/PLIST
1.137modifypkgsrc/databases/sqlite3/distinfo
1.13modifypkgsrc/devel/lemon/distinfo