Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
50 most recent check-ins that include changes to files matching 'not-fork.d/*'
|
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 Leaf check-in: 5420617f59 user: danshearer tags: trunk | |
|
2026-04-27
| ||
| 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
| ||
| 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 | |
|
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: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: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 | |
| 02:05 | Bringing lumosql up to date for 2026 check-in: 13466cbb10 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 | |
|
2022-08-02
| ||
| 07:19 | Adding recent versions of sqlite3 to the "upstream.lock" file check-in: 881386f1dd user: Uilebheist tags: trunk | |
|
2022-07-10
| ||
| 14:28 | Minor typo check-in: c8427d4252 user: Uilebheist tags: trunk | |
|
2022-05-04
| ||
| 16:48 | Regenerated upstream.lock with full commit ID rather than truncated check-in: 0559d60a5c user: Uilebheist tags: trunk | |
|
2022-04-13
| ||
| 14:31 | Adding some extra information so that not-fork can find locally mirrored sources. Adding "upstream.lock" files containing the list of revisions known at the time of committing. build.tcl will not use them automatically because they require the latest not-fork, but they are there in preparation. check-in: 24305c2754 user: Uilebheist tags: trunk | |
|
2022-04-11
| ||
| 08:02 | Adding sha-256 checksum for BDB download check-in: 19b27de50a user: Uilebheist tags: trunk | |
|
2022-03-22
| ||
| 13:25 | Updating code to make it easier to use alternative test lists (tests only for now, rather than benchmarks). Updated documentation. Added a new set of tests to check the interaction between Lumo metadata and unmodified sqlite check-in: d8a12beeb4 user: Uilebheist tags: trunk | |
|
2022-03-15
| ||
| 13:41 | New option, discard_output, to prevent reading the test/benchmark output into a TCL string. This allows very large datasize values without having TCL try to create a string too big and fail. Default is "Off" i.e. same code as before. check-in: c1678c4bae user: Uilebheist tags: trunk | |
|
2022-02-23
| ||
| 13:38 | More cleanup of rowsum / lumo extensions code, and now rowsum also works on indices as well as tables with ROWID. check-in: 5948723391 user: Uilebheist tags: trunk | |
|
2022-02-22
| ||
| 12:54 | Moving some of the rowsum code to a separate file to simplify the vdbe patch and also to clean things up; it now works with sqlite 3.35.0 or newer, but no longer works with 3.34 due to changes in sqlite. Rowsum on indices is still not there yet. check-in: 5b4e671d94 user: Uilebheist tags: trunk | |
|
2022-02-17
| ||
| 15:38 | Some changes to run on FreeBSD: finding tclsh; finding editline/readline; finding a C compiler. Removing code which went into not-forking, and requesting at least not-forking 0.5 check-in: df0ca754bf user: Uilebheist tags: trunk | |
|
2022-02-11
| ||
| 09:39 | Allowing the DATASIZE option to have one or two numbers, to specify a separate "read" and "write" data size, with code to remain compatible with older targets which specify just one number. check-in: 79fadb6ad8 user: Uilebheist tags: trunk | |
|
2022-02-10
| ||
| 18:22 | Changing minimum LMDB version we use to 0.9.14, as older versions have issues check-in: 78c38ba2a4 user: Uilebheist tags: trunk | |
| 12:32 | Fixes for ARMv7 which probably also apply to other 32 bit processors check-in: 212bde35a6 user: Uilebheist tags: trunk | |
|
2022-02-06
| ||
| 09:48 | Extended syntax to specify lists of versions, and allowing list of versions in most places which previously accepted just a single version number. This allows to specify lots of benchmarks in a simpler command line. Also added an option ("make targets") to display the resulting list of targets in a single line, for easier copy and paste to a "make TARGETS='...'" command. Updated all documentation as appropriate. Also changed the default sqlite and LMDB versions for the benchmark to take advantage of the new syntax, in particular using "latest" instead of specifying explicitely a version to use. check-in: 8d1c75505c user: Uilebheist tags: trunk | |
|
2022-02-05
| ||
| 09:17 | Changing sqlite3 version to test/benchmark to latest (3.37.2). Updating LMDB backend to work with this version. check-in: 95272775cc user: Uilebheist tags: trunk | |
|
2021-07-23
| ||
| 13:16 | Minor comment edits check-in: 30fccbb4f3 user: danshearer tags: trunk | |
|
2021-07-01
| ||
| 08:10 | When opening a temporary database with LMDB backend, use a 32 bit mapsize even on 64 bit processors; this works around an out-of-memory error on some architectures. check-in: 57178ce7e5 user: Uilebheist tags: trunk | |
| 06:55 | Changing default sqlite version tested to latest (3.36.0). Recording CPU and OS type in benchmarks and tests results databases. Changing benchmark-filter to be able to add this new information in the output. Also adding import and merge function to benchmark-filter (these are needed to collect test results from different places and keep them in a single database). Allowing spaces instead of commas in field lists and import lists (the latter so that one can use the shell's pathname expansion to import multiple files). check-in: 1082bcedcc user: Uilebheist tags: trunk | |
|
2021-06-15
| ||
| 12:58 | Using latest not-forking updates to simplify some configuration check-in: 0779718a2c user: Uilebheist tags: trunk | |
|
2021-05-20
| ||
| 18:05 | Simplifying the new pragma code check-in: b7f044b062 user: Uilebheist tags: trunk | |
| 15:29 | Documentation update after the earlier changes; also removing the option BENCHMARK_DB which had no effect on the benchmark, only (misleadingly) on the output of "make what". The correct option, DATABASE_NAME, is now documented. Also revised examples to match the most recent version of the build system. check-in: 2baa14be76 user: Uilebheist tags: trunk | |
| 12:42 | Added a mechanism to add backend-specific SQL to a test or benchmark. Changed the LMDB transaction type from a build-time option to a runtime option specified by a PRAGMA: used the new mechanism to add this pragma to the first test, which creates the database, but only when the backend is LMDB. check-in: 3eb90a761d user: Uilebheist tags: trunk | |
|
2021-05-17
| ||
| 13:03 | Changing the LMDB upstream definition file to use the new format introduced by not-forking 0.4; adding code to use the new --use-version option in not-forking so that the build system will cope with any future incompatible changes to not-forking itself. check-in: 7574565d11 user: Uilebheist tags: trunk | |
|
2021-05-15
| ||
| 13:23 | Adding code to mark tests which are not benchmarks; "make benchmark" will skip these tests; a new "make test" target will run all tests but won't record the timing in the benchmarks database: these tests are there to test backend changes, but it doesn't make sense to benchmark them. Updating two tests to be skipped this way when running benchmarks. check-in: eda2b7208e user: Uilebheist tags: trunk | |
|
2021-04-03
| ||
| 14:36 | Portability change: some C compilers don't like the variadic macro used for LUMO_LOG so changed it to be more portable. Also made sure to close a database which was open with BTREE_SINGLE. Some more debugging messages. check-in: 44c9b30532 user: Uilebheist tags: trunk | |
| 09:52 | Making sqlite 3.18.2 build on NetBSD check-in: d62663bd04 user: Uilebheist tags: trunk | |
| 09:40 | Implementing another missing function and adding code to benchmark it check-in: 2ab354b0f0 user: Uilebheist tags: trunk | |
|
2021-04-02
| ||
| 09:30 | First steps in getting the build/benchmark working on NetBSD; there are some problems which will need to be investigated but at least it builds and the LMDB backend passes most of the tests. check-in: b6b985cfd7 user: Uilebheist tags: trunk | |
|
2021-04-01
| ||
| 21:08 | Adding sqlite3BtreeTransferRow() and making changes to sqlite3BtreeInsert() so that the LMDB backend will work with sqlite 3.35. Changing the default sqlite version for the LMDB backend benchmarks to 3.35.3 check-in: bf08eba296 user: Uilebheist tags: trunk | |
| 12:55 | Changing default versions used in benchmarks to reflect the latest check-in: 4f51648b4d user: Uilebheist tags: trunk | |
| 09:50 | Adding an option to specify a "make" command (default "make"); this is needed on systems with BSD make to use "gmake" or some other program. check-in: ba96cebb98 user: Uilebheist tags: trunk | |
|
2021-03-31
| ||
| 08:47 | Finishing the new transaction code - it was actually nearly complete, apart from a small bug now fixed check-in: f36afcc4fd user: Uilebheist tags: trunk | |
|
2021-03-30
| ||
| 18:41 | Adding a test to check the upgrade of read-only transactions to read/write. Adding a third (incomplete, work in progress) type of transaction code, and changing the lmdb_transaction option as appropriate. Now a transaction can be "noupgrade" (fails when a r/o transaction needs to be upgraded to r/w), "serialise" (always start a r/w transaction, which limits concurrency) and the new "optimistic" which tries to abort the LMDB transaction when upgrading and then start a new r/w LMDB transaction: this could fail if there have been changes to the database since the start of the r/o transaction, so it could return SQLITE_BUSY at that point: this new code is incomplete. check-in: 5e3839c15e user: Uilebheist tags: trunk | |
|
2021-03-08
| ||
| 20:40 | New benchmark option sqlite3_journal to select the journal_mode (wal, delete, etc); also adding the lmdb_transaction option which was missing from last commit (which had the code to use it...) check-in: b7a6135f9f user: Uilebheist tags: trunk | |
| 19:12 | The LMDB backend always created a read/write transaction for writable databases; this because LMDB cannot upgrade a read/only transaction to read/write and creating a new r/w transaction would mean potentially basing an update on the wrong data. However the debugging log suggests that this is not necessary at least for the tests we've been running; added an option to control this: by default, the backend will have readonly or read/write transactions as requested by VDBE, but will return an error if asked to upgrade r/o to r/w; this increases concurrency; if it turns out to be necessary, we can change the default (and look if there is another way to get the same result without reducing concurrency so much). check-in: 00d772da6f user: Uilebheist tags: trunk | |
| 12:39 | Updated some comments and marked some parts which still need to be written check-in: 37f2e7a39b user: Uilebheist tags: trunk | |