Path to this page:
./
databases/sqlite3,
SQL Database Engine in a C Library
Branch: CURRENT,
Version: 3.54.1,
Package name: sqlite3-3.54.1,
Maintainer: pkgsrc-usersSQLite 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.
Master sites:
Filesize: 3254.867 KB
Version history: (Expand)
- (2026-10-19) Updated to version: sqlite3-3.54.1
- (2026-10-12) Updated to version: sqlite3-3.54.0
- (2026-09-03) Package has been reborn
- (2026-09-03) Package deleted from pkgsrc
- (2026-08-01) Updated to version: sqlite3-3.53.4
- (2026-06-28) Updated to version: sqlite3-3.53.3
CVS history: (Expand)
2026-10-19 07:35:04 by Adam Ciarcinski | Files touched by this commit (7) |  |
Log message:
sqlite3: updated to 3.54.1
3.54.1 (2026-10-16):
Fix a possible heap-buffer overflow on 32-bit builds. (64-bit builds are not \
affected by this problem.)
Fixes other problems in 3.54.0 reported by users. See the check-in timeline for \
details.
|
2026-10-12 13:44:54 by Adam Ciarcinski | Files touched by this commit (7) |  |
Log message:
sqlite3: updated to 3.54.0
3.54.0
CLI enhancements:
CLI prompt strings may contain escape sequences that expand to show state \
information. The initial CLI prompt is now be initialized the values of the \
SQLITE_PS1 and SQLITE_PS2 environment variables, if those variables exist.
The default CLI prompt has been enhanced to take advantage of the new escape \
sequences described in the previous.
For columnar output modes, the CLI now shows the column name header by default \
even if the query returns no rows.
Use the new diskused() extension to implement the ".diskused" \
dot-command. The replaces the separate sqlite3_analyzer utility program, which \
is now deprecated.
On unix, the CLI preserves zero bytes when outputing unformatted BLOB values.
Enhance the .mode command with new options "--rowcount on" and \
"--titles always". The "--titles always" is now the default \
behavior (see item 3a above). Legacy behavior can be restored using \
"-titles on".
Enhance the .mode command with the new --ifmt option and --fpfmt option that \
allow the rendering of integer and floating-point values to be more precisely \
controlled using a printf-style format string.
The -csv command-line option automatically disables display limits, for legacy \
compatibility.
The default CLI prompt honors the NO_COLOR environment variable.
The ability to end an SQL command using the line that contains just \
"go" or "/" (for compatibility with SQL Server and Oracle, \
respectively) is discontinued, unless the CLI is compiled with option \
-DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR.
Query planner improvements:
When doing an UPDATE on a table that has expression indexes, do not change the \
expression index if the value being indexed is unchanged.
Improved optimization of "expr OR TRUE" and "expr OR FALSE".
Ignore DISTINCT in the SELECT statement on the right-hand side of an IN operator.
UNION queries with a LIMIT of exactly 1 are now handled faster and with less memory.
The ALTER TABLE command raises an error on any attempt to add, drop, or rename \
columns with the special names "ROWID", "_ROWID_", or \
"OID".
Add the diskused() SQL function as an optional extension.
Added the %J and %j conversions used to render JSON string literals to the \
built-in printf() and the format() SQL function.
Add the sqlite3_result_str() interface and use it internally to simplify the code.
Add the sqlite3_incomplete() interface and use it as part of the newly enhanced \
CLI prompt string management.
Enhancements to date/time functions:
Added the "weekday -N" form of the weekday modifier.
Added the end of modifier.
Use O_TMPFILE when generating temporary files, on systems that support that feature.
Drop support for WindowsXP and earlier Windows versions, including WindowsCE. \
SQLite for Windows now requires Windows Vista (circa 2007) or later.
Improve performance by using Slim Reader/Writer Locks (SRWLs) to implement \
non-recursive mutexes, instead of CriticalSection, since all supported Windows \
platforms now provide SRWLs.
Use the -DSQLITE_UWP=1 compile-time option for UWP and WebUI applications.
To be clear: This changes above only affects SQLite on Windows. Builds for \
Linux, Mac, BSD, and other unix variants are unaffected.
The authorizer callback is now invoked for SQL functions found in the DEFAULT \
clauses of CREATE TABLE statements. This happens both when the CREATE TABLE \
statement is first issued and when the DEFAULT value is actually used, but not \
when reading the schema while opening a database.
Added SQLITE_LIMIT_SCHEMA and SQLITE_LIMIT_TRIGGER_STEPS to the sqlite3_limit() \
interface.
About 4% faster, as measured by counting CPU cycles in the speedtest1 \
preformance benchmark using valgrind on Linux x64. About 7.5% faster compared to \
one year ago (version 3.51.0). Your mileage may vary depending on workload, \
build options, CPU, compiler, and operating system.
|
2026-08-01 15:45:51 by Adam Ciarcinski | Files touched by this commit (7) |  |
Log message:
sqlite3: updated to 3.53.4
3.53.4 (2026-07-24):
Fixes for problems in 3.53.0 (and 3.53.1, 3.53.2, and 3.53.3) mostly coming from \
AIs. See the check-in timeline for details.
|
2026-06-28 10:11:17 by Adam Ciarcinski | Files touched by this commit (7) |  |
Log message:
sqlite3: updated to 3.53.3
3.53.3 (2026-06-26):
Fixes for problems in 3.53.0 (and 3.53.1 and 3.53.2) mostly coming from AIs. See \
the check-in timeline for details.
|
2026-06-04 11:46:25 by Adam Ciarcinski | Files touched by this commit (7) |  |
Log message:
sqlite3: updated to 3.53.2
3.53.2 (2026-06-03):
Fixes for problems in 3.53.0 reported by users. See the check-in timeline for \
details.
|
2026-05-06 08:13:11 by Adam Ciarcinski | Files touched by this commit (7) |  |
Log message:
sqlite3: updated to 3.53.1
3.53.1 (2026-05-05):
Fixes for problems in 3.53.0 reported by users. See the check-in timeline for \
details.
|
2026-04-17 14:46:28 by Adam Ciarcinski | Files touched by this commit (7) |  |
Log message:
sqlite3: updated to 3.53.0
3.53.0
Fix the WAL-reset database corruption bug.
Add the Query Result Formatter (QRF) library for formatting the results of SQL \
queries for human readability on a fixed-pitch font screen.
Add the format method to the TCL Interface so that QRF is accessible from TCL.
QRF is used for result formatting in the CLI, resulting in improved display \
capabilities.
New SQL language features:
Enhance ALTER TABLE to permit adding and removing NOT NULL and CHECK constraints.
The REINDEX EXPRESSIONS statement rebuilds expression indexes. (Useful to repair \
stale expression indexes.)
The body of TEMP triggers may now modify and/or query tables in the main schema.
Enhance VACUUM INTO so that if a URI filename is used as the target and that \
filename has a reserve=N query parameter with N between 0 and 255, then the \
reserve amount for the generated database copy is set to N.
New SQL functions:
json_array_insert()
jsonb_array_insert()
Renovations to the CLI:
Major enhancements to the .mode command.
Improved result formatting, due to the addition of the QRF extension. For \
example, numeric values are now right-justified by default in tabular output \
modes.
The default output mode for interactive CLI sessions now uses QRF to display \
query results in boxes formed using Unicode box-drawing characters, for improved \
legibility. Batch CLI sessions use the legacy output format for compatibility.
Bare (unquoted) semicolons at the end of dot-commands are silently ignored. \
← Potential incompatibility!
Fix the .testcase and .check commands so that they actually work, and use those \
commands in scripts that are part of the standard SQLite test suite included \
with the source tree.
Command-line arguments that match *.sql or *.txt and are the names of non-empty \
files are read and interpreted as scripts of SQL statements and/or dot-commands.
The argument to the ".timer" command can now be "once", to \
run the timer on only the next SQL statement.
The new "--timeout S" option to the ".progress" dot-command \
causes SQL statements to interrupt after S seconds.
The ".indexes" command was changed so that the PATTERN argument \
matches the name of the index, not the name of the table being indexed (thus \
making the PATTERN argument actually useful). And, several new options were \
added to ".indexes".
New C-language interfaces:
sqlite3_str_truncate()
sqlite3_str_free()
sqlite3_carray_bind_v2()
Add the SQLITE_PREPARE_FROM_DDL option to sqlite3_prepare_v3() which permits \
virtual table implementations to safely prepare SQL statements that are derived \
from the database schema.
Added the SQLITE_UTF8_ZT constant which can be used as the encoding parameter to \
sqlite3_result_text64() or sqlite3_bind_text64() to indicate that the value is \
UTF-8 encoded and zero terminated.
The SQLITE_LIMIT_PARSER_DEPTH option is added to sqlite3_limit().
The SQLITE_DBCONFIG_FP_DIGITS option is added to sqlite3_db_config(). See also \
item 9b below.
Query planner improvements:
Always use a sort-and-merge algorithm for EXCEPT, INTERSECT, and UNION, since \
this is almost always faster than using a hash table.
Improvements to join order selection in large multi-way joins on a star schema.
Enhance the EXISTS-to-JOIN optimization so that the inserted JOIN terms are not \
required to be on the inner-most loops, as long as all dependencies for the \
EXISTS-to-JOIN loops are in outer loops.
Enhance the omit-noop-join optimization so that it is able to omit a chain of \
joins that do not affect the output.
Allow queries that use "GROUP BY e1 ORDER BY e2" where e1 and e2 are \
identical apart from ASC/DESC sort-orders to be optimized using a single index.
Allow virtual tables to optimize DISTINCT in cases where the result-set of a \
query does not exactly match the ORDER BY clause.
Add new interfaces to the session extension that enable an application to add \
changes one at a time to the sqlite3_changegroup object:
sqlite3changegroup_change_begin()
sqlite3changegroup_change_blob()
sqlite3changegroup_change_double()
sqlite3changegroup_change_int64()
sqlite3changegroup_change_null()
sqlite3changegroup_change_text()
sqlite3changegroup_change_finish()
sqlite3changegroup_config()
Improvements to floating-point ↔ text conversions.
Reimplemented to improve performance.
Rounding is now done by default to 17 significant digits, instead of 15, as was \
the case for all prior versions. The \
sqlite3_db_config(SQLITE_DBCONFIG_FP_DIGITS) API (item 6g above) can change \
this, if desired.
Added the self-healing index feature to deal with the stale expression index problem.
Add the "-p|--port" option to sqlite3_rsync.
Discontinue support for Windows RT.
JavaScript/WASM
Add the "opfs-wl" VFS, functionally identical to the "opfs" \
VFS but using Web Locks for locking, which can promise fairer lock sharing than \
the "opfs" bespoke protocol can. "opfs-wl" requires \
Atomics.waitAsync(), so requires newer browsers than "opfs" does.
|
2026-03-15 10:36:08 by Adam Ciarcinski | Files touched by this commit (7) |  |
Log message:
sqlite3: updated/downgraded to 3.51.3
SQLite version 3.52.0 has been withdrawn because some of the new features found
in 3.52.0 are not 100% compatible with prior releases. Those new features and
their associated APIs need to be reworked before 3.52 is made available.
In place of 3.52.0, patch release 3.51.3 is now available. Patch release 3.51.3
fixes the WAL-reset bug as well as other minor problems that have come to light
since the 3.51.2 release.
3.51.3 (2026-03-13):
Fix the WAL-reset database corruption bug.
Other minor bug fixes.
|