./databases/sqlite3, SQL Database Engine in a C Library

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 3.20.1nb1, Package name: sqlite3-3.20.1nb1, Maintainer: pkgsrc-users

SQLite is a C library that implements an SQL database engine. Programs
that link with the SQLite library can have SQL database access without
running a separate RDBMS process. The distribution comes with a standalone
command-line access program (sqlite) that can be used to administer an
SQLite database and which serves as an example of how to use the SQLite

SQLite is not a client library used to connect to a big database server.
SQLite is the server. The SQLite library reads and writes directly to and
from the database files on disk.

This is sqlite3, the current stable version.

Required to build:

Package options: fts

Master sites:

SHA1: 48593dcd19473f25fe6fcd08048e13ddbff4c983
RMD160: 9e6f5367269bdeba47cce342be0cb428b1d6e169
Filesize: 2505.506 KB

Version history: (Expand)

CVS history: (Expand)

   2017-09-18 11:53:40 by Maya Rashish | Files touched by this commit (676)
Log message:
revbump for requiring ICU 59.x
   2017-08-25 07:27:53 by Adam Ciarcinski | Files touched by this commit (6)
Log message:
Release 3.20.1:
Fix a potential memory leak in the new sqlite3_result_pointer() interface.
   2017-08-02 18:14:59 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
Release 3.20.0:

1. Update the text of error messages returned by sqlite3_errmsg() for some error \ 
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 \ 
  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 \ 
  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.
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.
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 \ 
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 \ 
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.
   2017-06-10 21:14:00 by Adam Ciarcinski | Files touched by this commit (8)
Log message:
Release 3.19.3:
Fix a bug associated with auto_vacuum that can lead to database corruption. The \ 
bug was introduced in version 3.16.0.
   2017-05-31 19:31:51 by Adam Ciarcinski | Files touched by this commit (6)
Log message:
SQLite Release 3.19.2 On 2017-05-25

Fix more bugs in the LEFT JOIN flattening optimization. Ticket 7fde638e94287d2c.

Changes carried forward from version 3.19.1 (2017-05-24):

Fix a bug in the LEFT JOIN flattening optimization. Ticket cad1ab4cb7b0fc.
Remove a surplus semicolon that was causing problems for older versions of MSVC.
   2017-05-24 21:41:03 by Adam Ciarcinski | Files touched by this commit (8) | Package updated
Log message:
SQLite Release 3.19.0
The SQLITE_READ authorizer callback is invoked once with a column name that is \ 
an empty string for every table referenced in a query from which no columns are \ 
When using an index on an expression, try to use expression values already \ 
available in the index, rather than loading the original columns and recomputing \ 
the expression.
Enhance the flattening optimization so that it is able to flatten views on the \ 
right-hand side of a LEFT JOIN.
Use replace() instead of char() for escaping newline and carriage-return \ 
characters embedded in strings in the .dump output from the command-line shell.
Avoid unnecessary foreign key processing in UPDATE statements that do not touch \ 
the columns that are constrained by the foreign keys.
On a DISTINCT query that uses an index, try to skip ahead to the next distinct \ 
entry using the index rather than stepping through rows, when an appropriate \ 
index is available.
Avoid unnecessary invalidation of sqlite3_blob handles when making changes to \ 
unrelated tables.
Transfer any terms of the HAVING clause that use only columns mentioned in the \ 
GROUP BY clause over to the WHERE clause for faster processing.
Reuse the same materialization of a VIEW if that VIEW appears more than once in \ 
the same query.
Enhance PRAGMA integrity_check so that it identifies tables that have two or \ 
more rows with the same rowid.
Enhance the FTS5 query syntax so that column filters may be applied to arbitrary \ 
Enhance the json_extract() function to cache and reuse parses of JSON input text.
Added the anycollseq.c loadable extension that allows a generic SQLite database \ 
connection to read a schema that contains unknown and/or application-specific \ 
collating sequences.

Bug Fixes:
Fix a problem in REPLACE that can result in a corrupt database containing two or \ 
more rows with the same rowid.
Fix a problem in PRAGMA integrity_check that was causing a subsequent VACUUM to \ 
behave suboptimally.
Fix the PRAGMA foreign_key_check command so that it works correctly with foreign \ 
keys on WITHOUT ROWID tables.
Disallow leading zeros in numeric constants in JSON.
Disallow control characters inside of strings in JSON.
Limit the depth of recursion for JSON objects and arrays in order to avoid \ 
excess stack usage in the recursive descent parser.
   2017-04-22 23:04:05 by Adam Ciarcinski | Files touched by this commit (670) | Package updated
Log message:
Revbump after icu update
   2017-03-30 17:55:12 by Adam Ciarcinski | Files touched by this commit (4)
Log message:
Release 3.18.0:

Added the PRAGMA optimize command
The SQLite version identifier returned by the sqlite_source_id() SQL function \ 
and the sqlite3_sourceid() C API and found in the SQLITE_SOURCE_ID macro is now \ 
a 64-digit SHA3-256 hash instead of a 40-digit SHA1 hash.
Added the json_patch() SQL function to the JSON1 extension.
Enhance the LIKE optimization so that it works for arbitrary expressions on the \ 
left-hand side as long as the LIKE pattern on the right-hand side does not begin \ 
with a digit or minus sign.
Added the sqlite3_set_last_insert_rowid() interface and use the new interface in \ 
the FTS3, FTS4, and FTS5 extensions to ensure that the \ 
sqlite3_last_insert_rowid() interface always returns reasonable values.
Enhance PRAGMA integrity_check and PRAGMA quick_check so that they verify CHECK \ 
Enhance the query plans for joins to detect empty tables early and halt without \ 
doing unnecessary work.
Enhance the sqlite3_mprintf() family of interfaces and the printf SQL function \ 
to put comma separators at the thousands marks for integers, if the \ 
"," format modifier is used in between the "%" and the \ 
"d" (example: "%,d").
Added the -DSQLITE_MAX_MEMORY=N compile-time option.
Added the .sha3sum dot-command and the .selftest dot-command to the command-line \ 
Begin enforcing SQLITE_LIMIT_VDBE_OP. This can be used, for example, to prevent \ 
excessively large prepared statements in systems that accept SQL queries from \ 
untrusted users.
Various performance improvements.

Bug Fixes:
Ensure that indexed expressions with collating sequences are handled correctly. \ 
Fix for ticket eb703ba7b50c1a5.
Fix a bug in the 'start of ...' modifiers for the date and time functions. \ 
Ticket 6097cb92745327a1
Fix a potential segfault in complex recursive triggers, resulting from a bug in \ 
the OP_Once opcode introduced as part of a performance optimization in version \ 
3.15.0. Ticket 06796225f59c057c
In the RBU extension, add extra sync operations to avoid the possibility of \ 
corruption following a power failure.
The sqlite3_trace_v2() output for nested SQL statements should always begin with \ 
a "--" comment marker.