SQLite

Timeline
Login

50 most recent check-ins

2026-11-02
13:24
Internal tweaks to the oo1 db/stmt disposal and add tests demonstrating that shared-access db/stmt handles behave well when their rugs are pulled out from under them. (leaf check-in: b964875134 ... user: stephan tags: trunk)
12:58
Minor test code additions. (check-in: 7e08e4bb7b ... user: stephan tags: trunk)
12:12
Strip the sqlite3_context support from SQLITE_DISPOSAL_NOTIFIER because those pointers are not stable enough to be of any use for this purpose. They are, by happy accident, in two cases but are not guaranteed to be and are not so in other cases. (check-in: ead354645d ... user: stephan tags: trunk)
11:52
Avoid errors that sometimes occur when running ALTER TABLE or VACUUM when there are tables in the TEMP database with the same names as tables in the database being altered or vacuumed. Report 2026-10-29T11:55:37Z. (check-in: c4b02a964b ... user: dan tags: trunk)
10:29
Add a few sqlite3_js_on_pointer_dispose() tests. Re-indent a large block of test code. (check-in: 4fc4469e44 ... user: stephan tags: trunk)
10:09
Doc typos and cosmetic code cleanups. Remove some dead code. Replace some stray console.error() calls with sqlite3.config.error(). Update some doc links in module-symbols.html. (check-in: e2daa79790 ... user: stephan tags: trunk)
09:44
Teach sqlite3_js_on_pointer_dispose() to accept a WASM function pointer for a callback. (check-in: 8c5908f428 ... user: stephan tags: trunk)
01:20
Fix sqlite3_carray_bind() with SQLITE_TRANSIENT so that it correctly differentiates between a NULL and a zero-length BLOB. Bug 2026-11-01T12:04:38Z (check-in: d6ba38e5fe ... user: drh tags: trunk)
2026-11-01
17:49
Enhance the tables_used() table-valued function so that reports tables and indexes deleted by DROP TABLE and DROP INDEX and clear using the truncate optimization. Bug 2026-11-01T11:57:59Z. (check-in: ceca12f86f ... user: drh tags: trunk)
16:01
Improved handling of empty filenames in the writefile() function that is part of the fileio.c extension. (check-in: 24b4184a57 ... user: drh tags: trunk)
11:38
Ensure that the database schema has been read prior to generating a hex dump of a database file using ".dbtotxt" in the CLI. (check-in: 7bed0b36e4 ... user: drh tags: trunk)
10:46
Fix a slightly incorrect assert() in [afa137dbeb020fae]. (check-in: 4cac619f00 ... user: drh tags: trunk)
10:24
Restructure some test code. (check-in: 27f1ba7eaa ... user: stephan tags: trunk)
10:13
Doc tweaks and test improvements. (check-in: 3c0f79c2e8 ... user: stephan tags: trunk)
09:44
Get sqlite3_js_on_pointer_dispose() working and tested. (check-in: 4088abcb25 ... user: stephan tags: trunk)
00:42
Add the experimental and as-yet untested sqlite3_js_on_pointer_dispose() as a way for JS clients to clean up data mapped to native pointers when the underlying native objects are destroyed by the library. (check-in: ca551ede9c ... user: stephan tags: trunk)
2026-10-31
23:17
Test doc touchups. (check-in: bda1217086 ... user: stephan tags: trunk)
22:44
Add another sqlite3_set_auxdata() conversion test. Document why that option is (and should remain) disabled and leave #if'd out as food for thought later. (check-in: ec117fe0fd ... user: stephan tags: trunk)
21:57
Add SQLITE_DISPOSAL_NOTIFIER call for sqlite3_context. Experimentally use that to provide sane lifetime mappings for sqlite3_set_auxdata() dtor conversions. That seems to work fine, with predictable cost, but is currently disabled because it needs much more testing. (check-in: 4139b9f0c4 ... user: stephan tags: trunk)
20:26
Add a the SQLITE_DISPOSAL_NOTIFIER internal-use hook to alert callers when certain objects are finalized. This allows the WASM builds to better clean up associated JS-side state. e.g. passing an oo1.DB instance to sqlite3_close_v2() is now well-behaved, disconnecting any oo1.DB instances which share that pointer and any DB.Stmt objects still opened by those. (check-in: 055fdd4709 ... user: stephan tags: trunk)
20:14
Flesh out the documentation for the SQLITE_DISPOSAL_NOTIFIER (internal) interface. (closed check-in: cd96471ae0 ... user: stephan tags: disposal-notification)
20:12
Fix an ALTER TABLE problem with renaming a temp table when there is a temp trigger defined on a main db table of the same name. Report 2026-10-27T20:00:22Z. (check-in: f7a9970ec1 ... user: dan tags: trunk)
20:08
Fix the display of current optimizations in the CLI. (check-in: 8d891830dd ... user: drh tags: trunk)
19:47
Consolidate some duplicate code. (check-in: 0a13364732 ... user: stephan tags: disposal-notification)
19:30
Fix a typo in the previous checkin which caused a corner case to not clean up properly. (check-in: d58903a30e ... user: stephan tags: disposal-notification)
19:26
Fix deregistration of shared-handle DB/Stmt instances. Add tests demonstrating that closing the prime handle disassociates other oo1-level objects which share that handle. Simplify the by-typeId dispatching of being-disposed pointers. (check-in: c15dc8027f ... user: stephan tags: disposal-notification)
18:36
Hook oo1.DB and DB.Stmt into SQLITE_DISPOSAL_NOTIFIER, such that passing an instance to sqlite3_close_v2() resp. sqlite3_finalize() will cleanly unplug the oo1 instance from its native. (check-in: 6c8982f153 ... user: stephan tags: disposal-notification)
17:55
Expand the optimization disable mask from 32 to 64 bits. Add a new bit to disable the having-to-where optimization, for testing purposes. (check-in: 89ea662676 ... user: drh tags: trunk)
17:48
When renaming a non-temp table using ALTER TABLE RENAME TO, do not also modify references within temp triggers to a temp table of the same name. Report 2026-10-27T19:51:14Z. (check-in: 6488dbedd1 ... user: dan tags: trunk)
16:47
JS: remove the hand-written sqlite3_close_v2() binding, moving its cleanup work into the new disposal notification. This makes it safe and easy to map arbitrary JS state to dbs and stmts with the certainty that any mappings can be deleted regardless of how the C counterparts are disposed. (check-in: 6e21a7b4cd ... user: stephan tags: disposal-notification)
16:26
Fix ALTER TABLE RENAME COLUMN statements to correctly rename column references that appear in ON clauses that are part of triggers and views. Report 2026-10-27T19:54:24Z. (check-in: 9138604750 ... user: dan tags: trunk)
15:12
Make the "-DevTest" optimization flag available for testing purposes. Don't actually use it for anything permanent. Just have it available for use during debugging builds, in enable/disable features for comparison. (check-in: 439a702e5c ... user: drh tags: trunk)
14:25
Generic cleanups. Add a missing finalizer call in the new test code. (check-in: 727d1886f6 ... user: stephan tags: disposal-notification)
14:08
Remove a couple of unnecessary levels of indirection. Add some comments explaining what's going on JS-side. (check-in: 724b7da264 ... user: stephan tags: disposal-notification)
13:27
A proof-of-concept for a compile-time-provided hook to notify when the library disposes of certain memory. The use case is providing the JS bindings with a way to unmap native-to-JS bindings when a db, statement, etc. are finalized in some way other than the JS-side bindings which do this work. (check-in: 50785fb6cb ... user: stephan tags: disposal-notification)
13:06
Back out part of [a7f314264fc98f50] which turns out to have been ill-advised. (check-in: c80f9edb34 ... user: stephan tags: trunk)
10:45
Preprocessor-strip approximately 4k of JS we don't need client-side. (check-in: 7da6c2681e ... user: stephan tags: trunk)
10:31
JS: add some docs explaining the problem the Module.instantiateWasm() override solves. (check-in: a7f314264f ... user: stephan tags: trunk)
07:43
Merge branch-3.54 into trunk and resolve merge conflicts in the JS pieces. (check-in: 65091cea03 ... user: stephan tags: trunk)
07:35
Handle ALTER TABLE ADD COLUMN statements when the new column definition ends with a comment. Report 2026-10-27T19:49:19Z. (check-in: 7ae2d4d1e4 ... user: dan tags: trunk)
06:38
Have ALTER TABLE ADD CHECK handle the case where input ends with an unterminated C-style comment. e.g. "ALTER TABLE t1 ADD CHECK (x!=0) /* unterminated". Report 2026-10-27T19:57:50Z. (check-in: 64f9e76132 ... user: dan tags: trunk)
02:36
Fix RCEs so that if the self-reference table in the recursive section is on the nullable size of an outer join, it gets the correct answer. Test cases are in TH3. Bug 2026-10-26T12:56:29Z. Other systems simple do not allow this. Claude tells me that the SQL standard does not allow it. I'm not sure why anyone would want to do it. But in any event, I believe it is now working as of this patch. (check-in: 36b78a7509 ... user: drh tags: trunk)
00:22
Fix the REGEXP extension so that "|" has higher precedence than "^". Bug 2026-10-27T07:20:52Z (check-in: c6399317f0 ... user: drh tags: trunk)
00:01
Improved formatting of quirky column names in ".mode line" in QRF. Bug 2026-10-27T07:26:52Z (check-in: 164b284fab ... user: drh tags: trunk)
2026-10-30
23:32
In the ext/misc/csv.c extension, if the last row of CSV input is incomplete, fill it out with empty strings rather than NULLs. Bug 2026-10-28T05:07:03Z (check-in: fc7692c39b ... user: drh tags: trunk)
23:08
When the zipfile extension writes a file with a timestamp before 1980-01-01T00:00:01, set the DOS timestamp to that minimum value so that can be displayed on Windows11, which appears to ignore the 0x5455 extended timestamp. Bug 2026-10-27T07:28:08Z (check-in: 8c3db88586 ... user: drh tags: trunk)
20:32
Fix ALTER TABLE so that it works when a trigger contains an UPSERT with more than one ON CONFLICT clause. Report 2026-10-27T19:46:34Z. (check-in: 3c038169f7 ... user: dan tags: trunk)
19:22
Simplify an ESM export construct. (check-in: 78d9fd1175 ... user: stephan tags: trunk)
19:14
Update JS README.md to more closely reflect current reality. (check-in: 244db4ef9b ... user: stephan tags: trunk)
18:56
JS internal docs and filtering out of state not needed in bundler-friendly builds. (check-in: 02a05ed7f0 ... user: stephan tags: trunk)
More ↓