Path to this page:
Subject: CVS commit: pkgsrc
From: Adam Ciarcinski
Date: 2018-06-07 09:36:49
Message id: 20180607073649.926D6FBEC@cvs.NetBSD.org
Log Message:
sqlite3: updated to 3.24.0
SQLite Release 3.24.0:
Add support for PostgreSQL-style UPSERT.
Add support for auxiliary columns in r-tree tables.
Add C-language APIs for discovering SQL keywords used by SQLite: \
sqlite3_keyword_count(), sqlite3_keyword_name(), and sqlite3_keyword_check().
Add C-language APIs for dynamic strings based on the sqlite3_str object.
Enhance ALTER TABLE so that it recognizes "true" and "false" \
as valid arguments to DEFAULT.
Add the sorter-reference optimization as a compile-time option. Only available \
if compiled with SQLITE_ENABLE_SORTER_REFERENCES.
Improve the format of the EXPLAIN QUERY PLAN raw output, so that it gives better \
information about the query plan and about the relationships between the various \
components of the plan.
Added the SQLITE_DBCONFIG_RESET_DATABASE option to the sqlite3_db_config() API.
CLI Enhancements:
Automatically intercepts the raw EXPLAIN QUERY PLAN output and reformats it into \
an ASCII-art graph.
Lines that begin with "#" and that are not in the middle of an SQL \
statement are interpreted as comments.
Added the --append option to the ".backup" command.
Added the ".dbconfig" command.
Performance:
UPDATE avoids unnecessary low-level disk writes when the contents of the \
database file do not actually change. For example, "UPDATE t1 SET x=25 \
WHERE y=?" generates no extra disk I/O if the value in column x is already \
25. Similarly, when doing UPDATE on records that span multiple pages, only the \
subset of pages that actually change are written to disk. This is a low-level \
performance optimization only and does not affect the behavior of TRIGGERs or \
other higher level SQL structures.
Queries that use ORDER BY and LIMIT now try to avoid computing rows that cannot \
possibly come in under the LIMIT. This can greatly improve performance of ORDER \
BY LIMIT queries, especially when the LIMIT is small relative to the number of \
unrestricted output rows.
The OR optimization is allowed to proceed even if the OR expression has also \
been converted into an IN expression. Uses of the OR optimization are now also \
more clearly shown in the EXPLAIN QUERY PLAN output.
The query planner is more aggressive about using automatic indexes for views and \
subqueries for which it is not possible to create a persistent index.
Make use of the one-pass UPDATE and DELETE query plans in the R-Tree extension \
where appropriate.
Performance improvements in the LEMON-generated parser.
Bug fixes:
For the right-hand table of a LEFT JOIN, compute the values of expressions \
directly rather than loading precomputed values out of an expression index as \
the expression index might not contain the correct value.
Do not attempt to use terms from the WHERE clause to enable indexed lookup of \
the right-hand table of a LEFT JOIN.
Fix a memory leak that can occur following a failure to open error in the CSV \
virtual table
Fix a long-standing problem wherein a corrupt schema on the sqlite_sequence \
table used by AUTOINCREMENT can lead to a crash.
Fix the json_each() function so that it returns valid results on its \
"fullkey" column when the input is a simple value rather than an array \
or object.
Files: