Home | History | Annotate | Download | only in tea
History log of /src/external/public-domain/sqlite/dist/tea/teaish.tcl
RevisionDateAuthorComments
 1.1  28-Apr-2026  christos branches: 1.1.1;
Initial revision
 1.1.1.1  28-Apr-2026  christos Import Sqlite 3.53.0 (previous was 3.45.1)

Changes:

2026-04-09 (3.53.0)
* Fix: The WAL-reset database corruption bug.
* New Feature: 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().
* 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.
* Session extension: Add new interfaces 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 can change this.
* Additional Fixes:
* 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.

Hashes:
* SQLITE_SOURCE_ID: 2026-04-09 11:41:38
4525003a53a7fc63ca75c59b22c79608659ca12f0131f52c18637f829977f20b
* SHA3-256 for sqlite3.c: bb317fbbd2b3bc53233ddd5894bf4d2dc6f533445f350d4235db
cc86f65af4ec

---

2026-03-13 (3.51.3)
* Fix: The WAL-reset database corruption bug.
* Other minor bug fixes.

Hashes:
* SQLITE_SOURCE_ID: 2026-03-13 10:38:09
737ae4a34738ffa0c3ff7f9bb18df914dd1cad163f28fd6b6e114a344fe6d618
* SHA3-256 for sqlite3.c: 32d5424f97e0a7fc5ed2f6335afbb58be4e0298bd7117a34e39d3
45ff13d859e

---

2026-03-06 (3.52.0)
* Withdrawn: All features originally scheduled for 3.52.0 moved into 3.53.0.

---

2026-01-09 (3.51.2)
* Fix: An obscure deadlock in the new broken-posix-lock detection logic.
* Fix: Multiple problems in the EXISTS-to-JOIN optimization.
* Other minor bug fixes.

Hashes:
* SQLITE_SOURCE_ID: 2026-01-09 17:27:48
b270f8339eb13b504d0b2ba154ebca966b7dde08e40c3ed7d559749818cb2075
* SHA3-256 for sqlite3.c: 733b3fcc6cccb1e334424b9b91a9d68b618385b76ebfcbb106690
bd3a9e61367

---

2025-11-28 (3.51.1)
* Fix: Incorrect results from nested EXISTS queries (from 3.51.0).
* Fix: A latent bug in fts5vocab virtual table.

Hashes:
* SQLITE_SOURCE_ID: 2025-11-28 17:28:25
281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88
* SHA3-256 for sqlite3.c: 7cec3a104797bea93970408168197af37f178ab608ea55efd48d
28daa87a8ce3

---

2025-11-04 (3.51.0)
* New macros in sqlite3.h:
* SQLITE_SCM_BRANCH -> name of the branch.
* SQLITE_SCM_TAGS -> space-separated list of tags.
* SQLITE_SCM_DATETIME -> ISO-8601 check-in date/time.
* JSON: jsonb_each() and jsonb_tree() added; return JSONB for
'array' or 'object'.
* Extensions: carray and percentile are now built into the
amalgamation (disabled by default).
* TCL Interface:
* Add -asdict flag to the eval command.
* User-defined functions may now break to return an SQL NULL.
* CLI enhancements:
* Increase .timer precision to microseconds.
* Enhance "box" and "column" modes for double-wide characters.
* .imposter command for read-only imposter tables with VACUUM.
* Add --ifexists to CLI and .open command.
* Limit column widths in .width to 30,000.
* Performance:
* Use fewer CPU cycles to commit a read transaction.
* Early detection of joins with no rows.
* Avoid evaluation of scalar subqueries if they don't change the
overall result.
* Faster window function queries for BETWEEN :x FOLLOWING AND :y
FOLLOWING.
* New APIs/Commands:
* PRAGMA wal_checkpoint=NOOP;
* sqlite3_set_errmsg()
* sqlite3_db_status64() (64-bit version).
* SQLITE_DBSTATUS_TEMPBUF_SPILL option.
* sqlite3changeset_apply_v3() for sessions.
* printf() / format(): Omit leading '-' from negative floats if '+'
flag is omitted, '#' is present, and all displayed digits are
'0'. Use '%#f' or similar to avoid outputs like '-0.00' and instead show
just '0.00'.
* Other:
* Improved error messages for FTS5.
* Enforce STRICT typing on computed columns.
* Improved support for VxWorks.
* JavaScript/WASM supports 64-bit WASM.
* Resistance to corruption from breaking Posix advisory locks using
close().

Hashes:
* SQLITE_SOURCE_ID: 2025-11-04 19:38:17
fb2c931ae597f8d00a37574ff67aeed3eced4e5547f9120744ae4bfa8e74527b
* SHA3-256 for sqlite3.c: e2add951748f73587cadd1b2684defb4f39fa58dca14b16162d4
237e50af9afa

---

2025-07-30 (3.50.4)
* Fix: Two cases of uninitialized variables in obscure circumstances.

Hashes:
* SQLITE_SOURCE_ID: 2025-07-30 19:33:53
4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3
* SHA3-256 for sqlite3.c: 9145255e83da6529e70121ee4d7a4c88fe83ca4511da0c9ed13d
10842df36782

---

2025-07-17 (3.50.3)
* Fix: Memory error if FTS5 index is deliberately corrupted.
* Fix: Parser now ignores SQL comments in CREATE TRIGGER.
* Fix: Incorrect answer due to over-optimization of AND operator.
* Fix minor makefile issues and documentation typos.

Hashes:
* SQLITE_SOURCE_ID: 2025-07-17 13:25:10
3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543
* SHA3-256 for sqlite3.c: 934fafe96caa7f4c16e82e0c2b674441a715c038acc9780bf15e
09411daba70c

---

2025-06-28 (3.50.2)
* Fix: concat_ws() now includes empty strings.
* Fix: File-io extension can now be built with MinGW.
* Fix: Avoid writing frames with no checksums into the WAL file on
savepoint rollback.
* Fix: Bitvec object to avoid stack overflow near max database size.
* Fix: UPDATEs on fts5 tables containing BLOB values.
* Fix: Transitive IS constraints on a RIGHT JOIN.
* Fix: Early error if aggregate terms exceed max columns.
* Ensure sqlite3_setlk_timeout() holds the database mutex.

Hashes:
* SQLITE_SOURCE_ID: 2025-06-28 14:00:48
2af157d77fb1304a74176eaee7fbc7c7e932d946bf25325e9c26c91db19e3079
* SHA3-256 for sqlite3.c: 889bf23942c52f38a6f182e71d3f0a03db490fd731f02147b114
2c11153f3b3a

---

2025-06-06 (3.50.1)
* Fix: Bug in jsonb_set() exposed by 3.50.0 optimizations.
* Fix: Harmless ASAN warning with -DSQLITE_DEFAULT_MEMSTATUS=0.
* Fix: Off-by-one bug in sqlite3_rsync.
* Optimization: Allow right-hand side of a LEFT JOIN to be flattened
even if it is a virtual table.
* Fix: sqlite3_setlk_timeout() to use a blocking lock when opening a
snapshot.

Hashes:
* SQLITE_SOURCE_ID: 2025-06-06 14:52:32
b77dc5e0f596d2140d9ac682b2893ff65d3a4140aa86067a3efebe29dc914c95
* SHA3-256 for sqlite3.c: c3bdffa01dab94be370bdcaeb819cda4a6e0c61f0c6e19a6f94c
cba76fc9eeca

---

2025-05-29 (3.50.0)
* New API: sqlite3_setlk_timeout() for blocking locks.
* DBCONFIG: SQLITE_DBCONFIG_ENABLE_COMMENTS relaxed; comments always
allowed when reading schema.
* New SQL functions: unistr(), unistr_quote().
* printf() / format(): Alternate-form-1 flag (#) converts control
chars into backslash-escapes for unistr().
* CLI enhancements:
* Avoids direct output of control characters.
* .dump uses unistr() to encode special characters.
* Better formatting of partial indexes in .schema --indent.
* sqlite3_rsync:
* Requirement for WAL mode removed.
* Protocol uses less bandwidth for similar files.
* Works on Macs without full remote path if installed in $HOME/bin,
etc.
* JSON functions:
* Enforce JSON5 restriction: \0 escape not followed by a digit.
* json_group_object(): NULL labels are now omitted.
* jsonb_set() / jsonb_replace(): Optimized for interior changes to
reduce I/O.
* JavaScript/WASM: Fix filename digest calculation bug in OPFS SAHPool
VFS.

Hashes:
* SQLITE_SOURCE_ID: 2025-05-29 14:26:00
dfc790f998f450d9c35e3ba1c8c89c17466cb559f87b0239e4aab9d34e28f742
* SHA3-256 for sqlite3.c: b8a2bcdd2ec60f87c3bbe7a2c25eb65e476e40fe80cd066ab8aa
98e5d516c1e4

---

2025-05-07 (3.49.2)
* Fix: NOT NULL optimization bug from 3.40.0.
* Fix: count-of-view optimization for DISTINCT queries.
* Fix: Incorrect answer when UNIQUE constraint contains the
PRIMARY KEY column and used by an IN operator.
* Fix: Obscure problems with generate_series().

Hashes:
* SQLITE_SOURCE_ID: 2025-05-07 10:39:52
17144570b0d96ae63cd6f3edca39e27ebd74925252bbaf6723bcb2f6b4861fb1
* SHA3-256 for sqlite3.c: 17f4857fc6a0def2749d248d5365c59282c044270533c6c2b212
87295f01eb23

---

2025-02-18 (3.49.1)
* Fix: concat_ws() bug (from 3.44.0) causing memory error with
separators > 2MB.
* Enhanced the SQLITE_DBCONFIG_LOOKASIDE interface.

Hashes:
* SQLITE_SOURCE_ID: 2025-02-18 13:38:58
873d4e274b4988d260ba8354a9718324a1c26187a4ab4c1cc0227c03d0f10e70
* SHA3-256 for sqlite3.c: 22eab05c842463a3705c63922f12f68531200185ced510ed6aed
2065ca44e816

---

2025-02-06 (3.49.0)
* Query planner:
* Query-time index optimization for WITHOUT ROWID tables.
* Better plans for large star-query joins.
* Tie-break equal costs using fewer bytes per row.
* SQL functions: iif() now accepts any number of arguments >= 2.
* Session extension: Now works on generated columns.
* CLI: Added SQLITE_USE_W32_FOR_CONSOLE_IO for Windows console builds.
* New sqlite3_db_config() options:
* SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE
* SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE
* SQLITE_DBCONFIG_ENABLE_COMMENTS
* Build System: Replace Autotools with Autosetup for the amalgamation
tarball configure script.

Hashes:
* SQLITE_SOURCE_ID: 2025-02-06 11:55:18
4a7dd425dc2a0e5082a9049c9b4a9d4f199a71583d014c24b4cfe276c5a77cde
* SHA3-256 for sqlite3.c: 030c764eba64a3fa3bbf87447abd175bfef94851f970d62126a9
2877b30b611e

---

2025-01-14 (3.48.0)
* Build System: Refactor canonical "configure" to use Autosetup. TCL is
no longer required for most build targets. Build dependencies reduced to
C compiler and make/nmake.
* EXPLAIN: Improved output for covering indexes.
* SQL functions: Two-argument iif() or if() spelling.
* CLI: Added .dbtotxt command.
* VFS: Added SQLITE_IOCAP_SUBPAGE_READ and SQLITE_FCNTL_NULL_IO.
* sqlite3_prepare_v3(): Added SQLITE_PREPARE_DONT_LOG to check
validity silently.
* FTS5: Extended xInstToken() for prefix queries.
* Limits:
* Increase min SQLITE_LIMIT_LENGTH from 1 to 30.
* Increase max arguments to an SQL function from 127 to 1000.
* Remove vestigial SQLITE_USER_AUTHENTICATION.

Hashes:
* SQLITE_SOURCE_ID: 2025-01-14 11:05:00
d2fe6b05f38d9d7cd78c5d252e99ac59f1aea071d669830c1ffe4e8966e84010
* SHA3-256 for sqlite3.c: 522bd9492526147d12fc8521028eb960557353d8f08c2035f15a
c737d4b91e21

---

2024-12-07 (3.47.2)
* Fix: Numeric conversion error for specific values starting with
'1844674407370955' on x64/i386 hardware (introduced in 3.47.0).

Hashes:
* SQLITE_SOURCE_ID: 2024-12-07 20:39:59
2aabe05e2e8cae4847a802ee2daddc1d7413d8fc560254d93ee3e72c14685b6c
* SHA3-256 for sqlite3.c: 586b5789453ee5c51e8d858cd836f20ce60df882323f2070547c
baf23a5898af

---

2024-11-25 (3.47.1)
* Fix: Makefiles now honor DESTDIR.
* Fix: Line endings in sqlite3_rsync.exe on Windows.
* Fix: Incorrect answers for obscure IN queries (from 3.47.0).

Hashes:
* SQLITE_SOURCE_ID: 2024-11-25 12:07:48
b95d11e958643b969c47a8e5857f3793b9e69700b8f1469371386369a26e577e
* SHA3-256 for sqlite3.c: d91b8b5671a127bd41057bc758d6d59fb7aceda67934a1c0166a
b2e133f2f902

---

2024-10-21 (3.47.0)
* SQL: Arbitrary expressions in 2nd argument to RAISE().
* JSON: Negative RHS to ->> counts array elements from the right.
* FTS5: Tables can be dropped even if the tokenizer is unregistered.
* group_concat(): Returns empty string (not NULL) for single empty
string input.
* Performance:
* Bloom filter on subqueries for IN operator.
* "order-by-subquery" optimization.
* "indexed-subtype-expr" optimization.
* CLI: Added sqlite3_rsync, .www, and math functions (median(),
percentile()).
* Long Double: SQLite no longer uses the long double type; uses
Dekker's algorithm for precision instead.
* TCL Interface: Supports TCL9.

Hashes:
* SQLITE_SOURCE_ID: 2024-10-21 16:30:22
03a9703e27c44437c39363d0baf82db4ebc94538a0f28411c85dda156f82636e
* SHA3-256 for sqlite3.c: bcec3a4fbc97e973547924677332996ef64e06a6d10d22e2c234
4f447536cc29

---

2024-08-13 (3.46.1)
* Fix: Robustness in FTS5 tokenize= parsing.
* Query Planner: Early detection of covering index over-prediction.
* Fix: VALUES clause terms not limited by
SQLITE_LIMIT_COMPOUND_SELECT.
* JavaScript/WASM: Fix corruption-causing bug in "opfs" VFS.

Hashes:
* SQLITE_SOURCE_ID: 2024-08-13 09:16:08
c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33
* SHA3-256 for sqlite3.c: 186a1baa476b6d546de155160ca6d30ff7b7e6ee375f0bb6445e
1a3d180a7dad

---

2024-05-23 (3.46.0)
* PRAGMA optimize:
* Automatically implements analysis limits.
* New 0x10000 bitmask to check all tables.
* Date/Time: strftime() supports %G, %g, %U, %V. New modifiers
'ceiling' and 'floor'.
* JSON: Added json_pretty().
* Numeric Literals: Support for underscores (_) between digits.
* Query planner: "VALUES-as-coroutine" optimization for thousands of
rows.
* Parser: Stack overflows now allocate from heap rather than erroring
out.

Hashes:
* SQLITE_SOURCE_ID: 2024-05-23 13:25:27 96c92aba00c

RSS XML Feed