Not logged in

The initial check-in for each branch:

19:40 [ebace2c9] Leaf: More work on Windows 10 SDK integration. (user: mistachkin, tags: win10sdk)
01:55 [c3ef0347] Improvements to the way that OOM errors are processed. (user: drh, tags: oom-handling)
02:34 [1c8d3001] Leaf: Add and use the sqlite3VdbeZeroRegister() interface for coding the common operation of writing zero into a register. (user: drh, tags: zero-register)
00:59 [7453790c] Leaf: Add the SQLITE_DBCONFIG_REQUIRE_WRITE_TXN connection setting, which if enabled requires all write operations to be enclosed within BEGIN ... COMMIT. (user: drh, tags: require-write-txn)
15:46 [2e9fb129] Closed-Leaf: A different way to clear the subtype on VDBE registers when the value of the register is overwritten with new content. To fix [[f45ac567eaa9f93]. (user: dan, tags: clear-subtype-flag)
14:53 [ec653cbc] Closed-Leaf: Take care to clear the subtype on VDBE registers when the value of the register is overwritten with new content. (user: drh, tags: clear-subtype-fail)
19:29 [a323ac3a] Experimental attempt to make better use of covering indexes within OR queries. (user: dan, tags: covering-or)
16:57 [ab946039] Closed-Leaf: Avoid unnecessary WHERE clause term tests when coding a join where one of the tables contains a OR constraint. (user: drh, tags: OR-clause-improvement)
15:49 [dde1db0d] Add assert() statements on the nExtraDelete variable in vdbe.c to try to verify that the FORDELETE and IDXDELETE flags are being generated correctly. Those flags are not currently generated correctly, and so the assert()s trip on this check-in. (user: drh, tags: fordelete-assert)
15:23 [12ef3a8f] Leaf: Change the automatic index mechanism so that it avoids creating transient indexes on columns that are known to have low cardinality. (user: drh, tags: autoindex-planning)
17:04 [80398fd4] Fix issues on unix with opening database files via symlinks that are not in the current working directory. And with nested symlinks. (user: dan, tags: follow-symlinks)
07:53 [c46f1a13] Add tooling to create an MSVC Makefile capable of building the core library and shell only, using a pre-built amalgamation. (user: mistachkin, tags: msvcMakeMin)
01:54 [39759a55] Leaf: Cleanup localtime() support for Windows CE. (user: mistachkin, tags: winCeLocalTime)
19:48 [b5a57b81] Experimental performance enhancements for fts5. (user: dan, tags: fts5-perf)
17:25 [82470d1c] Leaf: Disable the RESTRICT foreign key action if "PRAGMA defer_foreign_keys" is set. (user: dan, tags: disable-restrict)
17:06 [ac2cbadd] Add a new hint bit on the flags parameter of sqlite3BtreeDelete(). The new BTREE_IDXDELETE bit indicates that the call is to delete an index entry corresponding to a table row that has already been deleted. (user: drh, tags: btree-fordelete-flag)
17:59 [8b4f5080] When the block sorting optimization is used in a scalar subquery, be sure to exit the loop as soon as the first valid output row is received. Fix for ticket [cb3aa0641d9a4]. (user: drh, tags: branch-3.10)
16:39 [5d113aef] If a single page is written to the wal file more than once, have each subsequent copy overwrite the original frame. (user: dan, tags: wal-overwrite-frames)
02:27 [a02ace9a] Add the experimental SQLITE_FCNTL_JOURNAL_POINTER file control for obtaining the sqlite3_file pointer associated with a rollback journal or WAL file. (user: drh, tags: file-control-journal)
16:06 [d0214602] Have the vdbe layer call sqlite3BtreeEnter() on all b-trees in use from within sqlite3VdbeExec() even in SQLITE_THREADSAFE=0 builds. This ensures that BtShared.db is set correctly. (user: dan, tags: shared-cache-fix)
18:59 [54c5522d] Alternative to [76f5efa6], move definition of utf8_printf up. (user: mistachkin, tags: altShellFix)
20:50 [1541607d] Leaf: Use the OvflOffset() macro to try to remove some magic numbers from btree.c. (user: drh, tags: ovfloffset-macro)
13:36 [a0a08b8c] Closed-Leaf: Enhance the command-line shell to handle MBCS characters on input and output. (user: drh, tags: mbcs-shell)
03:59 [78507154] Closed-Leaf: Reduce the size of the CellInfo object from 32 to 24 bytes on 64-bit machines. (user: drh, tags: optimize-cellinfo)
20:36 [40b5bbf0] Add the "offsets=0" option to fts5, to create a smaller index without term offset information. A few things are currently broken on this branch. (user: dan, tags: fts5-offsets)
17:30 [98b710c3] Reduce the size of the VdbeCursor object by a pointer (the pBt pointer used for ephemeral tables). (user: drh, tags: optimize-vdbecursor)
21:09 [18a4c054] Fix compiler warning seen with MSVC. (user: mistachkin, tags: msvcWarn)
15:09 [ad3124c8] Closed-Leaf: Move pointer range comparisons into a macro, where they can be dealt with in a more portable way. (user: drh, tags: stdint.h)
19:50 [d52376df] Experimental optimization for DELETE statements with WHERE clauses that qualify for the OR-optimization. (user: dan, tags: onepass-delete-or)
14:37 [f3c0579e] Leaf: Avoid unnecessary work inside of verifyDbFile() in the unix VFS. (user: drh, tags: unix-vfs-optimization)
20:51 [0715eb00] Add untested implementations of experimental APIs sqlite3_snapshot_get(), _open() and _free(). (user: dan, tags: snapshot-get)
23:29 [f3ffb3ae] Closed-Leaf: Add experimental support for the 'test_fs' test module on Win32. (user: mistachkin, tags: testFsWin32)
19:33 [116b2064] Closed-Leaf: Add the "colUsed" field to the sqlite3_index_info structure passed to virtual table xBestIndex methods. To indicate the subset of the virtual table columns that may be required by the current scan. (user: dan, tags: vtab-colused)
21:09 [277a5b40] Add experimental support for LIKE, GLOB and REGEXP to the virtual table interface. (user: dan, tags: vtab-like-operator)
17:53 [093e0d10] Leaf: Add a new OP_BColumn opcode where the cursor is guaranteed to be of type CURTYPE_BTREE and is thus able to skip some checks and run slightly faster. (user: drh, tags: btree-column-opcode)
18:43 [2dbffb3a] If a table column name begins with "__hidden__" then do not include that column in "*" expansions in SELECT statements, nor fill in that column in an INSERT INTO that omits the column list. This branch is a proof-of-concept only and is not intended to ever be merged into trunk. (user: drh, tags: hidden-columns-in-tables)
16:00 [3d930501] Import the LSM code from SQLite4 for use in an experimental virtual table. NB: This is a speculative experiment and could easily result in a dead-end branch. (user: drh, tags: lsm-vtab)
14:57 [549d42be] First attempt at enhancing the "PRAGMA cache_spill" statement to accept a cache threashold size. (user: drh, tags: cache_spill=N)
18:08 [c6fa01c2] Add a hack to debug out a description of the WHERE clause of a SELECT (or other) statement. Use this in script tool/schemalint.tcl to automatically recommend indexes that might speed up specific queries. (user: dan, tags: schemalint)
19:33 [0a72991f] Change the parser to use the standard "lempar.c" template over in the tool/ folder rather than the customized "lempar.c" found in src/. (user: drh, tags: parser-enhancements)
15:19 [2040d88e] Enhance TreeView to show WITH clauses. Add an assert to detect the infinite loop behavior when certain kinds of errors occur on a nested WITH clause. (user: drh, tags: infinite-with-loop-bug)
17:28 [8a171548] Closed-Leaf: A proposed patch for working around a bug in the optimizer for the HP compiler found on HP/UX Itanium. (user: drh, tags: hp-optimizer-fix)
01:04 [cfcaa0ff] Increase the precision of integer vs. floating-point comparisons. Candidate fix for ticket [38a97a87a6e4e8]. (user: drh, tags: int-float-precision)
20:25 [32e31b9b] The top of an index equality loop normally starts with OP_SeekGE and OP_IdxGT. This check-in adds a flag to OP_SeekGE such that it fails immediately if the key is not equal, then jumps over the OP_IdxGT, saving a call to the key comparison functions. Consider this check-in a proof-of-concept. It needs improvement before going on trunk. Some tests fail, but only because they new use fewer key comparisons than expected (which is a good thing!). (user: drh, tags: seekeq-experiment)
03:26 [b9b22fae] Closed-Leaf: Remove #pragma that was used to work around an obsolete issue with MSVC 2012. (user: mistachkin, tags: reoptimizeArm)
23:29 [4ae96d6d] Attempt to centralize and simplify the MSVC handling. (user: mistachkin, tags: mp-releasetest)
18:32 [3d29f912] Add the "--jobs N" option to the releasetest.tcl script to allow tests to be run in parallel by N processes. N defaults to 1. (user: dan, tags: mp-releasetest)
17:58 [c7c81050] Closed-Leaf: On unix, if a file is opened via a symlink, create, read and write journal and wal files based on the name of the actual db file, not the symlink. (user: dan, tags: follow-symlinks)
12:27 [d533e23f] Apply optimizations to simplify OR clauses that contain constant terms. (user: drh, tags: simplify-or-clause)
19:46 [65b86dc1] Add experimental API sqlite3_db_cacheflush(). (user: dan, tags: cacheflush)
20:54 [cdc92919] Modifications to pass a flag to internal routine sqlite3BtreeCursor() when a cursor that is used solely for deleting b-tree entries, or for obtaining the components of keys to delete from other b-trees, is opened. (user: dan, tags: btree-fordelete-flag)
23:40 [12e869bb] Closed-Leaf: Fix compiler warnings. (user: mistachkin, tags: noWarn)
01:00 [c6239bf9] Leaf: Change the code generator for UPDATE to generate code in an order that might run more efficiently in many cases. (user: drh, tags: improved-update)
15:56 [746fcd2f] Cherrypick the json form-feed fix, and other #ifdef and build script changes to address minor issues that came to light after the 3.9.0 release. Update the version number to 3.9.1. No logic changes except for the form-feed bug-fix in json1 (ticket [57eec374ae1d0a1d4a]). (user: drh, tags: branch-3.9)
03:34 [08e8f04d] Leaf: Whenever two or more OP_Column opcodes on the same cursor occur in succession, try to reordering them so that the one that extracts the right-most column is first, so that it will warm up the row cache for all those that follow. This gives a small performance boost. (user: drh, tags: reorder-column-opcodes)
20:17 [39ae92f5] Leaf: Experiments with an OP_Unpack opcode that extracts multiple columns from a record without caching. (user: drh, tags: unpack-opcode)
18:45 [8463f7e7] Avoid exporting sqlite3_json_init() from amalgamation builds. (user: dan, tags: dll-build-fix)
19:29 [d820a1bd] First attempt to add json1 and fts5 to the amalgamation. This check-in does not compile. (user: drh, tags: amalg-json1-fts5)
02:52 [ed0ebc46] Change mkopcodeh.awk into tool/mkopcodeh.tcl. (user: drh, tags: omit-awk)
17:51 [3e15dea5] Closed-Leaf: This condition was not always true after all.....    Change an always-true condition in the virtual table transaction interface into an assert(). (user: drh, tags: mistake)
23:45 [70ec88b2] Leaf: Avoid unnecessary cursors and seeking when running a DELETE against a WITHOUT ROWID table. (user: drh, tags: delete-without-rowid-opt)
15:20 [e73f919f] Changes to allow DELETE operations on virtual tables to use the onepass strategy under some circumstances. (user: dan, tags: vtab-onepass)
16:29 [2c57b2f3] Disable the SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS mechanism and replace it with SQLITE_TESTCTRL_BENIGN_MALLOC_CTRL, which gives better control. (user: drh, tags: malloc-testing)
16:24 [da0587c5] Simplify thread-safety of mutex initialization. (user: mistachkin, tags: mutexInitSimpleCmpSwap)
14:32 [c4b68eff] Include json1.c in fuzzcheck and fuzzershell. (user: drh, tags: json-fuzz)
22:52 [fea8c0b2] Re-check sqlite3GlobalConfig.isInit after the mutex subsystem has been initialized. (user: mistachkin, tags: mutexInitIsInitReCheck)
19:26 [eaeb2b80] Experimental change to use a single-pass approach for DELETE statements on non-virtual tables that do not fire triggers or require foriegn-key processing. (user: dan, tags: onepass-delete)
05:06 [f6a8f577] Enhance mutex initialization to prevent possible race conditions between sqlite3_initialize() and sqlite3_config(). Also, re-check sqlite3GlobalConfig.isInit after the mutex subsystem has been initialized. (user: mistachkin, tags: mutexInitCmpSwap)
20:34 [7b5be299] Experimental implementation of sqlite3_result_subtype() and sqlite3_value_subtype() interfaces. (user: drh, tags: subtypes)
18:23 [531c3974] For the Lemon-generated parser, add a new action type SHIFTREDUCE and use it to further compress the parser tables and improve parser performance. (user: drh, tags: lemon-update)
19:52 [a1f4c3b5] Experiment with a different fts5 leaf page format that allows faster seeks. (user: dan, tags: fts5-incompatible)
12:52 [6e0298cd] Closed-Leaf: This change is not correct for the boundary case of nCellKey==0. Was: Small performance gain and size reduction in sqlite3VdbeIdxKeyCompare(). (user: drh, tags: mistake)
19:56 [90b85b42] Change the fts5 tokenizer API to allow more than one token to occupy a single position within a document. (user: dan, tags: fts5-incompatible)
00:27 [0ad0f8d7] Changes toward being able to process indexes on expressions. Not there yet - this check-in is just movement in that direction. Some tests are failing. (user: drh, tags: index-expr)
21:09 [072279d4] Closed-Leaf: Fix compiler warnings in the sqldiff tool seen with MSVC. (user: mistachkin, tags: msvcWarn)
02:32 [c1f43a77] Initial implementation of eponymous virtual table instances. (user: drh, tags: table-valued-functions)
21:43 [12640cb2] Leaf: Convert the hint expression of the CursorHint opcode into a string for display by EXPLAIN. (user: drh, tags: cursor-hints-displayP4)
19:42 [5669ac4a] Avoid reading frames that have already been checkpointed from the wal file. (user: dan, tags: wal-read-change)
16:49 [dde8afdd] Begin adding an extension that provides JSON SQL functions. (user: drh, tags: json)
20:22 [ac5d2e9d] Add the sqlite3_experimental_log_open() interface. This is for diagnostic use only and is not intended to ever go on trunk. (user: drh, tags: experimentalIoLog)
22:47 [be190fe7] Fix compiler warnings and remove unreachable code. (user: drh, tags: warnings)
09:42 [3a82c8e6] Leaf: Within a write-transaction on a wal database in mmap mode, check the page-cache for an entry before the wal file. This can be faster if the wal file is very large. (user: dan, tags: mmap-wal-bigtrans)
03:19 [0ddb2532] Closed-Leaf: Fix harmless compiler warnings in FTS5 code. (user: mistachkin, tags: fts5NoWarn)
17:03 [90e34d51] Add the "--uri" option to utility program "showdb". This option causes showdb to use sqlite with the SQLITE_OPEN_URI option to open the database file, instead of opening it directly using the OS open() function. (user: dan, tags: showdb-uri-option)
14:10 [4489722a] The "PRAGMA cache_size" reads the database schema, as it has done in all prior versions of SQLite. This side-effect of cache_size is undocumented, but apparently it does get used and its absence from 3.8.11 was causing problems. (user: drh, tags: branch-3.8.11)
19:35 [d431d4e1] Update batch build tool library paths for MSVC 2015. (user: mistachkin, tags: msvc2015)
19:31 [80794216] Add an experimental "BEGIN UNLOCKED" command. (user: dan, tags: begin-concurrent)
19:46 [862418e3] Use a WITHOUT ROWID table to index fts5 btree leaves. This is faster to query and only slightly larger than storing btree nodes within an intkey table. (user: dan, tags: fts5-btree-index)
18:54 [aa7341c8] Enhance separate pcache1 to allocate a block of pages from heap on startup, if possible, for a 5.2% performance improvement. (user: drh, tags: pcache-bulk-local)
17:13 [1c522123] Closed-Leaf: Rework the PRAGMA integrity_check logic. Simplify the checkTreePage() routine and clean up the error messages generated. (user: drh, tags: integrity-check-refactor)
12:47 [bc27ebd7] Make use of htonl() and __builtin_bswap32() for faster implementations of sqlite3Get4byte() and sqlite3Put4byte(). (user: drh, tags: bswap-functions)
13:31 [2f31bdd1] Closed-Leaf: Cache the most recently sqlite3_context used by OP_Function and reuse it on subsequent calls, if appropriate. This gives a noticable performance boost. (user: drh, tags: function-ctx-cache)
04:34 [ef2052f8] Initial changes to get FTS5 working with MSVC. (user: mistachkin, tags: fts5Msvc)
17:21 [1d04def7] Closed-Leaf: Add "ON CONFLICT" handling to the spellfix module. (user: dan, tags: spellfix-constraints)
20:02 [16872871] Change the way that balance_nonroot() partitions cells between the sibling pages such that a scan of the cell size array is not required. (user: drh, tags: btree-opt2)
18:13 [522502ec] Leaf: Split out all four cases of cellSizePtr() into different methods, each optimized for the specific page type. This gives a 0.36% performance increase at a cost of about 300 bytes of code. (user: drh, tags: btree-opt)
18:24 [faab0ed9] Performance improvements in btreeParseCell() by inlining the varint decoder. (user: drh, tags: btree-opt)
19:06 [7b84641e] Closed-Leaf: Use 'binary' mode for popen with MSVC. (user: mistachkin, tags: popenMsvc)
11:48 [0be44782] Add the IS DISTINCT FROM and IS NOT DISTINCT FROM operators. (user: drh, tags: is-distinct-from)
13:49 [760700ed] Add a fast-path implementation of pcache1Fetch() for the common case of separate caches that do not use a mutex. (user: drh, tags: faster-pcache1-fetch)
22:51 [f38e0be5] Remove possibly stray output from various tests. (user: mistachkin, tags: testerOutput)
18:05 [80ee56dd] Avoid passing constraints that are unusable due to LEFT or CROSS joins to virtual table xBestIndex() methods. (user: dan, tags: vtab-left-join)
22:33 [be8e3fc7] Split FROM-clause subquery flattening and code generation into separate loops. (user: drh, tags: view-optimization)
15:59 [f167bba4] Closed-Leaf: Add a new opcode to the VDBE that gives the b-tree a hint about the set of columns in a table or index that are actually used by the query. (user: drh, tags: column-usage-hint)
16:09 [80889306] Leaf: Add the built-in affinity() SQL function. This turns out to be not as useful as originally envisioned, so abandon it on a branch. (user: drh, tags: affinity-func)
15:32 [bce3f041] Closed-Leaf: Rename SQLITE_AFF_NONE to SQLITE_AFF_BLOB. (user: drh, tags: blob-affinity-rename)
20:28 [297fae75] Closed-Leaf: For FROM-clause subqueries that cannot be flattened, try to push WHERE clause terms of the outer query down into the subquery in order to help the subquery run faster and/or use less memory. (user: drh, tags: subquery-opt)
17:32 [e3fa8b93] Closed-Leaf: Break out the query flattener into a separate source-code file. (user: drh, tags: flattener-in-new-file)
13:55 [521345ad] An attempt to allow automatic index creation on subqueries accessed via co-routine. (user: drh, tags: coroutine-autoindex)
14:21 [7e9e1b61] Closed-Leaf: A different approach to preventing buffer overreads when comparing a vector of values with a corrupt index record that spans at least one overflow page. (user: dan, tags: avoid-buffer-overread)
13:06 [0055df04] Closed-Leaf: CTEs have never had working rowids. So disallow the use of the "rowid" column within CTEs. (user: drh, tags: no-rowid-in-cte)
03:46 [2ead43f0] Closed-Leaf: Add the "PRAGMA cell_size_check=ON" command. (user: drh, tags: cell-size-check-pragma)
18:15 [4a5f6f1f] The "make fuzztest" target now uses fuzzcheck instead of fuzzershell. (user: drh, tags: test-using-fuzzcheck)
18:48 [c5b4e363] First code for a new utility program to rerun checks on a large number of fuzzer-generated test cases. (user: drh, tags: fuzzcheck)
00:50 [a71e2a72] Add the ".open" command to the command-line shell. Cherrypick from [21eccb919441]. (user: drh, tags: branch-3.7.11)
22:01 [2007391c] Add the sqlite3_value_dup() and sqlite3_value_free() interfaces and use those to add the sqlite3_rtree_query_info.apSqlParam field to the query callback in R-Tree. (user: drh, tags: sessions-value-dup)
21:28 [a7ee40c4] Add the sqlite3_value_dup() and sqlite3_value_free() interfaces. Use these interfaces to enhance R-Tree to add the sqlite3_rtree_query_info.apSqlParam field. (user: drh, tags: value-dup)
15:51 [d5e2c1fc] A proposed fix for the problem of CREATE TABLE AS generating a table that has INTEGER values in a TEXT column. Ticket [f2ad7de056ab1dc92]. (user: drh, tags: create-table-as-type-fix)
19:52 [40f67265] Ensure that when the VM applies TEXT affinity to a value it discards any existing REAL or INTEGER value. Fix for [34cd55d6]. Increase the version number to (user: drh, tags: branch-3.8.10)
19:17 [a46a247f] Fix the transitive constraint processing to only allow transitivity if the operands of the == or IS operator have compatible affinities. (user: drh, tags: transitive-constraints)
15:24 [6f7f1673] An early attempt to get indexes to work with the IS operator. This code passes tests, but much more testing is needed to verify that it works on all corner cases. (user: drh, tags: index-is-operator)
21:27 [9de33768] Experimental API extension for recovering the current trace and profile callbacks on a database connection. (user: drh, tags: get-trace)
19:37 [dddd7e18] Optimizations for the matchinfo() function, particularly the 'y' flag. (user: dan, tags: fts3-matchinfo-y)
17:06 [fc6504aa] Include the "dbstat" virtual table in the amalgamation. (user: drh, tags: dbstat-in-amalgamation)
18:25 [f8b15979] Leaf: Add the SQLITE_LIMIT_PRINTF_WIDTH setting for sqlite3_limit() and associated logic for preventing DOS attacks using printf() with oversized widths or precisions. (user: drh, tags: limit-printf-width)
09:44 [92941609] Closed-Leaf: Add the experimental matchinfo 'y' flag to fts3/4. (user: dan, tags: fts3-matchinfo-y)
13:11 [091cfe8e] Closed-Leaf: Oops - the deephemerialization needs to occur before the move, not after. Was: Rather than try to keep track of the parent of an ephermeral register when the register moves, just deephemeralize all registers touched by the OP_Move opcode. (user: drh, tags: mistake)
12:27 [7ed86dd3] Closed-Leaf: Add code to the shell to optionally initialize the dbstat virtual table. (user: drh, tags: stat-vtab-in-shell)
14:41 [658e20f5] Leaf: Prototype for an sqlite3_db_log() interface. (user: drh, tags: sqlite3_db_log)
06:18 [8469d651] Work in progress on making VSIX packages for the Visual Studio 2015 CTP. (user: mistachkin, tags: vsix2015)
12:09 [4b0f4484] Closed-Leaf: Checked in the wrong fix. (user: drh, tags: mistake)
11:56 [5619c959] Closed-Leaf: Use a heap instead of a bitmap for cell overlap and coverage testing of btree pages in PRAGMA integrity_check. (user: drh, tags: integrity-check-heap)
19:13 [a200e1ea] Leaf: Add the BtCursor.pPage field which is the current page to which the cursor points, for a very small performance gain. (user: drh, tags: btree-current-page-cache)
19:41 [463e38d7] Work toward adding the --changeset option to the sqldiff utility program. Changes are incomplete. This is an incremental check-in. (user: drh, tags: sqldiff-changeset)
16:01 [c4340b2e] Closed-Leaf: Add experimental API sqlite3session_diff(). (user: dan, tags: sessions-diff)
22:05 [e5f5ef00] Leaf: Detect and suppress an endless loops in clearDatabasePage() that might result from a corrupt database file. This is an edited cherry-pick from [30011ad2f55c] and [395bb3e677a]. (user: drh, tags: apple-osx-385)
09:05 [0cdf5028] Closed-Leaf: Fix a problem with fts3 prefix terms within phrase queries on "order=DESC" tables with a mix of negative and positive rowids. (user: dan, tags: fts3-prefix-query-fix)
16:43 [427b50fb] Closed-Leaf: Fix a problem with resolving ORDER BY clauses that feature COLLATE clauses attached to compound SELECT statements. (user: dan, tags: compound-order-by-fix)
01:26 [5c965a71] The build is still broken. Multiple definitions of sqlite3OSTrace when compiled using separate source files. (user: drh, tags: winTest)
18:18 [c8694657] Path portability enhancements for mptester.exe. (user: drh, tags: winTest)
17:45 [9cc70eee] Testing enhancements on Windows. (user: mistachkin, tags: winTest)
19:56 [763d2bc7] Leaf: Optimize CREATE INDEX, REINDEX and VACUUM statements by taking better advantage of the fact that index keys are being inserted into b-trees in sorted order. (user: dan, tags: mistake)
23:36 [df204049] When syncing a memory mapped file on Windows, flush the mapped view as well. (user: mistachkin, tags: winViewFlush)
11:55 [ce5ad17c] Optimize cases where all the sorter is sorting a set of records that all begin with integer values, or that all begin with text values to be compared using BINARY. (user: dan, tags: sorter-opt)
00:09 [cbb93d1a] Leaf: Backport the 'stdcall' related enhancements from trunk. (user: mistachkin, tags: stdcall-3.8.8)
21:27 [242f09d4] Add SQLITE_STDCALL and SQLITE_CDECL macros on public function definitions. (user: mistachkin, tags: stdcall)
12:51 [9faefb96] Replace the Vdbe.inVtabMethod field with the sqlite3.nVDestroy counter. (user: drh, tags: nVDestroy)
17:25 [1ce8e8fa] Add the sqlite3_status64() interface. Make the new interface and the legacy sqlite3_status() both atomic and threadsafe. Check threadsafety using assert()s. (user: drh, tags: status64)
20:30 [0a7f2051] Where possible insert the set of new keys for each index in sorted order within "INSERT INTO ... SELECT" statements. (user: dan, tags: insert-select-opt)
14:57 [e750830f] Provide the BTREE_SEEK_EQ hint to the b-tree layer. (user: drh, tags: seek-eq)
18:56 [9969cff2] Fix a problem with creating virtual table with names specified using malformed utf-8 within utf-16 databases. (user: dan, tags: malformed-vtab-name)
12:13 [7a309768] When a WHERE clause contains disjuncts with the same operands, try to combine them into a single operator. Example: (x=A OR x>A) becomes (x>=A). (user: drh, tags: combine-disjuncts)
18:59 [e1caf93c] When estimating the number of rows visited by a range scan for which the keys consist of more than one field, consider prefixes of stat4 samples as well as the full samples. (user: dan, tags: stat4-change)
20:06 [b7f1fc26] Allow the query planner to evaluate deterministic scalar SQL functions used in WHERE constraints if all arguments are SQL literals in order to compare the results with sqlite_stat4 sample data. (user: dan, tags: stat4-function)
20:22 [c6e6d5f4] Arrange for some of the transient locks in WAL mode to block, as a single to the OS to fix priority inversions. (user: drh, tags: wal-blocking-lock)
20:32 [465bfc72] Fix another problem with the LIKE optimization. (user: drh, tags: like-opt-fix)
16:45 [5757e803] The LIKE optimization must be applied twice, once for strings and a second time for BLOBs. Ticket [05f43be8fdda9f]. This check-in is a proof-of-concept of how that might be done. (user: drh, tags: like-opt-fix)
14:27 [b1a9e291] Leaf: In the command-line shell, change the units on the ".width" directive from bytes to characters. (user: drh, tags: cli-char-width)
10:54 [f7f2598c] Closed-Leaf: Add support for linenoise to shell.c. (user: dan, tags: linenoise)
16:05 [c0f4e308] Make sure partial automatic indexes are not based on terms in the ON clause of a LEFT JOIN. Fix for ticket [2326c258d02ead3]. UPDATE: This fix does not work where the partial index is a named index. (user: drh, tags: tkt-2326c258)
15:21 [0b7d65e3] Disable the query flattener for aggregate subqueries if the parent query uses other subqueries in its result set or WHERE clause or ORDER BY clause. Preliminary fix for ticket [2f7170d73bf9abf8]. However it still contains a defect similar to the COLLATE problem of [ca0d20b6cddd]. (user: drh, tags: tkt-2f7170d7)
19:17 [8ac58e46] Remove "PRAGMA pager_ota_mode". (user: dan, tags: ota-update-no-pager_ota_mode)
22:19 [6dca23e6] Leaf: Add an experimental pragma "PRAGMA preload;" that preloads the pcache with the entire database file. (user: drh, tags: preload-pragma)
02:00 [30f51d7b] Add the "index_xinfo" pragma. Add new columns to the "index_info" and "index_list" pragmas. (user: drh, tags: index_xinfo)
17:54 [5940af8e] Add the INITMODE test-control. (user: drh, tags: initmode-testctrl)
02:26 [23054110] Experimental sqlite_db_config() setting to disable writing to all btrees except for one btree with a particular root page. (user: drh, tags: one-writable-btree)
21:38 [59e592f6] Ensure that the KeyInfo.nXField value for ephemeral tables used to implement ORDER BY or GROUP BY clauses is set correctly, so that the sqlite3VdbeFindCompare() routine can choose the correct comparison function. Add assert() statements to the high-speed comparison functions to detect cases where they are inappropriately chosen. Fix for ticket [f97c4637102a3ae72b7911]. (user: drh, tags: branch-3.8.8)
19:48 [bf744b49] An alternative way of implementing the assert() that verifies the relative values of KeyInfo.nField+KeyInfo.nXField and the number of columns in a record. This version of the assert() only fires when the high-speed comparison routines are used - which is to say it only fires when the constraint actually matters. (user: drh, tags: tkt-f97c4637)
19:21 [e41376cf] Closed-Leaf: An alternative way of fixing the key comparison bug of ticket [f97c4637102a3ae72b]. (user: drh, tags: alt1-tkt-f97c4637)
17:28 [083f523d] Add an assert() to verify that the nField+nXField values of a KeyInfo object are never less then the number of columns in a row for a non-corrupt database. This assert() currently fails, which is the root of the problem with ticket [f97c4637102a3ae72b]. (user: drh, tags: tkt-f97c4637)
05:35 [25e99f3f] Some experimental command line shell input/output enhancements. (user: mistachkin, tags: expShell)
19:35 [cab46fb7] Closed-Leaf: Fix harmless compiler warning. (user: mistachkin, tags: msvcWarn)
18:02 [856dd245] Work in progress on fixing harmless compiler warnings when using -W4 and MSVC. (user: mistachkin, tags: msvcW4)
16:27 [c9d65f73] Towards getting INSERT statements to except many VALUE terms (more than the limit imposed by SQLITE_LIMIT_COMPOUND_SELECT). This check-in segfaults on a stack overflow. And it is slow. (user: drh, tags: many-VALUEs)
19:40 [7c85e831] Rework the test/releasetest.tcl script so that it uses the autoconf makefile instead of the test/releasetest.mk makefile. Also add options like --dryrun and --buildonly. Omit the --makefile option and replace it with --srcdir with the default computed relative to the releasetest.tcl script itself. (user: drh, tags: releasetest-refactor)
19:28 [43db1f44] Experimental "PRAGMA data_version" command for detecting when another process has changed the database file. (user: drh, tags: data_version_pragma)
20:13 [35a20a5f] Experimental opimizations to speed up FK constraint CASCADE and SET NULL action processing. Requires further testing. (user: dan, tags: experimental-fk-actions)
20:49 [5648af96] Closed-Leaf: Changes to threadtest3 so that "stress2" is more similar to the SDS stress test. (user: dan, tags: threadtest3)
19:29 [ec3a7446] Add the threadtest4.c test program. Not yet working. (user: drh, tags: threadtest4)
14:36 [68b23c3d] Closed-Leaf: Add code to check the validity of CollSeq objects during runtime. This code was not able to detect anomalies such as came up as a result of ticket [e4a18565a36884b00edf66541f38c693827968ab] so it is put into a branch for historical reference, with the intent of leaving it out of trunk. (user: drh, tags: collseq-checking)
05:38 [651ed97d] When closing a (shared-cache) database connection, be sure to clear out all KeyInfo objects cached on Index objects. Proposed fix for ticket [e4a18565a36884b00edf]. (user: drh, tags: fix-stale-keyinfo-cache)
19:04 [8e20a434] Add the SQLITE_CHECKPOINT_TRUNCATE option. (user: dan, tags: checkpoint-truncate)
16:14 [e1f893c6] Closed-Leaf: Unintentional edits mistakenly checked in. Was: Remove an obsolete and incorrect comment from the whereLoopOutputAdjust() routine in the query planner. No changes to working code. (user: drh, tags: mistake)
19:08 [00fe0950] Closed-Leaf: Adding the "noskipscan" token to an sqlite_stat1.stat field prevents an index for being used with the skip-scan algorithm. (user: drh, tags: noskipscan-token)
19:34 [93642a65] Closed-Leaf: Consider using an automatic-index for a scan even if there exists a possible skip-scan that uses one or more "=" operators. (user: dan, tags: experimental-autoindex-fix)
01:33 [fa6e6a9a] Closed-Leaf: Experimental changes that permit read operations to continue after a ROLLBACK, as long as the schema is unchanged. (user: drh, tags: read-after-rollback)
03:55 [f9684000] Change the SQLITE_SCANSTAT_EST parameter so that it returns a double for the estimated number of output rows per loop, rather than a 64-bit integer. Revise the output format for the ".scanstats on" in the shell to make use of this new capability. (user: drh, tags: scanstatus)
19:37 [1fc7e2f3] For the Win32 VFS, allow memory mapped files to work when compiled without WAL support. (user: mistachkin, tags: winMmapNoWal)
20:11 [6a9bab34] Add the experimental sqlite3_stmt_scanstatus() API. (user: dan, tags: scanstatus)
01:07 [a8f9bd1e] Call fsync() right after ftruncate() when in journal_mode=TRUNCATE and when synchronous=FULL in order to ensure that transactions are durable across a power loss that happens moments after the commit. Proposed fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1072773. This is a cherrypick of [3e922208b68563489]. (user: drh, tags: branch-3.8.7)
00:35 [c297a84b] Add the SQLITE_ENABLE_API_ARMOR compile-time option. This is a work in progress and is not yet completely functional. (user: drh, tags: api-armor)
17:26 [c6a5b67a] Leaf: Add debugging code to count the number of iterations of each loop made as part of statement execution. (user: dan, tags: debug-loopcounters)
16:25 [1a5a5da3] Closed-Leaf: The _beginthreadex() / _endthreadex() functions should only be used when compiling with MSVC. (user: mistachkin, tags: msvcThreads)
02:43 [67484807] Call fsync() right after ftruncate() when in journal_mode=TRUNCATE and when synchronous=FULL in order to ensure that transactions are durable across a power loss that happens moments after the commit. Proposed fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1072773. This is a cherry-pick of [3e922208b68563] (user: drh, tags: branch-3.8.6)
01:23 [b9c695e8] Add the OP_SorterColumns opcode - an experiment in using a special case opcode to decode the Sorter output rather than the generic OP_Column. This might be faster. And with further work, it could eventually eliminate the need for OP_OpenPseudo. (user: drh, tags: OP_SorterColumns)
20:52 [2a957396] Closed-Leaf: Account for the ASC/DESC properties of ORDER BY expressions when using the same index for GROUP BY and ORDER BY. Candidate fix for [ba7cbfaedc]. (user: dan, tags: experimental)
19:16 [e6f7f97d] Improve the accuracy of the estimates used when searching an index for values not present in any stat4 samples under some circumstances. (user: dan, tags: stat4-avgeq)
21:24 [0efc6859] Closed-Leaf: Draw the TreeView debugging graphs using unicode box-drawing characters. (user: drh, tags: box-character-graph)
18:47 [5e5d6e86] Leaf: Add the OPFLAG_MULTICOLUMN flag to the OP_Column opcode. Rearrange OP_Column instructions to take advantage of the new flag for a small performance increase (user: drh, tags: faster-OP_Column)
05:00 [3edab995] Reduce the amount of memcpy() required by defragmentPage(). (user: drh, tags: defrag-opt)
04:38 [c705cf85] Closed-Leaf: Experiment using linear interpolation, instead of a strict binary search, when looking for integer-keyed rows on a single b-tree page. The experiment was not successful. The number of key comparisons is reduced by about 15%, but the added complexity of the search logic causes an overall reduction in performance. The patch is saved for historical reference only. (user: drh, tags: linear-interpolation)
18:18 [cbe0cf9d] Enable SELECT query planning tracing when compiled with SQLITE_ENABLE_SELECTTRACE and either SQLITE_DEBUG or SQLITE_TEST. (user: drh, tags: select-trace)
00:02 [35db3e2f] Revise macro usage in 'sqliteInt.h'. (user: mistachkin, tags: sqliteIntMacros)
00:43 [5b9b8987] Add the sqlite3VdbeMemClearAndResize() interface to be used in place of sqlite3VdbeMemGrow(). A C++ style comment was left in this check-in by mistake, and so it has been moved into a branch to avoid problems in any future bisects on windows. (user: drh, tags: Cplusplus-comment)
14:16 [0be3019e] Reorder the elements of the Mem object for a small size reduction and performance improvement. Moved into a branch because MSVC is unable to handle named structure initializer on nullMem. (user: drh, tags: micro-optimizations)
17:27 [94954850] Add new APIs that take 64-bit length parameters: sqlite3_malloc64(), sqlite3_realloc64(), sqlite3_bind_blob64(), sqlite3_bind_texte64(), sqlite3_result_blob64(), and sqlite3_result_texte64(). Internal memory allocation routines also now use 64-bit unsigned length parameters for safety. Also add the sqlite3_msize() interface. Fix the sqlite3_get_table() to use sqlite3_realloc64() to avoid a integer overflow problem. (user: drh, tags: 64-bit-lengths)
14:47 [8440f093] Non-working preliminary implementation attempts on user authentication. (user: drh, tags: user-auth)
16:49 [e7fae33c] Fixes to os_unix.c to support database (and other) files larger than 2GiB. (user: dan, tags: android-large-filles)
19:59 [2954ab50] Add an experimental extension for applying bulk updates to databases. (user: dan, tags: ota-update)
12:29 [462f42af] Closed-Leaf: Contains a fault. Was: Avoid an unnecessary OP_Move operation for expression subqueries. (user: drh, tags: mistake)
11:24 [8c57bcc3] Closed-Leaf: Add the sqlite3VdbeChangeDest() routine that can be used to eliminate OP_Move opcodes. (user: drh, tags: experimental)
16:01 [052d89b5] Fix a problem causing an inaccurate stat4-based estimate for the number of rows visited by a range scan. (user: dan, tags: stat4-experimental)
14:34 [8267d821] Get the sqlite3VdbeSerialGet() routine to run faster by avoiding the use of local variables. (user: drh, tags: experimental)
19:11 [2f59e71f] For sqlite3_win32_is_nt(), assume WinRT is NT-based. (user: mistachkin, tags: winrt)
11:56 [1cb1cd64] Further size reduction and performance improvement in btree.c:allocateSpace(). (user: drh, tags: btree-speedup)
15:08 [c2fcf0b9] Begin adding commands to the command-line interface for interacting with the sessions extension. This is the first check-in of a work-in-progress. (user: drh, tags: sessions_from_cli)
18:31 [cc910b8e] Closed-Leaf: Fix compiler warnings on WinCE. (user: mistachkin, tags: winCeWarn)
13:32 [169fc47e] Leaf: Remove support for Win9x. (user: drh, tags: drop-win9x-support)
16:52 [299b9570] Because SQLite internally calculates query plan costs using a logarithmic scale, very large estimated sorting costs can cause all other estimated costs to be rounded down to zero. In these cases break ties between plans with the same total cost by comparing the costs with sorting excluded. This is an alternative fix for the problem addressed by [2af630c572]. (user: dan, tags: query-planner-fix)
16:50 [ec5d84ba] Oops! This check-in was on trunk. But it contains a debugging printf(). Original comment: When the estimated cost to do a sort overwhelms the estimated cost to do individual table lookups, make sure that the table lookup costs are still taken into consideration when selecting the lookup algorithm. (user: drh, tags: query-planner-fix)
15:12 [2f724cba] Closed-Leaf: Changed my mind: This opcode name changes mere creates unnecessary diff marks between older and newer versions without significantly improving readability. Was: Rename the IsNull opcode to IfNull and rename the NotNull opcode to IfNotNull. (user: drh, tags: deadend)
21:03 [436e8842] Enhancements to the code generator for the IN operator that result in much faster queries in some cases, for example when the RHS of the IN operator changes for each row of a large table scan. (user: drh, tags: IN-operator-improvements)
14:46 [ee0fd6aa] Begin making changes to the IN operator in an attempt to make it run faster and to make the code easier to understand. (user: drh, tags: IN-operator-improvements)
17:47 [bc14e64b] Leaf: Try to reuse sorter statements in fts5. Does not work due to circular references on VTable object. (user: dan, tags: save_sorter_stmt)
05:49 [18984c32] Enhancements and updates to the Win32 mutex subsystem. (user: mistachkin, tags: winMutex)
18:36 [3e1e79e1] Improve the performance of the ANALYZE command by taking advantage of the fact that every row of a UNIQUE index is distinct. (user: drh, tags: faster-analyze)
01:26 [34a1f38b] Add support for parsing C-style hexadecimal literals. (user: drh, tags: hex-literal)
20:15 [7fe601ea] Add new ASCII mode to the shell capable of importing and exporting using the official unit and record separators (i.e. 0x1F and 0x1E, respectively). (user: mistachkin, tags: asciiMode)
21:16 [6dc7b2f1] Fix harmless compiler warnings for MSVC in the showdb/showwal command line tools. (user: mistachkin, tags: toolWarnings)
13:32 [8cb43edd] Generate complete samples for sqlite_stat4 on WITHOUT ROWID tables. Ticket [b2fa5424e6fcb15b5] (user: drh, tags: stat4-without-rowid)
20:21 [01dc8102] Attempt to use sqlite_stat4 data to estimate the number of rows visited by a range query that uses a skip-scan. This code is largely untested. (user: dan, tags: stat4-skipscan)
11:33 [1e0648dc] Add some code for an experimental fts5 module. Does not work yet. (user: dan, tags: fts5)
02:46 [d6883e96] Do not attempt to create an automatic index on a constant constraint, as doing so is pointless. (user: drh, tags: autoindex-improvements)
20:18 [401a0ca3] Leaf: Proposed change to the fix for ticket [1c69be2dafc28b] such that legacy applications that were exploiting the older buggy behavior in SQLite continue to work. (user: drh, tags: group-by-name-resolution)
20:06 [c41df393] Closed-Leaf: Enhance the unix VFS so that it keeps track of the size of unlinked files internally and thus avoids the need to call fstat() on those files, since fstat() does not work reliably on unlinked files on some implementations of FuseFS. (user: drh, tags: omit-fstat-after-unlink)
09:56 [7d445e59] Leaf: Moved to "mistake" because this commit contains a typo causing a test to fail. Was: Add an extra test to further verify that the FTS notindexed option is working properly. (user: dan, tags: mistake)
03:27 [d43e2e59] Revise locking retry semantics in Win32 VFS to abort early if the file handle is reported as invalid. (user: mistachkin, tags: winLockHandle)
20:06 [2c7e277b] Enable the OR optimization for WITHOUT ROWID tables. Use a temp table instead of the RowSet object to track the rows that have already been included in the result set. (user: dan, tags: without-rowid-or-opt)
15:16 [17349a49] Changes to help ensure that a multiplication does not overflow when computing the number of bytes needed for a memory allocation, and cause a malfunction. No problems existing problems were discovered. However, these changes should help to ensure that no problems arise in the future. (user: drh, tags: safer-malloc)
23:38 [7e60347e] Closed-Leaf: Fix harmless compiler warnings. (user: mistachkin, tags: ftsWarnings)
20:04 [b3b505a4] Experimental code to prevent FTS indexes from growing indefinitely as the table is updated. (user: dan, tags: fts4-experimental)
22:01 [38cbcedb] Experimental changes to pre-cache a database file prior to it being fully opened. (user: mistachkin, tags: winPreCache)
17:19 [0deac873] Make sure the group_concat() function returns an empty string, not a NULL, if it has at least one input row. Fix for ticket [55746f9e65f8587]. (user: drh, tags: tkt-55746f9e)
15:28 [8ad0a123] Leaf: Experimental changes that reduce the size of Expr objects from 72 to 64 bytes each on x64 and from 48 to 44 bytes each on x32. (user: drh, tags: smaller-expr)
19:57 [35a9f3f1] Try to reduce the amount of memory used to hold the schema when PRAGMA ignore_check_constraints is active. (user: drh, tags: reduce-schema-size)
18:24 [857f2baf] Centralize and reform use of the Win32 related include files. (user: mistachkin, tags: winHdr)
20:04 [c5a6ec0a] Changes to the way the planner calculates the costs of various table and index scans. Some test cases still failing. (user: dan, tags: experimental-costs)
13:20 [34155c40] Add sqlite3_log() diagnostic messages for a specific type of corruption where the file size is reported to be too small relative to the size in the header. This branch is intended to help debug a specific problem reported from the wild and is not for general use. (user: drh, tags: filesize-debug)
12:00 [2029a396] Closed-Leaf: Enhancements to the date and time functions so that they optionally support a 5-digit year. Not sure we want to include this in trunk. Saved in a branch for future reference. (user: drh, tags: five-digit-year)
19:30 [03e3c5a8] Add the win32-none VFS which omits rollback-journal locking. (user: drh, tags: win32-none)
00:08 [a1b2f28b] Preliminary changes to support building VSIX packages for Windows Phone 8.1. (user: mistachkin, tags: vsixWinPhone81)
21:06 [53688a25] Initial attempt at getting R-Tree queries to work using a priority queue. This check-in compiles, but R-Trees do not work well. And there are debugging printf()s left in the code. This is an incremental check-in. (user: drh, tags: rtree-queue)
16:14 [20a73ec0] Update comments in the R-Tree module in preparation for some big changes. Add an "rtree" performance test to speedtest1. (user: drh, tags: rtree-enhancements)
20:04 [f9d5e09a] Experimental multi-threaded sorting changes to allow the sorter to begin returning items to the VDBE before all data is sorted. (user: dan, tags: threads-experimental)
18:44 [cbfc0f6d] Closed-Leaf: Experimental multi-threaded sorting changes to begin merging PMAs before SorterRewind() is called. (user: dan, tags: abandoned)
14:16 [abbdb925] Closed-Leaf: Incorrect change to a comment. (user: drh, tags: mistake)
21:16 [8f869ca7] Experiments in picking better query plans, especially when the usage of one index is a subset of another. (user: drh, tags: query-plan-experiments)
19:48 [83a105c8] Closed-Leaf: Changes to make the multi-threaded sorter sort stably. (user: dan, tags: threads-closed)
16:22 [db293547] Fix a potential buffer overread that could have occurred when searching a corrupt database file. (user: drh, tags: branch-3.8.4)
12:33 [0b95b7a8] Closed-Leaf: Cancel column-cache entries that are involved in a comparison operator since the comparison might have forced an affinity change. Originally proposed as a fix for ticket [a8a0d2996a], but later determined to be incorrect. (user: drh, tags: tkt-a8a0d2996a)
12:36 [eae6dfbe] Closed-Leaf: One possible fix for the [e39d032577d] problem it to replace the failing assert() with a testcase() as shown here. (user: drh, tags: tkt-e39d0325)
08:59 [6f3a5c24] Add an experimental fix to avoid attempting to mmap memory from an offset that is not a multiple of the system page size on systems with page sizes larger than 32KB. (user: dan, tags: shm-mapping-fix)
15:30 [b1509025] Experiments with the optimization of ORDER BY and GROUP BY clauses. (user: drh, tags: orderby-planning)
20:33 [da591985] Enable the b-tree cursor object's overflow page-number cache, which is normally enabled only for incr-blob cursors, for all cursors. (user: dan, tags: overflow-pgno-cache)
14:44 [04caffce] Closed-Leaf: Forgot to change the VERSION file. (user: drh, tags: mistake)
01:29 [bac2820e] Closed-Leaf: Experimental simplification of memory flags/type handling. (user: mistachkin, tags: noMemType)
21:59 [aec5473a] Refactor the sqlite3VdbeRecordCompare() routine used to compare btree records. Create a couple of fast-track routines to handle the common cases of a string with BINARY collation or integer values as the left-most column. This gives a significant performance boost in common use. Oops: This build does not work on the Beaglebone where "char" defaults to unsigned. (user: drh, tags: broken-on-arm)
14:45 [4aeb3ae4] Add extra assert() statements trying to catch a Mem object in an inconsistent state. (user: drh, tags: enhanced-mem-check)
19:05 [3ad687b7] Leaf: Only run the OP_OpenRead opcodes for a correlated subquery once, on the initial iteration. Keep the cursor open for subsequent runs. This was suppose to be a performance enhancement, but it is difficult to come up with a query where is makes a significant difference. Hence, the change is getting parked in a branch. (user: drh, tags: open-only-once)
21:01 [85206e0b] Attempt to speed up sqlite3VdbeRecordCompare() by various means. This code is in an interim state. (user: dan, tags: experimental)
19:38 [cc5eda54] Closed-Leaf: Make sure temporary registers used within a co-routine are not also used outside of that co-routine, in order to prevent concurrent use of the same register for two different things. Ticket [8c63ff0eca81a9132d8] (user: drh, tags: tkt-8c63ff0eca)
05:44 [6676475c] Better loadable extension handling in the Win32 VFS when compiled for Cygwin. (user: mistachkin, tags: cygDlOpen)
05:18 [adba783c] Enhance the Win32 VFS I/O retry logic. (user: mistachkin, tags: winIoRetry)
01:55 [aa2d8b0e] Enhance the code generator for INSERT INTO ... SELECT so that the SELECT generates output directly in the registers that INSERT INTO will be using, in many cases, and OP_SCopy operations can thus be avoided. (user: drh, tags: insert-optimization)
23:35 [e1472307] Better support for MinGW 4.x. (user: mistachkin, tags: mingw4x)
19:37 [538f7b25] Experimental change to os_unix.c to delay creating a database file until it is first written. (user: dan, tags: deferred-open)
16:13 [90e9deae] Modify the command-line shell to print a warning when using an in-memory database. (user: drh, tags: memdb-warning)
13:22 [35f2793d] Fix a harmless compiler warning in VS2013. (user: drh, tags: branch-3.8.3)
18:27 [1ec0e9dd] Get rid of the OP_Undef and OP_IsUndef opcodes in favor of higher-level OP_InitCoroutine and OP_EndCoroutine. (user: drh, tags: coroutine-refactor)
13:20 [6fb74485] Add the OP_Undef and OP_IsUndef opcodes. With these, use the first register in the result register range as the flag to indicate EOF on an INSERT from a SELECT, rather than allocating a separate boolean register for that task. (user: drh, tags: coroutine-refactor)
17:08 [a332908b] Make the root page of an ephemeral index be page 1 instead of page 2. (user: drh, tags: subquery-codegen-refactor)
06:35 [492585c8] Closed-Leaf: Minor change to TEA extension docs in an attempt to make links work correctly. (user: mistachkin, tags: teaDoc)
11:12 [c723ec27] Closed-Leaf: Enhance the MSVC makefile for better debugging symbol support. (user: mistachkin, tags: msvcDebug)
22:25 [b2671e11] Change the recursive common table expression algorithm to use a queue instead of a pair of tables. Runs about 25% faster on the sudoku solver query. The OP_SwapCursors opcode is no longer required. The current implementation uses just a fifo, but the plan is to change it into a queue that will support ORDER BY and LIMIT in a recursive query. (user: drh, tags: cte-via-queue)
00:19 [cc1cb321] Add support for the LEVEL pseudo-column in the recursive part of a common table expression. LEVEL has the value of 1 on the first iteration and successively larger integer values of subsequent iterations. It cannot have a table qualifier. Actual columns named "level" can still be accessed by including the table name qualifier. (user: drh, tags: level-pseudocolumn)
13:22 [da98b720] Parse common table expressions. But do not do anything with them (yet). (user: drh, tags: common-table-expr)
03:13 [4e4483b2] Closed-Leaf: Add the "%token_class" directive to the LEMON parser generator. This opens up the possibility of simplifying the parser. Also remove all calls to sprintf(), strcpy(), and strcat() from LEMON to avoid compiler warnings on OpenBSD. (user: drh, tags: buggy-lemon)
23:21 [e43c522d] Do not use sprintf(), strcpy() or strcat() in the implementation of the lemon parser generator tool, to avoid compiler warnings in OpenBSD. (user: drh, tags: lemon-updates)
18:32 [4365ddd6] Closed-Leaf: Start a new experimental branch for support of Oracle-style CONNECT BY syntax. (user: drh, tags: connect-by)
14:16 [19f3208b] Have the planner detect cases where a MATCH constraint is applied to a virtual table, and ignore any plans that do not allow the virtual table implementation to implement the MATCH filtering. (user: dan, tags: avoid-unusable-match)
15:35 [ac5852d6] Make sure the WhereLoop.aLTerm[] array is large enough when processing the skip-scan optimization. Fix for ticket [520070ec7fbaac]. (user: drh, tags: branch-3.8.2)
15:11 [4c6a659c] Show changes to the column cache when PRAGMA vdbe_addoptrace=ON is set. (user: drh, tags: column-cache-debug)
15:03 [6db7052e] Add the printf() SQL function. (user: drh, tags: printf-sql-function)
20:42 [32fb1784] Modify the way some internal file-controls are invoked. In order to support multi-file transactions in the zipvfs extension. (user: dan, tags: zipvfs-multifile-commit)
20:39 [3a9bec52] If the SQLITE_ENABLE_CURSOR_HINTS macro is defined, then invoke the sqlite3BtreeCursorHint() interface to provide hints to the storage engine about rows that need not be returned. Hints can be disabled using SQLITE_TESTCTRL_OPTIMIZATIONS with SQLITE_CursorHints (0x2000). Cursor hints are not used by the built-in storage engine of SQLite but might be useful to applications that provide their own storage engine. The current code is work-in-progrss and contains bugs. (user: drh, tags: cursor-hints)
15:37 [8759a8e4] Add code to detect if the database file is moved or deleted out from under SQLite and return an SQLITE_IOERR_NODB. (user: drh, tags: detect-moved-db)
22:32 [52a44146] Add memory subsystem related defines to the compile-time options list. (user: mistachkin, tags: memTests)
03:01 [0ea9e472] Closed-Leaf: Avoid using the GetVersionEx functions if they are considered deprecated. (user: mistachkin, tags: vs2013)
09:36 [0d42c6b8] Initial work on isolating usage of the Windows header file. (user: mistachkin, tags: winHdr)
02:38 [d0fb7ace] Performance improvements in sqlite3BtreeMovetoUnpacked(). (user: drh, tags: btree-optimization)
23:18 [484162b6] Closed-Leaf: Better support for UTF-8 paths on Cygwin. (user: mistachkin, tags: cygUtf8)
22:45 [8191b512] Closed-Leaf: A much simpler fix is to simply change MEMSYS5 so that it takes any free block of the appropriate size (the first on the list of free blocks) rather than searching for the one with the smallest address. This is also faster than using the min-heap algorithm. Need to research to verify that the allocator still satisfies the Robson proof, however. (user: drh, tags: memsys5-performance)
21:30 [7d2cdfad] Closed-Leaf: Use a heap-based primary queue rather than a linked list to store the available free blocks of each size in MEMSYS5, since this provides faster access to the first available block. (user: drh, tags: memsys5-performance)
00:27 [f09f11e9] Add experimental sqlite3_config option to control the native Win32 heap size. (user: mistachkin, tags: winHeapSize)
17:25 [7c914e39] Refactoring the OP_Column opcode for improved performance and maintainability. (user: drh, tags: OP_Column-refactor)
20:13 [8f479a72] Enhance the DELETE logic so that it can make use of WHERE_ONEPASS_DESIRED for rowid tables. (user: drh, tags: optimize-delete)
01:10 [8dc5c76c] Rework the logic that factors constant expressions out of inner loops, making it both simpler and faster. (user: drh, tags: expr-codegen-enhancement)
15:35 [d1fbc6ca] Leaf: An experimental virtual tables for showing the content of internal schema objects. (user: drh, tags: schema2-vtab)
12:27 [27dd5993] Add the ability to use an index even if the left-most columns of the index are unconstrainted, provided that the left-most columns have few distinct values. (user: drh, tags: skip-scan)
18:13 [c54dc967] Enhancements to the Win32 native heap integration. (user: mistachkin, tags: win32heap)
22:11 [9d870d5f] Closed-Leaf: Fix temporary directory separator handling for Cygwin. (user: mistachkin, tags: cygDirSep)
12:30 [5530cdc4] Leaf: Have the shell ".timer on" command cause the shell to report wall-clock time for each query (as well as user and system CPU time). (user: dan, tags: shell-wall-clock)
13:15 [a00d2ed4] Closed-Leaf: Drop the mutex on the multiplexor before entering the xRead VFS call. (user: drh, tags: multiplex-parallel-read)
23:31 [0248ec5e] Experimental changes toward "index only" tables. Add the ability to specify options on CREATE TABLE statements using the WITH clause modeled after PostgreSQL and SQL Server. Only the "omit_rowid" option is currently recognized and that option is currently a no-op. (user: drh, tags: omit-rowid)
09:49 [2470d1bb] Closed-Leaf: Fix memory/resource leaks for WinCE and Cygwin. (user: mistachkin, tags: wince-fixes)
10:43 [a38adeb7] Closed-Leaf: Fix harmless macro redefinition warnings in the totype extension. (user: mistachkin, tags: noWarnings)
19:06 [8c13a7fd] Closed-Leaf: In "PRAGMA foreign_key_check", treat missing parent tables as empty (instead of as errors). (user: dan, tags: fkc-missing-parent-tables)
09:32 [0c4dd9ff] Closed-Leaf: Changes to the new initial row of PRAGMA index_list results. (user: mistachkin, tags: indexList)
16:53 [8e78557a] Leaf: Try to remember statistics from ANALYZE using LogEst instead of u64. (user: drh, tags: log-stats)
18:16 [66c4a251] Begin an experimental refactoring to estimate the average number of bytes in table and index rows and to use that information in query planner. Begin by renaming WhereCost to LogEst and making that type and its conversion routines available outside of where.c. (user: drh, tags: row-size-est)
19:21 [d59d97b0] Experimental branch allowing different postulated scan rates for each index. (user: drh, tags: index-scan-rate)
11:42 [6622424a] Have fts4 full-text queries consider "docid<?" and similar constraints. (user: dan, tags: fts4-docid-range-constraints)
16:50 [579a5125] Closed-Leaf: Increase the number of bits available in Expr.flags. Other tweaks aimed at making expression processing more robust. (user: drh, tags: expr-tuning)
15:23 [036fc37a] Initial implementation of the unlikely() SQL function used as a hint to the query planner. (user: drh, tags: unlikely-func)
23:40 [d8daaba7] Leaf: Add the experimental SQLITE_DEFAULT_INDEX_SHAPE=1 compile-time option that makes a much more pessimistic guess at the effectiveness of unanalyzed indices. (user: drh, tags: index-shape-1)
21:52 [a411df72] Add support for Cygwin when handling temporary file names. Improve error codes and diagnostic messages for temporary file name handling on Windows. Rename winConvertUtf8Filename to winConvertFromUtf8Filename. Improve placement and comments for forward function declarations. (user: mistachkin, tags: cygwinTempPath)
21:26 [3426673e] Never leave an open file descriptor pointing into the middle of the database file if the file descriptor number is 2 or less. (user: drh, tags: overwrite-avoidance)
13:15 [c3f75941] Cherrypick of [c1152bdcbb] and fix for [9f2eb3abac]: Have the whereShortCut() planner ignore indexes with more than four columns. (user: drh, tags: branch-3.8.0)
00:59 [032c3159] Unify the result of PRAGMA mmap_size when mmap support is disabled. (user: mistachkin, tags: mmapDisabled)
21:15 [af497072] Add tointeger() and toreal() SQL functions. (user: mistachkin, tags: toTypeFuncs)
20:42 [cdb181c0] Add the cache_spill pragma. (user: drh, tags: cache_spill)
08:06 [c23acba1] Closed-Leaf: Make it easy to attach a debugger the test fixture process prior to any tests being run. (user: mistachkin, tags: dbgTestFixture)
20:24 [2beea303] Begin adding experimental sqlite_stat4 table. This commit is buggy. (user: dan, tags: sqlite_stat4)
18:12 [6794b2dc] Here begins an experimental branch for exploring the idea of a partial index. This check-in is able to parse a WHERE clause on a CREATE INDEX statement, but does not actually do anythingn with that WHERE clause yet. (user: drh, tags: partial-indices)
14:54 [de05eb75] Another attempt at generalizing the URI parsing so that it works with a wider variety of file URIs and yet remains backwards compatible. (user: drh, tags: uri-enhancement)
20:54 [74c12dee] Update the URI filename parser to allow (and ignore) authority names in unix and to pass the authority through to the OS on windows, as this appears to be what web-browsers are doing. (user: drh, tags: uri-enhancement)
17:12 [71effa59] Ensure that all auxiliary data registered by calls to sqlite3_set_auxdata() is destroyed when the VM is halted. Partial fix for [406d3b2ef9]. DRH adds: Stray text accidentally inserted into vdbe.c just prior to the commit breaks the build. (user: dan, tags: typo)
13:33 [ece960c4] Closed-Leaf: Experimental "PRAGMA query_only=BOOLEAN" statement that is able to turn write capabilities on and off. (user: drh, tags: query_only)
23:53 [f2ab8747] Closed-Leaf: Modify several extensions to use the new exported function naming. Fix some shared library compilation issues. (user: mistachkin, tags: extRefactor)
22:01 [f1366bab] Closed-Leaf: Add a new (experimental) sqlite3_stmt_status() verb that returns the number of VM steps. (user: drh, tags: status-vm-step)
17:30 [8ff2b8f5] Add the "notindexed" option to fts4. (user: dan, tags: fts4-notindexed)
00:35 [2c2577e6] Modify the query planner interface so that it always passes in the result set. This is the first step toward adding an optimization that will omit tables from a join that do not contribute to the result. (user: drh, tags: omit-join-table-opt)
18:53 [c5954c58] VSIX tooling changes to support Visual Studio 2013. (user: mistachkin, tags: vsix2013)
20:13 [d36d7e68] Add the languageid_bits= option to fts. Still some problems to work out. (user: dan, tags: fts-languageid-bits)
00:32 [10bba8d0] Add a prototype for an extension that sits in between the SQLite native code virtual table interface and a CLR IDisposable object. (user: drh, tags: disposable-vtable)
22:41 [6b77d61a] Add the ability to disable future calls to virtual table methods by invoking sqlite3_create_module() with a NULL sqlite3_module pointer. (user: drh, tags: disable-vtab)
19:12 [9e810967] First attempt to store costs and row counts as a logarithm. (user: drh, tags: nextgen-query-plan-logcost)
17:21 [db2415fa] High-speed version of NGQP. Still has some minor problems. (user: drh, tags: nextgen-query-plan-fast)
19:58 [60fc77bc] Candidate fix for a memory leak that occurs if a CREATE TABLE statement contains two or more COLLATE clauses on the same column definition. (user: drh, tags: memleak)
17:19 [048865e8] Add the files used to build the amalgamation-autoconf package. (user: dan, tags: autoconf-package)
18:23 [ea0428f9] Candidate fixes for problems revealed by notify2.test. Notify2.test is still failing at this point. (user: dan, tags: shared-cache-fixes)
17:49 [fc3630cd] Closed-Leaf: Make sure the ORDER BY collating sequences are compatible with the comparison collations before using the merge algorithm for compound SELECT statements. Candidate fix for ticket [6709574d2a8d8]. (user: drh, tags: tkt-6709574)
00:15 [ccaf4c3f] Begin inserting some experimental code for the next generation query planner. (user: drh, tags: nextgen-query-plan-exp)
19:49 [28c9e7fd] Allocate 4 bytes of unused header space for an "Application ID". Add the "PRAGMA application_id" command to set and query this identifier. Add the "magic.txt" file to show how the posix file command might use this application id. (user: drh, tags: application-id)
01:44 [b347b5d1] Initial work on reforming usage of OSTRACE by the Windows VFS. (user: mistachkin, tags: winOsTrace)
16:09 [9c7523da] Closed-Leaf: Avoid using posix_fallocate() in WAL mode, as it is not supported by all file-systems. (user: dan, tags: avoid-fallocate)
20:34 [f968d43f] Rebalance FTS expressions after parsing to limit recursion during evaluation. Avoid recursion when deleting FTS expression trees. Enforce a limit on the depth of an expression tree. (user: dan, tags: fts3-expr-rebalance)
20:10 [860fc393] Make "test_regexp.c" into a loadable extension and move it over to ext/misc/regexp.c. Add the "load_static_extension" command for testing purposes. (user: drh, tags: std-ext)
22:56 [6cfa1d73] Experiments in making loadable extensions easier to program. The shared library filename tries various operating-system specific extensions if the bare library name does not work. And the entry point is derived from the filename is the legacy entry point name "sqlite3_extension_init" is not found. (user: drh, tags: loadext)
19:59 [ad53924d] Closed-Leaf: Only consider AS names from the result set as candidates for resolving identifiers in the WHERE clause if there are no other matches. In the ORDER BY clause, AS names take priority over any column names. Candidate fix for ticket [2500cdb9be]. (user: drh, tags: tkt-2500cdb9be)
22:52 [daa168f3] Closed-Leaf: Expand scope of the SQLITE_DISABLE_MMAP define for the Win32 VFS. (user: mistachkin, tags: winDisableMmap)
19:04 [86f26f91] Increase the version number to and cherrypick the fix for ticket [7ff3120e4fa54abb55]. This check-in is a release candidate. (user: drh, tags: branch-3.7.16)
00:13 [abedd7cb] Closed-Leaf: Experimental changes to support a Win32 VSIX package flavor. (user: mistachkin, tags: vsixWin32)
03:22 [bf6ca21b] Leaf: Backport the multi-process tester to the last released version. (user: mistachkin, tags: branch-3.7.16)
19:19 [96f04d99] Closed-Leaf: Check in the instrumented code for the mptest test case that appears to show a spontaneously disappearing journal file. (user: dan, tags: missing-journal-file)
00:19 [c318fafe] Add a prototype TH3-script-style test harness that starts multiple processes operating on the same database file at the same time. (user: drh, tags: mptest)
15:04 [488089e6] A fix and test-case for the ORDER BY problem identified by ticket [a179fe7465]. This change causes sorting to occur in some cases where it is not strictly necessary. Further work is needed to avoid those extra sorts. (user: drh, tags: orderby-fix)
20:32 [e7698cba] Change os_unix.c to use either one or two mappings internally. (user: dan, tags: two-mappings)
18:34 [6f21d9cb] Use mmap() to read from the database file in rollback mode. This branch is unix only for now. (user: dan, tags: experimental-mmap)
20:58 [7232093d] Closed-Leaf: Fix typo in sqlite3_close() function documentation reported on the mailing list. (user: mistachkin, tags: docTypo)
18:34 [614a038a] A proposed fix for the DESC ORDER BY bug of ticket [4dd95f6943fbd18]. Seems to work, but lots more testing is needed prior to moving to trunk. (user: drh, tags: desc-orderby-fix-1)
11:49 [938b91e8] Closed-Leaf: Fixes for compiling with SQLITE_OMIT_AUTOVACUUM and/or SQLITE_OMIT_TRIGGER defined. (user: dan, tags: omit-fixes)
01:23 [465fd853] Add experimental tointeger() and todouble() SQL functions. (user: mistachkin, tags: toTypeFuncs)
07:10 [69746ef7] Closed-Leaf: If SQLITE_OMIT_UTF16 is defined, avoid setting the 'enc' field of Schema objects to any value except SQLITE_UTF8. Otherwise, assert() statements may fail or spurious SQLITE_NOMEM errors may be returned at the vdbe level later on. (user: dan, tags: experimental)
16:54 [4e6e07a6] Failed merge experimental branch with trunk. (user: dan, tags: ex-robust-open)
15:09 [39247b14] Add extended error code SQLITE_READONLY_ROLLBACK. Returned if a read-only connection cannot read the database because doing so would require it to roll back a hot-journal. (user: dan, tags: experimental)
05:44 [d2e7dfca] Closed-Leaf: Prevent Tcl file encoding issues in the tests for the unicode() and char() functions. (user: mistachkin, tags: funcTestEncoding)
20:16 [c3939d24] Avoid moving pages more than once in an incremental vacuum operation. (user: dan, tags: incr-vacuum-opt)
19:34 [209b2108] Closed-Leaf: Two new SQL functions: unicode() and char(). (user: drh, tags: unicode-function)
09:46 [09dfc0c9] Closed-Leaf: Improve memory allocation error handling on WinCE. (user: mistachkin, tags: wince)
13:58 [54611046] Add extended error codes for constraint errors. (user: drh, tags: constraint-error-codes)
21:15 [98bf668a] Allow an index to be used for sorting even if prior terms of the index are constrained by IN operators. (user: drh, tags: IN-with-ORDERBY)
03:18 [652233d6] Closed-Leaf: Enhance RTree virtual table creation error messages that involve the getNodeSize() function. (user: mistachkin, tags: rtreeErrMsg)
03:18 [dd473cae] Closed-Leaf: Make the 'fs' virtual table module portable to Windows. (user: mistachkin, tags: fsVfsWin)
17:08 [13171eb5] Enhance the query planner to exploit transitivity of join constraints in a multi-way join. (user: drh, tags: transitive-constraints)
13:26 [0a1207c8] Closed-Leaf: Do not raise an error if an unknown SQL function is found in a CHECK constraint while parsing the schema of an existing database. This version causes a run-time error when processing STAT3 tables. (user: dan, tags: mistake)
17:10 [bae528f4] Backport to the 3.7.15 branch the fix to the segfault problem of ticket [a7b7803e8d1e869] which involved the use of "AS" named result columns as logical terms of the WHERE clause. Also, change the version number to (user: drh, tags: branch-3.7.15)
15:53 [3d0e00c7] Proposed fix for ticket [a7b7803e8d1e8699cd8a]. (user: drh, tags: tkt-a7b7803e)
02:36 [7344e791] Better resolution of table and column names in joins where some of the terms of the FROM clause are parenthesized. (user: drh, tags: name-resolution-fix)
16:46 [01c980e9] Prototype for PRAGMA that checks all foreign key constraints on a table. (user: drh, tags: foreign-key-check)
16:37 [7280e14c] Closed-Leaf: Attempt to further generalize the min/max optimization so that, if an appropriate index exists, it can be used by any aggregate query that contains only a single aggregate of the form max(colname) or min(colname) and does not contain a GROUP BY clause. (user: dan, tags: minmax-opt)
19:37 [0c31a468] Closed-Leaf: Apply the same restrictions on constant refactoring to statements within a trigger program as top-level statements. Candidate fix for [ae3c5670b6]. (user: dan, tags: constant-refactoring-in-triggers)
15:15 [cc6e0785] Add a test case that demonstrates ticket [71e333e7d2e642]. (user: drh, tags: ticket-71e333e7)
00:16 [e1feab98] Closed-Leaf: Stop using the TCL_LIBS configuration variable when linking with Tcl. Remove superfluous 'rm' command. (user: mistachkin, tags: noTclLibs)
05:21 [59c23394] Closed-Leaf: Add a test to ensure that the fix in [b0c1ba655d] has worked. (user: dan, tags: mistake)
00:23 [41fd9dd2] Closed-Leaf: Improvements to the 'tcl' shell output mode. Escape double quotes, set separator to space when mode is set, and skip separator after final column. (user: mistachkin, tags: tclMode)
19:50 [cd501bbc] Add an option to register global hooks used for logging all SQL executed by an application. (user: dan, tags: sqllog)
02:10 [692ad3c0] Closed-Leaf: In winDelete, determine that a file does not exist by checking for a last error of ERROR_FILE_NOT_FOUND or ERROR_PATH_NOT_FOUND. (user: mistachkin, tags: winNotFound)
10:54 [35625961] When available, use posix_fallocate() rather than ftruncate() to allocate space for mmap()ed -shm files, since posix_fallocate() gives an error if no disk space is available whereas ftruncate() is silent and leaves the system vulnerable to a SIGBUS upon first write to the mmap()ed region. Ticket [5eaa61ea1881040b17449ca043b6f8fd9ca55dc3] (user: drh, tags: tkt-5eaa61ea18)
17:59 [94255634] Try to take into account the cost of inner loops when selecting which table of a join to use for the outer loop. (user: drh, tags: inner-loop-cost)
18:48 [18ae030d] Proposed fix for ticket [bfbf38e5e9]. (user: drh, tags: ticket-bfbf38e5e9)
00:29 [7af3acbb] Add an optimization that attempts to run a subquery as a coroutine rather than manifesting it into a temporary table. (user: drh, tags: subquery-as-coroutine)
00:11 [f7c5abe8] Closed-Leaf: Make sure all virtual table cursors have been closed on a prepared statement prior to unlinking the perpared statement from its database connection. (user: drh, tags: deferred-close-order)
03:07 [49ccae96] Closed-Leaf: Implementation of the INSTR() SQL function, as found in SQL Server, MySQL, and Oracle. (user: drh, tags: instr)
01:50 [9e6efcf0] Initial check-in of a test VFS designed to simulate a NAND-flash SSD for the purpose of measuring and subsequently minimizing write amplification caused by SQLite. The code in this check-in compiles but does not run. (user: drh, tags: ssdsim)
08:40 [702ebc64] Modify VSIX build tools in support of an additional package flavor. (user: mistachkin, tags: vsixFlavor)
09:39 [018e09c7] Fix harmless compiler warnings. (user: mistachkin, tags: warnings)
23:17 [aa650746] Enable optimization of IN operators on constraints to virtual tables. (user: drh, tags: vtab-IN-opt)
21:08 [8b4c3c5e] Leaf: An optimization that converts "a IN (b)" into "a==b". Seems to work, but needs additional test cases. (user: drh, tags: degenerate_IN)
19:58 [af5c9ee4] Ensure that when the source of a backup is a database that is zero bytes in size, the final destination database consists of at least one page. Truncating it to zero bytes is equivalent to zeroing the schema cookie and change counter, which can cause problems for existing clients. (user: dan, tags: zero-byte-backup-fix)
00:52 [585e2070] Closed-Leaf: Manually define the Win32 file-mapping APIs for WAL if SQLITE_WIN32_FILEMAPPING_API is defined. (user: mistachkin, tags: winFileMapping)
18:35 [ac81ae49] Backport fixes to shared-cache mode, from the shared-cache-fix branch, to version 3.7.9 (user: drh, tags: branch-3.7.9)
19:33 [2b370dea] Shared-cache mode fixes for views and virtual tables. (user: dan, tags: shared-cache-fix)
12:10 [8f448745] Yet another refactoring of ORDER BY logic in the query planner. This particular check-in works mostly, but still has a few minor issues. (user: drh, tags: qp-enhancements)
18:20 [86633e01] A branch off of the sessions branch corresponding to release 3.7.14. (user: drh, tags: sessions-3.7.14)
00:25 [6744d9a3] Further attempts to optimize out unnecessary ORDER BY clauses. (user: drh, tags: qp-enhancements)
23:26 [9fab9edd] Work around an optimization issue with the MSVC compiler for ARM. (user: drh, tags: branch-3.7.14)
20:12 [8b5f617c] Closed-Leaf: Fix several compiler warnings seen with MSVC. (user: mistachkin, tags: msvcWarnings)
14:29 [1104d42e] Pass information around between the major routines of the query planner using a single pointer to a structure rather than a long list of parameters. (user: drh, tags: qp-enhancements)
17:32 [2be661a4] Closed-Leaf: This change generates incorrect code when there are two or more IN operators in the WHERE clause that are both used by the same index. Was: Omit an unnecessary OP_IfNull that immediately follows an OP_Rowid. (user: drh, tags: mistake)
18:45 [cfaa7bc1] Attempt to use a covering index even on a full table scan, under the theory that the index will be smaller and require less disk I/O and thus be faster. (user: drh, tags: fullscan-covering-index)
18:45 [8398f77c] Closed-Leaf: Add an implementation of the REGEXP operator and function. Only defined if compiled with SQLITE_ENABLE_REGEXP. (user: drh, tags: regexp)
10:29 [7c340165] Initial prototype of SQLITE_CONFIG_READONLY. (user: mistachkin, tags: configReadOnly)
07:56 [b8d5359b] Closed-Leaf: More test cleanup. (user: mistachkin, tags: testClean)
16:46 [22ebc668] Add an experimental busy_timeout pragma to facilitate access to the sqlite3_busy_timeout() interfaces for programmers that are working from behind a language wrapper that does not expose that interface. (user: drh, tags: busy-timeout-pragma)
10:32 [e2f27d28] Add Win32 version resources to the applicable binaries built by the MSVC makefile. (user: mistachkin, tags: win32Resources)
10:52 [1dc8c7c7] Experimental change to support the covering index optimization for queries with OR terms in the WHERE clause that search a single index more than once. (user: dan, tags: multi-or-covering-index)
16:18 [3c3ffa90] Further improvements to the processing of nested aggregate queries. (user: drh, tags: nested-agg)
23:33 [600de08d] Added sqlite3_win32_set_directory API to assist in portability to WinRT. (user: mistachkin, tags: win32SetDir)
13:08 [c2cf4985] Closed-Leaf: Update the spellfix virtual table so that all OOM errors are reported out to the application. ERROR: A single edit was missed in spellfix1 which means that this particular check-in won't build "make test". (user: drh, tags: mistake)
20:05 [11dd05e5] Attempt to use two cores to do sorting. Unfortunately, instead of making sorts go faster as was hoped, this changes slows sorting down by about 10%. (Later:) The previous measurement was compiled using -pg. When compiled using -Os, this new code is roughly 10% faster than the original. (user: drh, tags: threads-sort-ex1)
15:57 [2bb8c492] Leaf: Experimental change to speed up ORDER BY clauses that sort based on a single expression. (user: dan, tags: sorter-exp)
01:37 [28aed847] Leaf: Parser bug fix: Make sure the table constraints allowed by prior releases can still be parsed, even if they are technically not allowed by the syntax diagram. This is a cherry-pick of [a1c014d8a87c8940b3], [38bf90af1ede6ee64e], and [e536ac041815b118c4]. (user: drh, tags: apple-osx-ml)
23:21 [0620285d] Closed-Leaf: Backport VSIX packaging support and related changes. (user: mistachkin, tags: vsix-3.7.13)
19:25 [55e47ef3] Modify the code in vdbesort.c so that most reads and writes to temporary files are aligned page-sized blocks. (user: dan, tags: sorter-coalesce-writes)
19:40 [0e4d977a] Add an internal interface that allows the code to take advantage of multiple cores by pushing subcomputations off into separate threads. The interface is not currently used. (user: drh, tags: threads)
19:32 [8752237d] Enhance the custom memory allocation interface to allow the user to specify a calloc() function. (user: dan, tags: calloc)
19:26 [f24b9d87] Add the "matchlen" column to the spellfix1 virtual table. (user: dan, tags: spellfix-matchlen)
19:43 [4a582c4d] Add the "matchlen" column to the spellfix virtual table. (user: dan, tags: spellfix-matchlen)
03:11 [8ecffca9] Improved accuracy on text-to-real and real-to-text conversions. Most conversions now round-trip correctly. Still need to fix some corner cases. (user: drh, tags: floating-point-conversions)
14:23 [87597e98] Closed-Leaf: Add the ieee754() SQL function that interprets a blob as a big-endian double. Arrange for the quote() SQL function to emit ieee754() functions in its output so that floating-point values in the database are exactly preserved by a ".dump" command in the shell. (user: drh, tags: ieee754-func)
08:00 [f970a3de] Fix a few compilation issues that can occur with certain compilers (e.g. GCC 2.95.3, MSVC). (user: mistachkin, tags: compiler-compat)
14:32 [e276a02b] The sqlite3_close() interface returns SQLITE_OK even if there are outstanding sqlite3_stmt and sqlite3_backup objects. The connection becomes a zombie. Resource deallocation is deferred until the last sqlite3_stmt or sqlite3_backup object closes. This is intended to help SQLite play nicer with garbage collectors. (user: drh, tags: deferred-close)
19:19 [f4e8ff03] When converting 64-bit floating point coordinates to 32-bit in RTree, take care to round the values such that the size of the bounding box is enlarged. (user: drh, tags: rtree-32bit-rounding)
18:06 [4590e433] Enable the use of shared cache for an in-memory database, so that separate database connections can share the same in-memory database. (user: drh, tags: shared-cache-memdb)
17:50 [0c13570e] Add an experimental tokenizer to fts4 - "unicode". This tokenizer works in the same way except that it understands unicode "simple case folding" and recognizes all characters not classified as "Letters" or "Numbers" by unicode as token separators. (user: dan, tags: fts4-unicode)
19:11 [72226096] Convert the NameContext object from using u8 booleans to using individual bits in a single u8 as its booleans. This change might become a basis for a fix for [c2ad16f997ee9c]. (user: drh, tags: nested-agg)
20:14 [0c0a0398] Closed-Leaf: Check-in included unrelated debugging code by mistake. Was: Fix a test case in the shell1.test script so that it works even for very long pathnames. (user: drh, tags: mistake)
17:15 [46f4eb54] When a connection disconnects from a shared-cache database, only delete the in-memory schema if there are no other connections. (user: dan, tags: shared-schema)
13:15 [03875633] Do not do the AV retry loop on open if the file that is attempting to be opened is really a directory. (user: drh, tags: win-check-dir)
02:58 [93011569] Add an experimental tokenizer to FTS3/4: one that transliterates latin, greek, cyrillic, and hebrew characters into pure ascii. (user: drh, tags: translit-tokenizer)
18:08 [83037d58] Closed-Leaf: Do the accounting for incr-merge work in pages instead of blocks. (user: dan, tags: fts4-incr-merge-exp)
15:44 [4d516240] Closed-Leaf: This change turned out to the code slower. Side track it. Was: Tweaks to the OP_Column opcode for clarity of presentation. (user: drh, tags: mistake)
01:34 [b899dbeb] Evaluate typeof(X) and length(Y) where X is any column and Y is a blob column without actually loading X and Y from disk. (user: drh, tags: faster-typeof-and-length)
11:48 [7ed9d2f2] Closed-Leaf: Allow multiple incremental merges to proceed concurrently. This is required to prevent a large crisis-merge from occuring while an even larger incremental-merge is underway. (user: dan, tags: fts4-incr-merge-exp)
02:20 [ed69434c] An attempt at automatic incremental merging for FTS4. (user: drh, tags: fts4-auto-incr-merge)
21:28 [254f99ea] Closed-Leaf: Add the sqlite3_db_readonly() interface. This is still tentative, pending a closer look at other ideas to accomplish the same thing. (user: drh, tags: db-readonly-api)
18:39 [741b8f89] Add the 'merge=?,?' command to fts4. This still needs some work. (user: dan, tags: fts4-incr-merge)
19:13 [9a0f90d9] Closed-Leaf: If a CHECK constraint is named, report that name on the error message when the constraint fails. (user: drh, tags: named-check-constraints)
19:44 [bea257f7] Add the "languageid=" option to fts4. This code is still largely untested and alsmost certainly buggy. (user: dan, tags: fts4-languageid)
18:16 [c0891296] Remove unused #defines from os.h. (user: drh, tags: winrt)
14:45 [5be07904] Begin adding support for SQLITE_FCNTL_PRAGMA. (user: drh, tags: file-control-pragma)
16:43 [9b66c79e] Change the ROLLBACK command so that pending statements to not block it. The pending statements instead return SQLITE_ABORT upon next access. Note: This causes separate shared-cache connections in read_uncommitted mode to abort as well. (user: drh, tags: nonblocking-rollback)
13:44 [922bcbb4] Closed-Leaf: Generalize the interrupt mechanism so that individual statements can be interrupted and so that codes other than just SQLITE_INTERRUPT can be returned as a consequence of an interrupt. (user: drh, tags: generalize-interrupt)
17:35 [adb29232] For queries of the form "SELECT p, max(q) FROM t1", the value of column p returned is the one on the same row that holds the maximum value of q. (user: drh, tags: output-minmax-row)
21:33 [9e5add51] Closed-Leaf: Experimental changes to prevent buffer overreads when parsing a corrupt database file. (user: drh, tags: no-overread)
16:09 [e0d44450] Add support for statvfs() in os_unix.c, for determining the sector size. This causes many TCL test failures under Linux. (user: drh, tags: statvfs)
19:34 [91d0437c] Proposed changes that ensure that the WAL header is written prior to the first commit mark. (user: drh, tags: wal-header-sync)
13:24 [6492af76] Closed-Leaf: Experimental fix for [a1fa75cbdd]. (user: dan, tags: experimental)
17:53 [cdbfb553] Closed-Leaf: Add a file-control that will discover the name of the bottom-level VFS and all the shims in between. (user: drh, tags: vfsname-filectrl)
11:15 [255d2149] Change the way IO errors are handled in the xFileSize method of the multiplexor VFS. Add test file multiplex3.test. (user: dan, tags: experimental)
20:01 [c4e2ce48] Backport a minimal set of changes needed to get 8+3 filenames and the multiplexor shim playing well together. (user: drh, tags: nx-devkit)
16:21 [521d72bd] Make no assumptions about the initial state of VDBE registers. (user: drh, tags: uninit-vdbe-mem)
19:44 [79ae51c5] Begin adding the data-structure explaining subsystem. All is contained within (user: drh, tags: tree-explain)
18:44 [bd3ce723] Add stdio-like I/O interfaces to the test_quota VFS. This is a prototype change for discussion and is mostly untested. This is an alternative to adding stdio-like I/O interfaces in the core. There is no guarantee that this code will make it into the trunk. If it does get to trunk, there could be many changes to the interface first. (user: drh, tags: quota-stdio)
02:32 [8936542b] Closed-Leaf: Add a prototype implementation of stdio-like routines for accessing the VFS. This is intended as documentation. The code is untested. There is no guarantee that any of this will ever make it into trunk. Substantial revision is possible prior to reaching trunk, if it ever does. (user: drh, tags: vfs-stdio)
00:54 [7e657bbb] Closed-Leaf: Cleanup the semantics surrounding use of the GetLastError function on Windows. (user: mistachkin, tags: winGetLastError)
17:32 [06e0cdaf] Closed-Leaf: Change the multiplexor suffix from 2 to 3 digits. (user: drh, tags: 3-digit-multiplex-suffix)
02:53 [54cc1198] Fix a 8-byte alignment problem that causes a SIGBUS on Sparc. (user: drh, tags: branch-3.7.9)
01:55 [09be42d5] Begin making experimental changes to use mmap() for reading content from a database. The code compiles, but crashes on the test suite. (user: drh, tags: mmap-experimental)
22:08 [ed88fb00] Work in progress to implement the 'syscall' functionality for Windows. (user: mistachkin, tags: winSyscall)
20:08 [c275c9d3] Experimental change to the pcache interface to allow page buffers to be allocated separately from their associated container structures. (user: dan, tags: experimental-pcache)
15:06 [a499ae38] Closed-Leaf: Cherrypick the [5dbfaed8c3] patch so that SQLITE_OMIT_WAL works again. (user: drh, tags: omit-wal-fix)
15:45 [72256634] Closed-Leaf: If the read() system call in unix returns fewer bytes than expected, retry it until it either returns zero or an error. (user: drh, tags: retry-short-reads)
18:59 [aef7945c] Cherrypick the sqlite_data_count() changes from [d4f95b3b6e] and [9913996e7b] into the apple-osx branch for version 3.7.7. (user: drh, tags: apple-osx-377)
13:33 [876bd21a] Begin an effort to enhance the query planner to do a better job with OR terms in the WHERE clause. This change allows ANDs outside of the OR to be factored into the OR terms if that is helpful in finding better indices. (user: drh, tags: or-opt)
11:22 [1d27ea74] Add experimental 'content' option to FTS4. (user: dan, tags: fts4-content)
03:13 [646db971] Closed-Leaf: Merge the cache-stats enhancement into trunk. (user: drh, tags: mistake)
15:53 [89272357] Closed-Leaf: Add SQLITE_STMTSTATUS_CACHE_HIT/MISS and SQLITE_DB_STATUS_CACHE_HIT/MISS. For querying the number of pager cache hits and misses on a statement or connection basis. (user: dan, tags: cache-stats)
19:39 [62dfc51a] Adding test case for ticket [002caede898] (user: drh, tags: tkt-002caede898)
15:32 [bab2e560] Experimental code-generator changes to utilize new opcodes for sorting. (user: drh, tags: merge-sort)
18:48 [1a249845] Experimental changes to improve the performance of OP_Next. (user: dan, tags: experimental)
13:52 [0df04f92] Merge branches branch-3.7.2 and stat3-enhancement into a new branch for testing purposes. (user: drh, tags: stat3-3.7.2)
13:16 [63f2c785] Merge the stat3-enhancement branch with trunk, but keep the resulting merge in a separate branch for now. (user: drh, tags: stat3-trunk)
16:13 [bf3d0ab5] Experimental work to allow SQLite to use the native Win32 heap API. (user: mistachkin, tags: winNativeHeap)
18:15 [63597097] Experimental change: If SQLITE_PAGECACHE_BLOCKALLOC is defined, instead of allocating pages one at a time, allocate blocks of between 15 and 63 pages in a single allocation. (user: dan, tags: pager-blockalloc)
01:51 [52e1d7e8] Begin a branch that experimentally replaces sqlite_stat2 with a new table called sqlite_stat3 that will hopefully facilitate better query planning decisions. (user: drh, tags: stat3-enhancement)
21:13 [eb434228] Add a column to the sqlite_stat2 table that contains the number of entries with exactly the same key as the sample. We do not yet do anything with this extra value. Some tests in analyze2.test are failing. (user: drh, tags: query-planner-tweaks)
01:07 [c8ba8855] Adjust the output row estimating logic when using STAT2. (user: drh, tags: query-planner-tweaks)
00:57 [9007586f] Add retry logic for AV defense to winOpen. Also, refactor test suite to allow the key Tcl file operations (e.g. copy and delete) to be retried. (user: mistachkin, tags: winopen-retry-logic)
16:03 [e34c553b] Prototype change for a new sqlite3_file_control() that will cause the -wal and -shm files to persist after the last database connection closes. (user: drh, tags: persistent-wal-patch)
21:25 [a6b85c73] Closed-Leaf: Add retry logic for AV defense to winAccess(). Also allow OS tracing to be enabled by a compile-time option. (user: drh, tags: av-defense)
14:28 [30dbf0fe] Experimental support for speeding up CREATE INDEX commands using an offline merge sort. (user: dan, tags: experimental)
11:04 [89f1848d] Update the anti-virus retry logic for DeleteFile(). Invoke sqlite3_log() for each anti-virus retry. Make the retry delay configurable at compile-time. (user: drh, tags: av-defense)
15:52 [8daf6e1b] Closed-Leaf: Here is an attempted enhancement to the query planner that didn't work out. But it seems good to save this change for historical reference, even if it does not belong on the trunk. (user: drh, tags: query-planner-deadend)
20:17 [f7ba0219] Experimental changes to improve optimization of DISTINCT queries. (user: dan, tags: experimental)
23:32 [ec8f23fc] Create a branch that contains just the fix for the case_sensitive_like pragma bug, ticket [25ee81271091ec]. (user: drh, tags: branch-3.7.7)
17:09 [8230d831] Fix some of the code issues (missing comments etc.) in the new FTS code. (user: dan, tags: fts3-changes)
08:30 [7a381313] Add an interface to better test incremental loading of doclists by FTS4. Also some tests for this and term prefix queries. (user: dan, tags: broken-build)
11:26 [2e5a912a] Leaf: Toward version This check-in updates the version number and also patches the pager so that it never spills cache while in WAL mode. The latter patch fixes ticket [2d1a5c67dfc23] and also prevents excessive WAL file sizes if the pager cache starts thrashing. A few test cases fail. (user: drh, tags: branch-3.7.5)
18:49 [b5bdc639] If the fts4 option prefix=1 is specified, have the fts4 module maintain an index of prefixes as well as terms. (user: dan, tags: fts3-prefix-search)
17:11 [f88dfac3] Closed-Leaf: Rather than document goofy behavior, it seems better to make the behavior less goofy. (Was: Updates to the sqlite3_last_insert_rowid() documentation - to make it clear that the function does not work for virtual tables.) (user: drh, tags: mistake)
15:32 [97b98010] Pull in the patches to support read-only WAL databases into a new branch off of the apple-osx branch. This also pulls in all the other pending 3.7.7 changes such as URI support. (user: drh, tags: apple-wal-readonly)
17:31 [bb59f986] Add experimental support for read-only connections to WAL databases. (user: dan, tags: wal-readonly)
14:52 [489c453d] Closed-Leaf: Provide the ability to specify an alternative mutex subsystem at compile-time. - This check-in should have gone on the trunk, not on the 3.7.6 branch. (user: drh, tags: mistake)
19:44 [1586244b] Closed-Leaf: Changes to various test scripts so that they pass on windows. (user: dan, tags: win32-test-fixes)
18:49 [6d2633a6] Add support for on conflict clauses to fts3/fts4. (user: dan, tags: vtab-conflict)
19:37 [b8a8132e] Add the start of the "uri-filenames" feature. (user: dan, tags: uri)
17:14 [986f2f25] Change the prototype for the open() system call to agree with Posix. Though a faulty function prototype in a pointer cast is a seemingly innocuous error, the correct prototype is necessary for pthreads to work correctly on NetBSD. (user: drh, tags: branch-3.7.6)
13:29 [1cca9a49] Closed-Leaf: Add retry logic to GetFileAttributesEx() on windows. (user: drh, tags: experimental)
16:28 [6a8ad6e3] Begin a series of changes designed to reduce the scope and frequency of invalidating schemas. Design goals are that the internal schema should never be deleted out from under a prepared statement that is running and that all prepared statements should be expired if the schema is invalidated. At the same time, minimize the number of schema invalidations. This change merely revises the sqlite3ResetInternalSchema() function to use -1 as the wildcard for "all" rather than 0, so that we can reset the main schema independently of all the others. (user: drh, tags: schema-parse-refactor)
02:03 [c8f9edd9] Change the ANALYZE command so that it will accept an index name as its argument and only reanalyze that one index. A quick smoke-test works. Need to study the implications to the query planner and test corner cases. (user: drh, tags: analyze-idx)
15:00 [3b964155] Closed-Leaf: If the keyword "unordered" appears at the end of the SQLITE_STAT1.STAT column for an index, then use that index for equality lookups only, never for range queries or sorting. (user: drh, tags: unordered-index-hack)
15:05 [ea3a4ee1] Skeleton code for the word-fuzzer virtual table. (user: drh, tags: word-fuzzer)
04:45 [cfa4a2f7] Allow multiplex file names to be preceeded by prefix of the form ":multiplex:chunksize:maxchunks:" Still work to be done, though it compiles and prefixes are ignored. (user: shaneh, tags: multiplex-enhancements)
17:02 [00051c32] Add the new optional "unix-excl" VFS. This VFS grabs an exclusive lock on the database preventing other processes from accessing it, but continues to allow other database connections from the same process. (user: drh, tags: unix-excl)
15:09 [92b5a76a] Proof-of-concept prototype for the proposed xSetSystemCall extension method on the VFS. (user: drh, tags: syscall-override)
18:42 [6145d7b8] Add the experimental sqlite3_preupdate_hook() API. (user: dan, tags: sessions)
13:53 [e701efbd] Closed-Leaf: The robust_flock() fix that accidently included some unrelated, though harmless changes. I should follow my own checklist! (user: drh, tags: mistake)
03:11 [bcc22c4b] Backport the SQLITE_PROTOCOL fix and the extra defensive measure to version 3.7.4. (user: drh, tags: branch-3.7.4)
01:59 [e72cf118] This is the beginning of an attempt to backport recent query planner enhancements to version 3.7.2. The code in this version builds and runs and seems to give correct answers, but it generates suboptimal query plans and hence many of the test cases fail. The test script gives up after 1000 errors. (user: drh, tags: branch-3.7.2)
16:34 [b010ddcc] Add virtual table module "fts4aux", used to inspect the full-text index of an fts4 table directly. Also add the "compress" and "uncompress" fts4 options. (user: dan, tags: fts4aux)
17:02 [38ca1daa] Closed-Leaf: Bogus release candidate. (user: drh, tags: mistake)
16:00 [8063197e] Closed-Leaf: Ensure that if a deferred FK constraint is violated by a statement that creates its own implicit transaction, the statement is not an "active-write" after sqlite3_step() returns. (user: dan, tags: deferred-fk-quirk)
02:56 [2cd374cd] The first of a planned series of enhancements to the query planner that enable it to make better use of sqlite_stat2 histograms when the table has many repeated values. (user: drh, tags: stat2-enhancement)
21:32 [d094a1bf] Here is a completely new implementation of the mutex-free-pcache. This one uses a common code base and automatically selects whether or not to use mutexes depending on compile-time and start-time options. (user: drh, tags: mutex-free-pcache)
17:12 [c1e0d09c] Increment the change counter and update the SQLite version number whenever page 1 is added to the WAL. Ticket [5d863f876ee9561b9] (user: drh, tags: bug-5d863f87)
16:12 [2ea5bd12] Closed-Leaf: Provide an alternative and experimental pcache implementation that avoids the use of mutexes at the expense of using more memory. (user: drh, tags: mutex-free-pcache)
01:42 [d1b3c54f] Closed-Leaf: A proposed change to the sqlite3_step() API such that it will only auto-reset following an SQLITE_BUSY or SQLITE_LOCKED error. Calls after any other result other than SQLITE_ROW will return SQLITE_MISUSE. (user: drh, tags: step-autoreset)
13:07 [6549e767] Leaf: Cherrypick the WAL error logging from the pre-3.7.5 line into a branch for version 3.7.2. Include the sqlite3_vsnprintf() interface. This checkin is intended for debugging and not for release. (user: drh, tags: wal-trace-372)
12:50 [2c2afdd0] Add detailed error logging to WAL in an effort to track down an obscure SQLITE_PROTOCOL problem. This code is intended for debugging and not for release. (user: drh, tags: wal-trace-375)
15:51 [34613f1d] Closed-Leaf: Add additional DBSTATUS options for measuring the hit and miss rates against the lookaside memory pool - information useful in tuning the lookaside size. Currently experimental pending analysis of performance impact. (user: drh, tags: experimental)
19:16 [9cf0f2b7] Experimental changes to fts3 function matchinfo(). (user: dan, tags: fts3-experimental)
14:37 [4425b064] Add the SQLITE_FCNTL_FILE_POINTER verb to sqlite3_file_control(). (user: drh, tags: superlock)
18:56 [7e3fc2c8] Add experimental command "PRAGMA wal_blocking_checkpoint", which uses the busy-handler to block until all readers have finished in order to ensure the next writer will be able to wrap around to the start of the log file. (user: dan, tags: blocking-checkpoint)
00:47 [77b343cf] Experimental changes to test defaulting to fullfsync for WAL mode (user: adam, tags: apple-osx-exp)
19:01 [f4747eb8] Experimental changes to EXPLAIN QUERY PLAN. (user: dan, tags: experimental)
20:50 [dd4dc8a4] First attempt at a sharding VFS to split large DBs. (user: shaneh, tags: experimental)
20:46 [cc9d9a12] Updates for Windows. (user: shaneh, tags: experimental)
19:23 [7324c7f2] Add tail recursion to the sqlite3ExprDelete() routine in order to keep down stack space usage for really, really large expressions. Later: The tail recursion is dangerous since the recursion might happen after the expression has been freed. (user: drh, tags: mistake)
14:08 [5ae0ba44] Experimental changes to fts4 to try to selectively avoid loading very large doclists. (user: dan, tags: experimental)
15:11 [efda3104] Closed-Leaf: Not true: For a zeroblob, the Mem.z pointer can be null: The Mem.z pointer can never been NULL for a string or blob, even a zero-length string or blob. Assert this fact. (user: drh, tags: mistake)
00:50 [14eed3a0] Rework the text to numeric conversion routines so that they work with either UTF8 or UTF16 and do not require a NULL terminator. This allowed text to numeric conversion without reallocating the string. (user: drh, tags: experimental)
21:09 [8b8e1732] Add assert() statements that fail when a shallow copy is accessed after the original has been modified. These assert() statements should detect the kinds of subtle SCopy bugs such as caused the fault in ticket [b351d95f9cd5ef17e9d9dbae18f]. (user: drh, tags: bug-b351d95f9c)
09:32 [c1ebcacd] Add experimental branch disallowing VACUUM when there are one or more active SQL statements. (user: dan, tags: experimental)
11:40 [383eb87b] Add file test_quota.c, demonstrating how file-system quotas may be implemented as a VFS wrapper. (user: dan, tags: experimental)
23:13 [220cca50] Cherrypick the changes for enhancement requests [e090183531fc27474] (use indices on LIKE with no wildcards) and [4711020446da7d93d993] (use nocase index for LIKE even if the column is binary) into the release of the Apple-OSX branch. (user: drh, tags: apple-osx-3623)
11:59 [dec70c63] Backport the [65b8636ac6e5] fix for ticket [51ae9cad317a1] to version 3.7.0. (user: drh, tags: branch-3.7.0)
18:34 [7cf0e851] Add experimental unix-only file-control to grow and truncate the database file by a configurable chunk size. (user: dan, tags: experimental)
16:34 [ac1f37a6] Make sure all memory from sqlite3DbMalloc() is freed by sqlite3DbFree() and all memory from sqlite3_malloc() is freed by sqlite3_free(). (user: drh, tags: malloc-enhancement)
11:28 [9aa30342] Experimental code to measure memory consumed by database schemas and prepared statements. (user: dan, tags: experimental)
14:33 [52577bb5] Add proposed interface change to sqlite.h.in. This commit breaks the build. (user: dan, tags: experimental)
16:30 [8a5811ea] Closed-Leaf: Changes to get crashsql() working on Windows. (user: shaneh, tags: experimental)
17:05 [70833877] Fix some warnings when compiling under MSVC. (user: shaneh, tags: mistake)
19:04 [bede8c8a] Experimental change: On systems where it is not possible to unlink a file while one or more processes has it open (i.e. not unix), avoid closing the journal file each time the database is unlocked and reopening it at the start of each transaction. (user: dan, tags: experimental)
19:04 [ca68472d] Experimental change to the xShmXXX parts of the VFS interface. (user: dan, tags: experimental)
11:02 [7c102c7b] Closed-Leaf: Fix for race condition in WAL locking code. (user: dan, tags: mistake)
19:55 [ef3ba7a1] Initial code for incremental checkpoint in WAL mode. This check-in compiles on unix and runs as long as you do not engage WAL mode. WAL mode crashes and burns. Consider this check-in a baseline implementation for getting the new capability up and running. (user: drh, tags: wal-incr-ckpt)
12:37 [97d88a86] Closed-Leaf: Keep additional state information in the pager in an effort to reduce the number of SQLITE_FCNTL_SIZE_HINTs. (Note: This change was found to make no performance difference and so has been moved onto a side branch. Use the parent check-in instead of this one.) (user: drh, tags: branch-3.6.1-exp)
19:02 [ee13c884] (Moved to the mistake branch due to compile errors in test_osinst.c.) Change the vfs instrumentation code in test_osinst.c to make it easier to deploy. Add a vtab implementation for reading the binary log file format. (user: dan, tags: mistake)
18:01 [2b00152c] Refactoring the VFS-SHM methods used by WAL. This version compiles and runs non-WAL test cases but crashes and burns on wal.test. (user: drh, tags: wal-refactor)
02:49 [111ad59f] Initial port of WAL VFS support from os_unix.c to os_win.c. (user: shaneh, tags: wal-win32)
22:05 [c54e8dad] Changes for branch coverage of notify.c. Fixed quirk of unlock_notify() where it would still think it was blocked after a callback was cleared (even after the transaction on the blocking connection was closed). (user: shaneh, tags: experimental)
19:00 [409d61ba] Import experimental write-ahead-logging code. (user: dan, tags: wal)
15:57 [1b2a0412] Automatically generate transient indices for tables in joins that would otherwise have to use a full table scan. (user: drh, tags: experimental)
17:12 [b844ac6f] Experimental changes that cause SQLite to use bytes 28..31 of the database header to determine the database size, rather than using the actual database size. This allows database space to be preallocated. (user: drh, tags: experimental)
17:37 [ca0bc2a2] After any rollback that modifies the database file, sync the database before deleting the rollback journal. This is a cherry-pick merge of check-ins [b21b911f23] and [f2326dad4e] (user: drh, tags: branch-3.6.23)
22:36 [1a0fa8d1] Closed-Leaf: Second thoughts: Let Tiger users set SQLITE_ENABLE_LOCKING_STYLE=0. Was: Change SQLITE_ENABLE_LOCKING_STYLE to default off, even on Macs, since older Macs (Tiger) cannot compile the latest proxy locking sources. (user: drh, tags: mistake)
08:12 [587109c8] Silence a compiler warning by using a constant value instead of a constant expression that some compilers mistakenly believe causes bitshift overflow. (user: dan, tags: mistake)
22:05 [5c0afe70] fix merge error and compiler warning (user: adam, tags: apple-osx)
20:54 [62dfb44b] More double free paranoia (user: adam, tags: apple-osx)
01:47 [95882598] Start a new branch for release 3.6.22 plus limited enhancements and fixes. This first check-in includes the performance enhancements of check-ins [26cb1df735], [61a2c8d4d6], and [27dc5b1c52] (user: drh, tags: branch-3.6.22)
04:19 [84c97569] Test new api to report which options (defines) were used to compile SQLite. (user: shaneh, tags: compile_opts)
00:48 [e6cbe1e5] Added -T option, to specify a template filename on the command line.    The default is still "lempar.c", though. (user: icculus, tags: lemon-update-2010)
22:43 [f3676b24] Closed-Leaf: Added experimental mutex implementation using interlocked ops and spin locks. (user: shaneh, tags: experimental)
15:47 [784b718e] Create new branch named "wal" (user: dan, tags: wal)
21:23 [ea3b941a] Fix a missing mutex on page cache truncation during vacuum and auto-vacuum when SQLITE_ENABLE_MEMORY_MANAGEMENT is engaged. (user: drh, tags: branch-3.5.9)
19:46 [5ed168c4] Changes to 3.5.9 proposed by Rob Stoddard. (user: drh, tags: branch-3.5.9)
23:50 [a7a0c8d6] robustness fixes for preventing a finalized statement from being reused (user: adam, tags: apple-osx)
18:06 [9f819ea6] Apply fix [097737e368] to the 3.6.1 branch. (user: dan, tags: branch-3.6.1)
23:28 [86734732] Leaf: Fix for the "(x AND y) OR z" bug backported to version 3.6.21. (user: drh, tags: branch-3.6.21)
19:02 [7d308801] Closed-Leaf: Recomputed unchanged column values in an UPDATE statement after running BEFORE triggers, in case the triggers have modified any of those values. (user: drh, tags: experimental)
17:36 [30a92f11] Start reworking fts3 code to match the rest of SQLite (code conventions, malloc-failure handling etc.). (user: dan, tags: fts3-refactor)
03:22 [6bf43338] Add some very basic tests for the commands available from the CLI. (user: shaneh, tags: trunk)
02:34 [90e63b7d] Initial implementation of a virtual table for CSV files. (user: shaneh, tags: csv_ext)
21:49 [6f3081a8] Do not accept a codec no an in-memory database. (user: drh, tags: shunning-error)
18:51 [590d4ac1] Fix documentation typos. (user: drh, tags: shunning-error)
22:34 [941a01eb] Customizations for OSX contributed by Apple. (user: adam, tags: apple-osx)
18:38 [65a1f133] Fix a 16-bit integer overflow that might occur in statements that use both an EXISTS clause and IN operator with a RHS holding in excess of 32K entries. (user: drh, tags: branch_3_6_16)
18:35 [9bd6f3d8] Add the experimental sqlite3_reoptimize() API. (user: dan, tags: experimental)
19:43 [715cecb8] Leaf: Fix a VDBE stack overflow issue with the UPDATE statement. (user: drh, tags: branch-3.3.6)
16:12 [f06cae3b] Update the version number for the branch. (CVS 6651) (user: drh, tags: branch_3_6_14)
14:07 [15d88edf] Port the corruption bug fix of check-in (5938) into a branch off of version 3.6.6. (CVS 5947) (user: drh, tags: branch_3_6_6)
13:20 [f0029da3] Leaf: Back-port critical soft heap limit fixes to version 3.3.17. The following check-ins were back-ported: (4031), (4037), (4097), (4202), (4203), (4207), (4208), (4214). (CVS 4222) (user: drh, tags: branch_3_3_17)
21:31 [e91012b6] Leaf: Backport the stack-size reduction patch in (3673) to version 3.3.13. (CVS 3979) (user: drh, tags: branch_3_3_13)
16:29 [33397742] Backport the fix for ticket #1567 into the 3.2 branch. (CVS 2829) (user: drh, tags: branch_3_2)
23:37 [635f674d] Add some extra debugging logic to lemon.c. Ticket #692. (CVS 1304) (user: drh, tags: version_2)
14:16 [704b122e] initial empty check-in (user: drh, tags: trunk)