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

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


Branch: CURRENT, Version: 3.25.2, Package name: sqlite3-3.25.2, 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
library.

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:
[pkgtools/cwrappers]

Package options: fts

Master sites:

SHA1: aedfbdc14eb700099434d6a743135743cff47393
RMD160: a360883c9616a02a8690560aa93b8c9e1a07bc99
Filesize: 2699.098 KB

Version history: (Expand)


CVS history: (Expand)


   2018-10-01 10:02:37 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.25.2

SQLite Release 3.25.2:
Add the PRAGMA legacy_alter_table=ON command that causes the "ALTER TABLE \ 
RENAME" command to behave as it did in SQLite versions 3.24.0 and earlier: \ 
references to the renamed table inside the bodies of triggers and views are not \ 
updated. This new pragma provides a compatibility work around for older programs \ 
that expected the older, wonky behavior of ALTER TABLE RENAME.
Fix a problem with the new window functions implementation that caused a \ 
malfunction when complicated expressions involving window functions were used \ 
inside of a view.
Fixes for various other compiler warnings and minor problems associated with \ 
obscure configurations.
   2018-09-19 11:38:09 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite3: updated to 3.25.1

SQLite Release 3.25.1:

Extra sanity checking added to ALTER TABLE in the 3.25.0 release sometimes \ 
raises a false-positive when the table being modified has a trigger that updates \ 
a virtual table. The false-positive caused the ALTER TABLE to rollback, thus \ 
leaving the schema unchanged.
The fix in the 3.25.0 release for the endless-loop in the byte-code associated \ 
with the ORDER BY LIMIT optimization did not work for some queries involving \ 
window functions. An additional correction is required.
   2018-09-17 18:14:07 by Adam Ciarcinski | Files touched by this commit (9) | Package updated
Log message:
sqlite3: updated to 3.25.0

SQLite Release 3.25.0:

Add support for window functions
Enhancements the ALTER TABLE command:
- Add support for renaming columns within a table using ALTER TABLE table RENAME \ 
COLUMN oldname TO newname.
- Fix table rename feature so that it also updates references to the renamed \ 
table in triggers and views.
Query optimizer improvements:
- Avoid unnecessary loads of columns in an aggregate query that are not within \ 
an aggregate function and that are not part of the GROUP BY clause.
- The IN-early-out optimization: When doing a look-up on a multi-column index \ 
and an IN operator is used on a column other than the left-most column, then if \ 
no rows match against the first IN value, check to make sure there exist rows \ 
that match the columns to the right before continuing with the next IN value.
- Use the transitive property to try to propagate constant values within the \ 
WHERE clause. For example, convert "a=99 AND b=a" into "a=99 AND \ 
b=99".
Use a separate mutex on every inode in the unix VFS, rather than a single mutex \ 
shared among them all, for slightly better concurrency in multi-threaded \ 
environments.
Enhance the PRAGMA integrity_check command for improved detection of problems on \ 
the page freelist.
Output infinity as 1e999 in the ".dump" command of the command-line shell.
Added the SQLITE_FCNTL_DATA_VERSION file-control.
Added the Geopoly module

Bug fixes:
The ORDER BY LIMIT optimization might have caused an infinite loop in the byte \ 
code of the prepared statement under very obscure circumstances, due to a \ 
confluence of minor defects in the query optimizer.
On an UPSERT when the order of constraint checks is rearranged, ensure that the \ 
affinity transformations on the inserted content occur before any of the \ 
constraint checks.
Avoid using a prepared statement for ".stats on" command of the CLI \ 
after it has been closed by the ".eqp full" logicc.
The LIKE optimization was generating incorrect byte-code and hence getting the \ 
wrong answer if the left-hand operand has numeric affinity and the \ 
right-hand-side pattern is '/%' or if the pattern begins with the ESCAPE \ 
character.
   2018-07-20 05:34:33 by Ryo ONODERA | Files touched by this commit (705)
Log message:
Recursive revbump from textproc/icu-62.1
   2018-06-07 09:36:49 by Adam Ciarcinski | Files touched by this commit (8) | Package updated
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.
   2018-04-14 09:34:46 by Adam Ciarcinski | Files touched by this commit (681) | Package updated
Log message:
revbump after icu update
   2018-04-12 12:21:38 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
sqlite: updated to 3.23.1

SQLite Release 3.23.1:
Fix two problems in the new LEFT JOIN strength reduction optimization.
Fix misbehavior of the FTS5 xBestIndex method.
Fix a harmless reference to an uninitialized virtual machine register.
Fix the CLI so that it builds with -DSQLITE_UNTESTABLE
Fix the eval.c extension so that it works with PRAGMA empty_result_callbacks=ON.
Fix the generate_series virtual table so that it correctly returns no rows if \ 
any of its constraints are NULL.
Performance enhancements in the parser.
   2018-04-03 21:58:19 by Adam Ciarcinski | Files touched by this commit (11) | Package updated
Log message:
sqlite3: updated to 3.23.0

SQLite Release 3.23.0:

Add the sqlite3_serialize() and sqlite3_deserialize() interfaces when the \ 
SQLITE_ENABLE_DESERIALIZE compile-time option is used.
Recognize TRUE and FALSE as constants. (For compatibility, if there exist \ 
columns named "true" or "false", then the identifiers refer \ 
to the columns rather than Boolean constants.)
Support operators IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE.
Added the SQLITE_DBSTATUS_CACHE_SPILL option to sqlite3_db_status() for \ 
reporting the number of cache spills that have occurred.
The "alternate-form-2" flag ("!") on the built-in printf \ 
implementation now causes string substitutions to measure the width and \ 
precision in characters instead of bytes.
If the xColumn method in a virtual table implementation returns an error message \ 
using sqlite3_result_error() then give that error message preference over \ 
internally-generated messages.
Added the -A command-line option to the CLI to make it easier to manage SQLite \ 
Archive files.
Add support for INSERT OR REPLACE, INSERT OR IGNORE, and UPDATE OR REPLACE in \ 
the Zipfile virtual table.
Enhance the sqlite3changeset_apply() interface so that it is hardened against \ 
attacks from deliberately corrupted changeset objects.
Added the sqlite3_normalize() extension function.

Query optimizer enhancements:
Improve the omit-left-join optimization so that it works in cases where the \ 
right-hand table is UNIQUE but not necessarily NOT NULL.
Improve the push-down optimization so that it works for many LEFT JOINs.
Add the LEFT JOIN strength reduction optimization that converts a LEFT JOIN into \ 
an ordinary JOIN if there exist terms in the WHERE clause that would prevent the \ 
extra all-NULL row of the LEFT JOIN from appearing in the output set.
Avoid unnecessary writes to the sqlite_sequence table when an AUTOINCREMENT \ 
table is updated with an rowid that is less than the maximum.

Bug fixes:
Fix the parser to accept valid row value syntax.
Fix the query planner so that it takes into account dependencies in the \ 
arguments to table-valued functions in subexpressions in the WHERE clause.
Fix incorrect result with complex OR-connected WHERE and STAT4.
Fix potential corruption in indexes on expressions due to automatic datatype \ 
conversions.
Assertion fault in FTS4.
Incorrect result on the less-than operator in row values.
Always interpret non-zero floating-point values as TRUE, even if the integer \ 
part is zero.
Fix an issue in the fsdir(PATH) table-valued function to the fileio.c extension, \ 
that caused a segfault if the fsdir() table was used as the inner table of a \ 
join.
Issue an error rather instead of an assertion-fault or null-pointer dereference \ 
when the sqlite_master table is corrupted so that the sqlite_sequence table root \ 
page is really a btree-index page.
Fix the ANALYZE command so that it computes statistics on tables whose names \ 
begin with "sqlite".

Additional fixes for issues detected by OSSFuzz:
Fix a possible infinite loop on VACUUM for corrupt database files.
Disallow parameters in the WITH clause of triggers and views.
Fix a potential memory leak in row value processing.
Improve the performance of the replace() SQL function for cases where there are \ 
many substitutions on megabyte-sized strings, in an attempt to avoid OSSFuzz \ 
timeouts during testing.
Provide an appropriate error message when the sqlite_master table contains a \ 
CREATE TABLE AS statement. Formerly this caused either an assertion fault or \ 
null pointer dereference. Problem found by OSSFuzz on the GDAL project.
Incorrect assert() statement removed.
Fix a problem with using the LIKE optimization on an INTEGER PRIMARY KEY.