Timeline

Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2026-05-15
11:10
Remove BDB from everywhere including documentation except for historical factual references. BDB was a useful part of the original proof of concept, showing that multiple backends were possible. The port was done by Oracle, long-since abandoned, as is BDB. Also started to update the documentation generally. Many things have changed since 2022, and we now have a feeling for which of the many original goals are likely to be most useful. Leaf check-in: 83e970b26e user: danshearer tags: trunk
2026-05-06
08:33
Updated for the many changes to 2026 check-in: a2ac713d02 user: danshearer tags: trunk
2026-05-05
00:24
Update status of the checksum VFS, which is maintained and still has lessons for us check-in: 09245f16bb user: danshearer tags: trunk
00:19
Refine the rowsum argument with respect to what exists already in 2026 check-in: 2e53111960 user: danshearer tags: trunk
00:15
Update database support claims for 2026 check-in: 2b6a0c9245 user: danshearer tags: trunk
2026-05-04
23:46
Tighten up crypto thoughts check-in: 0651665169 user: danshearer tags: trunk
23:40
Tighten up LMDB v1.0 draft plan for comment check-in: 9894a41503 user: danshearer tags: trunk
2026-05-02
09:59
Update mirror comment check-in: 24cca33fed user: danshearer tags: trunk
2026-04-30
17:14
Fix strangeness with LMDB v1.0 numbering in preparation for 1.0 port Document the benchmark SQLite database schema and give examples of useful queries check-in: 5420617f59 user: danshearer tags: trunk
17:05
Plan for and comments about LMDB 1.0 backend, which will be another not-fork recipe and involve page level crypto at the later stages. check-in: dd5e63598d user: danshearer tags: trunk
2026-04-29
16:34
Notes on current status check-in: 1d0c11edf0 user: danshearer tags: trunk
12:33
Summarise work remaining in Lumo as-is in TODO.md Add TODO-CRYPTO.md, which is only about page-level crypto via LMDB which cut a v1.0 branch yesterday Row-level crypto is only addressed in the docs, there is no code or prototype work check-in: fb7b27fd17 user: danshearer tags: trunk
2026-04-27
06:42
Corrected comments in sql coverage for current supported status. There's a lot less broken now, which gives us nice regression tests for the future. check-in: 12288843ad user: danshearer tags: trunk
04:12
Reduced the lower bound for LumoSQL to be SQLite 3.30.0 (August 2020). This needed five small #if SQLITE_VERSION_NUMBER additions not-fork.d/lmdb/files/btree.c and pager.c. Things like the pager filename, and a couple of the Btree transaction API function calls were renamed around 3.34, and a minor change to BtreeMaxPageCount's rootpage type which changed in 3.33 etc. This is probably where the lower bound will stay unless there a user who is stuck on an older version really really wants another backend. check-in: cad2ad9692 user: danshearer tags: trunk
2026-04-26
20:03
Document the limitations of rowsum, which now works for all normal schemas. Later we can make it work for all cases. The fix isn't hard, just requires a care not to break vdbe. check-in: 42b1a0b6ee user: danshearer tags: trunk
19:01
Made rowsum work: * In vdbe: fix OP_Column and OP_Insert_Idx * In vdbeAdd.c: stop returning corruption on non-rowid last column * In sql-coverage, add all the failure conditions found for rowsum (loads - 7 in total, although most were due to a few errors.) check-in: bb02b3969a user: danshearer tags: trunk
12:08
Add rowsum tests check-in: 37835880b0 user: danshearer tags: trunk
2026-04-25
20:18
Fix FTS3 cursor mis-positioning bug: sqlite3BtreeMovetoUnpacked (via either of its two helpers) lied to the caller whenever the search key compared larger than every existing row in the table. Every SQLite optimiser path issuing a "seek just past this key" trusted the cursor's current row, but was actually reading the wrong row whenever the seek key happened to exceed the table's maximum. Added one probe to the coverage suite. LMDB coverage went from 60 pass / 4 expected_fail / 0 unexpected_pass to 64 pass / 1 expected_fail / 0 unexpected_pass (with one more probe in the suite, so 65 → 65 total); no-backend went from 64 pass / 0 expected_fail to 65 pass / 0 expected_fail. check-in: c3a3bac37d user: danshearer tags: trunk
16:47
Added FTS5 to build flags. FTS5 only works for the no-backend builds, but it stops errors on other builds that test for FTS5 existence even though FTS5 errors when exercised. Not quite as obvious as it looked: upstream enables FTS4 by default. sql-coverage now probes for FTS5. check-in: 4d7b976df6 user: danshearer tags: trunk
16:18
Deleting cruft, dead files, an #IF 0, etc. check-in: 0965e5ccff user: danshearer tags: trunk
15:46
LMDB doesn't have a pager so everything here is a no-op. There are 14 functions previously returning unintelligent reponses, all now return the best response I can think of. some of these changes have visible effects: - PRAGMA journal_size_limit=N now round-trips: setting a number then querying reports N back, instead of always 0. - PRAGMA journal_mode=delete|truncate|persist|memory now round-trips and behaves like SQLite. - PRAGMA journal_mode=wal is now silently suppressed (the prior journal mode is preserved). - PRAGMA locking_mode now reports normal check-in: b124ab6be3 user: danshearer tags: trunk
15:09
Tests for SQL we're supporting. The goal is to watch the failures go down to zero. check-in: df9264f7f9 user: danshearer tags: trunk
15:08
ANALYZE on LMDB now writes correct row counts to sqlite_stat1 (was 0 1, now 200 1 for a 200-row table) sqlite_offset() returns distinct values per row instead of always 0. Did this by replacing four LMDB-backend stubs returning bogus values of SQLITE_INTERNAL or 0 where the upstream callers expected real numbers. Specifically: sqlite3BtreeRowCountEst now returns mdb_stat().ms_entries sqlite3BtreeCursorIsValidNN now reports mdb cursor state sqlite3BtreeMaxRecordSize returns 2147483647 upper bound, which I took from the comment in Btree.c: "Everything will still work if this routine always returns 2147483647 (which is the largest record that SQLite can handle)". sqlite3BtreeOffset returns the LMDB data pointer, which I think is probably correct check-in: efc81884ad user: danshearer tags: trunk
14:22
These are SQLite settings that have no LMDB equivalent (LMDB doesn't have a page cache, autovacuum, or a configurable page size in the SQLite sense). Stubs returning SQLITE_INTERNAL is wrong because the call sites in pragma.c, vacuum.c, etc. expect a sensible return. The fix is to return a safe and sometimes meaningful default. This converts 16 stubs to intelligent NO-OPs: SetSpillSize SetMmapLimit SetPagerFlags SetPageSize GetPageSize MaxPageCount SecureDelete GetRequestedReserve SetAutoVacuum GetAutoVacuum Checkpoint IncrVacuum SetVersion ConnectionCount GetReserveNoMutex HeaderSizeBtree check-in: 092d4d9ac5 user: danshearer tags: trunk
14:05
Made SAVEPOINT work on LMDB backend. SQLite's native btree backend rolls back at the page level via the rollback journal. LMDB's rollback unit is a transaction, so we open MDB_txn at SAVEPOINT BEGIN, abort it at ROLLBACK TO, commit it into its parent at RELEASE. SQLite WAL is lower level, so savepoint behaviour is the same whether journalling or WAL. check-in: 1f1c4b73e9 user: danshearer tags: trunk
13:41
Update for new benchmark commands (-average, -compare etc) check-in: 04cd997a03 user: danshearer tags: trunk
13:40
Add -average , -compare , -group-by and the TSV (tab-separated values) format. TSV is native to Unix and generally easier and safer. check-in: 958dfddfa0 user: danshearer tags: trunk
13:37
A partial or stale lock directory can really confuse subsequent runs. Now it removes the lock dir regardless of the nature of the exit. check-in: 7a8332b984 user: danshearer tags: trunk
13:35
CREATE TABLE dropped CHECK clauses with LMDB backend, because the stub for sqlite3BtreeIsReadonly always returned read-only. Invisible except with EXPLAIN INSERT. check-in: 81d5014182 user: danshearer tags: trunk
06:23
if versions_list returns nothing for latest sqlite3, exit with error suggesting not-fork cache is corrupt and SQLITE_FOR_DB=. reject an empty SQLITE_FOR_DB. in the bulld loop, if any build name is empty, abort with an internal-error message including the offending build_list, instead of silently trying to open the lock directory. (Which won't work) check-in: 6529085477 user: danshearer tags: trunk
02:05
Bringing lumosql up to date for 2026 check-in: 13466cbb10 user: danshearer tags: trunk
2024-03-07
17:31
Make "among the most-deployed software", not "the most deployed" check-in: 024abcebc7 user: danshearer tags: trunk
2023-01-11
11:46
Add paper on definitions of Functional Encryption. Predicate Encryption seems to be a subclass of Functional Encryption. check-in: be5579f383 user: danshearer tags: trunk
2023-01-09
14:46
Add a DOI etc check-in: 39a2897050 user: danshearer tags: trunk
13:50
Add paper "Attribute‐based encryption implies identity‐based encryption" check-in: 177c8a57ba user: danshearer tags: trunk
2022-12-22
12:52
Rename README to README.md and start to update for current documentation conventions check-in: fc70d1e0e8 user: danshearer tags: trunk
12:48
Improve description of source tools. Note: this file was an experiment in Fossil-flavoured Markdown, which should be replaced with Github-flavoured Markdown for use with the new documentation toolchain. check-in: 88245ad2a7 user: danshearer tags: trunk
12:41
Start to document R presentation instructions. check-in: 03229234aa user: danshearer tags: trunk
12:36
Make the licensing situation even clearer in response to an enquiry. check-in: ae5938dcb1 user: danshearer tags: trunk
11:50
Add Ruben and Gabby check-in: 9cc1f1ed2c user: danshearer tags: trunk
10:27
Fix typo in README check-in: 025c324cde user: abdur-rahmaanj tags: trunk
10:17
Fix typo in CONTRIBUTING check-in: 6ae23b3ac1 user: abdur-rahmaanj tags: trunk
2022-10-26
12:16
Add Martina Palmucci's thesis: Securing databases using Attribute Based Encryption and Shamir’s Secret Sharing. check-in: cf77c681fe user: danshearer tags: trunk
2022-10-24
19:37
Add reference to supported hardware architectures and operating systems. check-in: b3c54d382c user: danshearer tags: trunk
15:16
Adding a fallback to "uname -m" if nothing else works for CPU detection. Also added a special case to recognise Virtio block devices on an emulated riscv running Linux check-in: f02941290c user: Uilebheist tags: trunk
14:37
Refactor the first part of the README to add two images and remove verbose words. check-in: 374ba9190d user: danshearer tags: trunk
2022-09-06
18:17
Make error message for missing not-fork more useful by pointing at master URL. check-in: 6a0b3966ce user: danshearer tags: trunk
17:52
Reinstate comment that GitHub is a read-only mirror check-in: 1530cc70b7 user: danshearer tags: trunk
2022-08-05
17:09
CHanging the context size in the fragment patch (vdbe-changes.mod) to cope with a larger range of sqlite versions, including the current latest (3.39.2) check-in: f4a08a00ce user: Uilebheist tags: trunk
2022-08-04
11:22
Removing some warnings produced when testing with clang check-in: f80048502d user: Uilebheist tags: trunk