SQLite

Timeline
Login

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

4267 check-ins using file ext/misc/closure.c version 63602430

2019-09-03
19:29
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (Leaf check-in: b584fd36 user: dan tags: branch-3.9)
17:39
Disable the undocumented rtreenode() SQL function that is only used for testing, except when doing a build that is specifically intended for testing. (check-in: 7b4583f9 user: drh tags: branch-3.9)
2018-12-19
16:03
Add interfaces sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer() used to safely move pointer values through SQL without exposing underlying memory address information. Cherrypick from commit [8201f4e1] on branch-3.18. (check-in: 4cb67252 user: dan tags: branch-3.9)
01:57
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: 882ef4e3 user: drh tags: branch-3.9)
2018-12-14
20:28
Add a missing OP_ColumnsUsed opcode to code for expressions like "? IN (SELECT ...)" in cases where expression can use an index that may contain NULL values. (Backported fix from version 3.14.0). (Leaf check-in: 11368e67 user: drh tags: branch-3.8.9)
20:20
Add the OP_ColumnsUsed opcode (when compiled with SQLITE_ENABLE_COLUMN_USED_MASK) as a hint to the b-tree layer as to which columns of a btree cursor will be used. (Backport from 3.8.11) (check-in: b29e02f8 user: drh tags: branch-3.8.9)
2018-02-02
16:46
Enable the ".wheretrace" and ".selecttrace" options in the shell when configure is run using --enable-debug. This mirrors a similar change that has already occurred on trunk. (Leaf check-in: c4f798b2 user: drh tags: branch-3.9.2)
2017-11-14
18:26
Fix the SQLITE_ENABLE_UPDATE_DELETE_LIMIT functionality so that it works with views and WITHOUT ROWID tables. This is a modified cherrypick of [dae4a97a]. (check-in: b2679d3b user: dan tags: branch-3.8.9)
2017-11-09
04:13
Disallow ORDER BY and LIMIT on UPDATE and DELETE of views and WITHOUT ROWID tables. This is a temporary fix for ticket [d4beea1633f1b88f] until a better solution can be found. (check-in: 30aa941f user: drh tags: branch-3.8.9)
2017-07-27
22:16
Enhance the like optimization so that it works with an ESCAPE clause. (check-in: 2495acf7 user: drh tags: branch-3.8.9)
2017-07-21
07:45
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This changes is a cherry-pick of [f0f49224] with version-specific edits. That check-in was inspired by check-in [72de49f2]. (check-in: 69906880 user: drh tags: branch-3.9.2)
04:08
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This is a cherry-pick of [f0f49224] which was in turn inspired by [72de49f2]. (Leaf check-in: 5a3022e0 user: drh tags: branch-3.8.10)
03:23
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This is a cherry-pick of [f0f492245e95], which is in turn inspired by check-in [72de49f2]. (Leaf check-in: a66a5b39 user: drh tags: branch-3.8.6)
2017-07-17
19:37
Try to push relevant WHERE clause terms of the outer query down into the subquery in order to help the subquery run faster and/or use less memory. This is a cherry-pick of [6df18e949d36] with bug fixes. (check-in: cd6ac078 user: drh tags: branch-3.8.9)
19:25
When checking for the WHERE-clause push-down optimization, verify that all terms of the compound inner SELECT are non-aggregate, not just the last term. Fix for ticket [f7f8c97e97597]. (Closed-Leaf check-in: adc082c1 user: drh tags: push-down-backport)
19:14
Do not apply the WHERE-clause pushdown optimization to terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket [c2a19d81652f40568c]. (check-in: 52674f94 user: drh tags: push-down-backport)
19:07
For FROM-clause subqueries that cannot be flattened, try to push relevant WHERE clause terms of the outer query down into the subquery in order to help the subquery run faster and/or use less memory. Cherry-pick from [6df18e949d36]. Still need to backport bug fixes associated with that check-in. (check-in: 043d6ce8 user: drh tags: push-down-backport)
2017-07-08
01:01
Fix the covering index OR optimization (check-in [fcbd6abd]) so that it works with SQLITE_MAX_ATTACHED>30. Broken by a bad cherry-pick merge. (check-in: d227de8a user: drh tags: branch-3.8.9)
2017-07-05
16:20
Make use of covering indexes in the OR optimization. (check-in: fcbd6abd user: drh tags: branch-3.8.9)
14:54
Add the count-of-view optimization when compiled using SQLITE_COUNTOFVIEW_OPTIMIZATION. (check-in: b7ae4b87 user: drh tags: branch-3.8.9)
2017-06-06
18:22
Add the SQLITE_DEFAULT_ROWEST compile-time option for changing the estimated number of rows in tables that lack sqlite_stat1 entries. (check-in: 802b82f3 user: drh tags: branch-3.8.9)
2017-05-24
04:32
Fix a problem in STAT4 equality estimation for multi-column indexes introduced by check-in [3e0590dee0e68cc1599]. (check-in: 19dad0a7 user: drh tags: branch-3.8.9)
2017-05-22
00:27
When planning a query using sorting, resolve ties in the solver by selecting loop plans with the smaller unsorted cost. (check-in: 962531e7 user: drh tags: branch-3.8.9)
2017-01-11
14:21
In the STAT4 computations, ensure that the aAvgEq values do not go negative. (check-in: 4f83f680 user: drh tags: branch-3.8.9)
2016-11-02
16:29
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] backported to the 3.8.9 branch. (check-in: 8e4ba115 user: drh tags: branch-3.8.9)
2016-09-23
18:06
Fix the ORDER BY LIMIT optimization backport so that it works when the ORDER BY uses the DESC direction. (check-in: 0c3cafb7 user: drh tags: branch-3.8.9)
2016-09-14
01:43
Backport the ORDER BY LIMIT optimization to version 3.8.9. (check-in: db361482 user: drh tags: branch-3.8.9)
2016-08-10
03:35
Try to make pcache1TruncateUnsafe() run faster for the case where iLimit is very close to iMaxKey. (Leaf check-in: 9ab53605 user: drh tags: debug)
02:54
Remove all timers and other debugging logs except for the one timer on pcache1TruncateUnsafe(). (check-in: 5980e625 user: drh tags: debug)
2016-08-09
11:44
Add another timer on pcache1TruncateUnsafe(). (check-in: 42ce53f6 user: drh tags: debug)
11:23
Add a debug timer to pcache1Truncate(). Change the formatting of some other messages to make them easier to read. (check-in: 7d0af4b5 user: dan tags: debug)
01:21
Refocus the timer on the pager_end_transaction() routine. (check-in: 9d4eb6e4 user: drh tags: debug)
2016-08-04
14:08
Add extra logging calls to this branch. (check-in: 491f1ef3 user: dan tags: debug)
2016-07-30
03:33
A new version of the slow mutex log that uses gettimeofday() instead of trying to access the hardware timer. (check-in: 92b9fead user: drh tags: debug)
2016-07-29
16:32
Turn memory status off by default. (check-in: ea3c7162 user: drh tags: debug)
14:31
Enhance a debugging log message to better identify a mutex. (check-in: e60cb6d8 user: dan tags: debug)
14:23
Use __sync_synchronous(), when available, instead of a mutex when a memory barrier is needed. (check-in: 7d4562e9 user: drh tags: debug)
14:10
Add calls to sqlite3_log() when sqlite3_mutex_enter() takes more than 100,000 CPU cycles. (check-in: 33c7ef7a user: drh tags: debug)
2016-07-16
11:47
Temporarily add extra sqlite3_log() calls to this version to help with debugging a performance problem. (check-in: 613c1cea user: dan tags: debug)
2016-07-14
20:19
Experimental patch restore the slight bias in btree-balancing immediately after the change to reduces the amount of memcpy() work done by balancing. (Leaf check-in: 46bd9533 user: drh tags: btree-balance-bias)
2016-03-31
21:36
Version 3.9.3 (check-in: dfbfd34b user: drh tags: release, branch-3.9, version-3.9.3)
21:16
Enhance the query planner so that IS and IS NULL operators are able to drive an index on a LEFT OUTER JOIN. (check-in: f1e6bb95 user: drh tags: branch-3.9)
2015-11-02
18:31
Version 3.9.2 (check-in: bda77dda user: drh tags: release, branch-3.9, version-3.9.2)
11:19
When creating an automatic-index on a sub-query, add a unique integer to the end of each index key to ensure the entire key is unique. Fix for [8a2adec1]. (check-in: c0c4b6b3 user: drh tags: branch-3.9)
11:10
Aborted releaset of 3.9.2. (check-in: c33a275b user: drh tags: branch-3.9)
2015-11-01
21:42
Increase the version number to 3.9.2. (check-in: 14bd4fbf user: drh tags: branch-3.9)
21:35
If a table-constraint PRIMARY KEY lists a single column in single-quotes and that column has type INTEGER, then make that column an integer primary key, for historical compatibility. Fix for ticket [ac661962a2aeab3c331]. (check-in: dab0e607 user: drh tags: branch-3.9)
2015-10-30
14:28
Return immediately if sqlite3PagerWrite() is called when the pager is in PAGER_ERROR state. (Closed-Leaf check-in: a6695b00 user: dan tags: cacheflush)
09:13
Test that calling sqlite3_db_cacheflush() does not interfere with savepoints. (check-in: 0e09e4a2 user: dan tags: cacheflush)
2015-10-29
21:11
Do not attempt to flush the pages of an in-memory database to disk if sqlite3_db_cacheflush() is called. (check-in: 9b79a390 user: dan tags: cacheflush)
20:57
Add a test case that calls sqlite3_db_cacheflush() on an in-memory database. (check-in: f0cdfb54 user: dan tags: cacheflush)
18:16
Avoid automatically rolling back the transaction if an SQLITE_IOERR or SQLITE_FULL error occurs within sqlite3_db_cacheflush(). (check-in: 370b5d52 user: dan tags: cacheflush)
14:29
The optimization on this branch is logically incorrect. It changes the return value of "SELECT 0 OR 'xyzzy'" FROM 0 to 'xyzzy'. (Closed-Leaf check-in: a0c08d26 user: drh tags: simplify-or-clause)
12:27
Apply optimizations to simplify OR clauses that contain constant terms. (check-in: d533e23f user: drh tags: simplify-or-clause)
01:11
Enhance comments in the MSVC batch build tool. (check-in: 2964ce25 user: mistachkin tags: trunk)
2015-10-28
20:01
Make the internal sqlite3PExpr() interface responsive to the TKFLG_DONTFOLD flag on the operator parameter. (check-in: b10ab59f user: drh tags: trunk)
19:46
Add experimental API sqlite3_db_cacheflush(). (check-in: 65b86dc1 user: dan tags: cacheflush)
16:05
Factor out adding NOT expression nodes in the parser into a subroutine. (check-in: 00185418 user: drh tags: trunk)
2015-10-27
20:04
Have contentless and external content fts5 tables ignore "OR REPLACE" conflict handling. (check-in: a85c2a47 user: dan tags: trunk)
17:48
Fix problems with prefix queries in fts5. (check-in: 3b5758c6 user: dan tags: trunk)
13:35
Provide hints to the storage engine using the sqlite3BtreeCursorHint() interface when compiling with SQLITE_ENABLE_CURSOR_HINTS. (check-in: 45d3539e user: drh tags: trunk)
13:24
Split out sqlite3BtreeCursorHintFlags() from sqlite3BtreeCursorHint() the interface for improved performance. (Closed-Leaf check-in: b3ec9a0d user: drh tags: cursor-hints)
2015-10-26
20:50
Merge latest trunk changes, including the SQLITE_IOERR_AUTH error code, with this branch. (check-in: bc195e1c user: dan tags: apple-osx)
20:39
Add new extended error code SQLITE_IOERR_AUTH. (check-in: b4e70dd0 user: dan tags: trunk)
20:11
Merge the BTREE_FORDELETE enhancement with this branch. (check-in: 20da0849 user: dan tags: cursor-hints)
18:51
Merge in all trunk changes prior to the BTREE_FORDELETE enhancement. (check-in: 53d5a4ad user: drh tags: cursor-hints)
18:01
Capture BTREE_FORDELETE test cases that were mistakenly omitted from the previous merge. (check-in: de697251 user: drh tags: trunk)
17:50
Provide the BTREE_FORDELETE flag to sqlite3BtreeCursor() if the cursor will be used only for deletions and seeking. (check-in: 871b1c78 user: drh tags: trunk)
16:34
Fix an uninitialized variable problem in the test code added by the previous commit. (Closed-Leaf check-in: 7849662e user: dan tags: btree-fordelete-flag)
16:31
Test that the binary record "0x01 0x00" is interpreted by OP_Column as a vector of NULL (or default) values. (check-in: 5bdc3c82 user: dan tags: btree-fordelete-flag)
14:54
Fix a C99-ism and a harmless compiler warning. (check-in: 138783b5 user: drh tags: trunk)
14:41
When compiling with SQLITE_HAS_CODEC, honor the hexkey= query parameter on URI pathnames in sqlite3_open_v2(). (check-in: e0ce3fc0 user: drh tags: trunk)
12:55
Remove an unreachable branch in malloc.c. (check-in: a36b7fe9 user: drh tags: trunk)
2015-10-24
20:31
When creating an automatic-index on a sub-query, add a unique integer to the end of each index key to ensure the entire key is unique. Fix for [8a2adec1]. (check-in: bfea226d user: dan tags: trunk)
2015-10-23
11:50
Remove an unused #define from whereInt.h. Add comments describing the new sqlite3BtreeCursor() flags. (check-in: 4c0ba8be user: dan tags: btree-fordelete-flag)
2015-10-22
20:54
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. (check-in: cdc92919 user: dan tags: btree-fordelete-flag)
18:06
Alternate compiler warning fix for sqlite3StatusHighwater. (check-in: 4315d202 user: mistachkin tags: trunk)
2015-10-21
22:08
Fix harmless compiler warnings in FTS5. (check-in: aa4e01ea user: mistachkin tags: trunk)
22:07
Fix compilation of 'testfixture' with MSVC when the FTS5 and JSON1 extensions are enabled. (check-in: e31aa97a user: mistachkin tags: trunk)
20:56
Remove some branches made unreachable by recent changes from fts5. (check-in: ae350bfb user: dan tags: trunk)
20:07
Minor optimization for fts5 queries. (check-in: 363b36d5 user: dan tags: trunk)
08:26
Add extra debugging function to test_rbu.c. Enhance the documentation for sqlite3rbu_db() to define the validity of the returned database handles. (check-in: b9c4aa52 user: dan tags: trunk)
2015-10-20
23:40
Fix compiler warnings. (Closed-Leaf check-in: 12e869bb user: mistachkin tags: noWarn)
23:27
Fix harmless compiler warnings in FTS5. (check-in: 0a903ec2 user: mistachkin tags: trunk)
21:05
More optimizations for fts5 prefix queries. (check-in: b8fb263e user: dan tags: trunk)
19:55
Fix #line directives added to generated file fts5.c. (check-in: 1f5f5804 user: dan tags: trunk)
15:49
Initialize variables in the fts5 integrity-check code to avoid compiler warnings. (check-in: e979e2cc user: dan tags: trunk)
2015-10-19
20:49
Another optimization for fts5 prefix (and other) queries. (check-in: 60a8bde0 user: dan tags: trunk)
17:43
Another tweak to improve performance of fts5 prefix queries. (check-in: 69be427c user: dan tags: trunk)
15:59
Fix a problem in the fts5txt2db.tcl script causing it to fail when creating tables with more than 8 columns. (check-in: 68ee426a user: dan tags: trunk)
2015-10-17
20:34
Add tests to cover new branches added to the fts5 code by the previous commit. (check-in: cf618334 user: dan tags: trunk)
19:49
Handle equality and range constraints on the "term" column of fts5vocab tables. Also have the same module report columns using names instead of indexes. (check-in: 6020d96a user: dan tags: trunk)
01:00
Change the code generator for UPDATE to generate code in an order that might run more efficiently in many cases. (Leaf check-in: c6239bf9 user: drh tags: improved-update)
2015-10-16
23:55
Fix a comment in expr.c and add a CORRUPT_DB to an assert() in btree.c. (check-in: 0df371d1 user: drh tags: trunk)
20:55
Merge the 3.9.1 updates from trunk. (check-in: bf866e6c user: drh tags: begin-concurrent)
20:53
Merge recent enhancements from trunk. Version now 3.9.1. (check-in: 26fa091d user: drh tags: cursor-hints)
20:52
Merge the 3.9.1 changes. (check-in: dd07688d user: drh tags: apple-osx)
20:20
Merge the version 3.9.1 updates. (check-in: 2bbb9595 user: drh tags: sessions)
20:13
Enhancements to the MSVC makefile. (check-in: 39e8a5d9 user: mistachkin tags: trunk)
20:12
Merge the 3.9.1 changes into trunk. (This only updates the version number and configure script since all the other changes in 3.9.1 were cherrypicked from trunk.) (check-in: eb231742 user: drh tags: trunk)
17:31
Version 3.9.1 (check-in: 767c1727 user: drh tags: release, branch-3.9, version-3.9.1)
15:56
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]). (check-in: 746fcd2f user: drh tags: branch-3.9)
15:42
Fix the fuzzershell utility program so that it compiles with the amalgamation that includes JSON1 support. (check-in: d6fc616e user: drh tags: trunk)
15:35
Fix the JSON1 extension so that it does not depend on isdigit() and strtod() from the standard library when compiled into SQLite as part of the amalgamation. (check-in: bc9a9a60 user: drh tags: trunk)
15:16
Form-feed is not valid whitespace for json. Fix for ticket [57eec374ae1d0a1d] (check-in: 28957d63 user: drh tags: trunk)
14:54
Have the sqlite3VdbeSerialType() function go ahead and compute the serial length as well, since it is always needed. This avoids unnecessary calls to sqlite3VdbeSerialTypeLen(). (check-in: 2ad72be1 user: drh tags: trunk)
14:23
Use a lookup table to compute the content length for serial types less than 128, for a 1.2% performance improvement. (check-in: 33957248 user: drh tags: trunk)
13:50
Simplify the OP_Column logic slightly. One very small performance improvement added. (check-in: 0114b45d user: drh tags: trunk)
12:53
OP_Column optimization: Do not check for an oversize row header unless the row header size is larger than the content available on the local page. (check-in: 8125b74c user: drh tags: trunk)
12:39
Improved header comment on the tool/vdbe_profile.tcl script. No changes to code. (check-in: b17ad8fc user: drh tags: trunk)
03:34
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. (Leaf check-in: 08e8f04d user: drh tags: reorder-column-opcodes)
2015-10-15
21:30
Performance optimization for the OP_Column opcode. (check-in: 076be547 user: drh tags: trunk)
21:13
Merge updates from trunk. (Leaf check-in: 40493680 user: mistachkin tags: mutexInitIsInitReCheck)
21:12
Merge updates from trunk. (Leaf check-in: a447cf90 user: mistachkin tags: mutexInitSimpleCmpSwap)
20:17
Experiments with an OP_Unpack opcode that extracts multiple columns from a record without caching. (Leaf check-in: 39ae92f5 user: drh tags: unpack-opcode)
19:21
Enhance the use of the column cache for UPDATE statements, making them more efficient for the case where a column is modified to be an expression of other unmodified columns. (check-in: 871e091d user: drh tags: trunk)
18:04
Add the OP_IntCopy opcode - an optimized version of OP_SCopy that only works for integer values. (check-in: 3a2f73a4 user: drh tags: trunk)
17:31
Optimization to the out2Prerelease() helper routine in the VDBE engine. (check-in: 79298fe8 user: drh tags: trunk)
17:21
Remove a superfluous conditional from the memory allocation initialization. (check-in: 9ccf8f8d user: drh tags: trunk)
16:20
Performance optimizations to the sqlite3MallocSize() by requiring the argument to always be non-NULL. (check-in: cb65989b user: drh tags: trunk)
15:28
Change sqlite3StatusSet() into sqlite3StatusHighwater() so that only the highwater mark is recorded. This gives a small size reduction and performance improvement. (check-in: 6422d223 user: drh tags: trunk)
12:06
Make sure sqlite.h is not #included by itself. (check-in: a61880c2 user: drh tags: trunk)
07:44
Merge in the 3.9.0 changes from trunk. (check-in: 5c3a2a6e user: drh tags: begin-concurrent)
2015-10-14
23:04
In the MSVC makefile, add LIBTCLPATH variable to make it easier to run tests when the Tcl library is not already present in the PATH. (check-in: 54127602 user: mistachkin tags: trunk)
22:46
In the MSVC makefile, make sure LDFLAGS is used for the tool executables as well. (check-in: 0a17ee49 user: mistachkin tags: trunk)
21:08
Tests and minor fixes to improve coverage of FTS5 code. (check-in: f4de6d45 user: dan tags: trunk)
20:34
Fix harmless compiler warnings. (check-in: 1c46c194 user: mistachkin tags: trunk)
20:09
Merge in all the 3.9.0 updates from trunk. (check-in: 29444149 user: drh tags: cursor-hints)
20:03
Update makefiles to remove all uses of "awk" - to make building SQLite easier on Windows systems. The only requirements now are tclsh, a C compiler, and common file utilities. (check-in: 4bd0d43d user: drh tags: trunk)
20:01
Enable cross-compiling the various tool EXEs with MSVC. (check-in: 7d772333 user: mistachkin tags: trunk)
19:52
Fixes to the JSON1 extension and its use by fuzzcheck to avoid problems when building DLLs. (check-in: 01d3ee7b user: drh tags: trunk)
19:44
Fix fuzzcheck.c so that it assumes that JSON1 is already compiled in and does not need to be initialized further. (Closed-Leaf check-in: ec003958 user: drh tags: dll-build-fix)
18:45
Avoid exporting sqlite3_json_init() from amalgamation builds. (check-in: 8463f7e7 user: dan tags: dll-build-fix)
12:29
Version 3.9.0 (check-in: a721fc0d user: drh tags: trunk, release, version-3.9.0)
10:56
Add the missing 'extern "C" {...}' blocks to fts5.h and sqlite3rbu.h. (check-in: 47a2ce97 user: dan tags: trunk)
2015-10-13
20:42
Merge in the final few changes before the 3.9.0 release. (check-in: e1afdbb5 user: drh tags: sessions)
17:49
Merge 3.9.0 prerelease changes into the apple-osx branch. (check-in: 1900ce01 user: drh tags: apple-osx)
2015-10-12
22:31
Remove the unused fts5ExprColsetTest() routine. (check-in: 9ecafc0c user: drh tags: trunk)
22:20
Fix a couple harmless compiler warnings. (check-in: 7f896a97 user: mistachkin tags: trunk)
19:12
Further tweaks to improve fts5 prefix query performance. (check-in: 1c20c1c2 user: dan tags: trunk)
04:56
Change all references to 3.8.12 into 3.9.0. Comment changes only - no changes to code. (check-in: 6f2858f6 user: drh tags: trunk)
03:56
Remove AWK requirement from the MSVC batch build tool. (Closed-Leaf check-in: 6d9cdb93 user: mistachkin tags: omit-awk)
03:44
The TclKit batch tool should not download the TclKit SDK when the TCLKIT_NOSDK environment variable is set. (check-in: 7c5d583b user: mistachkin tags: omit-awk)
2015-10-11
20:39
Detect and report circularly defined views even if the views have the columns defined in the CREATE VIEW statement. (check-in: 9ab9c8c6 user: drh tags: trunk)
20:08
Remove an unreachable branch in the query flattener substitution logic. (check-in: 46ee3453 user: drh tags: trunk)
19:46
Improved substitution logic in the query flattener. Saves code space, and (more importantly) works correctly with table-valued functions. (check-in: 3d0bd95e user: drh tags: trunk)
2015-10-10
23:39
Enhance TclKit batch tool (and MSVC makefile) to support targets that require the Tcl stub library. (check-in: bc6223b1 user: mistachkin tags: omit-awk)
20:35
Pull in the latest 3.9.0 tweaks from trunk. (check-in: ed174ccf user: drh tags: sessions)
16:41
Work around a "security feature" bug in memcpy() on OpenBSD. (check-in: fab6f090 user: drh tags: trunk)
15:57
Remove another instance of strcpy() from FTS5, to mollify OpenBSD. (check-in: 35e6248a user: drh tags: trunk)
15:11
Omit the use of strcpy() in FTS5 since OpenBSD hates strcpy(). (check-in: bc24a5bb user: drh tags: trunk)
14:41
Compiler warning fixes: Rename some local variables from "j1" to avoid a name collision with the j1() bessel function in the math library. Omit a dummy initializer that gcc 4.6.3 does not like. (check-in: 9ddef84d user: drh tags: trunk)
14:00
Add some #ifdef-ery to json1.c to avoid a duplicate typedef when used in the amalgamation, since some compilers become upset over duplicate typedefs. (check-in: de28acd4 user: drh tags: trunk)
02:06
Remove a couple superfluous double quotes in the MSVC makefile. (check-in: 0f9e205b user: mistachkin tags: omit-awk)
01:55
Fix typo in the MSVC makefile. Replace remaining uses of AWK in the MSVC makefile with a Tcl script. (check-in: f8c2193b user: mistachkin tags: omit-awk)
00:53
More fine-tuning to the new TclKit tools. (check-in: 43addd8a user: mistachkin tags: omit-awk)
2015-10-09
20:40
The previous fix to JSON1 was not complete. A few more tweaks are needed for correct handling of all oversized integers. (check-in: 4a47f017 user: drh tags: trunk)
18:48
Tweak batch tool added in the previous check-in to permit the base URI to be overridden. (check-in: 1d2f82df user: mistachkin tags: omit-awk)
18:21
Fix the JSON1 extension so that it renders integers outside the range of -9223372036854775808 to +9223372036854775807 as floating-point numbers. (check-in: ae736e35 user: drh tags: trunk)
17:54
Remove fts5 sources from TESTSRC2 in main.mk as there is no SQLITE_TEST code in said files. (check-in: c1840639 user: dan tags: trunk)
17:36
Add tool capable of downloading a TclKit (and its associated SDK) on Windows. (check-in: 50673dda user: mistachkin tags: omit-awk)
17:28
Merge all changes through the first 3.9.0 beta from trunk. (check-in: 1ccae39b user: drh tags: apple-osx)
15:29
Merge the version 3.9.0 changes and the incorporation of JSON1 and FTS5 into the amalgamation from trunk. (check-in: c1d96fb6 user: drh tags: sessions)
14:37
Add --enable-fts5 and --enable-json1 options to the amalgamation autoconf package. (check-in: 8a4e1988 user: dan tags: trunk)
14:23
In the MSVC makefile, adjust the names of two nmake variables for consistency. (check-in: 92aa4b6b user: mistachkin tags: trunk)
13:42
Change the version number of the next release to 3.9.0. (check-in: aa8fdadf user: drh tags: trunk)
13:39
Add the JSON1 and FTS5 extensions to the amalgamation. Add new options to ./configure: --enable-json1 and --enable-fts5. (check-in: 1eb76993 user: drh tags: trunk)
13:29
Fix a typo in the MSVC Makefile (Closed-Leaf check-in: c8a12082 user: drh tags: amalg-json1-fts5)
12:48
Add configure script options --enable-fts5 and --enable-json1. Automatically search for -lm when using --enable-fts5. (check-in: a0c44f1d user: drh tags: amalg-json1-fts5)
11:09
Makefile and fts5 changes so that fts5 works with main.mk. Still does not work with Makefile.in. (check-in: 6ebac32d user: dan tags: amalg-json1-fts5)
01:42
Trying to get FTS5 tests to build and run using main.mk. Not yet working. (check-in: 206174f9 user: drh tags: amalg-json1-fts5)
2015-10-08
23:37
Json1 tests are working. Builds without FTS5 enabled. Still some problems building with FTS5. (check-in: 2928f8e8 user: drh tags: amalg-json1-fts5)
21:02
Remove calls to "load_static_extension" from fts5 test scripts. (check-in: 53dd7c4c user: dan tags: amalg-json1-fts5)
21:00
Further tweaks to main.mk so that fts5 builds as part of testfixture. (check-in: 97e11b79 user: dan tags: amalg-json1-fts5)
20:40
Fix further fts5 compilation issues. (check-in: 0d7f301f user: dan tags: amalg-json1-fts5)
20:28
Fix two more warnings in fts5 code. (check-in: 5343e601 user: dan tags: amalg-json1-fts5)
20:11
Fix a couple of errors in fts5 compilation. This branch still does not build with -Wall -Werror. (check-in: e9e76e12 user: dan tags: amalg-json1-fts5)
19:29
First attempt to add json1 and fts5 to the amalgamation. This check-in does not compile. (check-in: d820a1bd user: drh tags: amalg-json1-fts5)
17:35
In the RBU extension, use MoveFile() instead of rename() on Windows CE. (check-in: df9ef61f user: mistachkin tags: trunk)
14:55
Merge the 3.8.12 beta changes from trunk. (check-in: 35b1b8d4 user: drh tags: sessions)
02:44
Remove two unused lines of code - discovered by scan-build. (check-in: 77b707b7 user: drh tags: trunk)
2015-10-07
19:06
Further optimizations for fts5 prefix queries without a prefix index. (check-in: 83dc1ff7 user: dan tags: trunk)
17:06
Fix harmless compiler warning in FTS5. (check-in: 13adcd03 user: mistachkin tags: trunk)
17:01
Allow the subsitute character (codepoint 26 - 0x1A) to appear in fts5 barewords. (check-in: baec1b96 user: dan tags: trunk)
16:14
Adjustments to spellfix2.test so that it works reliably on mac. (check-in: d591e860 user: drh tags: trunk)
13:24
Add tests for fts5 phrase queries with column filters. (check-in: f20f9f81 user: dan tags: trunk)
12:36
Convert the tool/tostr.awk script into tool/tostr.tcl. Remove two obsolete Makefiles. Purge NAWK from the configure script and from unix makefiles. There are still two uses of NAWK in Makefile.msc. (check-in: 5b677521 user: drh tags: omit-awk)
12:21
Change the addopcodes.awk script into tool/addopcodes.tcl. (check-in: 8bbf3714 user: drh tags: omit-awk)
12:11
Convert the mkopcodec.awk script into tool/mkopcodec.tcl. (check-in: 1506cb33 user: drh tags: omit-awk)
09:02
Add further tests for fts5 prefix queries. (check-in: accdc98b user: dan tags: trunk)
04:20
Fix a typo in the previous check-in. (check-in: 80027709 user: mistachkin tags: trunk)
03:07
When running tests on Tcl 8.6 under Windows, skip tests 'uri-1.12.*' due to a change in Tcl behavior related to NTFS ADS (alternate data streams). (check-in: 8a0a2aa5 user: mistachkin tags: trunk)
02:52
Change mkopcodeh.awk into tool/mkopcodeh.tcl. (check-in: ed0ebc46 user: drh tags: omit-awk)
00:35
Remove three obsolete and unused files from tool/ (check-in: 0abd6529 user: drh tags: trunk)
2015-10-06
21:49
Fix typo in comments. No changes to code. (check-in: a05f903c user: mistachkin tags: trunk)
21:07
Simplifications to the VDBE bytecode that handles LIMIT and OFFSET. (check-in: 041df7c2 user: drh tags: trunk)
20:53
Optimizations for fts5 expressions that filter on column. More still to come. (check-in: bf1607ac user: dan tags: trunk)
17:27
Fix the LIMIT and OFFSET handling for UNION ALL queries that contain a subquery with ORDER BY on the right-hand side. Fix for ticket [b65cb2c8d91f668584]. (check-in: 4b631364 user: drh tags: trunk)
01:44
Adjustments to sqlite3MemoryBarrier() when compiling with MSVC and/or WinCE. (check-in: 3168326e user: mistachkin tags: trunk)
2015-10-05
19:41
Improve performance of prefix queries without a prefix index on fts5 tables. (check-in: f2f0184e user: dan tags: trunk)
15:39
Update fts3 so that expressions to the left and right of a NOT operator are balanced. This prevents relatively small expressions (a dozen terms or so) that are children of NOT operators from triggering the "expression tree is too large" error. (check-in: d6b66cd7 user: dan tags: trunk)
11:57
Add fts5txt2db.tcl, a tool for creating sample fts4/5 databases from text files. (check-in: 44f1ce30 user: dan tags: trunk)
2015-10-03
15:38
Update fts5 to support the table function syntax. "... FROM fts5_tbl WHERE fts5_tbl MATCH ?1 AND rank MATCH ?1" can now be written "FROM fts5_tbl(?1, ?2)". (check-in: 41d17d9e user: dan tags: trunk)
12:23
Add tests for the rtree module to verify that attempts to insert non-integer primary key values or non-numeric dimensions into an rtree table are handled correctly. (check-in: f653fce9 user: dan tags: trunk)
2015-10-02
20:04
Update fts5 to avoid using a statement journal for UPDATE and DELETE operations that affect at most a single row. (check-in: 5c83b9db user: dan tags: trunk)
2015-10-01
18:31
Fix an fts3 bug causing NEAR queries on uncommitted data to malfunction. (check-in: 6f90839e user: dan tags: trunk)
16:35
Changes to the sesssions module ensure that tables appear within changesets and patchsets in the same order that they were attached to the sessions object. (check-in: 76958902 user: dan tags: sessions)
2015-09-30
14:50
Merge recent enhancements from trunk, and especially the fix for ticket [1b266395d6bc10]. (check-in: b2face9a user: drh tags: sessions)
14:30
Add a corrupt database to test/fuzzdata3.db to validate the previous check-in. (check-in: e796c0ef user: drh tags: trunk)
14:19
Fix an assert() in btree.c that is only true for non-corrupt databases. (check-in: 29f7227f user: drh tags: trunk)
12:59
Clear the BTCF_ValidNKey flag when putting a cursor into REQUIRESEEK state. Fix for [1b266395]. (check-in: a6d5e4e8 user: dan tags: trunk)
11:19
Improve error handling in shell command ".tables". (check-in: 31a91ee7 user: dan tags: trunk)
2015-09-29
17:51
This condition was not always true after all.....

Change an always-true condition in the virtual table transaction interface into an assert(). (Closed-Leaf check-in: 3e15dea5 user: drh tags: mistake)

17:20
Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2) magic numbers in Index.aiColumn[]. Add asserts to help verify that Index.aiColumn[] is always used correctly. Fix one place in FK processing where Index.aiColumn[] was not being used correctly. (check-in: 7d272aa6 user: drh tags: trunk)
16:47
Add the sqlite3_index_info.idxFlags field, allowing xBestIndex() implementations to specify to SQLite that a strategy may visit at most one row. Add support for this to fts3/4. Omit the statement journal from virtual table UPDATE and DELETE operations that are guaranteed not to affect more than one row. (check-in: a1d08fd3 user: dan tags: trunk)
16:41
Ensure that the xSavepoint() virtual table method is correctly invoked if there are already open savepoints (or statement transactions) the first time a virtual table is written within a transaction. (check-in: 77948b5e user: dan tags: trunk)
15:50
Remove dead code, replacing with assert() statements that make sure the code really was dead. (Closed-Leaf check-in: 0e317dda user: drh tags: vtab-onepass)
13:25
Create the sqlite3IsToplevel(Parse*) interface to check to see if a top-level VDBE is being coded (versus a trigger) and use that interface. (check-in: 59662cd2 user: drh tags: vtab-onepass)
12:32
Fix compiler warnings. (check-in: d1a07838 user: drh tags: vtab-onepass)
12:19
Fix an off-by-one error in test function fts5_decode(). (check-in: 3a9f0762 user: dan tags: trunk)
11:59
Merge latest trunk change into this branch. (check-in: b519c0d6 user: dan tags: vtab-onepass)
11:57
Change the name of the new sqlite3_index_info.flags field to "idxFlags". Add documentation for the same to sqlite.h.in. (check-in: f61203bc user: dan tags: vtab-onepass)
10:11
Add tests for fts3 and onepass update/delete operations. Also fix a problem with onepass updates that do not affect any rows. (check-in: 820c8044 user: dan tags: vtab-onepass)
2015-09-28
23:45
Avoid unnecessary cursors and seeking when running a DELETE against a WITHOUT ROWID table. (Leaf check-in: 70ec88b2 user: drh tags: delete-without-rowid-opt)
20:03
Also allow UPDATE on virtual tables to use the onepass strategy. (check-in: 1aa27d70 user: dan tags: vtab-onepass)
17:05
Extra information provided by .wheretrace on input flags to the query planner and on the result of sqlite3WhereOkOnePass(). (check-in: c5566bb3 user: drh tags: trunk)
15:23
Update fts3 to use the onepass strategy for delete operations. (check-in: fffab4f7 user: dan tags: vtab-onepass)
15:20
Changes to allow DELETE operations on virtual tables to use the onepass strategy under some circumstances. (check-in: e73f919f user: dan tags: vtab-onepass)
15:08
Add test cases to the ONEPASS optimization corruption problem fixed by the previous check-in. (check-in: 5c14d447 user: drh tags: trunk)
14:40
Fix a database corruption bug caused by the ONEPASS optimization added in check-in [8b93cc5937000535]. Bug detected (prior to release) by sqllogictest. Test cases to follow. (check-in: 9d057f52 user: drh tags: trunk)
2015-09-26
17:44
Enable adding JSON1 by appending the json1.c source file to the amalgamation and compiling with -DSQLITE_ENABLE_JSON1 (check-in: 33404b20 user: drh tags: trunk)
11:15
Fix a memory leak that can occur following a syntax error in CREATE VIEW. (check-in: f4704035 user: drh tags: trunk)
03:31
Fix the title of the documentation on sqlite3_value_subtype(). This is a comment change only. (check-in: b7902354 user: drh tags: trunk)
03:23
Expand the header comment to clarify the purpose for the sqlite3MemoryBarrier() function. (check-in: b89495ae user: drh tags: trunk)
01:28
Remove an assert in the windows worker-thread logic that can fail in a race condition. (check-in: d7bfb960 user: drh tags: trunk)
2015-09-25
23:40
Fix threads.c so that setting sqlite3FaultSim(200) using the SQLITE_TESTCTRL_FAULT_INSTALL callback causes both unix and windows worker threads to be sequential and deterministic, so that they can be tested reliably. (check-in: 2d867c05 user: drh tags: trunk)
20:49
Fix PRAGMA integrity_check so that it works with a UNIQUE index over expressions. (check-in: 113181ce user: drh tags: trunk)
20:18
Fix a faulty assert() on the benign-malloc controller callback in test_malloc.c. (Leaf check-in: 64f2cb8d user: drh tags: malloc-testing)
16:29
Disable the SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS mechanism and replace it with SQLITE_TESTCTRL_BENIGN_MALLOC_CTRL, which gives better control. (check-in: 2c57b2f3 user: drh tags: malloc-testing)
13:42
Report an error if the number of named columns in a VIEW is different from the number of result columns in the SELECT statement that implements the VIEW. (check-in: 6e4ac0be user: drh tags: trunk)
01:09
Fix a problem computing affinities for indexes during skip-scan code generation when SQLITE_ENABLE_STAT4 is on. Bug introduced by check-in [1ee089a72d789002]. (check-in: 1350dd42 user: drh tags: trunk)
2015-09-24
18:47
Enhance the query planner so that it is able to use indexed expressions to help fulfill an ORDER BY clause. (check-in: 668fc1eb user: drh tags: trunk)
17:38
Fix over-length source code lines in where.c. No logic changes. (check-in: 1c8c5380 user: drh tags: trunk)
15:17
Merge all recent trunk enhancements and fixes into the begin-concurrent branch. (check-in: c63c1e15 user: drh tags: begin-concurrent)
15:06
Merge trunk changes into the cursor-hints branch. (check-in: fbe63762 user: drh tags: cursor-hints)
14:43
Merge recent trunk enhancements into the apple-osx branch. (check-in: 4dd06d8b user: drh tags: apple-osx)
14:26
Merge all the latest trunk enhancements into the sessions branch. (check-in: c91065f8 user: drh tags: sessions)
12:40
Strengthen the implementations of xShmMemoryBarrier on both the unix and windows VFSes, so that they likely work even if SQLITE_THREADSAFE=0 is used. (check-in: c6ab807b user: drh tags: trunk)
12:19
Make sure joins work correctly when both sides of the join are connected using indexed expressions. (check-in: c2fcb032 user: drh tags: trunk)
11:26
Correctly handle the case of a WHERE-clause term with indexed expressions on both sides of the == sign. (check-in: d9b716a6 user: drh tags: trunk)
11:06
Fix a JSON1 test case so that it works on builds that omit virtual tables. (check-in: a4444c0f user: drh tags: trunk)
01:40
Another (smaller) performance optimization for the JSON parser. (check-in: c43daa8c user: drh tags: trunk)
01:06
Performance optimizations on the JSON parser. (check-in: 7dd4b07a user: drh tags: trunk)
2015-09-23
19:17
Take care that the number of reserved bits per page is consistent between the source and destination databases when doing the back-copy on a VACUUM. (check-in: 5b61b72f user: drh tags: trunk)
16:35
Merge updates from trunk. (check-in: 0a75ebd2 user: mistachkin tags: mutexInitIsInitReCheck)
16:33
Correct superfluous whitespace difference. No functional changes. (check-in: 8d69983d user: mistachkin tags: mutexInitSimpleCmpSwap)
16:24
Simplify thread-safety of mutex initialization. (check-in: da0587c5 user: mistachkin tags: mutexInitSimpleCmpSwap)
15:54
Merge updates from trunk. (Closed-Leaf check-in: 6b85f8cd user: mistachkin tags: mutexInitCmpSwap)
11:59
Capture AFL-generated fuzz tests for json1.c into the test/fuzzdata4.db file. (check-in: 10a214fd user: drh tags: trunk)
01:10
Do not allow a comma at the end of a JSON array or object. (check-in: 7c7a3f3e user: drh tags: trunk)
2015-09-22
18:51
Add the --export-sql and --export-db options to the fuzzcheck utility program. (check-in: 760af445 user: drh tags: trunk)
17:46
Fix a typo in the --help screen of the fuzzcheck utility. (check-in: b6ae61fe user: drh tags: trunk)
01:15
Futher simplifications to json1.c. Also an obscure bug-fix in the initial output of json_tree() when using a path to an object contained within an array. (check-in: fcb1e327 user: drh tags: trunk)
00:21
Fix json_set() so that it can overwrite a value that was previously overwritten during the same call. (check-in: 0f160416 user: drh tags: trunk)
2015-09-21
23:53
For MSVC, have the 'sqlite3.c' target depend on 'sqlite3ext.h' as well as other targets may depend on this behavior (e.g. extensions). (check-in: 737ac3fa user: mistachkin tags: trunk)
23:49
Fix compilation under older versions of MSVC. (check-in: 17150ada user: mistachkin tags: trunk)
22:53
Simplifications to the json1.c logic. (check-in: 1646a2bd user: drh tags: trunk)
2015-09-20
22:57
Fix an overly-strict assert() in the btree logic. (check-in: 825ce320 user: drh tags: trunk)
2015-09-19
20:27
Do not allow table-valued function syntax to be used on a view. (check-in: 97cfe346 user: drh tags: trunk)
19:36
Add the --disable-lookaside option to the fuzzershell utility program. (check-in: 0b043744 user: drh tags: trunk)
18:54
Fix a memory leak in json1.c that could occur after misuse of json_object(). (check-in: 394b81b1 user: drh tags: trunk)
18:11
Add an assert() statement to delete.c. (check-in: 40fce67e user: dan tags: trunk)
18:08
Fix compiler warnings. (check-in: 5c31ee62 user: drh tags: trunk)
16:51
Add json1.c to the fuzzer test shells. (check-in: 809d67b6 user: drh tags: trunk)
16:45
Adjust Makefiles to use SQLITE_CORE when statically linking json1.c into test shells. (Closed-Leaf check-in: 91682ac3 user: drh tags: json-fuzz)
14:57
Adjust fuzzershell so that it adds the json1 extension separately for each no connection. (check-in: ca2d1e90 user: drh tags: json-fuzz)
14:32
Include json1.c in fuzzcheck and fuzzershell. (check-in: c4b68eff user: drh tags: json-fuzz)
12:04
Fix a documentation typo in sqlite3_bind_parameter_index(). No code changes. (check-in: 650605a8 user: drh tags: trunk)
11:57
Fix an off-by-one error (really off-by-2 in this case) in the buffer resize logic of json1. (check-in: d2a02737 user: drh tags: trunk)
03:07
Do not allow rowid in a UNIQUE or PRIMARY KEY constraint. (This restores the same behavior exhibited by all prior releases.) (check-in: b1278301 user: drh tags: trunk)
2015-09-18
18:09
Fix a crash that can occur with a skip-scan on an index with expressions when SQLITE_ENABLE_EXPLAIN_COMMENTS is defined. (check-in: 25f34cb9 user: drh tags: trunk)
15:38
Adjustments to the spellfix2.test module so that it works reliably on windows. (check-in: 09a313fb user: drh tags: trunk)
15:35
Adjust two test cases so that they conform to the current code. (check-in: 228e3d7c user: drh tags: trunk)
15:13
Fix sqlilimits.test module so that it knows that the SELECT in a CREATE VIEW is not checked until the view is actually used. (check-in: acf5d87f user: drh tags: trunk)
14:45
Ensure that "PRAGMA integrity_check" reports an error if the free-list count header field contains a value smaller than the actual number of pages on the database free-list. (check-in: 26f64986 user: dan tags: trunk)
14:42
Fix the orderby9.test case so that it works with 32-bit versions of TCL (check-in: 4b6af774 user: drh tags: trunk)
14:22
Remove a test made obsolete by the ONEPASS DELETE optimization. (check-in: c88b62c2 user: drh tags: trunk)
2015-09-17
17:21
Avoid passing (signed char) values directly to isspace(), isalnum() or isdigit() in json1.c. Cast the value to (unsigned char) first. (check-in: 6713e35b user: dan tags: trunk)
09:48
Fix a crash in FTS5 caused by specifying NULL as the rhs of a MATCH operator. (check-in: e8ed62f8 user: dan tags: trunk)
2015-09-16
17:46
Add a "flush" to force incremental output to releasetest-out.txt while running the test/releasetest.tcl. script. (check-in: 0f3de2d3 user: drh tags: trunk)
12:31
Fix typo in fts5.h. (check-in: 07721c6c user: dan tags: trunk)
2015-09-15
19:16
Merge enhancements from trunk. (check-in: fc4d1de8 user: drh tags: begin-concurrent)
17:31
Merge enhancements from trunk. (check-in: 66fe0683 user: drh tags: cursor-hints)
17:20
Merge trunk enhancements into the apple-osx branch. (check-in: f12b8a0f user: drh tags: apple-osx)
15:55
Merge the latest trunk enhancements with this branch. (check-in: b7469c44 user: dan tags: sessions)
14:39
Add test cases to cover fts5 integrity-check code. (check-in: 1d018c35 user: dan tags: trunk)
13:42
Reformat some code to make it easier to merge with sessions. No logic changes. (check-in: eade355f user: drh tags: trunk)
11:58
Fix a problem with fts5 "ORDER BY rowid DESC" queries and large terms. (check-in: b26d8f79 user: dan tags: trunk)
2015-09-14
22:54
Remove a comment that is no longer accurate. (check-in: cf114c18 user: mistachkin tags: mutexInitIsInitReCheck)
22:53
Merge updates from trunk. (check-in: 25c15771 user: mistachkin tags: mutexInitIsInitReCheck)
22:52
Re-check sqlite3GlobalConfig.isInit after the mutex subsystem has been initialized. (check-in: fea8c0b2 user: mistachkin tags: mutexInitIsInitReCheck)
19:51
Improve test coverage of fts5_index.c. (check-in: c1f76686 user: dan tags: trunk)
19:26
Testability improvements for the ONEPASS_MULTI enhancement. (check-in: d2df93f2 user: drh tags: trunk)
14:49
Fix a typo in an SQLITE_USER_AUTHENTICATION macro. (check-in: 379455af user: drh tags: trunk)
14:45
Use symbolic names ONEPASS_OFF, ONEPASS_SINGLE, and ONEPASS_MULTI for the various modes of the one-pass optimization. (check-in: 16e56bda user: drh tags: trunk)
14:08
Fix a compiler warning and providing missing VdbeCoverage() calls. (check-in: 2edd2e5e user: drh tags: trunk)
11:09
Use a single-pass approach for DELETE statements on non-virtual tables that do not require trigger or foreign key processing. (check-in: 8b93cc59 user: dan tags: trunk)
10:47
Merge the latest trunk enhancements. (check-in: 22ce9218 user: drh tags: sessions)
09:23
Avoid calling sqlite3VdbeCursorMoveto() from more than one point in vdbe.c. Doing so prevents it from being inlined as part of OP_Column. (Closed-Leaf check-in: 166d5af8 user: dan tags: onepass-delete)
2015-09-13
20:15
Add static VFS mutexes to the primary header file comments. (check-in: 9a867d9f user: mistachkin tags: trunk)
18:45
Experimental changes to avoid recusrively calling xMutexInit. (check-in: c9400ff1 user: mistachkin tags: mutexInitCmpSwap)
18:43
Merge updates from trunk. (check-in: b42c2e20 user: mistachkin tags: mutexInitCmpSwap)
2015-09-12
19:50
Fix compiler warnings in delete.c. (check-in: 0a4d285e user: dan tags: onepass-delete)
19:27
Fix API documentation typos. Emphasize that the sqlite3_config() routine is not threadsafe. (check-in: 786333e0 user: drh tags: trunk)
19:26
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. (check-in: eaeb2b80 user: dan tags: onepass-delete)
18:58
Merge updates from trunk. (check-in: d8051f61 user: mistachkin tags: mutexInitCmpSwap)
18:57
Import common changes from the mutex initialization branch. (check-in: 334720c0 user: mistachkin tags: trunk)
16:59
Merge updates from trunk. (check-in: 48597789 user: mistachkin tags: mutexInitCmpSwap)
04:22
Fix comments. (check-in: de3fa51e user: mistachkin tags: mutexInitCmpSwap)
04:19
Specifying an invalid mutex implementation (via SQLITE_CONFIG_MUTEX) should cause the default one to be used instead. (check-in: 1a97bc81 user: mistachkin tags: mutexInitCmpSwap)
03:40
Clarify the new mutex implementation reset logic in sqlite3_shutdown(). (check-in: f9a03483 user: mistachkin tags: mutexInitCmpSwap)
03:35
Add more asserts to the mutex subsystem. (check-in: 7562f1fb user: mistachkin tags: mutexInitCmpSwap)
01:17
Fix typo in the Win32 implementation of sqlite3CompareAndSwap. (check-in: 31a26a1d user: mistachkin tags: mutexInitCmpSwap)
2015-09-11
23:24
Make sure that the mutex implementation can be altered after calling sqlite3_shutdown(). (check-in: dc2cf897 user: mistachkin tags: mutexInitCmpSwap)
20:54
Update evidence marks due to wording changes in requirements text. No changes to code. (check-in: 86781093 user: drh tags: trunk)
18:05
Fix harmless compiler warnings. (check-in: bfc7b84b user: mistachkin tags: trunk)
15:32
More test cases in test/json102.test corresponding to new examples in the json1 documentation. (check-in: f599a42e user: drh tags: trunk)
14:15
Fix some compiler warnings in fts5 code. (check-in: 0dc43611 user: dan tags: trunk)
05:06
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. (check-in: f6a8f577 user: mistachkin tags: mutexInitCmpSwap)
01:22
Updates to the sqlite3_value_subtype() and sqlite3_result_subtype() documentation and to test cases for json1 dealing with those interfaces. (check-in: d6cadbe9 user: drh tags: trunk)
00:26
Add new interfaces sqlite3_value_subtype() and sqlite3_result_subtype(). Update the json1.c extension to take advantages of those interfaces to avoid the goofy '$$' path syntax and to allow nested calls to json_array() and json_object() that work as expected. (check-in: db4152ae user: drh tags: trunk)
00:06
Take out the goofy '$$' path syntax. Instead, use subtypes to communicate when a string is JSON. Add the json() function that validates and minifies the JSON and sets the appropriate subtype. (Closed-Leaf check-in: 8a80d645 user: drh tags: subtypes)
2015-09-10
20:40
Make the sqlite3_value_subtype() and sqlite3_result_subtype() interfaces available to loadable extensions. (check-in: c6fca0be user: drh tags: subtypes)
20:34
Experimental implementation of sqlite3_result_subtype() and sqlite3_value_subtype() interfaces. (check-in: 7b5be299 user: drh tags: subtypes)
19:22
Fix a potential NULL pointer deref in the testing logic of pcache1. NB: The -DSQLITE_TEST compile-time option is needed to hit the problem. (check-in: f5580f08 user: drh tags: trunk)
17:23
Modify the fts5 leaf page format to permit faster seek operations. This is a file-format change. Any existing databases can be upgraded by running the fts5 'rebuild' command. (check-in: 0c0c4ae9 user: dan tags: trunk)
17:20
Create separate "path" and "root" columns in the json_each() and json_tree() virtual tables. "Root" is the 2nd parameter and is fixed. "Path" varies as json_tree() walks the hierarchy. (check-in: 127cce3e user: drh tags: trunk)
16:39
Increment the fts5 version value to indicate that the on-disk format has changed. (Closed-Leaf check-in: 99de5e36 user: dan tags: fts5-incompatible)
16:19
Fix a segfault in fts5 that could occur if the database contents were corrupt. (check-in: 4931e37d user: dan tags: fts5-incompatible)
15:52
Merge latest changes from trunk. Including fts5_expr.c fixes. (check-in: 716e7e74 user: dan tags: fts5-incompatible)
15:49
Update description of on-disk format in fts5_index.c. (check-in: 85aac7b8 user: dan tags: fts5-incompatible)
15:24
Make the sqlite3ext.h header file responsive to -DSQLITE_OMIT_LOAD_EXTENSION. (check-in: 47a46a9f user: drh tags: trunk)
15:22
Disable tests for json_each() and json_tree() on builds where virtual tables are not supported (check-in: bb8ee3b1 user: drh tags: trunk)
15:20
Fix the --help option on test/releasetest.tcl. Also fix the final error count so that it includes a count of subtest crashes. (check-in: 9ecf684d user: drh tags: trunk)
10:40
Revert an accidentally committed makefile change. (check-in: 402704b1 user: dan tags: fts5-incompatible)
10:01
Fix an fts5 problem that could occur if a term and the first associated rowid are on different leaf pages. (check-in: ffe2796a user: dan tags: fts5-incompatible)
05:40
Change the array of 16-bit offsets at the end of each page to an array of varints. (check-in: fab245be user: dan tags: fts5-incompatible)
04:17
Attempt to declare sqlite3MemoryBarrier() correctly for all possible build configurations. (check-in: da8a288f user: drh tags: trunk)
03:29
Fix the json_tree() scan for the case when a path is supplied. Add new json1 test cases. (check-in: 6adc7de7 user: drh tags: trunk)
01:22
No-op the sqlite3_memory_alarm() interface in a different way, that does not break legacy memory behavior. This is a re-do of check-in [5d3f5df4da9f40d5]. (check-in: 8250e2a4 user: drh tags: trunk)
2015-09-09
23:54
Fix harmless compiler warning in FTS5. (check-in: 86146a73 user: mistachkin tags: trunk)
19:44
Fix an assert() enabled by SQLITE_ENABLE_EXPENSIVE_ASSERT in wal.c. (check-in: 8d2ed150 user: dan tags: trunk)
19:27
Fix a possible NULL pointer deref when using SQLITE_ENABLE_MEMORY_MANAGEMENT. (check-in: 89bfdbfe user: drh tags: trunk)
17:23
Fix harmless compiler warning. (check-in: 280fd3a4 user: mistachkin tags: trunk)
17:17
Fix harmless compiler warnings in FTS5. (check-in: 2cdb1877 user: mistachkin tags: trunk)
13:28
When running a CREATE TABLE AS, make the initial temporary sqlite_master entry for the new table a real record rather than a NULL, in case the query after the AS actually tries to read the sqlite_master table. Fix for ticket [acd12990885d9276]. (check-in: 4a18d8bd user: drh tags: trunk)
08:15
Fix a bug in preprocessor macros within fts5_main.c. (check-in: 0eb2b952 user: dan tags: fts5-incompatible)
2015-09-08
21:16
Remove an unused local variable from Lemon. (check-in: fe9ffe5e user: drh tags: trunk)
21:12
Enhance the DBSTAT virtual table with a new hidden table "schema" that if set will cause the table to report on the specified schema rather than on "main". Also: Fix a faulty assert in sqlite3_context_db_handle(). (check-in: 6beb512c user: drh tags: trunk)
20:26
Eponymous virtual tables exist in the "main" schema only. Enforce this rule. (check-in: 06f90bb2 user: drh tags: trunk)
19:55
Remove the 0x00 terminators from the end of fts5 doclists stored on disk. (check-in: 00d99006 user: dan tags: fts5-incompatible)
17:31
Fix the help message that sqlite3_analyzer.exe generates for invalid arguments. (check-in: 33a14e7b user: drh tags: trunk)
2015-09-07
23:40
Minor tweaks to Lemon. (check-in: 98667722 user: drh tags: trunk)
20:22
Merge parser enhancements and other improvements and bug fixes from trunk. (check-in: 9cf3e51b user: drh tags: begin-concurrent)
20:11
Enhance the Lemon parser generator to add SHIFTREDUCE states that reduce the sizes of some of the parser tables. (check-in: 99b992fa user: drh tags: trunk)
20:02
Fix an unreachable branch in the new parse automaton. (Closed-Leaf check-in: e9d604b4 user: drh tags: lemon-update)
19:52
Change the parser engine so that it (once again) waits for a lookahead token before reducing, even in a SHIFTREDUCE action. (check-in: 2c17a135 user: drh tags: lemon-update)
18:23
For the Lemon-generated parser, add a new action type SHIFTREDUCE and use it to further compress the parser tables and improve parser performance. (check-in: 531c3974 user: drh tags: lemon-update)
14:22
In the "parse.out" output file from Lemon, show addition the complete text of rules on reduce actions. (check-in: b6ffb7e4 user: drh tags: trunk)
08:14
Use macros to make the code in fts5_index.c easier to read. (check-in: 67ff5ae8 user: dan tags: fts5-incompatible)
02:23
Improved "Parser Statistics" output (the -s option) for the Lemon parser generator. (check-in: 809503e4 user: drh tags: trunk)
2015-09-06
10:31
Improved memory barrier that should work with MinGW on older versions of Windows. (check-in: 47dc24bd user: drh tags: trunk)
02:51
Add a memory barrier to the mutex initialization logic, try to work around an issue reported by WebKit. (check-in: 11a9a786 user: drh tags: trunk)
2015-09-05
22:36
Omit all use of Expr nodes for TK_AS, as those nodes no longer served a useful purpose and in fact interferred with the query planner. (check-in: 7ab0b258 user: drh tags: trunk)
19:52
Experiment with a different fts5 leaf page format that allows faster seeks. (check-in: a1f4c3b5 user: dan tags: fts5-incompatible)
19:21
Fix an unreachable conditional in the WHERE clause analysis logic. (check-in: 24924a58 user: drh tags: trunk)
19:07
Get STAT4 range scan estimates work again when the bounds are determined by date/time functions. (check-in: d2761357 user: drh tags: trunk)
2015-09-04
18:03
Fix over-length source code lines in Lemon. (check-in: 1efece95 user: drh tags: trunk)
17:32
Add support for CREATE INDEX statements that use deterministic expressions rather than only column names. (check-in: 2131a5ca user: drh tags: trunk)
17:22
Merge the latest trunk changes, and especially the fix for allowing strings as identifiers in CREATE INDEX statements. (check-in: a9b84885 user: drh tags: begin-concurrent)
16:39
Remove the EXCLUSIVE and CONCURRENT tokens from the tokenizer. Let the BEGIN statement be followed by an ID, but throw a syntax error if the ID is anything other than EXCLUSIVE or CONCURRENT. (check-in: c0bf92ec user: drh tags: begin-concurrent)
13:02
Merge trunk enhancements, and espeically the fix for allowing strings as column identifers in CREATE INDEX statements. (Closed-Leaf check-in: 5ff85529 user: drh tags: index-expr)
12:54
Continue to support the (broken) legacy syntax of allowing strings for column names in CREATE INDEX statements and in UNIQUE and PRIMARY KEY constraints. (check-in: 3d3df79b user: drh tags: trunk)
11:13
Enhance showfts5.tcl so that it can optionally display the number of terms in each segment. (check-in: d648ddd9 user: dan tags: trunk)
10:31
Modify the fts5 custom tokenizer interface to permit synonym support. The fts5_api.iVersion value is now set to 2. Existing fts5 custom tokenizers (if there are such things) will need to be updated to use the new api version. (check-in: 0b7e4ab8 user: dan tags: trunk)
10:24
Merge latest trunk changes. (Closed-Leaf check-in: 443a5eb8 user: dan tags: fts5-incompatible)
04:31
Simplification of the LRU list handling in pcache1. (check-in: 05a3a2cd user: drh tags: trunk)
2015-09-03
20:52
Merge performance enhancements from trunk. This branch now runs (slightly) faster than the 3.8.11.1 release, though still slightly slower than trunk. (check-in: c490bfb1 user: drh tags: begin-concurrent)
20:43
Change the pcache module to keep track of the total number of references to all pages rather than the number of pages references, for a performance improvement and size reduction. (check-in: f00a9e1e user: drh tags: trunk)
19:48
Rearrange code in fts5_expr.c so that synonym support does not slow down the common case. (check-in: 80188281 user: dan tags: fts5-incompatible)
18:57
Merge enhancements from trunk. (check-in: 4b49fe99 user: dan tags: fts5-incompatible)
18:20
A simple optimization and size reduction in sqlite3PagerAcquire(). (check-in: 618d8dd4 user: drh tags: trunk)
18:05
Add documentation for fts5 synonym support. (check-in: 58aa1f43 user: dan tags: fts5-incompatible)
17:54
Change the Pager.hasBeenUsed flag into Pager.hasHeldSharedLock in order to take it off the critical path in sqlite3PagerAcquire(). (check-in: b79096be user: drh tags: trunk)
15:37
Add tests to improve coverage of fts5_varint.c. (check-in: 89f24f31 user: dan tags: fts5-incompatible)
15:17
Changes from ENABLE_CONCURRENT (default off) to OMIT_CONCURRENT (default on). This is not a clear-cut decision and might be changed back. (check-in: f8ae9bfd user: drh tags: begin-concurrent)
14:48
Merge recent trunk enhancements. (check-in: 6a513c05 user: drh tags: sessions)
14:39
Merge enhancements from trunk. (check-in: 25ee3000 user: drh tags: cursor-hints)
14:31
Merge enhancements from trunk. (check-in: d01658ad user: drh tags: apple-osx)
14:22
Remove some more code from fts5_index.c by consolidating similar functions. (check-in: 59ae30b9 user: dan tags: fts5-incompatible)
14:18
Merge enhancements from trunk. (check-in: 1ab10cbf user: drh tags: index-expr)
14:04
Merge trunk optimizations. (check-in: 71e7299e user: drh tags: begin-concurrent)
13:46
Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help with code generation, especially on PRAGMAs. Rename sqlite3VdbeAddGoto() to just sqlite3VdbeGoto(). (check-in: 847387ec user: drh tags: trunk)
11:17
Remove dead code from fts5_index.c. (check-in: 8a0a9b01 user: dan tags: fts5-incompatible)
11:00
Fix the fts5 integrity-check so that it works with columnsize=0 tables. (check-in: 11b887b1 user: dan tags: fts5-incompatible)
10:27
Fix a memory leak in fts5_expr.c. (check-in: 399932a1 user: dan tags: fts5-incompatible)
04:28
Factor out and simplify code in pragma.c for pragmas that return a single row with a single column that is an integer or text value. (check-in: d7f4bdf5 user: drh tags: trunk)
03:29
For PRAGMAs, factor out the code that sets the result set column names into a subroutine. (check-in: 0ea6e5c9 user: drh tags: trunk)
2015-09-02
21:00
Optimizations to the printf formatter. (check-in: a3b35dde user: drh tags: trunk)
19:48
Further tests to raise coverage of fts5 synonym code to 100%. Fix a dropped error code in the same. (check-in: bdedd838 user: dan tags: fts5-incompatible)
18:56
Fix an issue with fts5 synonyms and NEAR(...) queries. (check-in: f2e59070 user: dan tags: fts5-incompatible)
18:40
Add and use the sqlite3VdbeChangeOpcode() routine. Simplify the implementation of the other sqlite3VdbeChange*() routines. (check-in: 0a5b00e4 user: drh tags: trunk)
18:19
Add the sqlite3VdbeAddGoto(v,i) routine as a shorthand for sqlite3VdbeAddOp2(v,OP_Goto,0,i). (check-in: be78f413 user: drh tags: trunk)
17:55
Change sqlite3_sql() so that it always returns the SQL text of the prepared statement, if the text is available, even if the the prepared statement was generated using sqlite3_prepare() instead of sqlite3_prepare_v2(). Also include some minor comment fixes and code simplifications. (check-in: 2f5472cf user: drh tags: trunk)
17:34
Fix a problem with fts5 synonyms and phrase queries. Also fix an OOM handling bug in fts5. (check-in: a4c35fa2 user: dan tags: fts5-incompatible)
16:51
Small simplification to the EXPLAIN QUERY PLAN logic. (check-in: d1592d20 user: drh tags: trunk)
15:37
Use sqlite3XPrintf() instead of sqlite3StrAccumAppend() in a few places for better performance and a smaller footprint. (check-in: 82355e41 user: drh tags: trunk)
14:56
The sqlite3_memory_alarm() interface has been deprecated and undocumented for almost 8 years (since version 3.5.3). Change it into a no-op. (check-in: 5d3f5df4 user: drh tags: trunk)
14:17
Fix a problem handling OOM conditions within fts5 queries that feature synonyms. (check-in: 11fa9808 user: dan tags: fts5-incompatible)
12:52
This change is not correct for the boundary case of nCellKey==0. Was: Small performance gain and size reduction in sqlite3VdbeIdxKeyCompare(). (Closed-Leaf check-in: 6e0298cd user: drh tags: mistake)
08:22
Fix a problem with fts5 synonyms and the xQueryPhrase() auxiliary function API. (check-in: cf3e45e7 user: dan tags: fts5-incompatible)
2015-09-01
23:51
Very minor optimizations in the unix VFS. (check-in: 6db3ff45 user: drh tags: trunk)
22:29
Performance improvement in sqlite3VarintLen(). (check-in: adf9fefb user: drh tags: trunk)
20:09
Small size reduction and performance increase in sqlite3DbMallocSize(). (check-in: 8a80967f user: drh tags: trunk)
19:51
Reduce the number of calls to sqlite3BeginBenignMalloc(). (check-in: 0bee6583 user: drh tags: trunk)
18:52
Merge recent enhancements from trunk. (check-in: cb772366 user: drh tags: sessions)
18:44
Fix a problem that occurs when more than 4 synonyms for a term appear within a single row. (check-in: cd359550 user: dan tags: fts5-incompatible)
18:40
Merge the latest trunk enhancements. (check-in: 4af79477 user: drh tags: apple-osx)
18:31
Merge enhancements from trunk. (check-in: 29570a60 user: drh tags: cursor-hints)
18:08
Add tests for fts5 synonyms implemented by adding extra terms to queries. And fixes for the same. (check-in: dbcb7380 user: dan tags: fts5-incompatible)
18:01
Merge the latest trunk enhancements. (check-in: 3dea0474 user: drh tags: begin-concurrent)
17:48
Fixes so that it builds without warnings both with and without SQLITE_ENABLE_CONCURRENT. (check-in: 5ed2a445 user: drh tags: begin-concurrent)
13:17
Rename SQLITE_FUNC_VARYING to SQLITE_FUNC_SLOCHNG - a more descriptive name for what that bit means. (check-in: ff5137a6 user: drh tags: index-expr)
00:42
Remove unreachable branches. (check-in: fd4da231 user: drh tags: index-expr)
2015-08-31
23:09
Fix a bug in error reporting when a UNIQUE index on expressions fails its uniqueness test. (check-in: 5a2c0e90 user: drh tags: index-expr)
21:16
Not only date/time functions, but also functions like sqlite_version() and changes() need to be prohibited from use inside of indexes. (check-in: 48713130 user: drh tags: index-expr)
20:06
Begin changes to allow synonym support by adding multiple terms to a query (an alternative to adding multiple terms to the FTS index). (check-in: ad7feaed user: dan tags: fts5-incompatible)
19:38
Always assume that indexed expressions can generate a NULL. Get indexed expressions working for the case of two or more expressions in the same index. (check-in: cc60321a user: drh tags: index-expr)
18:13
Case should not be significant when comparing function names. (check-in: e2f1caf1 user: drh tags: index-expr)
17:34
Make the distinction between truly deterministic functions and date/time functions which only return the same answer for a single query. Only truly deterministic functions are allowed in indexes. Add new expression index test cases. (check-in: c77554b5 user: drh tags: index-expr)
15:58
Improved analysis and usage of indexed expressions in the query planner. (check-in: f8893696 user: drh tags: index-expr)
14:27
Merge the latest enhancements from trunk. (check-in: 7bde6d4d user: drh tags: index-expr)
2015-08-29
19:41
Enhance the json_extract() function so that if given multiple PATH arguments it will return a JSON array with all of the answers. Also update comments within the json1 extension to reflect stricter interpretation of JSON and PATH arguments. (check-in: 1da60c3d user: drh tags: trunk)
19:03
Link the json1 extension into the command-line shell by default. (check-in: 2e8e239c user: drh tags: trunk)
18:46
Add a test for an fts5 tokenizer that supports synonyms by adding multiple entries to the fts index. (check-in: 98d07d16 user: dan tags: fts5-incompatible)
18:30
New test cases for the json1 extension. (check-in: daff4832 user: drh tags: trunk)
17:22
Fix the build with -DSQLITE_OMIT_VIRTUALTABLE. (check-in: 752918de user: drh tags: trunk)
16:02
Do not consider an empty string to be valid JSON. Add some additional JSON test cases. (check-in: fd19ff02 user: drh tags: trunk)
15:44
Another change to the fts5 tokenizer API. (check-in: fc718684 user: dan tags: fts5-incompatible)
00:54
Change the json1.c module so that it throws an error if any of the JSON selector paths are malformed. (check-in: 3aa0855f user: drh tags: trunk)
2015-08-28
20:07
Back out the json_check() routine. Instead, throw an error if the input to a json function (other than json_valid()) is not valid JSON. (check-in: dc9ce7b1 user: drh tags: trunk)
19:56
Change the fts5 tokenizer API to allow more than one token to occupy a single position within a document. (check-in: 90b85b42 user: dan tags: fts5-incompatible)
16:41
Fix compiler warnings in rbu code. (check-in: 0fdc36fe user: dan tags: trunk)
16:18
When searching the wal file for a frame, do not search that part that was already checkpointed when the transaction was opened. (check-in: a84cf4f5 user: dan tags: trunk)
15:50
Merge latest trunk into this branch. (Closed-Leaf check-in: ab93024d user: dan tags: wal-read-change)
15:35
Fix a potential segfault in the VFS logic that checks for fail renames out from under SQLite. (check-in: 650111f6 user: drh tags: apple-osx)
13:27
Disable the read-only WAL-mode database tests on the apple-osx branch because read-only WAL-mode databases are specifically disallowed by Apple-specific changes. (check-in: bd911496 user: drh tags: apple-osx)
09:27
Merge latest trunk changes with this branch. (check-in: 57bc0194 user: dan tags: begin-concurrent)
03:48
Add the json_check() function, which returns its argument if the argument is well-formed JSON or which throws an error otherwise. (check-in: 64abb65d user: drh tags: trunk)
03:33
Enhance the json_insert(), json_replace(), and json_set() functions with the ability to add JSON instead of text if the argument is text and if the PATH begins with '$$' instead of just '$'. (check-in: 44f103d8 user: drh tags: trunk)
02:12
Merge trunk enhancements into the apple-osx branch. Most tests works, but there are yet a few issues to be resolved. (check-in: da864658 user: drh tags: apple-osx)
2015-08-27
23:42
Fix the OR-optimization so that it always ignores subplans that do not use an index. (check-in: cf452028 user: drh tags: index-expr)
23:18
Fix the OR-optimization so that it always ignores subplans that do not use an index. (check-in: 66f92a16 user: drh tags: trunk)
20:33
Fix EXPLAIN QUERY PLAN output for indexed-expressions. Fix another obscure fault in the WHERE term scanner. (check-in: 73d361ce user: drh tags: index-expr)
19:57
Add header comments for new methods in pager.c. (check-in: 437c7e21 user: dan tags: begin-concurrent)
19:56
Fix problems in the indexed-expression handling in the optimizer. (check-in: 03375017 user: drh tags: index-expr)
19:22
Add test cases for concurrent transactions and long-lived SELECT statements. (check-in: fd4798cb user: dan tags: begin-concurrent)
18:24
Activate the ability to use expressions in indexes in a query. There are some test failures, but mostly this seems to work. (check-in: 42f93f58 user: drh tags: index-expr)
17:42
Fix a problem whereby concurrent transactions would not consider pages read by the transaction before the first write statement. (check-in: fc17f731 user: dan tags: begin-concurrent)
16:07
Merge changes from trunk. (check-in: c80e9e8e user: drh tags: index-expr)
15:58
Adjustments to the WHERE term scanning, to better handle scanning terms of an index. (check-in: 5611130a user: drh tags: index-expr)
2015-08-26
21:08
Reduce the size of the WhereScan object by 24 bytes while also clarifying its operation. (check-in: cbc3c9a8 user: drh tags: trunk)
18:54
Fix an assert() in pager.c that could fail in a concurrent transaction. (check-in: 69394dda user: dan tags: begin-concurrent)
18:04
Merge enhancements from trunk. (check-in: ec6ddb3d user: drh tags: index-expr)
18:02
Fix a problem allowing some conflicting transactions to be committed. (check-in: a0566382 user: dan tags: begin-concurrent)
14:01
Evaluate expressions only once when the same expression is used in both the result set and in the ORDER BY clause. (check-in: c2f3bbad user: drh tags: trunk)
11:40
Refactor With.a.zErr into With.a.zCteErr. No logic changes. (check-in: 58ba7363 user: drh tags: trunk)
11:34
Update the TreeView output for compound SELECT statements so that all entries are shown vertically aligned rather than each successive entry being indented. (check-in: 65a89187 user: drh tags: trunk)
2015-08-25
19:42
Move sqlite3IndexColumnAffinity() inside of SQLITE_ENABLE_STAT3_OR_STAT4. (check-in: b3732a4e user: drh tags: trunk)
19:24
Merge trunk enhancements. (check-in: e8b02902 user: drh tags: index-expr)
19:20
Use the sqlite3IndexColumnAffinity() routine to quickly and correctly find the affinity of an index column. (check-in: 1ee089a7 user: drh tags: trunk)
19:10
Add miscellaneous test cases for concurrent transactions. (check-in: 779b1d0e user: dan tags: begin-concurrent)
17:16
If "PRAGMA integrity_check" is run while the database is being written by a CONCURRENT transaction, do not consider unreferenced pages to be an error. They may be part of the free-page list, which is not visible at the b-tree layer when running a CONCURRENT transaction. (check-in: f32b57b4 user: dan tags: begin-concurrent)
16:57
Add code to maintain indexes with expression arguments across DELETE, INSERT, and UPDATE statements. Legacy tests pass, but the new code paths are still largely untested. The query planner currently makes no effort to use expression indexes. (check-in: efaabdb7 user: drh tags: index-expr)
16:01
Test that if a corrupt wal-index header is encountered when attempting to commit a concurrent transaction, SQLITE_BUSY_SNAPSHOT is returned to the caller. (check-in: c746e0bd user: dan tags: begin-concurrent)
14:37
Fix a segfault that could occur following an OOM condition in the concurrent transaction code. (check-in: 231b5880 user: dan tags: begin-concurrent)
11:16
Merge latest trunk changes with this branch. (check-in: 3e7d6dd6 user: dan tags: begin-concurrent)
00:34
Fix a memory leak that might occur when compiling with SQLITE_OMIT_CHECK. (check-in: 8f1d9f1f user: drh tags: trunk)
00:27
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. (check-in: 0ad0f8d7 user: drh tags: index-expr)
2015-08-24
22:06
Remove duplicated line of code. (check-in: 47280f2a user: mistachkin tags: begin-concurrent)
20:54
Remove some redundant code: Call sqlite3ResolveExprListNames() rather than calling sqlite3ResolveExprNames() in a loop - in two places. (check-in: bdaf6646 user: drh tags: trunk)
20:21
Enhances the parser so that it accepts arbitrary expressions for the arguments of an index, though the code generator still rejects everything other than simple column names. The sqlite3RestrictColumnListSyntax() routine is removed since that feature is now handled by the parser. (check-in: bed42116 user: drh tags: trunk)
19:56
Change "BEGIN UNLOCKED" to "BEGIN CONCURRENT". (check-in: ba1ab858 user: dan tags: begin-concurrent)
19:08
Fix handling of attempts to modify the database schema, application_id or user_version within an UNLOCKED transaction. (check-in: 5b9f2721 user: dan tags: begin-concurrent)
17:42
Enhance the CREATE VIEW syntax so that the names of columns of the view can be specified after the view name. (check-in: d794b34d user: drh tags: trunk)
17:18
Enhancements to the batch build tool for MSVC. (check-in: a1ae20cd user: mistachkin tags: trunk)
16:00
Fix compilation without SQLITE_ENABLE_UNLOCKED. Also other code organization issues. (check-in: 04113557 user: dan tags: begin-concurrent)
15:39
Disallow the use of COLLATE clauses and the ASC and DESC keywords within foreign key constraints and in the argument list to common table expressions. (check-in: 83cbc4d8 user: drh tags: trunk)
12:42
Improvements to JSON string dequoting. (check-in: 196d66d3 user: drh tags: trunk)
10:05
Consolidate two blocks of similar code in btreeFixUnlocked(). (check-in: 701302b4 user: dan tags: begin-concurrent)
06:44
Merge trunk changes with this branch. (check-in: 876810c2 user: dan tags: begin-concurrent)
06:43
Fix another problem involving unlocked transactions and wal-file restarts. (check-in: 4460764e user: dan tags: begin-concurrent)
02:32
Fix corner-case problems in the type and atom columns of json_each() and json_tree(). (check-in: f0aba0e1 user: drh tags: trunk)
2015-08-23
20:48
Fix a comment typo on sqlite3ExprAlloc(). No code changes. (check-in: 518d6220 user: drh tags: trunk)
20:44
Fix minor glitches in the json1.c extension, mostly having to do with OOM behavior. (check-in: cc520414 user: drh tags: trunk)
02:42
Fixes to json_each() and json_tree(). Improved json_parse() debugging output. (check-in: fc1b24f3 user: drh tags: trunk)
2015-08-22
20:32
Fix a problem to do with detecting unlocked transaction conflicts if another client restarts the wal while the transaction is running. (check-in: e3968b25 user: dan tags: begin-concurrent)
19:39
Add the json_valid() function to the json1.c extension. Fix various minor problems in the json1.c extension. (check-in: 380a9734 user: drh tags: trunk)
17:28
Add further tests for deferred page allocation. And fixes for the same. (check-in: ed0a31be user: dan tags: begin-concurrent)
07:56
Merge further trunk changes. (check-in: c2327a3b user: dan tags: begin-concurrent)
07:55
Merge trunk changes into this branch. (check-in: 9021f736 user: dan tags: begin-concurrent)
03:05
Fix a couple instances of OOM handling in the json extension. (check-in: 213a6c5c user: drh tags: trunk)
01:32
Do not apply the WHERE-clause pushdown optimization to terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket [c2a19d81652f40568c]. (check-in: 351bc22f user: drh tags: trunk)
2015-08-21
20:43
Add extension functions for processing JSON. (check-in: 178f9a35 user: drh tags: trunk)
20:37
Fixes for compiler warnings and errors in the makefiles. Rename the one test script to json101.test. (Closed-Leaf check-in: 9ff6ccde user: drh tags: json)
20:12
Change the name of the json loadable extension to "json1.c", in anticipation of having future major changes to the interface. (check-in: d0d4bec9 user: drh tags: json)
20:11
Fix many minor issues in the unlocked transaction code. (check-in: 53aaeea6 user: dan tags: begin-concurrent)
20:02
Add the fullkey column to both json_each() and json_tree(). (check-in: 15dd9943 user: drh tags: json)
19:56
Merge header file fixes from trunk. (check-in: 7c2713e9 user: drh tags: json)
19:53
Add a missing #define for sqlite3_vsnprintf to sqlite3ext.h. (check-in: da3c9df0 user: drh tags: trunk)
18:55
When committing an UNLOCKED transaction, try to move pages allocated at the end of the file to free slots within the file (like an incremental-vacuum operation does). (check-in: 06967916 user: dan tags: begin-concurrent)
17:57
Fix a problem with UNLOCKED transactions that free pages allocated within the same transaction. (check-in: 227bb8a1 user: dan tags: begin-concurrent)
17:39
Reserve the SQLITE_IOERR_VNODE error code name. (check-in: 53b593fc user: drh tags: trunk)
17:33
Add the json_tree() virtual table. (check-in: 08c36e45 user: drh tags: json)
17:16
Merge in trunk fixes for table-valued functions. (check-in: 67375f32 user: drh tags: json)
17:14
Fix a corner-case bug in table-valued functions. Update the generate_series() virtual table to increase the performance estimate penalty for being underspecified. (check-in: 552bc9cb user: drh tags: trunk)
16:22
Merge trunk changes with this branch. (check-in: deaf3b18 user: dan tags: begin-concurrent)
14:21
Add extra tests and a fix for rollbacks of UNLOCKED transactions. (check-in: 82cd837e user: dan tags: begin-concurrent)
12:37
Fix typo in comment. No changes to code. (check-in: 7b8d17dd user: drh tags: trunk)
2015-08-20
23:54
Merge recent trunk enhancements, include table-valued functions. (check-in: e9196d56 user: drh tags: sessions)
23:45
Merge recent enhancements from trunk, including table-valued expressions. (check-in: b9927c87 user: drh tags: cursor-hints)
23:39
Merge the latest changes from trunk, including the table-valued function implementation. (check-in: 10c44432 user: drh tags: json)
23:33
Compiler-warning fixes in the sqldiff.exe utility. (check-in: 64d13339 user: drh tags: trunk)
23:28
Fix a couple C99-isms that cause compile errors on MSVC. (check-in: bc577fe6 user: drh tags: trunk)
23:21
Fix corner-case memory management issues in table-valued functions. Change virtual table handling so that if xDestroy is missing the table is eponymous only even if xCreate is present. (check-in: 774e6a14 user: drh tags: trunk)
21:14
Skip calling the virtual table xDestroy method when it is null. (check-in: b73ad305 user: mistachkin tags: trunk)
21:09
Fix compiler warnings in the sqldiff tool seen with MSVC. (Closed-Leaf check-in: 072279d4 user: mistachkin tags: msvcWarn)
20:25
Fix a problem causing corruption when an UNLOCKED transaction is rolled back. (check-in: 7c361478 user: dan tags: begin-concurrent)
20:21
Fix stray variable declaration for C89. (check-in: 17eb7f18 user: mistachkin tags: trunk)
20:13
Correctly handle empty function argument lists on table-valued functions. (check-in: a7acc787 user: drh tags: trunk)
19:55
Add support for table-valued functions in the FROM clause implemented as virtual tables. (check-in: 9b718b06 user: drh tags: trunk)
18:28
Prevent the series.c extension from loading on older versions of SQLite that do not support xCreate==NULL. (Closed-Leaf check-in: 3efc7942 user: drh tags: table-valued-functions)
17:18
Make SQLITE_BUSY_SNAPSHOT and SQLITE_BUSY_RECOVERY retryable, just as a plain SQLITE_BUSY is. (check-in: fd13dd95 user: drh tags: trunk)
16:16
Fix a typo in series.c. (check-in: 23db7f50 user: dan tags: table-valued-functions)
2015-08-19
23:02
Fix the path lookup for objects so that it can handle quoted identifier names and non-alphanumerics in the identifier. (check-in: 87f58730 user: drh tags: json)
22:47
Add the json_each(JSON,PATH) table-valued-function. (check-in: 3335ac17 user: drh tags: json)
20:27
When committing an unlocked transaction, relocate newly allocated database pages within the file to avoid conflicting with committed transactions. There are lots of things still to fix in this code. (check-in: 3bbc31d5 user: dan tags: begin-concurrent)
19:26
Merge the table-valued-function rowid fix. (check-in: a06a6392 user: drh tags: json)
19:01
Fix eponymous virtual tables so that they do not automatically make the first column the rowid. Enhance the generate_series virtual table to support rowid. (check-in: a325a085 user: drh tags: table-valued-functions)
18:31
Merge support for table-valued functions. (check-in: 96a5d44d user: drh tags: json)
18:19
Improved comments on the generate_series virtual table. Test cases for ORDER BY rowid DESC with generate_series. (check-in: fef44c37 user: drh tags: table-valued-functions)
17:11
A list of arguments following a table name translates into equality constraints against hidden columns in that table. (check-in: 40e12cfe user: drh tags: table-valued-functions)
15:20
Minor refactor of the SrcList object so that it is able to hold the argument list to a table-valued-function in the FROM clause. (check-in: b9193761 user: drh tags: table-valued-functions)
13:54
Virtual table modules with a null xCreate method act as eponymous-only modules - they cannot be used in a CREATE VIRTUAL TABLE statement. Add the series.c extension that implements a postgres-like generate_series virtual table to demonstrate this capability. (check-in: c58426db user: drh tags: table-valued-functions)
12:52
Merge changes from trunk. (check-in: dddd792d user: drh tags: table-valued-functions)
12:45
Simplification to error handling in addModuleArgument() in the virtual table processing. (check-in: c573b0a1 user: drh tags: trunk)
08:34
When updating a zipvfs database with RBU, set journal_mode=off to prevent the upper-level pager from creating a large temporary file. (check-in: dec14a39 user: dan tags: trunk)
02:32
Initial implementation of eponymous virtual table instances. (check-in: c1f43a77 user: drh tags: table-valued-functions)
2015-08-18
19:09
Add test file spellfix2.test, which should have been checked in some time ago. (check-in: 85994020 user: dan tags: trunk)
16:32
Fix harmless compiler warning in FTS5. (check-in: 02448a9f user: mistachkin tags: trunk)
15:58
Provide hints for all terms in a range constraint if there are any equality terms anywhere in the constraint. Range constraint terms are only omitted for a pure range constraint with no equality prefix. (check-in: b5897bc0 user: drh tags: cursor-hints)
12:59
Comment clarification. No changes to code. (check-in: 71a96695 user: drh tags: json)
02:28
Initial implementation of json_set() and json_insert(). (check-in: 4aa49656 user: drh tags: json)
2015-08-17
21:22
Initial implementation of json_replace(). (check-in: 3c4bee65 user: drh tags: json)
20:14
Add an initial implementation for json_remove(). (check-in: 2a826720 user: drh tags: json)
17:19
Avoid generating hints using constraints that are also used to initialize the cursor, since presumably the cursor already knows about those constraints. (check-in: 142b048a user: drh tags: cursor-hints)
15:17
Initial implementation for json_array_length(), json_extract(), and json_type(). (check-in: 39983204 user: drh tags: json)
11:28
Abandon the JSONB format for now. (We may return to it in the future.) Add a function to render a JSON parse. (check-in: 9703c0aa user: drh tags: json)
2015-08-15
21:29
Fix off-by-one error when parsing primitive JSON types "true", "false", and "null". (check-in: 42c15c1e user: drh tags: json)
21:25
Add a prototype JSON parser. (check-in: 789ba487 user: drh tags: json)
18:16
Handle writes to auto-vacuum databases within UNLOCKED transactions in the same way as for non-UNLOCKED transactions. (check-in: de1ea450 user: dan tags: begin-concurrent)
16:32
Minor fix to the display of oversized KeyInfo structures in the P4 operand of Open opcodes in EXPLAIN output. (check-in: f65a9b4a user: drh tags: trunk)
00:51
Change the display of the P4 operand of CursorHint in EXPLAIN output to function notation. (check-in: bee73d42 user: drh tags: cursor-hints)
2015-08-14
23:57
Always provide the BTREE_BULKLOAD hint, even when SQLITE_ENABLE_CURSOR_HINTS is not defined, as that hint gives a 4% performance increase. (check-in: 83a84435 user: drh tags: cursor-hints)
20:08
Updated testing of cursor-hints. Remove the test_cursorhint.c file and associated logic in the core and do tests based purely on the newly enhanced EXPLAIN output. (check-in: bf383e66 user: drh tags: cursor-hints)
18:50
Fix the cursor hint mechanism so that it does the right thing for indexed lookups. (check-in: 581e3d49 user: drh tags: cursor-hints)
15:05
Refactor the sqlite3BtreeCursorHint() interface for improved maintainability. (check-in: fc3fb5cd user: drh tags: cursor-hints)
12:53
Duplicate the output of releasetest.tcl into releasetest-out.txt (check-in: 5e06a9c1 user: drh tags: trunk)
01:03
Fix the CursorHint so that it includes the scan boundary constraints. On the expression text for the CursorHint opcode, show rowid correctly. (check-in: f0d428d1 user: drh tags: cursor-hints)
2015-08-13
21:43
Convert the hint expression of the CursorHint opcode into a string for display by EXPLAIN. (Leaf check-in: 12640cb2 user: drh tags: cursor-hints-displayP4)
21:38
Fix a harmless compiler warning. (check-in: 608ab4ac user: drh tags: cursor-hints)
21:32
Convert the hint expression of the CursorHint opcode into a string for display by EXPLAIN. (check-in: 20688471 user: drh tags: cursor-hints)
20:34
Fix a bug in sqlite3ExprContainsSubquery(). (check-in: be254715 user: drh tags: cursor-hints)
20:23
When searching the wal file for a frame, do not search that part that was already checkpointed when the snapshot being read was at the head of the wal file. (check-in: 90760e72 user: dan tags: wal-read-change)
20:07
Merge in all the trunk changes from the previous year. This breaks the cursor-hint mechanism, but provides a baseline for trouble-shooting. (check-in: 82a7a61b user: drh tags: cursor-hints)
18:26
Add the sqlite3rbu_savestate() function to the rbu extension. To force rbu to save its state to disk without closing the sqlite3rbu* handle. (check-in: 851a875a user: dan tags: trunk)
13:54
Experimental code (untested) for a JSONB datatype. (check-in: e3596ac7 user: drh tags: json)
11:46
Avoid invoking system call unlink() directly from RBU code. Use the xDelete method of the default VFS instead. (check-in: ee966af8 user: dan tags: trunk)
2015-08-12
19:42
Avoid reading frames that have already been checkpointed from the wal file. (check-in: 5669ac4a user: dan tags: wal-read-change)
17:23
Add the json_object() function. (check-in: 414a95f3 user: drh tags: json)
16:49
Begin adding an extension that provides JSON SQL functions. (check-in: dde8afdd user: drh tags: json)
15:36
Minor optimization for fts5 API xInst(). (check-in: efb7c9c5 user: dan tags: trunk)
12:11
Add the xPhraseFirst() and xPhraseNext() fts5 APIs, for faster iteration through a single phrases position list. Also optimize xInst() and xInstCount() a bit. (check-in: f7682435 user: dan tags: trunk)
2015-08-11
18:18
Fix the retry mechanism on file locks. (check-in: 600df309 user: drh tags: apple-osx)
14:25
Merge fixes from the fts5NoWarn branch. (check-in: 61cb2fc6 user: dan tags: trunk)
13:41
Add some extra timestamps to the experimental log output. (Leaf check-in: b09e3ea7 user: dan tags: experimentalIoLog)
10:59
Add a tcl interface for the experimental logging functionality. (check-in: e844304d user: dan tags: experimentalIoLog)
01:45
Two more places where logging of freelist trunk pages is needed. (check-in: 56ff336e user: drh tags: experimentalIoLog)
2015-08-10
20:53
Record when an allocated page is taken from the freelist trunk. (check-in: bb5d7782 user: drh tags: experimentalIoLog)
20:22
Add the sqlite3_experimental_log_open() interface. This is for diagnostic use only and is not intended to ever go on trunk. (check-in: ac5d2e9d user: drh tags: experimentalIoLog)
2015-08-08
23:30
Fix compiler warnings and remove unreachable code. (check-in: fd5608fb user: drh tags: trunk)
23:23
Fix an assert() that was in the wrong spot. (Closed-Leaf check-in: 962b6cd6 user: drh tags: warnings)
22:47
Fix compiler warnings and remove unreachable code. (check-in: be190fe7 user: drh tags: warnings)
15:13
Update RBU to avoid repreparing a statement immediately after it is prepared. (check-in: 1d75a41b user: dan tags: trunk)
2015-08-07
20:57
Enhance the query planner so that it is able to use partial indexes that use AND-connected terms in the WHERE clause. (check-in: 06576590 user: drh tags: trunk)
20:06
Add a specially formatted comment to shell.c to make it easier for scripts to edit. No code changes. (check-in: 6d47b35a user: dan tags: trunk)
09:42
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. (Leaf check-in: 3a82c8e6 user: dan tags: mmap-wal-bigtrans)
2015-08-06
12:54
increase the version number to 3.8.12 (check-in: e596a6b6 user: drh tags: trunk)
03:19
Fix harmless compiler warnings in FTS5 code. (Closed-Leaf check-in: 0ddb2532 user: mistachkin tags: fts5NoWarn)
03:09
Fix duplicate test numbering in the FTS5 matchinfo tests. (check-in: 483ebe89 user: mistachkin tags: trunk)
2015-08-05
19:35
Add tests for the matchinfo-like test function. Fix problems found in test and fts5 code by doing so. (check-in: 9e3aafe4 user: dan tags: trunk)
15:29
Update the spellfix virtual table extension so that an explicit "top = ?" constraint works even if there is also a "distance < ?" or "distance <= ?" constraint. (check-in: 08888383 user: dan tags: trunk)
08:01
Fix some problems in test code detected by cppcheck. (check-in: c9ff4ca4 user: dan tags: trunk)
07:43
Remove all references to "docid" within fts5 source code and comments. Replace with "rowid". (check-in: dffd358f user: dan tags: trunk)
2015-08-04
20:29
Add new test file fts5_test_mi.c, containing an implementation of a function similar to FTS4 matchinfo() for FTS5. (check-in: 4f9520a9 user: dan tags: trunk)
19:06
Improve the usage comment on sqlite3_analyzer: show the available switches. (check-in: 783f78e3 user: drh tags: trunk)
15:29
Update the [showdb] program so that the database file is read directly (bypassing the SQLite VFS) only if the --raw option is specified. Otherwise, it is read using the default VFS. Also, the URI syntax may be used on the command line to specify the name of the database file to examine, so an alternative VFS may be requested using a URI parameter. (check-in: e3c6d4b6 user: dan tags: trunk)
15:23
Update the [showdb] program so that the database file is read directly (bypassing the SQLite VFS) only if the --raw option is specified. Otherwise, it is read using the default VFS. An alternative VFS may be specified by specifying the database file to open using the URI syntax. (Closed-Leaf check-in: 9699e9bd user: dan tags: showdb-uri-option)
14:18
In the sqlite3_analyzer.exe utility, show the depth of each btree and report the average fanout of indexes and WITHOUT ROWID tables. (check-in: cd997770 user: drh tags: trunk)
2015-08-03
17:03
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. (check-in: 90e34d51 user: dan tags: showdb-uri-option)
13:44
Allow a VIEW to reference undefined tables and functions when initially created. The error report is deferred until the VIEW is used. This allows views to be created before subviews and tables that the view references. (check-in: 70b57daf user: drh tags: trunk)
2015-08-01
18:18
Add extra tests for RBU and FTS3/4. (check-in: 34190449 user: dan tags: trunk)
2015-07-31
19:52
Add support for "fossil deltas" to RBU and "sqldiff --rbu". (check-in: e26ef165 user: dan tags: trunk)
18:59
Fix the sqlite3_stmt_busy() interface so that it always returns FALSE after the statement has returned SQLITE_DONE, even for ROLLBACK statements. Clarify the documentation. (check-in: 047d3475 user: drh tags: trunk)
17:48
Remove a duplicate "typedef struct Fts5Global Fts5Global;" from fts5_main.c (duplicate is in fts5Int.h). (check-in: 54a771fe user: dan tags: trunk)
15:14
When building the VSIX package for UAP, omit the AppLocal suffix for the MSVC runtime library because it is no longer needed. (check-in: fee7ad73 user: mistachkin tags: trunk)
15:13
Fix a problem causing [sqldiff --rbu] to fail on tables for which all columns are part of the PRIMARY KEY. (check-in: 93449e70 user: dan tags: trunk)
14:43
Fix a bug in the fts5 porter tokenizer preventing it from passing xCreate() arguments through to its parent tokenizer. (check-in: c3c672af user: dan tags: trunk)
2015-07-30
20:26
Add the --rbu switch to the "sqldiff" utility. (check-in: 098bea26 user: dan tags: trunk)
11:38
Allow RBU tables to be named "data[0-9]*_<target>" instead of strictly "data_<target>". Also update RBU so that it always processes data tables in order sorted by name. (check-in: 287aa306 user: dan tags: trunk)
11:26
Return an error message (instead of segfaulting) if test function fts5_expr() is invoked with no arguments. (check-in: 8e818b89 user: dan tags: trunk)
2015-07-29
22:38
Support building VSIX packages for UAP using Visual Studio 2015 and the Windows 10 SDK. (check-in: 96559adb user: mistachkin tags: trunk)
22:37
Update Windows 10 SDK version for RTM. (Closed-Leaf check-in: 80ab338c user: mistachkin tags: msvc2015)
21:47
Add SQLITE_DISABLE_INTRINSIC define to disable use of intrinsic functions (e.g. for certain older compilers and/or platforms). (check-in: f0075d73 user: mistachkin tags: trunk)
20:24
Fix the releasetest.tcl script so that it ignore cast overflow errors that recent versions of clang generate but which are unavoidable given the test input. (check-in: a0020c57 user: drh tags: trunk)
20:00
Version 3.8.11.1 (check-in: cf538e27 user: drh tags: trunk, release, version-3.8.11.1)
15:22
Restore an undocumented side-effect of PRAGMA cache_size: it forces the database schema to be parsed. Also increase the version number to 3.8.11.1. (check-in: e4628de3 user: drh tags: trunk)
14:58
Update comments in fts5.h describing the xColumnCount() API function. (check-in: a623eb55 user: dan tags: trunk)
14:46
Increase the version number to 3.8.11.1 (Closed-Leaf check-in: 326d746d user: drh tags: branch-3.8.11)
14:10
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. (check-in: 4489722a user: drh tags: branch-3.8.11)
12:14
Only allow UNLOCKED transactions to commit if none of the pages read by the transaction have been modified since it was opened. (check-in: 0b971842 user: dan tags: begin-concurrent)
2015-07-28
19:35
Update batch build tool library paths for MSVC 2015. (check-in: d431d4e1 user: mistachkin tags: msvc2015)
18:53
Fix the xfer optimization for WITHOUT ROWID tables so that it correctly updates the change count returned by sqlite3_changes(). (check-in: eff43715 user: drh tags: trunk)
16:46
Add some test cases and fix some small problems with BEGIN UNLOCKED transactions. (check-in: 6da0e962 user: dan tags: begin-concurrent)
2015-07-27
19:57
Clarification to the documentation for sqlite3_result_zeroblob64(). No changes to code. (check-in: c98175e9 user: drh tags: trunk)
19:31
Add an experimental "BEGIN UNLOCKED" command. (check-in: 80794216 user: dan tags: begin-concurrent)
13:49
Version 3.8.11 (check-in: b8e92227 user: drh tags: trunk, release, version-3.8.11)
12:19
Merge the fts5-btree-index branch with this one. FTS5 changes only. (check-in: 9f1dcdc3 user: dan tags: trunk)
11:49
Bump the "version" field in the fts5 config table. (Closed-Leaf check-in: 92c91789 user: dan tags: fts5-btree-index)
11:43
Minor tweak to the SQL schema used by fts5. (check-in: 427bf09b user: dan tags: fts5-btree-index)
11:01
Remove a potentially undefined behaviour involving signed integers and bitshift operations from fts5_hash.c. (check-in: ad6286ab user: dan tags: fts5-btree-index)
10:46
Merge latest trunk changes with this branch. (check-in: 5ec933c2 user: dan tags: fts5-btree-index)
2015-07-25
19:26
Remove a duplicated "if" condition from fts3.c. (check-in: ee348b12 user: dan tags: trunk)
14:26
Fix the rowallock.test script so that it works with builds that do not support mmap mode. (check-in: 7efed578 user: dan tags: trunk)
14:12
Fix the wal3.test module so that it works with the memsubsys1 permutation. (check-in: af85b01d user: drh tags: trunk)
12:03
Fix a test script problem in memsubsys2.test. (check-in: 70885729 user: dan tags: trunk)
03:10
Disable the page cache bulk allocation for the shrink.test and wal.test modules. (check-in: 3418f1f1 user: drh tags: trunk)
2015-07-24
23:28
Fix the zeroblob.test script so that it works even on builds where the SQLITE_MAX_LENGTH has been raised to 2147483645. (check-in: db129149 user: drh tags: trunk)
22:21
Merge test improvements and minor fixes from trunk. (check-in: 0298a9a7 user: drh tags: sessions)
21:19
Enable the RBU extension to compile cleanly on Windows using MSVC. (check-in: cca79fdc user: mistachkin tags: trunk)
20:43
For Windows CE, a different header is required for the byteswap intrinsics. (check-in: 2d572b8c user: mistachkin tags: trunk)
20:34
Fix warnings in fts5 code. (check-in: bd4f156d user: dan tags: trunk)
19:56
Fix the pragma2.test module so that it works with SQLITE_ENABLE_MEMORY_MANAGEMENT. (check-in: de281a4f user: drh tags: trunk)
18:58
Allow the RBU module to read data from appropriately named SQL views created within the RBU database. (check-in: 45c6a760 user: dan tags: trunk)
18:22
Fix a test script bug introduced by [562687d9]. (check-in: a343745d user: dan tags: trunk)
17:36
Add the sqlite3_bind_zeroblob64() API. (check-in: 1997ee54 user: dan tags: trunk)
17:26
New makefile target "fastfuzztest" runs the same tests as "fuzztest" but with a 100M memory size limit. This more than doubles the speed. The original unlimited "fuzztest" is still run on a "fulltest". (check-in: cfeb1b1c user: drh tags: trunk)
17:14
Fix compiler warnings. Get the new sqlite3_result_zeroblob64() working on loadable extensions. (check-in: f8991e6f user: drh tags: trunk)
16:24
Add the sqlite3_result_zeroblob64() API. Use it in the SQL zeroblob() function. (check-in: c6445b9f user: dan tags: trunk)
15:49
More robust handling of zeroblob() with oversized arguments. Fix fuzzcheck so that it can be run with limited heap memory. (check-in: 4e3e516a user: drh tags: trunk)
14:17
Modify a few test scripts to avoid leaving the sqlite3Config structure in a non-default state. (check-in: 562687d9 user: dan tags: trunk)
00:02
Update RBU description comment in the header file. No changes to code. (check-in: 119883a2 user: mistachkin tags: trunk)
2015-07-23
21:59
Merge all changes in the latest 3.8.11 beta into the sessions branch. Changes include the rename of OTA to RBU, the WITHOUT-ROWID-OR-Skipscan fix, and improvements to pcache1. (check-in: 7f0ee770 user: drh tags: sessions)
20:44
Change the name of the OTA extension to RBU: Resumable Bulk Update. (check-in: 017c5019 user: drh tags: trunk)
17:16
When SQLITE_OMIT_LOOKASIDE is set, do not allocate any lookaside memory since it will never be used. (check-in: 0ffd499f user: drh tags: trunk)
16:39
The sqlite3ExprCodeGetColumn() is not guaranteed to put the result in the register requested. Fix the skip-scan code generator for WITHOUT ROWID tables so that it always checks the register and copies the result if it lands in the wrong register. Fix for ticket [8fd39115d8f46ece70e7d4b3]. (check-in: 793e206f user: drh tags: trunk)
2015-07-21
19:22
Fix harmless compiler warning in MSVC 2015. (check-in: 01c8b9cc user: mistachkin tags: trunk)
2015-07-19
19:53
Cleanup the 'config.h' file in the appropriate distclean targets. (check-in: e0a99780 user: mistachkin tags: trunk)
2015-07-17
12:42
More adjustments to the malloc5.test module so that it works correctly with the new pcache1 bulk allocation. (check-in: 2a7b3a44 user: drh tags: trunk)
01:16
Avoid a harmless compiler warning. (check-in: 2288842b user: drh tags: trunk)
2015-07-16
20:24
Merge trunk changes, including fixes for compiler warnings in fts5 code, with this branch. (check-in: 7190d79b user: dan tags: fts5-btree-index)
20:17
Fix compiler warnings in fts5 code. (check-in: e9bf275c user: dan tags: trunk)
18:37
Fix harmless compiler warnings. (check-in: 9a592cf9 user: drh tags: trunk)
18:18
Defer the bulk pcache1 memory allocation until the first page allocation request. Limit the size of the pcache1 bulk allocation to the cache_size setting. Deallocate the bulk allocation on a sqlite3_db_release_memory() request, if the bulk allocation is completely unused. (check-in: b79a4aff user: drh tags: trunk)
17:29
Fix compilation issues with SQLITE_OMIT_COMPOUND_SELECT defined. (check-in: 9c39d464 user: mistachkin tags: trunk)
2015-07-15
23:15
Enable memory-mapped I/O on FreeBSD and DragonFly. (check-in: 2cdd6479 user: drh tags: trunk)
21:00
Make the debugging line numbers in the amalgamation more accurate. (check-in: 3b34e95c user: mistachkin tags: trunk)
19:46
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. (check-in: 862418e3 user: dan tags: fts5-btree-index)
18:35
Fix some harmless compiler warnings. (check-in: 110cd84f user: drh tags: trunk)
18:04
Attempt to fix harmless warnings generated by GCC and Clang runtime analyzers. (check-in: b522c95d user: drh tags: trunk)
13:56
Fix the fuzz3.test script so that it works with the new bulk pagecache allocation feature. (check-in: 829a2dba user: drh tags: trunk)
2015-07-14
22:43
Amplify the comment on renderLogMsg() that explains the problems associated with calling sqlite3_log() from deep within the memory allocator. (check-in: a73d7128 user: drh tags: trunk)
21:56
Further refine FTS5 cleanup in Makefiles. (check-in: b53a9506 user: mistachkin tags: trunk)
21:56
Skip trying to include 'intrin.h' when compiling for WinCE with MSVC. (check-in: 6db90ca2 user: mistachkin tags: trunk)
17:18
Fix some harmless compiler warnings. (check-in: 3de030c9 user: mistachkin tags: trunk)
15:39
Merge trunk changes, including the addition of FTS5 and pcache1 performance enhancements. (check-in: db4cbefb user: drh tags: sessions)
14:48
Always invoke the profile callback even if the statement does not run to completion. (check-in: 202479aa user: drh tags: trunk)
00:36
Refine cleaning of FTS5 files by Makefile targets. (check-in: e548d77b user: mistachkin tags: trunk)
2015-07-13
23:55
Fix the origination date on the loadfts.c utility program. (check-in: 5c76c062 user: drh tags: trunk)
18:01
Fix the header comment on the loadfts.c utility program. (check-in: 955ad4ae user: drh tags: trunk)
2015-07-10
17:55
Fix inconsistencies in formatting of fts5 docs. (check-in: 5fb4c771 user: dan tags: trunk)
2015-07-09
20:46
Improve the performance of docid merges in fts5. (check-in: b2de77a0 user: dan tags: trunk)
19:02
Reduce the number of calls to malloc() made by fts5. (check-in: 898618cc user: dan tags: trunk)
2015-07-08
17:59
Fix two problems that could cause fts3 auxiliary functions to occasionally misbehave if used with match expressions that contain both OR and NEAR. (check-in: 372c1db2 user: dan tags: trunk)
16:22
Enhance the pcache1 page cache so that it tries to allocate a block of SQLITE_DEFAULT_PCACHE_INITSZ pages from malloc() on startup, and uses those preallocated pages when possible rather than going to malloc() for each individual page. About a 5% performance increase for some workloads. (check-in: 5348ffc3 user: drh tags: trunk)
14:13
Comment fix. No changes to code. (Closed-Leaf check-in: c1e2ed0e user: drh tags: pcache-bulk-local)
13:40
Do not do the bulk pcache1 allocations if SQLITE_CONFIG_PAGECACHE specifies a global page cache buffer. (check-in: 75d98dae user: drh tags: pcache-bulk-local)
12:25
Early detection of file corruption in a debugging routine, before the invalid data can cause problems. (check-in: b27a47fe user: drh tags: trunk)
01:22
Avoid left-shifting bits into the sign of a signed integer, as such behavior is technically undefined. (check-in: 9417b402 user: drh tags: pcache-bulk-local)
2015-07-07
21:14
Add a compile-time constant for configuring the default pagecache setup. (check-in: ad5fdfba user: drh tags: pcache-bulk-local)
19:35
Merge the Fts5MultiSegIter and Fts5IndexIter objects. (check-in: 6ace7354 user: dan tags: trunk)
19:07
Add a test case to verify that "PRAGMA data_version" works as expected when an OTA client writes to the database. (check-in: 6441f2dc user: dan tags: trunk)
15:14
No need to test sqlite3GlobalConfig.bCoreMutex when SQLITE_THREADSAFE==0. (check-in: 26db0fee user: drh tags: pcache-bulk-local)
14:06
Simplify the page recycling condition in pcache1. Fix test cases to work with the latest changes. (check-in: 5b60df55 user: drh tags: pcache-bulk-local)
08:29
Further optimizations for fts5 b-tree seeks. (check-in: f3789968 user: dan tags: trunk)
2015-07-06
20:57
A unified cache is now only used for SQLITE_ENABLE_MEMORY_MANAGEMENT, or if SQLITE_CONFIG_PAGECACHE defines a shared start-time page cache buffer and the application is single-threaded. (check-in: d5ff1d69 user: drh tags: pcache-bulk-local)
20:27
Speed up seek operations on fts5 b-tree structures. (check-in: 7b7da1eb user: dan tags: trunk)
18:54
Enhance separate pcache1 to allocate a block of pages from heap on startup, if possible, for a 5.2% performance improvement. (check-in: aa7341c8 user: drh tags: pcache-bulk-local)
2015-07-05
22:15
Do not allow recursive CTEs that use aggregate queries in the recursive part. (check-in: 6d2999af user: drh tags: trunk)
2015-07-04
18:44
Optimize seek operations on fts5 b-trees. (check-in: 8cf02090 user: dan tags: trunk)
18:15
Preserve the number of requested PAGECACHE pages even if the memory pointer or size is zero. Enhance the pcache1.c header comment to explain the memory layout of a page cache line. (check-in: dacb2a61 user: drh tags: trunk)
15:35
Fix a problem in the fts5 integrity-check. (check-in: 4e473559 user: dan tags: trunk)
11:14
Do not preserve the btreeInitPage() results in PRAGMA integrity_check if there were cell sizing errors because PRAGMA cell_size_check was turned off during the btreeInitPage() call. (check-in: 743bf1f1 user: drh tags: trunk)
00:04
Sync up Makefile clean targets for FTS5. (check-in: 43ead44e user: mistachkin tags: trunk)
2015-07-03
23:29
Correction to check-in [1025873fdf], tighten up the number of static test mutexes. (check-in: 4e515897 user: mistachkin tags: trunk)
23:12
Update clean target in MSVC makefile. (check-in: e6c03e72 user: mistachkin tags: trunk)
23:11
Enhance mutex testing to include APP and VFS static mutexes. (check-in: 1025873f user: mistachkin tags: trunk)
21:38
Add static mutexes for use by the built-in / third-party VFSs and use the built-in VFS mutex where appropriate. (check-in: b202e2a1 user: mistachkin tags: trunk)
20:47
Rework the Fts5MultiSegIter structure a bit to make it more efficient. (check-in: 0778825d user: dan tags: trunk)
19:13
Speed up eof checks on fts5 cursors. (check-in: 3df4af5d user: dan tags: trunk)
17:54
Enable use of the __builtin_bswap32() only with GCC 4.3 and higher. (check-in: 030f60a7 user: mistachkin tags: trunk)
17:14
Avoid freeing the array of instance matches each time the fts5 xNext() method is called. (check-in: b9b0c1e5 user: dan tags: trunk)
14:34
New command-line options for speedtest1: --multithread, --nomemstat, --serialized, and --singlethread (check-in: 2b756722 user: drh tags: trunk)
2015-07-02
20:12
Copy fts5.h into the build directory as part of building fts5.c. Also remove code to edit fts5parse.c from various Makefiles and add it to mkfts5c.tcl. (check-in: 4d8f03dc user: dan tags: trunk)
19:47
When doing coverage analysis of a btree page for pragma integrity_check, make the first entry (that covers the header, cell index, and gap) implied, for a performance boost and size reduction. (check-in: e53d497c user: drh tags: trunk)
18:52
Minor change to mkfts5c.tcl so that fts5.c can be used according to the instructions in loadext.html. (check-in: edbcccd3 user: dan tags: trunk)
18:47
Merge in the latest enhancements from trunks, especially the use of _byteswap_ulong() and similar intrinsics on MSVC. (check-in: 85ca4409 user: drh tags: sessions)
18:16
Add fts5_source_id() SQL function, similar to sqlite_source_id(). (check-in: ec257348 user: dan tags: trunk)
16:52
Fix harmless compiler warnings and one macro VVA_ONLY macro usage issue. (check-in: bcc8a755 user: mistachkin tags: trunk)
16:50
Simplify FTS5 handling in the MSVC makefile. (check-in: f022e043 user: mistachkin tags: trunk)
16:29
Fix a (harmless) shadowed local variable definition in the integrity_check logic. (check-in: 3a26a919 user: drh tags: trunk)
16:17
Smaller and faster PRAGMA integrity_check that also does a better job of detecting errors. Some output text describing discovered file corruption has changed for clarity. (check-in: 251a7590 user: drh tags: trunk)
15:52
Remove "#ifdef SQLITE_ENABLE_FTS5" from individual fts5 source files. Add a single "#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS5)" to fts5.c. (check-in: 7819002e user: dan tags: trunk)
01:38
Add the --shrink-memory option to the speedtest1 test program. (check-in: c9ddbd88 user: drh tags: trunk)
2015-07-01
19:59
Avoid create a stack from in sqlite3BackupUpdate() in the common case where the first argument is NULL. (check-in: 2a897b9e user: drh tags: trunk)
17:53
Simplification of PRAGMA integrity_check logic. Make sure that the depth of the right-most subtree is correct. Size reduction and performance increase, with no change in output. (check-in: 550705fc user: drh tags: trunk)
17:13
Rework the PRAGMA integrity_check logic. Simplify the checkTreePage() routine and clean up the error messages generated. (Closed-Leaf check-in: 1c522123 user: drh tags: integrity-check-refactor)
04:08
Fix some harmless compiler warnings. (check-in: 307195c8 user: drh tags: trunk)
01:31
Change integrity_check to analyze the cells of a page in reverse order, as this will tend to insert the cells into the analysis heap in increasing order by address, which is the most efficient way to load a min-heap. (check-in: 59ad912c user: drh tags: trunk)
2015-06-30
17:28
Make use of the _byteswap_ushort() and _byteswap_ulong() compiler intrinsics for MSVC, when available. (check-in: fe144dd7 user: mistachkin tags: trunk)
16:29
Merge all the latest enhancements from trunk. This merge include FTS5 and a number of notable performance enhancements. (check-in: 39936b33 user: drh tags: sessions)
15:10
Make use of built-in bswap32() and bswap16() functions in GCC/Clang for a significant performance improvement there. (check-in: 8bfcda3d user: drh tags: trunk)
14:01
Only use __builtin_bswap16() with GCC 4.8 and later. (Closed-Leaf check-in: ce8177e3 user: drh tags: bswap-functions)
13:28
Remove the use of htonl() in the previous check-in due to linkage issues. Add the get2byteAligned() macro and use it for access to the cell offsets on btree pages for about a 1% performance gain. (check-in: 79ff36b7 user: drh tags: bswap-functions)
12:47
Make use of htonl() and __builtin_bswap32() for faster implementations of sqlite3Get4byte() and sqlite3Put4byte(). (check-in: bc27ebd7 user: drh tags: bswap-functions)
11:07
Change an unreachable branch into an assert() in sqlite3PagerAcquire() and optimize sqlite3PcacheOpenSavepoint() by factoring out rarely used code into a subroutine. (check-in: b406b20e user: drh tags: trunk)
03:57
Optimization to the sqlite3PcacheFetch() logic. (check-in: d9a0481c user: drh tags: trunk)
03:34
Put all variable declarations for sqlite3PagerWrite() at the beginning of the block. Syntax only - no logic changes. (check-in: a0fa6b3b user: drh tags: trunk)
03:18
Implement sqlite3Strlen30() using strlen() from the C library. (check-in: 8001aa52 user: drh tags: trunk)
03:13
Change sqlite3ApiExit() so that its first argument is never NULL. (check-in: 791b706e user: drh tags: trunk)
02:47
Put BtCursor objects on a singly-linked list instead of a doubly-linked list. Add the BTCF_Multiple flag. Only invoke saveAllCursors() when using a cursor that has BTCF_Multiple set. (check-in: 429ccef2 user: drh tags: trunk)
01:25
Convert several 5-year-old and older NEVER() macros into assert(). (check-in: ed54c14e user: drh tags: trunk)
2015-06-29
23:01
From sqlite3BtreeInsert(), bypass the btreeMoveto() routine for table inserts and go directly to sqlite3BtreeMovetoUnpacked(). (check-in: 53fe685d user: drh tags: trunk)
20:53
Add a bypass path in sqlite3PagerWrite() for pages with the PGHDR_WRITEABLE bit set, for about a 1% performance increase. (check-in: ba425a6a user: drh tags: trunk)
19:08
Combine subjRequiresPage() and subjournalPage() into a single subjournalPageIfRequired() routine. (check-in: 3b65eb56 user: drh tags: trunk)
18:29
Add the PGHDR_WRITEABLE bit for PgHdr.flags which is used to distinguish between pages that are on the dirty list and pages that are safe to modify. (check-in: 7c4ef7b7 user: drh tags: trunk)
18:14
Fix over-length source code lines in pager.c. (check-in: 14de3d39 user: drh tags: trunk)
15:41
Fix minor problems in the ota demo application. (check-in: 6aaaec6e user: dan tags: trunk)
14:11
Simplifications and performance improvement in pager_write(). (check-in: ab7aeeea user: drh tags: trunk)
04:21
Add the new PGHDR_CLEAN bit to PgHdr.flags in pcache.c. This bit is always the opposite of PGHDR_DIRTY. Use the extra bit to avoid a comparison for a small performance boost. (check-in: 8619fc34 user: drh tags: trunk)
03:28
Very small size reduction and performance increase in sqlite3BitvecTest(). (check-in: 9b3a7281 user: drh tags: trunk)
00:52
Move an assert() and testcase() into their correct position within getAndInitPage(). (check-in: 18115164 user: drh tags: trunk)
00:21
Use tail recursion in pcache1Unpin() to get a small size reduction and speed improvement. (check-in: fde70472 user: drh tags: trunk)
2015-06-28
17:33
Comment typo fix and minor cleanup in the pager. No logic changes. (check-in: 94ef1701 user: drh tags: trunk)
02:58
Avoid unnecessary calls to sqlite3VdbeSerialTypeLen() for integer serial types, for a small size reduction and a speed increase. (check-in: 9cd30d33 user: drh tags: trunk)
2015-06-27
23:55
Make greater use of BtCursor.curIntKey. (check-in: 63998471 user: drh tags: trunk)
22:49
Add the BtCursor.curIntKey field and use it for a small size reduction and performance boost. (check-in: 4a17df13 user: drh tags: trunk)
20:55
Enhancements to the previous check-in to make it a little smaller and faster. (check-in: 291d9e0c user: drh tags: trunk)
19:45
Performance improvements in moveToChild() by shifting some work over to getAndInitPage(). Net improvement is about 800K cycles at cost of 30 bytes. (check-in: 1956a4ce user: drh tags: trunk)
15:51
Manually inline the call from getAndInitPage() to btreeGetPage() for a savings of 2.5 million cycles at a cost of less than 100 bytes. (check-in: 7f65b96b user: drh tags: trunk)
14:59
Add releasePageNotNull() as an alternative to releasePage() when the argument is guaranteed to be non-NULL, and use it for a small performance gain. (check-in: 9383a688 user: drh tags: trunk)
03:58
Add the Mempage.aDataOfst field and use it in sqlite3BtreeMovetoUnpacked() for about a 2 million cycle gain. (check-in: bee94dc3 user: drh tags: trunk)
2015-06-26
20:45
Treat compilation of FTS5 for the loadable extension specially with MSVC. (check-in: 7c610276 user: mistachkin tags: trunk)
20:25
Merge fts5 branch into trunk. (check-in: d27d9965 user: dan tags: trunk)
20:14
Merge latest trunk with this branch. (Closed-Leaf check-in: 8671b9e1 user: dan tags: fts5)
20:13
Remove unnecessary lines from fts3.h and main.mk. (check-in: c1b268ce user: dan tags: fts5)
20:08
Fix a segfault that could follow an OOM error in fts5. (check-in: 713239b8 user: dan tags: fts5)
19:43
Small size reduction and performance increase on the OP_IdxInsert opcode. (check-in: b6bedc2e user: drh tags: trunk)
19:33
Merge latest trunk changes with this branch. (check-in: 2a1af0f2 user: dan tags: fts5)
18:50
Fix some cases in the fts5 code where a corrupt database could cause a buffer overread. (check-in: 360c57bb user: dan tags: fts5)
18:47
Further optimization of SQL function dispatch. Improvements to opcode documentation. (check-in: eaddbf29 user: drh tags: trunk)
18:16
Cache the sqlite3_context structure in the P4 operand of VDBE programs for faster SQL function dispatch. (check-in: 2abc44eb user: drh tags: trunk)
17:10
Merge changes to get FTS5 working with MSVC. (check-in: 954231d2 user: mistachkin tags: fts5)
16:55
Merge upstream changes. Get the test fixture working with FTS5. Fix compiler warnings. (Closed-Leaf check-in: bfcd1608 user: mistachkin tags: fts5Msvc)
16:42
Remove fts5 initialization code from core file main.c. (check-in: c91a93b3 user: dan tags: fts5)
16:17
Add FTS5 DLL target for MSVC. (check-in: be85b824 user: mistachkin tags: fts5Msvc)
13:31
Cache the most recently sqlite3_context used by OP_Function and reuse it on subsequent calls, if appropriate. This gives a noticable performance boost. (Closed-Leaf check-in: 2f31bdd1 user: drh tags: function-ctx-cache)
04:34
Initial changes to get FTS5 working with MSVC. (check-in: ef2052f8 user: mistachkin tags: fts5Msvc)
03:12
Fix harmless compiler warning in assert statement. (check-in: 7097716c user: mistachkin tags: trunk)
02:41
Simplify the pcache by not keeping continuous track of page 1 but instead just loading page 1 on the rare occasions when it is actually needed. (check-in: 015302f1 user: drh tags: trunk)
2015-06-25
23:52
Optimization to sqlite3_value_bytes() for the common case that does not require a data transformation. (check-in: 8d79f3a1 user: drh tags: trunk)
20:36
Fix Makefile.in to account for recent changes. Update fts5 test scripts so that they do not run if SQLITE_ENABLE_FTS5 is not defined. (check-in: 31752207 user: dan tags: fts5)
20:16
Merge latest trunk changes into this branch. (check-in: fcd8f7ce user: dan tags: fts5)
20:10
Add a script to combine all fts5 code into a single file - fts5.c - that can be used to build an SQLite loadable extension. (check-in: 46e86b06 user: dan tags: fts5)
19:53
Simplifications and performance improvements in insertCell(). (check-in: 7d02e6c9 user: drh tags: trunk)
18:36
More simplifications and performance improvements to cell allocation logic associated with allocateSpace(). (check-in: 78da0f69 user: drh tags: trunk)
16:01
Reorder the terms of a conditional for a small performance gain. (check-in: d67b0ed1 user: drh tags: trunk)
15:44
Merge all the latest enhancements from trunk. (check-in: 924f4712 user: drh tags: sessions)
15:21
Remove a NEVER() that is in fact reachable. (check-in: f824e66b user: drh tags: trunk)
15:04
Minor optimization to allocateSpace(). (check-in: d007bc33 user: drh tags: trunk)
13:03
Enhance the Btree object to remember whether or not it is holding an Incrblob cursor. Use this knowledge to improve performance in the common case where it does not. (check-in: 476b1156 user: drh tags: trunk)
02:26
Remove a line of code that doesn't do any useful work. (check-in: 3ee888be user: drh tags: trunk)
02:25
Increase the default timeout on fuzzcheck to 120 seconds - sufficient for running under valgrind on a slow workstation. (check-in: fad0eacc user: drh tags: trunk)
2015-06-24
23:44
Add the --timeout option to fuzzcheck. (check-in: a8f4f7fa user: drh tags: trunk)
23:17
Fix fuzzcheck so that it works with SQLITE_OMIT_PROGRESS_CALLBACK. (check-in: 7a9c4eb3 user: drh tags: trunk)
18:22
Add "ON CONFLICT" handling to the spellfix module. (check-in: 07937a81 user: drh tags: trunk)
17:21
Add "ON CONFLICT" handling to the spellfix module. (Closed-Leaf check-in: 1d04def7 user: dan tags: spellfix-constraints)
14:45
In the fuzzcheck test program, use the progress handler to limit the number of VDBE cycles to avoid getting stuck if the SQL under test contains an infinite CTE loop. Add the --limit-vdbe command-line option. (check-in: fbf9c432 user: drh tags: trunk)
14:36
Fix the progress handler so that it does not fire too soon during an sqlite3_step() call other than the first. (check-in: b41ef5d6 user: drh tags: trunk)
13:32
Fix a harmless compiler warning. (check-in: 3b6fa95e user: drh tags: trunk)
13:25
Rig the fuzzcheck test program so that it times out after 10 seconds in case of an infinite loop in the test case. (check-in: 659cfc9d user: drh tags: trunk)
13:05
Update the database fuzz test cases to cover all recent findings. (check-in: 47ba7d96 user: drh tags: trunk)
12:44
Add the --rebuild object to fuzzcheck. (check-in: db87664a user: drh tags: trunk)
12:24
Prevent an infinite loop while searching a corrupt freelist. (check-in: 4e5424fe user: drh tags: trunk)
12:07
Strengthen the new balance_nonroot() code against various corrupt database problems. (check-in: 5ba98343 user: drh tags: trunk)
10:46
Adjustment to a malloc test so that it accepts a narrow range of values to account for variations in malloc subsystems. (check-in: e0195070 user: drh tags: trunk)
01:07
Remove an invalid NEVER() and add a test case to cover it. (check-in: 14b73d20 user: drh tags: trunk)
00:05
Performance optimization on balance_nonroot() and related routines. 2.6% faster overall with a size increase of less than 750 bytes. (check-in: 25131e70 user: drh tags: trunk)
2015-06-23
23:31
Mark some branches as unreachable after the recent change that recognizes mismatch result set sizes on compound SELECT statements sooner. (check-in: c8d1f305 user: drh tags: trunk)
21:35
Testability improvement. (Closed-Leaf check-in: eed6a331 user: drh tags: btree-opt2)
18:47
Improve test coverage of fts5. (check-in: df5ccea8 user: dan tags: fts5)
18:24
Multiple overflow cells are always adjacent and sequential. Exploit this invariant for a small size reduction and performance increase and add assert()s to prove the invariant. (check-in: f77f2f48 user: drh tags: btree-opt2)
17:09
Faster loading of cell pointers into the b.apCell array in balance_nonroot. (check-in: fda89b05 user: drh tags: btree-opt2)
16:00
Avoid unnecessary cachedCellSize() calls in the cell partition adjustment phase of balance_nonroot(). (check-in: 6319ee12 user: drh tags: btree-opt2)
15:36
Change pageInsertArray() and pageFreeArray() so that they use the CellArray object and compute cell sizes as needed, resulting in smaller and faster code. (check-in: f7f41818 user: drh tags: btree-opt2)
15:06
Merge latest trunk changes with this branch. Add tests for columnsize=0. (check-in: ef44c71a user: dan tags: fts5)
14:49
Improvements to the way balance_nonroot() constructs the b.apCell array of pointers to cells. (check-in: ee44bb25 user: drh tags: btree-opt2)
13:02
Merge the compound SELECT operator fix from trunk. (check-in: a7be554f user: drh tags: btree-opt2)
12:19
Test that the left and right sides of a compound SELECT operator have the same number of expressions in the expanded expression list before beginning to generate code. (check-in: 4df852ce user: dan tags: trunk)
02:37
Avoid computing cell sizes in balance_nonroot() until they are really needed. This gives an overall 1.7% performance gain for about 1000 extra bytes of code space. (check-in: 43844537 user: drh tags: btree-opt2)
2015-06-22
20:02
Change the way that balance_nonroot() partitions cells between the sibling pages such that a scan of the cell size array is not required. (check-in: 16872871 user: drh tags: btree-opt2)
2015-06-20
18:13
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. (Leaf check-in: 522502ec user: drh tags: btree-opt)
14:11
Update the fuzztest data using the latest test vectors discovered by AFL. (check-in: b97f9cf7 user: drh tags: trunk)
13:18
Make sure that the likelihood() function does not mess up generation of result-set code when it is used (inappropropriately) in a result-set expression. (check-in: 7cdbae62 user: drh tags: trunk)
2015-06-19
20:31
Performance improvements in btreeParseCell() by inlining the varint decoder. (check-in: 172a864d user: drh tags: trunk)
20:08
Fix corner cases involving corrupt varint values in record headers. (Closed-Leaf check-in: 3189116b user: drh tags: btree-opt)
18:24
Performance improvements in btreeParseCell() by inlining the varint decoder. (check-in: faab0ed9 user: drh tags: btree-opt)
17:19
Add the MemPage.xParseCell method and provide various implementations (variations on the former btreeParseCellPtr()) depending on the page type. (check-in: 41d03d88 user: drh tags: trunk)
15:07
Make cellSizePtr() a method on the MemPage object, with alternative implementations depending on the page type. This results is a small performance improvement and size reduction. (check-in: 02f7e9d7 user: drh tags: trunk)
2015-06-18
15:26
Further #ifdef changes in speedtest1.c in order to support SQLite back to version 3.3.9 and perhaps even earlier. (check-in: 9246eca5 user: drh tags: trunk)
14:32
Pervent the likelihood() function from moving ON clause terms of a LEFT JOIN into the WHERE clause. Fix for ticket [5f60b11fc8e23490e2] (check-in: ed96e14a user: drh tags: trunk)
14:09
Show the values of Expr.flag in the AST of ".selecttrace" (check-in: a84d1004 user: drh tags: trunk)
12:37
Add #ifdefs to some features speedtest1.c so that it compiles with older versions of SQLite, going back to version 3.5.1. (check-in: f50dd154 user: drh tags: trunk)
2015-06-17
23:28
Performance improvement in sqlite3VdbeMemShallowCopy() for the common case where the receiver does not require prior resource deallocation. (check-in: d718ea36 user: drh tags: trunk)
19:06
Use 'binary' mode for popen with MSVC. (Closed-Leaf check-in: 7b84641e user: mistachkin tags: popenMsvc)
18:57
Improve spacing and comment style for the shell. No changes to code. (check-in: 5b547da0 user: mistachkin tags: trunk)
18:24
Improved comments on the fuzzcheck.c test program. No changes to code. (check-in: a7e27d19 user: drh tags: trunk)
18:18
Merge all recent enhancements and fixes from trunk. (check-in: 199bfb67 user: drh tags: sessions)
17:08
Fix a uninitialized variable use in the command-line shell when the ".open" command is invoked without any arguments. (check-in: fc4f4d1e user: drh tags: trunk)
13:20
Performance optimization and comment fixes for the LIKE and GLOB operators. (check-in: c89d7726 user: drh tags: trunk)
02:11
Make getCellInfo() a real function instead of a macro, for a size reduction and a 0.2% performance gain. (check-in: 55c393ea user: drh tags: trunk)
01:31
Optimizations to two VDBE accessory routines for a 0.2% performance increase. (check-in: 66d033b9 user: drh tags: trunk)
2015-06-16
16:39
Ensure that the CREATE TABLE AS statement correctly undoes partial changes to the sqlite_master table if the SELECT on the right-hand side aborts with an error. Fix for ticket [873cae2b6e25b] (check-in: 400e025e user: drh tags: trunk)
2015-06-15
16:40
Adjust ICU tests to account for recent changes in the official Unicode definition of whitespace. (check-in: 08165253 user: drh tags: trunk)
16:09
Fix a harmless comment typo. No code changes. (check-in: ae687652 user: drh tags: trunk)
14:43
Fix harmless compiler warnings. (check-in: b0badb99 user: drh tags: trunk)
12:58
Improved detection of database corruption in freeSpace(). (check-in: 29bcb568 user: drh tags: trunk)
10:49
Comment typo fix. No code changes. (check-in: 17f185ad user: drh tags: trunk)
2015-06-13
19:05
Added test cases based on Bruce Momjian's talk on SQL NULLs. (Leaf check-in: 68c168b5 user: drh tags: is-distinct-from)
11:48
Add the IS DISTINCT FROM and IS NOT DISTINCT FROM operators. (check-in: 0be44782 user: drh tags: is-distinct-from)
11:19
Omit mutex calls in pcache1 when the mutex is NULL, for a significant performance improvement. (check-in: caf8f574 user: drh tags: trunk)
11:10
Avoid unnecessary mutex usage in pcache1, for a significant speedup. (Closed-Leaf check-in: dcf4fb8d user: drh tags: faster-pcache1-fetch)
2015-06-12
13:49
Add a fast-path implementation of pcache1Fetch() for the common case of separate caches that do not use a mutex. (check-in: 760700ed user: drh tags: faster-pcache1-fetch)
13:04
Minor performance optimization in pcache1.c. (check-in: 2e8ad2ea user: drh tags: trunk)
12:54
Add the OP_ColumnsUsed opcode (when compiled with SQLITE_ENABLE_COLUMN_USED_MASK) as a hint to the b-tree layer as to which columns of a btree cursor will be used. (check-in: 711a176c user: drh tags: trunk)
2015-06-11
18:01
Merge recent trunk enhancements and fixes. (check-in: c39cb0e2 user: drh tags: sessions)
17:58
Merge trunk fixes. (Leaf check-in: 1df8cbbe user: drh tags: view-optimization)
17:26
Add the sqlite3changegroup_xxx() APIs to the sessions module. For combining multiple changesets or patchsets. (check-in: 0c1a901c user: dan tags: sessions)
14:19
Remove stray outputs from the test suite. (check-in: afc6db9b user: drh tags: trunk)
13:58
When generating code for partial indexes, be sure not to modify the index condition expression in the schema. (check-in: e63d01c6 user: drh tags: trunk)
2015-06-10
23:02
More test output refinements. (Closed-Leaf check-in: e64a5681 user: mistachkin tags: testerOutput)
22:51
Remove possibly stray output from various tests. (check-in: f38e0be5 user: mistachkin tags: testerOutput)
22:03
Fix minor typo in the quicktest MSVC makefile target. (check-in: 75b65f9d user: mistachkin tags: trunk)
20:00
Merge enhancements from trunk. (check-in: 0e23a079 user: drh tags: view-optimization)
18:53
"test" targets on all makefiles use --verbose=file --output=test-out.txt. Add the new "quicktest" target to all makefiles - designed to run in under three minutes. The --quick option on releasetest.tcl now uses quicktest. (check-in: 6ddef2ad user: drh tags: trunk)
17:20
Resolve FROM-clause subqueries after query planning instead of before. Greatly reduce the estimated cost of automatic indexes for VIEWs and ephemeral tables since performance problems there cannot be mitigated via a CREATE INDEX. (check-in: a1eaf171 user: drh tags: view-optimization)
14:27
Avoid passing constraints that are unusable due to LEFT or CROSS joins to virtual table xBestIndex() methods. (check-in: 7b446771 user: dan tags: trunk)
10:45
Fix the fts5 xRename() method. (check-in: 0f7fd513 user: dan tags: fts5)
2015-06-09
20:58
Add the "columnsize=" option to fts5, similar to fts4's "matchinfo=fts3". (check-in: aa12f9d9 user: dan tags: fts5)
15:58
Add the --output=$file and --verbose=(0|1|file) options to tester.tcl. (check-in: f7b2c703 user: dan tags: trunk)
10:58
Remove some repeated lines of source code. Probably introduced by careless cut'n'pasting. (Closed-Leaf check-in: a34cd71c user: dan tags: vtab-left-join)
2015-06-08
22:59
Code refactoring to try to shift FROM-clause subquery manifesting until after the query planner runs. Except this does not currently work because the query planner needs an estimated of the number of rows in the manifested table. Work in progress. (check-in: cabf2187 user: drh tags: view-optimization)
19:15
Add the valgrindfuzz target to unix makefile. (check-in: e62aed01 user: drh tags: trunk)
18:48
If a query contains "FROM t1 LEFT JOIN t2, t3, t4", ensure that tables t3 and t4 are not scanned before t2. The trunk already does this. (check-in: 0d9edfab user: dan tags: vtab-left-join)
18:05
Avoid passing constraints that are unusable due to LEFT or CROSS joins to virtual table xBestIndex() methods. (check-in: 80ee56dd user: dan tags: vtab-left-join)
17:42
Fix typo in comment. No changes to code. (check-in: e49c2917 user: mistachkin tags: trunk)
17:40
Split out some source code into new files: wherecode.c, whereexpr.c, and treeview.c. Other minor refactoring changes. (check-in: 50f33681 user: drh tags: trunk)
15:08
Factor out the TreeView parse tree printing module into a separate file. (check-in: c32ce54c user: drh tags: view-optimization)
14:23
Split more subfunctions of where.c out into a new whereexpr.c source file, for improved maintainability. (check-in: 46ef95c1 user: drh tags: view-optimization)
2015-06-06
20:12
Split out the bulk of the actual VDBE code generation logic from where.c into a new file, leaving behind the analysis logic. This makes the original where.c smaller and hopefully easier to edit. (check-in: faa0e420 user: drh tags: view-optimization)
19:23
Fix a comment in fts5.h. (check-in: e964b587 user: dan tags: fts5)
18:30
Code simplifications in select.c and where.c. (check-in: 4f20ac90 user: drh tags: view-optimization)
16:28
Fix handling of fts5 rowid constraints in the absence of a MATCH clause. Add tests to cover recently added branches. (check-in: 3a9cb648 user: dan tags: fts5)
00:18
Minor cleanup of the sqlite3Select() procedure. (check-in: f4c90d06 user: drh tags: view-optimization)
2015-06-05
22:33
Split FROM-clause subquery flattening and code generation into separate loops. (check-in: be8e3fc7 user: drh tags: view-optimization)
20:27
Provide one final Select tree dump prior to WHERE clause analysis when ".selecttrace 0x400" tracing bit is set with SELECTTRACE_ENABLED. Analysis and debug changes only - normal builds are unaffected. (check-in: 283bf0b6 user: drh tags: trunk)
19:05
Make use of range constraints on the rowid field of an fts5 table in full-text queries. (check-in: 32cbc0ed user: dan tags: fts5)
15:59
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. (Closed-Leaf check-in: f167bba4 user: drh tags: column-usage-hint)
2015-06-04
12:08
Change the name of SrcList.a[].zIndex to the more descriptive SrcList.a[0].zIndexedBy. (check-in: 6a9cf063 user: drh tags: trunk)
2015-06-03
11:23
Fix an fts5 problem in extracting columns from position lists containing large varints. (check-in: 4ea015ab user: dan tags: fts5)
2015-06-02
19:38
Change the fts5 multi-column syntax to use parenthesis instead of square brackets. (check-in: ab85a6fc user: dan tags: fts5)
19:36
Always check for cell overflow before returning a slot from the pageFindSlot routine in btree.c. (check-in: 9f035c45 user: drh tags: trunk)
18:09
For FROM-clause subqueries that cannot be flattened, try to push relevant WHERE clause terms of the outer query down into the subquery in order to help the subquery run faster and/or use less memory. Call this the "WHERE-clause push-down optimization". Do not confuse this with the completely different MySQL push-down optimization. (check-in: 6df18e94 user: drh tags: trunk)
18:07
Merge latest trunk changes with this branch. (check-in: c9ffda4a user: dan tags: fts5)
17:57
Reimplement [ec69e09a] so that each call to the xNext() method does not involve two iterations of the match expression tree (only one). (check-in: 80fe305b user: dan tags: fts5)
17:25
Add test cases for type affinity rules. (check-in: 9678646d user: drh tags: trunk)
16:19
Rename SQLITE_AFF_NONE to SQLITE_AFF_BLOB to avoid confusion with "no affinity". (check-in: 29ad9e91 user: drh tags: trunk)
16:09
Add the built-in affinity() SQL function. This turns out to be not as useful as originally envisioned, so abandon it on a branch. (Leaf check-in: 80889306 user: drh tags: affinity-func)
15:32
Rename SQLITE_AFF_NONE to SQLITE_AFF_BLOB. (Closed-Leaf check-in: bce3f041 user: drh tags: blob-affinity-rename)
14:02
Fix a faulty assert() in btree.c. Update the database fuzz test file with new test cases. (check-in: 4e621af1 user: drh tags: trunk)
09:20
Add the "finish_test" command to the end of new test script sessionE.test. (check-in: fb391407 user: dan tags: sessions)
09:19
Modify the sessions module to ignore all operations on tables with no primary keys as documented. (check-in: bdaf9575 user: dan tags: sessions)
2015-06-01
20:28
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. (Closed-Leaf check-in: 297fae75 user: drh tags: subquery-opt)
19:17
Improve performance of the fts5 AND operator. (check-in: b43e9a5b user: dan tags: fts5)
18:13
Corrections to comments in expr.c. No code changes. (check-in: f925389e user: drh tags: trunk)
17:32
Break out the query flattener into a separate source-code file. (Closed-Leaf check-in: e3fa8b93 user: drh tags: flattener-in-new-file)
11:10
Typo fixes and additional background information in README.md. (check-in: 9b8e5823 user: drh tags: trunk)
09:15
Change fts5 expression processing to avoid linear scans of long doclists caused by phrases that match specific columns only. (check-in: ec69e09a user: dan tags: fts5)
2015-05-30
22:57
Updates to configure.ac to help it find where the TCL libraries hidden on Ubuntu 14.04. (check-in: c864ff91 user: drh tags: trunk)
22:05
Fix minor typo in comment. No changes to code. (check-in: 73fc058b user: mistachkin tags: trunk)
11:49
Remove the "#include sqlite3Int.h" from fts5Int.h. (check-in: e008c3c8 user: dan tags: fts5)
2015-05-29
19:04
Import recent enhancements from trunk. (check-in: 54bec164 user: drh tags: sessions)
19:00
Add extra tests and fixes for multi-column matches. (check-in: ae6794ff user: dan tags: fts5)
18:42
Ensure that allocateBtreePage() always clears the MemPage pointer when it fails due to an I/O or memory allocation error. (check-in: 09a38bf6 user: drh tags: trunk)
17:51
Move two unreachable conditionals inside of NEVER() or assert(). (check-in: db4e9728 user: drh tags: trunk)
17:13
Remove a corruption test in balance_nonroot that is superceded by a prior better check. (check-in: 00693682 user: drh tags: trunk)
15:55
Add syntax to fts5 used to specify that a phrase or NEAR group should match a subset of columns. For example "[col1 col2 ...] : <phrase>". (check-in: 0fc0ea20 user: dan tags: fts5)
15:15
Omit the rowallock.test script (Read-Only WAL lock) from the inmemory_journal permutation. (check-in: d21db330 user: drh tags: trunk)
14:47
Add support for automatic indexes on FROM-clause subqueries that are implemented via co-routine. (check-in: 020b8b10 user: drh tags: trunk)
14:36
Add some extra source-code comments and a test case. (Closed-Leaf check-in: 6d410442 user: drh tags: coroutine-autoindex)
13:55
An attempt to allow automatic index creation on subqueries accessed via co-routine. (check-in: 521345ad user: drh tags: coroutine-autoindex)
01:35
Using "SELECT ALL" instead of just "SELECT" on a query that uses a single unflattenable subquery or view in its FROM clause will force the subquery to be manifested into a temporary table rather than run incrementally using a co-routine. This is a stop-gap means of controlling the decision to manifest while we try to work out a better to make that decision automatically. (check-in: a29e117d user: drh tags: trunk)
2015-05-28
19:57
Optimizations for fts5 queries that match against a specific column. (check-in: b29ac50a user: dan tags: fts5)
15:14
Added comments and testcase() macros to error cases in the btree search. (check-in: 7da7dc71 user: drh tags: trunk)
14:37
Remove some dead code from fts5. Add auxiliary function api tests to the same. (check-in: 0f9df202 user: dan tags: fts5)
11:23
Earlier detection of incompatible sibling pages in balance_nonroot. (check-in: 60a09f17 user: drh tags: trunk)
03:45
Add new test cases to the fuzzdata3.db set of database fuzz tests. (check-in: 467b13a4 user: drh tags: trunk)
03:28
Add the btreeGetUnusedPage() routine to btree.c, and use it to detect content pages on the freelist and to cause that condition to trigger an SQLITE_CORRUPT. (check-in: fe15d1f7 user: drh tags: trunk)
00:54
Do not attempt to take any write lock on a read-only database on Windows. (check-in: a47ff0cd user: drh tags: trunk)
2015-05-27
19:35
The fuzzoomtest makefile target is no longer supported, so update releasetest.tcl accordingly. (check-in: 06959d4a user: drh tags: trunk)
18:19
Fix a minor and harmless memory leak in fuzzcheck. Adjust the makefiles to run fuzzcheck with --quiet on valgrind tests. (check-in: 8bfe8344 user: drh tags: trunk)
18:13
All bytes of a page are initialized, even bytes that follow a 2-byte cell on a malformed page. (check-in: 7373a004 user: drh tags: trunk)
15:42
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. (check-in: 95eaa49f user: drh tags: trunk)
15:10
Disallow the use of "rowid" in CTEs - it has never worked correctly and it makes no sense, so we might as well make it an explicit error. Also: add the PRAGMA cell_size_check=ON command. (check-in: 19e2cebc user: drh tags: trunk)
14:21
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. (Closed-Leaf check-in: 7e9e1b61 user: dan tags: avoid-buffer-overread)
13:06
CTEs have never had working rowids. So disallow the use of the "rowid" column within CTEs. (Closed-Leaf check-in: 0055df04 user: drh tags: no-rowid-in-cte)
03:46
Add the "PRAGMA cell_size_check=ON" command. (Closed-Leaf check-in: 2ead43f0 user: drh tags: cell-size-check-pragma)
2015-05-26
20:31
Avoid a buffer overread when comparing against a corrupt record that spans at least one overflow page. (check-in: 62a5b363 user: dan tags: trunk)
20:07
Avoid branching on an uninitalized variable when comparing SQL values with the undefined serial types 10 and 11 (which only appear in corrupt databases). (check-in: b4a45d3b user: dan tags: trunk)
19:08
The "make fuzztest" target now uses fuzzcheck instead of fuzzershell. Test data is added for database fuzz testing. (check-in: 5e3e410b user: drh tags: trunk)
19:01
Merge accidental fork. (Closed-Leaf check-in: e85628e3 user: dan tags: test-using-fuzzcheck)
18:58
Fix a one-byte buffer overread that may follow a syntax error while preparing an SQL statement. (check-in: 07500393 user: dan tags: test-using-fuzzcheck)
18:58
Fix fuzzcheck so that it responds correctly to the TEST_FAILURE environment variable. (check-in: 76770c9e user: drh tags: test-using-fuzzcheck)
18:22
Simplifications and minor optimizations to fts5 prefix queries that cannot use a prefix index. (check-in: aef89d9f user: dan tags: fts5)
18:15
The "make fuzztest" target now uses fuzzcheck instead of fuzzershell. (check-in: 4a5f6f1f user: drh tags: test-using-fuzzcheck)
17:57
Enhance fuzzcheck with the ability to store descriptions in each source database and to run multiple source databases in a single invocation. (check-in: 193364c8 user: drh tags: trunk)
17:33
Add a cast to one side of the test added by [97806a78] in order to avoid a signed/unsigned comparison warning. (check-in: 5b46d2a7 user: dan tags: trunk)
17:29
Avoid using a zero-sized array within a struct in fts3 code. (check-in: b05cae36 user: dan tags: trunk)
16:12
Fix another bug in the in-memory VFS for fuzzcheck. (check-in: 16878a31 user: drh tags: trunk)
14:57
Update test cases in corruptI.test so that they work with both SQLITE_ENABLE_OVERSIZE_CELL_CHECK and SQLITE_DEFAULT_AUTOVACUUM builds. (check-in: 22a14663 user: dan tags: trunk)
12:18
Return SQLITE_CORRUPT to the user if an attempt is made to add database page 1 to the free page list. (check-in: 68876003 user: dan tags: trunk)
11:53
Fix a problem with ignoring UNIQUE constraints on WITHOUT ROWID tables rendered redundant by the PRIMARY KEY. (check-in: 3b936913 user: dan tags: trunk)
03:31
Silence harmless compiler warnings when building the command line utilities with MSVC. (check-in: d26060c4 user: mistachkin tags: trunk)
03:24
Add fuzzcheck to makefile clean targets. Also, for consistency, replace a few tabs with spaces. (check-in: eda2a437 user: mistachkin tags: trunk)
00:28
Add the --result-trace option to fuzzcheck, and other interface enhancements. (check-in: c415bb7b user: drh tags: trunk)
2015-05-25
23:14
Fix an important bug in the xRead method of the in-memory VFS for fuzzcheck. (check-in: 58cd40e8 user: drh tags: trunk)
22:38
Add the fuzzcheck test program. (check-in: 341cb6ab user: drh tags: trunk)
22:29
Add fuzzcheck to all makefiles and fix compiler warnings. (Closed-Leaf check-in: 7b3d2190 user: drh tags: fuzzcheck)
22:18
Merge in trunk fixes. (check-in: c71c2e1a user: drh tags: fuzzcheck)
22:17
Improved tracing capabilities in fuzzcheck. (check-in: 864bfdbf user: drh tags: fuzzcheck)
21:59
Add the --native-vfs option on fuzzcheck. (check-in: 12e95e3f user: drh tags: fuzzcheck)
20:04
Fix a case of a corrupt database causing SQLite to read from up to 4 bytes before the start of a memory allocation. (check-in: 7d2c4f7b user: dan tags: trunk)
19:37
Merge the btree fixes out of trunk. (check-in: f3cd8cec user: drh tags: fuzzcheck)
19:35
Add the --dbid and --sqlid parameters to fuzzcheck. Other fuzzcheck fixes. (check-in: 75ec9299 user: drh tags: fuzzcheck)
19:24
Have the b-tree layer return SQLITE_CORRUPT to any attempt to open a cursor with a root page number less than 1. (check-in: aa18c8e9 user: dan tags: trunk)
18:48
First code for a new utility program to rerun checks on a large number of fuzzer-generated test cases. (check-in: c5b4e363 user: drh tags: fuzzcheck)
18:47
Fix a couple of btree asserts that would fail when encountering 32-bit rollover in cell payload size fields (cell payloads this large always indicate corruption). (check-in: 8fa0937a user: dan tags: trunk)
17:07
Fix a case where database corruption may cause SQLite to write past the end of a buffer. (check-in: 97806a78 user: dan tags: trunk)
15:03
Fix an assert() in btree routine freeSpace() that may be false if the database is corrupt. (check-in: 00a473c5 user: dan tags: trunk)
11:46
Avoid redundant loads from the %_data table in the fts5 code. (check-in: 02069782 user: dan tags: fts5)
10:57
Fix an fts4 matchinf() problem triggered by deferred tokens that are part of phrases that are part of AND expressions. (check-in: f1e942a1 user: dan tags: trunk)
10:29
Fix an obsolete comment - no changes to code. (check-in: 4e4228c4 user: drh tags: trunk)
09:33
Remove an incorrect and pointless assert(). (check-in: 8c3929bd user: drh tags: trunk)
2015-05-24
21:46
The assert() changes removed in the previous check-in are needed after all. (check-in: 336fccc8 user: drh tags: trunk)
21:09
Better detection of corruption in allocateSpace() in btree.c. (check-in: bf7bb53e user: drh tags: trunk)
10:18
Detect database corruption in the modifyPagePointer() routine and abort. (check-in: 4f0bba42 user: drh tags: trunk)
2015-05-23
19:53
Instead of early detection of corruption in balance_nonroot, simply ignore the error, as it is harmless and exceedingly uncommon. (check-in: 7bbf9b3c user: drh tags: trunk)
19:29
Earlier detection of a specific kind of corruption in the balance_nonroot() routine. (check-in: ee6dc991 user: drh tags: trunk)
15:43
Avoid making redundant copies of position-lists within the fts5 code. (check-in: 5165de54 user: dan tags: fts5)
02:44
Minor documentation improvements. No changes to code. (check-in: e446d9ce user: drh tags: trunk)
2015-05-22
23:51
Merge bug fixes from trunk. (check-in: 519054bb user: drh tags: sessions)
23:50
Improved error messages in fuzzershell when unable to open the database. (check-in: c404fcac user: drh tags: trunk)
23:45
Fix a bug in fuzzershell caused by an uninitialized local variable. (check-in: 745deab8 user: drh tags: trunk)
23:39
Fix another bad assert() in btree - one that can be false on a corrupt database file. (check-in: 89f0bbfd user: drh tags: trunk)
23:26
Merge enhancements from trunk, including the new sqlite3_value_dup() API and the addition of the apSqlParam field in the sqlite3_rtree_query_info object of R-Tree. (check-in: cdc0ca6f user: drh tags: sessions)
23:17
Fix incorrect validation of the size of the BLOB returned by a geometry function on the RHS of a MATCH operator in RTree. The old code worked for 64-bit systems (by chance) but fails on 32-bit. (check-in: 10cc44f5 user: drh tags: trunk)
21:12
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. (check-in: c1814242 user: drh tags: trunk)
21:04
Make sure sqlite3_value_dup() works correctly even for sqlite3_value objects that are marked SQLITE_STATIC. (Closed-Leaf check-in: f332ffc3 user: drh tags: value-dup)
19:55
Fix minor issues with the sqlite3_value_dup() interface. (check-in: 95edcf50 user: drh tags: value-dup)
18:40
Update with fixes and enhancements from trunk. (check-in: 9605d008 user: drh tags: value-dup)
17:29
The SRT_Table type for the SelectDest object is now just an SRT_EphemTab for which the ephemeral table has already been allocated. (check-in: b9727e6b user: drh tags: trunk)
16:08
Have r-tree prefer to use the constraint "col MATCH ?" over "rowid = ?". (check-in: b9fb9519 user: dan tags: trunk)
13:09
Fix two faulty assert statements discovered by fuzzing. (check-in: 799817bf user: drh tags: trunk)
12:37
Fix an assert in btree.c that can be false when using a corrupted database file. (check-in: a6eb2a39 user: drh tags: trunk)
11:38
Add the --database option to the fuzzershell test program. (check-in: c6d5512f user: drh tags: trunk)
07:44
Increase test coverage of fts5_vocab.c. (check-in: 065ab83a user: dan tags: fts5)
06:08
Improve test coverage of fts5_unicode2.c. (check-in: fea8a4db user: dan tags: fts5)
2015-05-21
20:26
Have r-tree prefer to use the constraint "col MATCH ?" over "rowid = ?". drh added later: All changes on this branch have been cherrypicked to trunk and will be merged into sessions from trunk. So this branch can close. (Closed-Leaf check-in: b9e45596 user: dan tags: sessions-value-dup)
17:24
Prevent a virtual table from being destroyed while it is in use. Also: replace Vdbe.inVtabMethod with sqlite3.nVDestroy. Simplify the EXPLAIN output for P4.pVtab to only show the sqlite3_vtab pointer. Cherrypick of [cbeb9a1aed8c]. (check-in: b3bb660a user: dan tags: branch-3.8.6)
17:21
Avoid ever writing before the start of an allocated buffer in the DIRECT_OVERFLOW_READ code. Fix for [e3a290961a6]. Cherrypick of [c3c15d20c691]. (check-in: 31b13eb5 user: dan tags: branch-3.8.6)
2015-05-20
22:01
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. (check-in: 2007391c user: drh tags: sessions-value-dup)
21:28
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. (check-in: a7ee40c4 user: drh tags: value-dup)
20:50
Fix a problem in test file e_reindex.test. Cherrypick of [5b3de9390f2f]. (check-in: 80633682 user: dan tags: branch-3.8.6)
20:34
Fix a problem causing the fts3 integrity-check to fail if run inside a transaction. Cherrypick of [3b925189a75e]. (check-in: 7d7d633c user: dan tags: branch-3.8.6)
20:30
Ensure that tables names are dequoted exactly once by the trigger and FK logic. Cherrypick of [59e92bd9521f] and [9d887b92f808]. (check-in: bd357739 user: dan tags: branch-3.8.6)
20:27
Fix an obscure problem with "INSERT INTO tbl(cols) SELECT" statements where the SELECT is a compound with an ORDER BY and "cols" is a strict subset of tbl's columns. Cherrypick of [718d5d0eab04]. (check-in: 3cd2b772 user: dan tags: branch-3.8.6)
20:24
Fix a potential NULL pointer deference on a corrupt database schema. Cherrypick of [dc61b292d8ea]. (check-in: 7f3943fb user: dan tags: branch-3.8.6)
20:21
Fix a bug caused by cherrypicking from a branch that assumes sqlite3_stricmp() can handle NULL arguments. (check-in: 2c649cdf user: dan tags: branch-3.8.6)
19:57
When parsing the schema, ignore any SQL that does not begin with "CREATE". Cherrypick of [d3c00d61581c]. (check-in: 0da229b8 user: dan tags: branch-3.8.6)
19:53
Detect and report oversized records constructed from multiple zeroblobs. Cherrypick of [9e139afd9211]. (check-in: 4a08f6b8 user: dan tags: branch-3.8.6)
19:50
Do not allow virtual table constructors to be called recursively. Cherrypick of [0a72726da215] (check-in: 023a29ba user: dan tags: branch-3.8.6)
19:48
Avoid signed integer overflow when converting oversized in-line integer widths and precisions in printf(). Cherrypick of [c494171f77dc], [5ce4e7d7651e], [95625ef3adc3] and [8e4ac2ce2441]. (check-in: b330c7ff user: dan tags: branch-3.8.6)
19:44
Ensure that comparison operators do not mess up the MEM_Dyn flag on registers when reverting affinity changes. Cherrypick of [02e3c88fbf6a]. (check-in: 4125477e user: dan tags: branch-3.8.6)
19:34
Fix a problem causing collation sequence names to be dequoted multiple times under some circumstances. Cherrypick of [eddc05e7bb31]. (check-in: fc1a4f29 user: dan tags: branch-3.8.6)
19:32
Silently ignore any attempt to add a prefix index for prefixes zero bytes in size to an fts3/4 table. Or any prefix index size so large that it overflows a 32-bit signed integer. Cherrypick of [ad4b19d2ac0889a2]. (check-in: ff7be4db user: dan tags: branch-3.8.6)
18:17
Version 3.8.10.2 (check-in: 2ef4f3a5 user: drh tags: release, version-3.8.10.2, branch-3.8.10)
17:36
Fix the initialization logic in CREATE TABLE AS so that the correct affinities are applied to all values being inserted into the new table, even if the RHS is a compound SELECT. Fix for ticket [f2ad7de056ab1dc9200]. (check-in: 6a0cf3ce user: drh tags: trunk)
17:25
Add a test case to verify that CREATE TABLE AS does not store INT values in TEXT columns. Ticket [f2ad7de056ab1dc92]. (Closed-Leaf check-in: 0e45e8f1 user: drh tags: create-table-as-type-fix)
17:18
Simplification of the initialization code for CREATE TABLE AS. (check-in: 937f659e user: drh tags: create-table-as-type-fix)
15:51
A proposed fix for the problem of CREATE TABLE AS generating a table that has INTEGER values in a TEXT column. Ticket [f2ad7de056ab1dc92]. (check-in: d5e2c1fc user: drh tags: create-table-as-type-fix)
09:27
Improve test coverage of fts5_tokenize.c. (check-in: 0e91a6a5 user: dan tags: fts5)
00:15
Fix handling of queries with VALUES on the left and UNION ALL SELECT on the right and a LIMIT clause. (check-in: c403502c user: drh tags: trunk)
2015-05-19
23:56
Enhance the selecttrace display by showing Select.selFlags. (check-in: 45d3893c user: drh tags: trunk)
23:04
Merge the Makefile.msc fix and the compiler warning fix from trunk. Also fix another compiler warning in sqlite3session_diff(). (check-in: 7530e1bf user: drh tags: sessions)
22:56
Fix the MSVC makefile so that it works with OTA. Fix a harmless compiler warning in FTS3. (check-in: c7b16645 user: drh tags: trunk)
22:42
Merge recent trunk changes, include the R-Tree enhancement that allows 8-byte BLOB arguments to geometry functions, and the fix for the TEXT affinity problem that could cause corrupt indexes. (check-in: 0a0de8b7 user: drh tags: sessions)
22:20
Allow R-Tree geometry functions to take 8-byte BLOB arguments which are passed directly through to the underlying callback, and which can be used to pass pointers into the callback. (check-in: b271ed56 user: drh tags: trunk)
19:52
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 3.8.10.2. (check-in: 40f67265 user: drh tags: branch-3.8.10)
19:44
Ensure that when the VM applies TEXT affinity to a value it discards any existing REAL or INTEGER value. Fix for [34cd55d6]. (check-in: f5d0ce80 user: dan tags: trunk)
19:37
Add tests for fts5 tokenizers. (check-in: 4f90ba20 user: dan tags: fts5)
17:48
Remove the sqlite3ota_open_v2() API. Add a new parameter to sqlite3ota_open() instead. (check-in: c74e0bc4 user: dan tags: trunk)
16:50
Merge the ota-update branch with trunk. (check-in: 08e2864e user: dan tags: trunk)
16:26
Add a comment for SQLITE_FCNTL_OTA to sqlite.h.in. (Closed-Leaf check-in: efa20f8e user: dan tags: ota-update)
16:22
Allow OTA update state data to be stored in a database separate from the OTA update database. (check-in: 5af8db56 user: dan tags: ota-update)
14:14
Merge latest trunk changes with this branch. (check-in: 6055a672 user: dan tags: ota-update)
11:38
Update Makefile.in so that the amalgamation files built by "make sqlite3.c" include fts5. (check-in: 2870a805 user: dan tags: fts5)
11:32
Fix a memory leak that could follow an OOM condition in fts5. (check-in: de9f8ef6 user: dan tags: fts5)
2015-05-18
20:34
Improve test coverage of fts5_storage.c. (check-in: 4dfe2e58 user: dan tags: fts5)
18:24
Fix a bug in test script fts5fault4.test. (check-in: a5080593 user: dan tags: fts5)
18:03
Add a test for an untested branch in fts5_expr.c. (check-in: ce08206b user: dan tags: fts5)
17:50
Improve test coverage of fts5_config.c. (check-in: 47dbfadb user: dan tags: fts5)
12:28
Transitive constraints should only work if operands have compatible affinities and collating sequences. (check-in: 5df40564 user: drh tags: trunk)
12:18
Use an ALWAY() on conditionals in the transitive constraint logic that are always true as far as we know. (Closed-Leaf check-in: 204e567f user: drh tags: transitive-constraints)
11:34
Refinements to the determination of when an A==B term is an equivalence. Add test cases. (check-in: 6bfaf525 user: drh tags: transitive-constraints)
04:24
Make a hard copy of the results of a subquery lest the result of the subquery be referenced after a change to the table that generated the subquery result. (check-in: 9c0d8090 user: drh tags: trunk)
2015-05-16
20:51
Further restrictions on the use of the transitive property in WHERE clauses. (check-in: 8c886c43 user: drh tags: transitive-constraints)
20:04
Further test coverage improvements for fts5. (check-in: 927d9a64 user: dan tags: fts5)
19:17
Fix the transitive constraint processing to only allow transitivity if the operands of the == or IS operator have compatible affinities. (check-in: a46a247f user: drh tags: transitive-constraints)
18:31
Fix a typo in a comment. No changes to code. (check-in: ee4b7425 user: drh tags: trunk)
03:41
Improve the clean target in the MSVC makefile. (check-in: 2c1039d4 user: mistachkin tags: trunk)
2015-05-15
22:20
Update the README.md file at the top of the repository so that the homepage of Git mirrors of SQLite direct users to the official repository. (check-in: 08f11980 user: drh tags: trunk)
20:14
Minor coding style change, adjust new local variable casing for consistency. (check-in: 1a4628c6 user: mistachkin tags: trunk)
19:59
Do not assume that "col IS ?" matches at most a single row of a UNIQUE column unless the column is also NOT NULL. (check-in: e038ce89 user: dan tags: trunk)
18:13
Improve test coverage of fts5_index.c. (check-in: 7aea8c6d user: dan tags: fts5)
12:18
Add test cases. And some fixes. (check-in: adee7885 user: dan tags: fts5)
04:13
Simplifications to error message processing. Fix a possible problem in error message formatting when vacuuming a database with a corrupt schema. (check-in: 56ef98a0 user: drh tags: trunk)
2015-05-14
15:39
Increase the version number to 3.8.11. Upgrade autoconf from 2.62 to 2.69. (check-in: be438d04 user: drh tags: trunk)
15:17
Merge in the IS-operator enhancements and other recent changes from trunk. (check-in: 4f922944 user: drh tags: sessions)
14:32
The IS operator can now use indexes the same as the == operator. (check-in: 3428043c user: drh tags: trunk)
14:03
A few more test cases for the IS operator. (Closed-Leaf check-in: f397c862 user: drh tags: index-is-operator)
13:41
More test cases. Remove some invalid testcase() macros. Rearrange some code for improved testability. (check-in: b3676377 user: drh tags: index-is-operator)
13:18
Add testcase() macros. Get transitive WHERE clause constraints on IS operators working again. (check-in: d195d4a6 user: drh tags: index-is-operator)
09:53
Merge changes from the index-is-operator branch into this one. Drop the partial support added for IS on this branch by [52e73eec]. (check-in: 16ab9caf user: dan tags: ota-update)
08:58
Merge latest trunk changes with this branch. (check-in: 299ed55c user: dan tags: ota-update)
01:05
A new implementation of indexing with the IS operator that works correctly when the IS operator is in the WHERE clause and the operands are from opposite sides of a LEFT JOIN. (check-in: 4541688b user: drh tags: index-is-operator)
2015-05-13
19:33
Simplified implementation of indexing with the IS operator. (check-in: 95b1f9bf user: drh tags: index-is-operator)
18:12
Merge latest trunk changes with this branch. (check-in: b5f0e8c5 user: dan tags: fts5)
17:54
Add testcase() macros and comments and a few test-cases. (check-in: 24263d08 user: drh tags: index-is-operator)
17:15
Change fts5 doclist-index structures to be trees instead of flat lists. This only makes a difference for databases that contain millions of instances of the same token. (check-in: aa34bf66 user: dan tags: fts5)
15:24
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. (check-in: 6f7f1673 user: drh tags: index-is-operator)
04:52
Merge updates from trunk. (Leaf check-in: 10ee36d0 user: mistachkin tags: get-trace)
04:50
Enhancements to the MSVC makefile. (check-in: 59e3e9e7 user: mistachkin tags: trunk)
2015-05-12
23:33
Use the database mutex where applicable. (check-in: 28cfdabc user: mistachkin tags: get-trace)
23:31
Fix a couple of typos in comments. (check-in: e908365f user: mistachkin tags: get-trace)
23:28
Improve API armor integration. Fix harmless compiler warnings. (check-in: fbf29b45 user: mistachkin tags: get-trace)
23:20
Modify the new functions to make them return a standard return code. (check-in: 02f694d5 user: mistachkin tags: get-trace)
21:27
Experimental API extension for recovering the current trace and profile callbacks on a database connection. (check-in: 9de33768 user: drh tags: get-trace)
19:53
Fix typo in Win32 VFS code enabled when the SQLITE_WIN32_USE_UUID compile-time option is used. (check-in: b33f1bac user: mistachkin tags: trunk)
19:10
Attempt to get DBSTAT to compile without warnings across all build configurations. (check-in: c3cbe3b0 user: drh tags: trunk)
14:22
Fix a compiler warning when building with tclsqlite3.c and without SQLITE_ENABLE_DBSTAT_VTAB. (check-in: aad3ff25 user: drh tags: trunk)
13:32
Improvements to documentation of the sqlite3_column_xxxxx() interfaces. No code changes. (check-in: f1aa951a user: drh tags: trunk)
12:24
Try to get recent sqlite3_analyzer and sqldiff tests working for all tested combinations of compile-time options, especially SQLITE_OMIT_VIRTUALTABLE and SQLITE_OMIT_LOAD_EXTENSION. (check-in: 07c7d392 user: drh tags: trunk)
00:46
Fix sqldiff.exe so that it always runs in single-thread mode. (check-in: c223910e user: drh tags: trunk)
2015-05-11
19:01
Add new fts3 matchinfo option 'b'. Also optimize existing option 'y'. (check-in: 2e7679a1 user: dan tags: trunk)
18:48
Add missing "finish_test" commands to the end of the two new test scripts for sqlite3_analyzer and sqldiff. (check-in: 1d5e72b1 user: drh tags: trunk)
18:46
Merge latest trunk changes into this branch. (Closed-Leaf check-in: 82e5a6e0 user: dan tags: fts3-matchinfo-y)
17:46
Test cases for sqlite3_analyzer and sqldiff. Fix a problem with sqlite3_analyzer related to the renaming of the initialization routine. (check-in: 85a4a46c user: drh tags: trunk)
16:27
Fix minor Makefile typos. Improve consistency of MSVC makefile. Add new targets to clean. (check-in: f84fbe98 user: mistachkin tags: trunk)
12:15
Build the sqlite3_analyzer.exe and sqldiff.exe programs on "make test" and "make smoketest" and other similar test targets. (check-in: 1b83f2e7 user: drh tags: trunk)
11:59
Revamp the way the DBSTAT virtual table is registered. (check-in: 4e652015 user: drh tags: trunk)
06:22
Change autoconf/Makefile.am to avoid building target sqlite3.o as part of both the shared library and shell tool. Doing so causes problems for parallel builds. (check-in: 85bfa9a6 user: dan tags: trunk)
2015-05-10
02:01
Fix the sqlite3_memory_used() and sqlite3_memory_highwater() interfaces so that they really do provide a 64-bit answer. (check-in: 8a0d5d5e user: drh tags: trunk)
2015-05-09
18:28
Allow the fts5vocab table to optionally provide data on a per-column basis. (check-in: 39222761 user: dan tags: fts5)
12:14
Version 3.8.10.1 (check-in: 05b4b1f2 user: drh tags: trunk, release, version-3.8.10.1)
10:27
Bump the version number to 3.8.10.1 (check-in: 9c6bf0c1 user: drh tags: trunk)
2015-05-08
20:21
Add the fts5vocab module, for direct access to the fts5 index. (check-in: 6bf93e3b user: dan tags: fts5)
09:21
Improve the error message returned by FTS5 if it encounters an unknown file format. (check-in: f369caec user: dan tags: fts5)
01:04
Fix harmless compiler warning with MSVC. (check-in: 902d0cb8 user: mistachkin tags: trunk)
00:58
Remove a couple stray test breakpoint calls. (check-in: 2860cebe user: mistachkin tags: trunk)
2015-05-07
20:26
Add an entry to sqlite3_compileoption_used() for SQLITE_ENABLE_DBSTAT_VTAB. (check-in: 480b4cb0 user: drh tags: trunk)
19:29
Change to storing all keys in a single merge-tree structure instead of one main structure and a separate one for each prefix index. This is a file-format change. Also introduce a mechanism for managing file-format changes. (check-in: a684b5e2 user: dan tags: fts5)
18:29
Testing improvements and corner-case bug fixes for the dbstat virtual table. (check-in: d51ce539 user: drh tags: trunk)
14:41
Enhance the dbstat virtual table with the ability to analyze ATTACHed databases. (check-in: 25ec0940 user: drh tags: trunk)
12:29
Merge in the 3.8.10 release changes. (check-in: 0404ef88 user: drh tags: sessions)
11:53
Version 3.8.10 (check-in: cf975957 user: drh tags: trunk, release, version-3.8.10)
00:09
Remove a faulty assert() statement. (check-in: 5f2539da user: drh tags: trunk)
2015-05-06
18:15
Merge latest trunk changes with this branch. (check-in: 8a13e1fd user: dan tags: fts3-matchinfo-y)
17:51
Remove some dead code from fts3_snippet.c. (check-in: 46b2d3ce user: dan tags: fts3-matchinfo-y)
17:41
More optimization for the 'y' and 'b' matchinfo directives. (check-in: 8c5b9fed user: dan tags: fts3-matchinfo-y)
14:18
Have the autoconf package build the shell tool with SQLite linked in statically. (check-in: 31834c3a user: dan tags: trunk)
08:43
Further optimizations for the 'y' and 'b' matchinfo operators. (check-in: fbd038bb user: dan tags: fts3-matchinfo-y)
2015-05-05
20:39
Add the fts3 matchinfo 'b' flag. (check-in: b9b77972 user: dan tags: fts3-matchinfo-y)
19:37
Optimizations for the matchinfo() function, particularly the 'y' flag. (check-in: dddd7e18 user: dan tags: fts3-matchinfo-y)
18:52
Remove four lines of superfluous code identified by clang scan-build. (check-in: 04afa3fe user: drh tags: trunk)
17:12
Merge all trunk enhancements and fixes into the sessions branch. (check-in: de7083cf user: drh tags: sessions)
16:57
Fix a minor coding inefficiency found during pre-release inspection. (check-in: cc50883d user: drh tags: trunk)
11:08
Add #ifdef statements to test_blob.c so that it will build with SQLITE_OMIT_INCRBLOB. (check-in: b8f090e6 user: drh tags: trunk)
10:46
Spell SQLITE_OMIT_VIRTUALTABLE correctly in a #if in dbstat.c. (check-in: d2cb1bec user: drh tags: trunk)
10:03
Fix a faulty assert() in the btree part of the "PRAGMA page_size = ?" code. (check-in: 90b19748 user: dan tags: trunk)
01:09
Fix a problem in Makefile.in that only comes up on Windows with MinGW. (check-in: 5f3cd68b user: drh tags: trunk)
00:48
Fix #ifdef problem in tclsqlite.c. (check-in: fe723bb5 user: drh tags: trunk)
2015-05-04
20:25
Automatically enable the dbstat virtual table on all new database connections with the SQLITE_ENABLE_DBSTAT_VTAB compile-time option is used. (check-in: 1c9c6eaa user: drh tags: trunk)
19:13
In the command-line shell, and the ".binary" command and additional C-style backslash escapes. (check-in: 850c1186 user: drh tags: trunk)
19:06
Add the "dbstat" virtual table as a standard component in the SQLite amalgamation, though turned off unless compiled with SQLITE_ENABLE_DBSTAT_VTAB. (check-in: e7529705 user: drh tags: trunk)
18:31
Rename the test_stat.c source file to dbstat.c and rework the makefiles to make dbstat.c a first-class source module. (Closed-Leaf check-in: a24480a4 user: drh tags: dbstat-in-amalgamation)
17:06
Include the "dbstat" virtual table in the amalgamation. (check-in: fc6504aa user: drh tags: dbstat-in-amalgamation)
16:09
Fix a faulty assert() in the SELECT code generator and add a test case to prevent regression. (check-in: 1421c8ff user: drh tags: trunk)
15:04
Fix a bug in --changeset output for sqldiff.exe for floating-point values. Also fix harmless compiler warnings in sqldiff.exe. (check-in: 9f428530 user: drh tags: trunk)
13:25
Add the --lib option to the sqldiff.exe command-line utility. (check-in: a117e8f6 user: drh tags: trunk)
12:29
Add the 'y' flag to the fts3/4 matchinfo() function. (check-in: aef1e8f4 user: dan tags: trunk)
2015-05-02
20:35
Reorganize some of the fts5 expression parsing code. Improve test coverage of the same. (check-in: c4456dc5 user: dan tags: fts5)
19:54
Improvements to fuzzershell: Avoid excess memory allocations when loading many files. Show the total runtime on final output. Show individual filenames as they are processed even if they are single test-case files. (check-in: 34a722a2 user: drh tags: trunk)
18:25
Add the SQLITE_LIMIT_PRINTF_WIDTH setting for sqlite3_limit() and associated logic for preventing DOS attacks using printf() with oversized widths or precisions. (Leaf check-in: f8b15979 user: drh tags: limit-printf-width)
17:40
Add the ".limit" command to the command-line shell. (check-in: 803cb60e user: drh tags: trunk)
12:40
Reorganize some multi-threaded code in vdbesort.c so that full MC/DC test coverage does not depend on the outcome of a race condition. (check-in: 78c7ec95 user: dan tags: trunk)
11:45
Cleanup of the sqlite3StrAccumInit() function. No functionality changes. (check-in: 7952c322 user: drh tags: trunk)
09:44
Add the experimental matchinfo 'y' flag to fts3/4. (Closed-Leaf check-in: 92941609 user: dan tags: fts3-matchinfo-y)
2015-05-01
20:38
Further improvements to test coverage of fts5 code. (check-in: d4331943 user: dan tags: fts5)
20:34
Enhance the fuzzershell --uniquecases option to output results in order of increasing runtime and to include the runtime in the comment separator of the output. (check-in: 04630b98 user: drh tags: trunk)
19:21
Enhance fuzzershell to accept multiple input files. Add the test/fuzzdata2.txt fuzz test content. (check-in: ab5523aa user: drh tags: trunk)
18:00
Fix an assert in RTREE that would fire if the rtree table is misdeclared. (check-in: 9a45409c user: drh tags: trunk)
16:57
Fix an assert() failure caused by setting "PRAGMA journal_mode=off" on an database in exclusive-mode that has already opened the journal file. (check-in: 40db3e40 user: dan tags: trunk)
15:25
Remove obselete comment text from the description of the Table object. No changes to code. (check-in: 6566b72a user: drh tags: trunk)
14:07
Use the sqlite3Fts3ErrMsg() function to set error message text in FTS3, and to ensure that error messages are not overwritten and thus leaked. (check-in: 605347e0 user: drh tags: trunk)
12:14
Improve test coverage of fts5.c. (check-in: add4f468 user: dan tags: fts5)
2015-04-30
20:35
Enhance the CLI to initialize the dbstat virtual table if compiled using SQLITE_ENABLE_STAT_VTAB. (check-in: 822dfc00 user: drh tags: trunk)
20:33
Fix a harmless comment typo. (check-in: 012a0c4e user: drh tags: trunk)
20:26
Avoid dropping an error code in test function sqlite3_dbstat_register(). (check-in: 9a9f633f user: dan tags: trunk)
13:06
Modify the mkfuzzdata1.tcl script so that it retains the culled test vectors in the tmp2 subdirectory. (check-in: 431a958f user: drh tags: trunk)
12:31
Fix signed/unsigned comparison compiler warnings. Add the SQLITE_OMIT_RANDOMNESS compile-time option to cause the PRNG to be seeded identically on every run, for testing purposes. (check-in: 93ce2bca user: drh tags: trunk)
2015-04-29
20:54
Improve fts5 tests. (check-in: c1f07a3a user: dan tags: fts5)
16:50
Use sqlite3_malloc64() in place of sqlite3_malloc() internally. (check-in: 48f553b0 user: drh tags: trunk)
00:35
Improved support for OSTRACE on Windows. (check-in: ca43812b user: drh tags: trunk)
2015-04-28
23:34
Revise when the sqlite3ErrName() function is defined. (Closed-Leaf check-in: 9e593fb3 user: mistachkin tags: winTest)
20:24
Fix an fts5 bug in handling writes while there are active cursors. (check-in: 07f70955 user: dan tags: fts5)
18:35
Improve coverage of fts5 tests. (check-in: 8e8136f2 user: dan tags: fts5)
14:49
Update the test/fuzzdata1.txt file with the latest cases discovered by AFL. (check-in: f2063f53 user: drh tags: trunk)
14:07
Fix an assert() failure that could occur if the internal sqlite3_rename_parent() SQL scalar function was invoked directly. (check-in: 36e51526 user: dan tags: trunk)
14:00
Fix sqlite3VdbeMakeWritable() to always clear the MEM_Ephem flag. Change the OP_Move opcode to always deephemeralize moved content. (check-in: fbb06727 user: drh tags: trunk)
13:11
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. (Closed-Leaf check-in: 091cfe8e user: drh tags: mistake)
12:44
Shift the Mem.pScopyFrom pointer in the correct direction in OP_Move. Fix for a defective check-in [a2135ad13049] and ticket [d6352363751]. Debugging code only - does not affect normal operation. (check-in: add4e043 user: drh tags: trunk)
12:27
Add code to the shell to optionally initialize the dbstat virtual table. (Closed-Leaf check-in: 7ed86dd3 user: drh tags: stat-vtab-in-shell)
01:28
Fix comment typos. No code changes. (check-in: 60174cf5 user: drh tags: trunk)
00:53
Add a TCL script that can be run to generate the fuzzdata1.txt file. (check-in: fdc79fd1 user: drh tags: trunk)
2015-04-27
19:53
Add fault-injection tests for the code in test_stat.c. (check-in: ea5e0b74 user: dan tags: trunk)
16:21
Change the fts5 content= option so that it matches fts5 columns with the underlying table columns by name, not by their position within the CREATE TABLE statement. (check-in: e38e2bb6 user: dan tags: fts5)
15:08
Update the fuzzer test data after having run it through afl-cmin to remove redundant test cases. (check-in: 8134d41b user: drh tags: trunk)
11:31
Further tests for fts5. (check-in: ffeb3ef3 user: dan tags: fts5)
2015-04-25
20:29
Improve coverage of fts5_index.c slightly. (check-in: e5aaa013 user: dan tags: fts5)
18:56
Add tests for fts5. (check-in: e748651c user: dan tags: fts5)
18:39
Fix compiler warnings in sqldiff. (check-in: 5f48d6f6 user: drh tags: trunk)
17:45
Update the AFL fuzzer data with newly discovered paths. (check-in: d9821980 user: drh tags: trunk)
16:39
Fuzzershell: change the error summary output to work with releasetest.tcl. Reduce the maximum number of OOM interations. (check-in: f5e6c4b2 user: drh tags: trunk)
13:39
Add the fuzzoomtest target to the makefiles. Invoke fuzzoomtest from releasetest.tcl. (check-in: f60657c2 user: drh tags: trunk)
12:20
Fix an obscure memory leak that could follow an OOM in where.c. (check-in: 08ec9f2f user: dan tags: trunk)
11:35
In fuzzershell: (1) comment fixes. (2) Set and clear g.zTestName[] correctly. (3) Use the value in g.zTestName[] in error messages. (check-in: b7394755 user: drh tags: trunk)
11:19
In the fuzzershell, always invoke the trace and log callbacks even if output is suppressed. Keep track of the current test name in a global variable for simplified debugging. (check-in: 3045f454 user: drh tags: trunk)
00:32
Do not send the extra ";" and "\000" tokens to the parser if a prior error has occurred. (check-in: 9aa70ddf user: drh tags: trunk)
00:20
Add fflush() calls to fuzzershell to keep stderr and stdout synchronized. (check-in: 2b98a252 user: drh tags: trunk)
2015-04-24
23:45
Add the --oom option to fuzzershell. (check-in: 14a9e4a3 user: drh tags: trunk)
20:18
Merge latest trunk changes with this branch. (check-in: 1c78d892 user: dan tags: fts5)
19:41
Add the "unindexed" column option to fts5. (check-in: 86309961 user: dan tags: fts5)
18:31
Fix fuzzershell so that it works with SQLITE_OMIT_TRACE. (check-in: dc88fe7e user: drh tags: trunk)
17:50
Add the --with-tcl=DIR option to the test/releasetest.tcl script. (check-in: 4dda916a user: drh tags: trunk)
16:53
Run fuzzershell as part of the valgrindtest makefile target. (check-in: 0bb96a03 user: drh tags: trunk)
16:16
Add the fuzztest target to the MSVC makefile. (check-in: 98edc615 user: drh tags: trunk)
16:09
Add AFL-generated test cases in the test/fuzzdata1.txt file. Automatically run fuzzershell against those cases on a "make test". (check-in: 627ea83c user: drh tags: trunk)
15:56
Add extra tests for corrupt database handling in fts5. (check-in: 41449f7a user: dan tags: fts5)
14:47
Add the --unique-cases option to fuzzershell. (check-in: 7cb71849 user: drh tags: trunk)
13:00
Fuzzershell enhancements: (1) Add the --verbose and --quiet flags (2) Show percentage complete and final test count for multi-test inputs (3) Omit trace and result logs unless the --verbose flag is used. (check-in: ed202ffa user: drh tags: trunk)
06:02
Fix an fts5 build problem in main.mk. (check-in: 60045ced user: dan tags: fts5)
2015-04-23
19:38
Fix a problem in the "ota" utility program causing it to crash if SQLite failed to open the target database. (check-in: a1a2b4a2 user: dan tags: ota-update)
19:32
Merge latest trunk changes into this branch. (check-in: 1506e99e user: dan tags: ota-update)
19:18
Fix a performance problem in calls to sqlite3ota_close() made after the OTA update has been completely applied and checkpointed. (check-in: fa62093b user: dan tags: ota-update)
18:14
Have OTA maintain a small LRU cache of UPDATE statements. This reduces the amount of time it spends compiling UPDATE if a single data_xxx table contains many different ota_control strings. (check-in: baee3556 user: dan tags: ota-update)
17:22
Modify the sqlite3session_diff() API so that tables with no PRIMARY KEYs are ignored. This matches the other sessions APIs. Also change sqlite3session_diff() so that it returns SQLITE_SCHEMA, instead of SQLITE_ERROR, if the tables being compared do not have compatible schemas. (check-in: aada0ad0 user: dan tags: sessions)
15:03
Fix the error message returned by sqlite3session_diff() for tables with no PRIMARY KEY. (check-in: 4d34a3d4 user: dan tags: sessions)
14:40
Fix a performance problem in sqlite3session_diff(). (check-in: ea400eca user: dan tags: sessions)
13:49
Merge the latest trunk enhancements and fixes into the sessions branch. (check-in: 4e5f17d1 user: drh tags: sessions)
13:37
Fix a faulty assert() in the "AS" alias resolution logic of the parser. (check-in: b5e43602 user: drh tags: trunk)
13:00
Improvement to "ID" formatting on the ".selecttrace 0x1ff" debugging function. (check-in: 01c50cee user: drh tags: trunk)
11:52
Fix a problem causing the fts3 integrity-check to fail if run inside a transaction. (check-in: 3b925189 user: dan tags: trunk)
2015-04-22
20:58
Add extra OOM tests for fts5. (check-in: 2dd59b57 user: dan tags: fts5)
20:14
Fix problems with doclist-indexes involving very large rowids. (check-in: 1e599409 user: dan tags: fts5)
14:41
Prototype for an sqlite3_db_log() interface. (Leaf check-in: 658e20f5 user: drh tags: sqlite3_db_log)
13:16
Improved filtering of input for fuzzershell for modes other than generic. (check-in: 025e8370 user: drh tags: trunk)
11:34
Add comments related to database locking to sqlite3ota.h. (check-in: 77242965 user: dan tags: ota-update)
11:16
Change the printf, strftime, and glob modes of fuzzershell so that they reject all inputs that do not start with a string literal followed by a comma. This helps the fuzzer focus in on the kinds of behavior those modes are intended to test. (check-in: 1cceefa7 user: drh tags: trunk)
09:40
Update this branch with latest trunk changes. (check-in: 9797482d user: dan tags: fts5)
01:33
When compiling for UAP, link against the new minimal MSVC runtime. (check-in: 2cb94511 user: mistachkin tags: trunk)
2015-04-21
20:13
Fix a problem in fts5fault1.test. (check-in: a21d60cb user: dan tags: fts5)
19:07
Fix an fts5 problem with large deletes. (check-in: e50e8031 user: dan tags: fts5)
17:17
Alternative fix for the double-initialization of type and collating sequence problem that leaves the estimated table size intact. (check-in: 623ddbdb user: drh tags: trunk)
17:07
Make sure the datatype and collating sequence of transients tables are not initialized more than once. Otherwise a memory leak results. (check-in: 9e6beda2 user: drh tags: trunk)
16:38
Ensure that tables names are dequoted exactly once by the trigger logic. (check-in: 9d887b92 user: dan tags: trunk)
16:09
Fix a memory leak in the SELECT code generator tracing logic (code that is omitted in non-debugging builds). (check-in: b623ebd8 user: drh tags: trunk)
15:49
Fix an obscure problem with "INSERT INTO tbl(cols) SELECT" statements where the SELECT is a compound with an ORDER BY and "cols" is a strict subset of tbl's columns. (check-in: 718d5d0e user: dan tags: trunk)
15:35
Add a comment to sqlite3ota.h. No code changes. (check-in: 352fa09e user: dan tags: ota-update)
15:16
Change an assert() in the aggregate query code generator into a testcase(). (check-in: d1e6bc91 user: drh tags: trunk)
12:06
Fix an fts4 problem to do with the handling of phrases that contain zero tokens. (check-in: caba5be0 user: dan tags: trunk)
03:13
Fix some identifier name de-quoting issues in the foreign key and trigger logic. (check-in: 59e92bd9 user: drh tags: trunk)
02:17
Test case for the previous check-in. (check-in: a526f58b user: drh tags: trunk)
02:12
Make sure the whereSplit() routine in the query planner is not confused by the likely() operator. (check-in: 588db14f user: drh tags: trunk)
00:23
Enable compilation and VSIX package creation with the Visual Studio 2015 CTP. (check-in: 03b725a7 user: mistachkin tags: trunk)
2015-04-20
23:53
Merge updates from trunk. (Closed-Leaf check-in: 583a79a0 user: mistachkin tags: vsix2015)
22:36
Add the --mode option to fuzzershell. (check-in: b940b0fa user: drh tags: trunk)
18:58
Many new configuration options for fuzzershell. (check-in: 41c95439 user: drh tags: trunk)
18:48
Fix some fts5 problems with very large position lists. (check-in: 2ea8f9cb user: dan tags: fts5)
15:13
Fix a memory leak caused by duplicate entries in the sqlite_stat1 table. (check-in: 2f58c8c9 user: dan tags: trunk)
13:59
Fix an obscure memory leak in sqlite3Stat4ProbeFree() (check-in: c72abbe2 user: drh tags: trunk)
12:50
Enhance fuzzershell to support multiple blocks of SQL, each run in its own private in-memory database. (check-in: ab0a96ca user: drh tags: trunk)
01:32
Merge all recent trunk enhancements and fixes into the sessions branch. (check-in: b8ef1cde user: drh tags: sessions)
01:25
Merge all recent trunk enhancements and fixes into the apple-osx branch. (check-in: 74b7bf17 user: drh tags: apple-osx)
01:13
Add an ALWAYS() around a new branch that was made unreachable by an even newer change. (check-in: 592c0104 user: drh tags: trunk)
2015-04-19
23:48
Fix another harmless compiler warning. (check-in: 5ae853aa user: mistachkin tags: vsix2015)
23:40
Merge updates from trunk. (check-in: 59d1a3bb user: mistachkin tags: vsix2015)
23:39
Modify the 'mkvsix' tool itself to support the Visual Studio 2015 CTP. (check-in: e0b7a191 user: mistachkin tags: vsix2015)
23:11
Fix an off-by-one assert() in the virtual table argument tokenizer. (check-in: c83052e4 user: drh tags: trunk)
22:41
Fix a broken assert() and comparison for INSERT INTO ... SELECT when the SELECT uses an unknown collating sequence. (check-in: e73ac0cb user: drh tags: trunk)
22:31
Silently ignore parser stack overflow when parsing a malformed schema in PRAGMA writable_schema mode. (check-in: 2cb37b95 user: drh tags: trunk)
21:59
Fix another assert() that is not true if the database schema is corrupt. (check-in: bc97cec6 user: drh tags: trunk)
21:43
Fix harmless compiler warnings seen with MSVC 2015. (check-in: d05becd8 user: mistachkin tags: vsix2015)
20:39
Fix a faulty assert in the schema parsing logic. (check-in: b1ed9495 user: drh tags: trunk)
19:53
Document the NMAKE_ARGS environment variable as well. (check-in: 977fd39c user: mistachkin tags: vsix2015)
19:21
Fix a potential NULL pointer deference on a corrupt database schema. (check-in: dc61b292 user: drh tags: trunk)
18:58
Improve documentation and comments in the MSVC batch build tool. (check-in: ca64ef07 user: mistachkin tags: vsix2015)
18:32
Bring comments on the INSERT code generator up-to-date. Fix the INSERT code generator so that it correctly handles inserts from a SELECT into a virtual table with non-terminal hidden columns. (check-in: 4ac81fac user: drh tags: trunk)
06:18
Work in progress on making VSIX packages for the Visual Studio 2015 CTP. (check-in: 8469d651 user: mistachkin tags: vsix2015)
2015-04-18
19:20
The sqlite3_trace() callback does not try to expand parameters in statements that have no parameter. (check-in: 917e3c36 user: drh tags: trunk)
17:43
Fix an incorrect assert() statement in the CREATE INDEX code generator. (check-in: 2eed41fd user: drh tags: trunk)
16:25
Ensure that if a "ROLLBACK TO" statement is used to rollback (but not close) theoutermost transaction, the xRollbackTo() method of any virtual tables involved in the transaction is invoked. (check-in: e98d481d user: dan tags: trunk)
04:45
Disregard leading zeros when converting strings to 32-bit integers. (check-in: 691cc201 user: drh tags: trunk)
00:22
Fix an incorrect assert() in the sqlite3_trace() logic. (check-in: eabde339 user: drh tags: trunk)
2015-04-17
20:51
Fix a problem affecting some fts3 UPDATE and DELETE statements on order=DESC tables. (check-in: 284c1623 user: dan tags: trunk)
19:41
In the expression-tree comparison routine, do not compiler Expr.iColumn and Expr.iTable for TK_STRING expressions. (check-in: b67bb16c user: drh tags: trunk)
18:52
Always resolve symbols in all ORDER BY clauses of a compound-SELECT, even illegal ORDER BY clauses. (check-in: 6c39ef73 user: drh tags: trunk)
18:22
Remove unnecessary parser error count increments. Let the sqlite3ErrorMsg() take care of doing that. (check-in: 3f3b0f68 user: drh tags: trunk)
17:00
Ensure that filenames passed to the VFS xOpen() function are terminated by 2 '\0' bytes. (check-in: 66eff473 user: dan tags: ota-update)
16:29
Fix a memory leak in sqlite3ota.c that can follow an OOM error. (check-in: c3dc15e7 user: dan tags: ota-update)
16:12
Remove an ALWAYS() that turns out to be false when there is a semantic error on a compound SELECT. (check-in: ad67a67c user: drh tags: trunk)
15:58
Ensure that semantic SQL errors are always reported back up to the syntax parser. Also: Improve the defense against invalid PRAGMA synchronous settings. (check-in: 7aeade9a user: drh tags: trunk)
15:16
Fix a faulty assert() in sqlite3SelectNew(). (check-in: 620d19c3 user: drh tags: trunk)
14:30
Add the tool/fuzzershell.c utility program. (check-in: db8d9af4 user: drh tags: trunk)
12:16
Fix the header comment on the sqldiff utility program. No code changes. (check-in: b355ca3a user: drh tags: trunk)
11:31
Hold the database mutex for the duration of sqlite3session_diff(). (check-in: 6f330501 user: dan tags: sessions)
08:36
Have OTA always specify SQLITE_CONFIG_URI when opening databases. Fix a test issue causing otacrash.test to fail. (check-in: 0d0e5ec0 user: dan tags: ota-update)
2015-04-16
23:04
Restrict the scope of a local-use function in the parser. (check-in: cd6598f4 user: drh tags: trunk)
21:57
Use a heap rather than a bitmap for cell coverage and overlap testing on btree pages in PRAGMA integrity_check. (check-in: e94b2ef2 user: drh tags: trunk)
20:27
Fix a couple of unreachable branches. (check-in: 8f391dff user: drh tags: trunk)
20:10
Fix a boundry-value condition in the phrase poslist extractor of FTS3/4. (check-in: 55d10baf user: drh tags: trunk)
18:49
Be sure to release any xShmLock locks held when closing an OTA handle. (check-in: d0fba72a user: dan tags: ota-update)
18:11
Make sure all cursors are closed when returning from a VDBE subprogram that implements a foreign-key construct. (check-in: d04d354d user: drh tags: trunk)
17:31
Fix the VDBE so that it always uses the original opcode for profiling and debugging even after the pOp pointer has been updated due to a jump. (check-in: 647495cf user: drh tags: trunk)
16:27
Restore SQLITE_FORCE_OS_TRACE to the MSVC makefile, which was removed during a merge. (check-in: c37f4d49 user: mistachkin tags: winTest)
16:22
Fix a faulty assert() in the compound-SELECT code generator. (check-in: 10715b05 user: drh tags: trunk)
16:04
Silently ignore requests to change the PRAGMA synchronous setting to an illegal integer value, rather than raising an assertion. (check-in: e0a88176 user: drh tags: trunk)
15:47
Make sure errors in coding triggers are propagated back up to the parser. (check-in: 928f973c user: drh tags: trunk)
15:05
Add the --backslash option to the command-line shell for testing purposes. (check-in: dd96211e user: drh tags: trunk)
14:33
Fix a faulty assert() in the compound select code generator. (check-in: 9d336be1 user: drh tags: trunk)
14:33
Fix a mismatched printf() argument and format specifier. Add ota files to Makefile.in. (check-in: 5db810a8 user: dan tags: ota-update)
14:13
Improvements to the way VALUES clauses are parsed. (check-in: ec5a493a user: drh tags: trunk)
13:52
Fix a stray backslash character in a printf format string in sessionDiffFindModified() (check-in: abb192a1 user: drh tags: sessions)
12:12
Fix the corruptC.test module due to a change in error message text. (check-in: 7c0deed2 user: drh tags: trunk)
12:09
Checked in the wrong fix. (Closed-Leaf check-in: 4b0f4484 user: drh tags: mistake)
11:56
Use a heap instead of a bitmap for cell overlap and coverage testing of btree pages in PRAGMA integrity_check. (Closed-Leaf check-in: 5619c959 user: drh tags: integrity-check-heap)
10:55
Avoid attempting to rename the *-oal file while it is still open. (check-in: 658c3b0c user: dan tags: ota-update)
08:54
Fix a problem in test file e_reindex.test. (check-in: 5b3de939 user: dan tags: trunk)
07:19
Ensure the sqlite3Select() routine always returns non-zero if an error has occurred. (check-in: b51028ed user: dan tags: trunk)
04:20
Merge updates from trunk. (Closed-Leaf check-in: 22827542 user: mistachkin tags: expShell)
03:56
Move OSTRACE defines so they are visible to all source files that need them. (check-in: 72485c97 user: mistachkin tags: winTest)
03:37
Make sure the sqlite3DebugPrintf() function is defined for OSTRACE as well. (check-in: ae5af704 user: mistachkin tags: winTest)
03:24
Merge updates from trunk. Make OSTRACE changes work on Linux. (check-in: cd154266 user: mistachkin tags: winTest)
00:26
When parsing the schema, ignore any SQL that does not begin with "CREATE". (check-in: d3c00d61 user: drh tags: trunk)
2015-04-15
19:25
Fix a potential one-byte buffer overread in the command-line shell. (check-in: e018f4bf user: drh tags: trunk)
19:13
Add the BtCursor.pPage field which is the current page to which the cursor points, for a very small performance gain. (Leaf check-in: a200e1ea user: drh tags: btree-current-page-cache)
18:49
Logically store updates as (insert+delete) within the FTS tree. This allows keys to be annihilated more quickly under some circumstances. (check-in: 50fae1f0 user: dan tags: fts5)
17:26
Prevent the fetchPayload() routine from reporting a cell size that extends off the end of the page on a pathologically corrupted database file. (check-in: f71053cf user: drh tags: trunk)
16:01
Fix a problem preventing doclist indexes from being loaded. (check-in: b29109a0 user: dan tags: fts5)
15:29
Enhance the showdb utility program so that it can read the last partial page of a truncated database file. (check-in: 61d72e17 user: drh tags: trunk)
14:52
Add the --msvc command-line option to the releasetest.tcl script. This is only a partial merge from the winTest branch as the OS_TRACE changes are omitted. (check-in: b8768f12 user: drh tags: trunk)
14:26
Merge all recent trunk enhancements and fixes into the ota-update branch. (check-in: 9bd3e445 user: drh tags: ota-update)
14:14
Merge all recent trunk fixes and enhancements into the sessions branch. (check-in: e65e65f9 user: drh tags: sessions)
13:51
Merge recent trunk fixes and enhancements into the apple-osx branch. (check-in: bfc7142a user: drh tags: apple-osx)
09:16
Remove an incorrect assert() statement from sqlite3Fts3Dequote(). (check-in: bd06eeb8 user: dan tags: trunk)
08:37
Remove a branch that became unreachable due to one of the earlier check-ins today. (check-in: fa0956ed user: drh tags: trunk)
08:20
Fix a problem causing an assert() to fail if a snippet containing 0 tokens was requested from fts3. (check-in: eafd0a1e user: dan tags: trunk)
07:57
Fix the error message generator for illegal token errors so that it does not leak memory if it immediately follows another erroneous SQL statement. (check-in: 3576973f user: drh tags: trunk)
07:34
Remove an incorrect ALWAYS() from the automatic index generator. (check-in: eeb4bd06 user: drh tags: trunk)
07:19
Remove an incorrect ALWAYS() from the table_info pragma. (check-in: 0e087c01 user: drh tags: trunk)
07:10
Change the multiSelectOrderBy() routine to return non-zero if there has been any prior error. (check-in: 14784c31 user: drh tags: trunk)
06:45
Fix a faulty assert() statement in the name resolver associated with the optimization that converts compound selects with ORDER BY COLLATE into subqueries. (check-in: c72324ef user: drh tags: trunk)
05:57
Correctly handle COLLATE operators applied to COLLATE operators in an ORDER BY clause. (check-in: 9e1f837b user: drh tags: trunk)
05:38
Fix a faulty assert() in the sqlite3StrAccumAppend() routine. (check-in: 998cfdb8 user: drh tags: trunk)
05:31
Correctly deal with an unknown collating sequence on an indexed DISTINCT query. (check-in: a0b6e2fe user: drh tags: trunk)
05:20
When adding the implied "LIMIT 1" to the end of a scalar subquery, make sure that subquery is not a VALUES-only query as such queries cannot deal with LIMIT clauses. (check-in: 7c27310b user: drh tags: trunk)
04:51
When doing the (dubious) conversion of double-quoted identifier into string literal for MySQL compatibility, be sure to also clear the iTable value from the Expr entry to avoid an assert. (check-in: d7211b68 user: drh tags: trunk)
04:20
Add a test case for what was formerly thought to be an unreachable condition: when the LHS of an OR operator contains an error and the RHS contains an IN operator. (check-in: 38727425 user: drh tags: trunk)
04:10
An oversize hex literal can cause a parsing error while generating code for constants that are factored out of the main body of the VDBE program. So allow for that case. (check-in: a084690b user: drh tags: trunk)
2015-04-14
20:15
Begin changing fts5 to use a delete flag so that delete markers may be annihilated more quickly. (check-in: 9341c070 user: dan tags: fts5)
19:01
Add the --summary option to the sqldiff command-line tool. (check-in: 88b22761 user: drh tags: trunk)
15:14
Update API documentation to identify many functions as methods on objects. No changes to code. (check-in: b549cbce user: drh tags: trunk)
2015-04-13
23:11
Merge all recent trunk enhances into the apple-osx branch. (check-in: e709d3b4 user: drh tags: apple-osx)
23:05
Add #ifdef magic for HAVE_GETHOSTUUID so that the build will hopefully now work on more verions of MacOS with SQLITE_ENABLE_LOCKING_STYLE turned on. (check-in: 211411d0 user: drh tags: trunk)
22:26
On a DETACH statement, keep all schemas intact except fo the one that is being detached, and thus avoid unnecessary schema reparsing. (check-in: 661db19b user: drh tags: trunk)
21:39
Omit the "pc" or "program counter" variable from the VDBE loop for 0.6% performance increase. (check-in: d2f10c41 user: drh tags: trunk)
19:14
Remove the out2-prerelease VDBE opcode property and its associated code, for a 0.5% performance improvement. (check-in: e29c7f2c user: drh tags: trunk)
17:43
Add a comment to wal.c to explain why a race condition is safe. (check-in: bc33af86 user: dan tags: trunk)
14:44
Remove a faulty assert() from the btree balancing logic. (check-in: d06669d9 user: drh tags: trunk)
14:08
Test that if the definition of a collation sequence is changed and VACUUM run, the new database contains records sorted in the (new) correct order. (check-in: ce6eaac1 user: dan tags: trunk)
14:03
Remove an unreachable branch from the VACUUM logic. (check-in: 65ace4b0 user: drh tags: trunk)
12:45
Remove an unreachable branch from the vdbeSorterCompareInt() routine. (check-in: f666ef06 user: drh tags: trunk)
2015-04-12
21:28
Update the version number to 3.8.10 because of the new sort optimizations from check-in [79326d6eec]. (check-in: bd2cfa1d user: drh tags: trunk)
17:35
Fix a problem with a stale Select.pWith pointer when a CTE is used together with a compound query and an ORDER BY clause. (check-in: 9a453f52 user: drh tags: trunk)
01:33
Merge all recent trunk enhancements into the sessions branch. (check-in: 5f14f34f user: drh tags: sessions)
01:22
Avoid problems when a query has a GROUP BY and an ORDER BY but no FROM clause. (check-in: e527d96a user: drh tags: trunk)
2015-04-11
20:44
Optimizations for VACUUM, CREATE INDEX and some cases of ORDER BY. (check-in: 79326d6e user: dan tags: trunk)
20:20
Fix a problem with sorting large amounts of partially ordered data. (check-in: acca97ef user: dan tags: trunk)
18:45
Merge latest trunk changes with this branch. (Closed-Leaf check-in: cf7590f6 user: dan tags: sorter-opt)
18:25
Have fts5 integrity check verify that prefix indexes contain the same values as returned by prefix queries on the main terms index. (check-in: bdb8e82a user: dan tags: fts5)
17:09
Merge the sessions-diff branch with this one. (check-in: 805baa57 user: dan tags: sessions)
16:23
Improve fts5 integrity-check so that it checks that DESC queries return the same as ASC. Change the poslist format slightly to make room for a delete-flag. (check-in: 49c1e745 user: dan tags: fts5)
13:49
Add the --changeset option to the sqldiff utility program, for generating a sessions changeset file instead of an SQL diff. (check-in: f9a3a839 user: drh tags: trunk)
13:48
The --changeset option now appears to be working. (Closed-Leaf check-in: 1a2e2803 user: drh tags: sqldiff-changeset)
12:07
First complete attempt to generate a working changeset. Still contains bugs. (check-in: 5611fa9b user: drh tags: sqldiff-changeset)
11:53
Update tests in whereD.test to account for the change in the previous commit. (check-in: da49700c user: dan tags: trunk)
11:44
Do not assume an index contains unique entries unless it is declared UNIQUE and NOT NULL is specified for all columns. Fix for [7b4fee9f6c]. (check-in: e3b1f625 user: dan tags: trunk)
02:08
Detect and report oversized records constructed from multiple zeroblobs. (check-in: 9e139afd user: drh tags: trunk)
2015-04-10
21:16
Minor build enhancements for MSVC. (check-in: 40c417a7 user: mistachkin tags: trunk)
19:41
Work toward adding the --changeset option to the sqldiff utility program. Changes are incomplete. This is an incremental check-in. (check-in: 463e38d7 user: drh tags: sqldiff-changeset)
16:05
In sqlite3_declare_vtab(), avoid accessing the database structure until after the "api-armour" safety-check has completed and the db mutex has been obtained. (check-in: 860e4f8a user: dan tags: trunk)
12:04
Fix foreign key CASCADE for cases where the parent key is an INTEGER PRIMARY KEY and the parent table contains other columns named "rowid", "_rowid_", and "oid". (check-in: ed3cbaab user: drh tags: trunk)
08:28
Update this branch with the latest changes from sorter-opt. (Leaf check-in: 08c0b19b user: dan tags: insert-select-opt)
08:20
Update this branch with latest trunk changes. (check-in: 60be9c1c user: dan tags: sorter-opt)
07:55
Do not allow virtual table constructors to be called recursively. (check-in: 0a72726d user: dan tags: trunk)
2015-04-09
19:39
Fix incorrect column names in UPDATE statements generated by the sqldiff utility. (check-in: ee53b460 user: drh tags: trunk)
19:19
Updates to comments describing the changeset and patchset formats. (check-in: 5342f721 user: dan tags: sessions)
18:14
Add the --primarykey option to the sqldiff tool, which causes it to use the schema-defined PRIMARY KEY. (check-in: 5063f907 user: drh tags: trunk)
16:30
Remove two pointless assert() statements. This should silence harmless compiler warnings reported at https://bugzilla.mozilla.org/show_bug.cgi?id=1152845 (check-in: 83b342a4 user: drh tags: trunk)
13:40
Fix comment typos in the sqldiff.c utility program. (check-in: 32ab2bb9 user: drh tags: trunk)
13:34
Add the "sqldiff" utility program. (check-in: 88da5bf5 user: drh tags: trunk)
11:24
Remove a variable initializion to silence a harmless compiler warning. (check-in: 79861adb user: drh tags: trunk)
2015-04-08
16:43
Fix problems in the sessions module causing it to produce spurious SQLITE_NOMEM errors when handling SQL text or blob values zero bytes in size. (check-in: b9459d59 user: dan tags: sessions)
16:01
Add experimental API sqlite3session_diff(). (Closed-Leaf check-in: c4340b2e user: dan tags: sessions-diff)
14:01
Merge all changes for version 3.8.9 into the ota-update branch. (check-in: ec9d907a user: drh tags: ota-update)
12:47
Merge in all version 3.8.9 changes from trunk. (check-in: 30121870 user: drh tags: apple-osx)
12:16
Version 3.8.9 (check-in: 8a8ffc86 user: drh tags: trunk, release, version-3.8.9)
2015-04-07
23:10
Merge printf() width and precision overflow fixes from trunk. (check-in: aeca95ac user: drh tags: sessions)
21:18
Merge updates from trunk. (check-in: c458db41 user: mistachkin tags: expShell)
21:17
Correct typo in new test numbering. (check-in: d176c9fa user: mistachkin tags: expShell)
21:16
Enhance the shell export to support emitting column names in 'insert' mode when headers are enabled. (check-in: 6e504cd0 user: mistachkin tags: expShell)
15:39
Avoid signed integer overflow when converting oversized in-line integer widths and precisions in printf(). (check-in: 8e4ac2ce user: drh tags: trunk)
14:38
Another change to avoid a problem caused by integer overflow in the printf() code. (check-in: 95625ef3 user: dan tags: trunk)
13:28
Further changes to guard against integer overflow in the width and precision of printf() arguments. (check-in: 5ce4e7d7 user: drh tags: trunk)
12:41
Guard against excessive width and precision in floating-point conversions in the printf routines. (check-in: c494171f user: drh tags: trunk)
2015-04-06
22:05
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]. (Leaf check-in: e5f5ef00 user: drh tags: apple-osx-385)
12:08
Merge obscure problem fixes from trunk. (check-in: 271c110b user: drh tags: sessions)
11:04
Fix a problem with fts3 prefix terms within phrase queries on "order=DESC" tables with a mix of negative and positive rowids. (check-in: 3ad829e5 user: dan tags: trunk)
09:05
Fix a problem with fts3 prefix terms within phrase queries on "order=DESC" tables with a mix of negative and positive rowids. (Closed-Leaf check-in: 0cdf5028 user: dan tags: fts3-prefix-query-fix)
2015-04-04
16:49
Fix a problem with resolving ORDER BY clauses that feature COLLATE clauses attached to compound SELECT statements. (check-in: edc1de2a user: dan tags: trunk)
16:43
Fix a problem with resolving ORDER BY clauses that feature COLLATE clauses attached to compound SELECT statements. (Closed-Leaf check-in: 427b50fb user: dan tags: compound-order-by-fix)
00:02
Enhance the 'releasetest.tcl' tool to support MSVC. (check-in: f664bfdc user: mistachkin tags: winTest)
2015-04-03
20:33
Disable the SQLITE_FCNTL_WAL_BLOCK feature for now. It needs more work and is not yet ready for release. (check-in: 4ae9a3ac user: drh tags: trunk)
18:33
Add source code to the "showlocks" utility program in the tool/ subdirectory. (check-in: 6868cc66 user: drh tags: trunk)
2015-04-02
17:46
Fix build with OSTRACE enabled on Windows when building using separate source files. (check-in: 5f6e3580 user: mistachkin tags: winTest)
15:24
Disable e_walauto.test on OpenBSD, as it requires a coherent cache. (check-in: 90701227 user: dan tags: trunk)
09:06
Fix a problem in vdbesort.c to do with caching unpacked records. (check-in: 80a00539 user: dan tags: sorter-opt)
2015-04-01
18:22
Merge latest trunk changes with this branch. (check-in: 4621b2ee user: dan tags: sorter-opt)
18:20
When vacuuming an index that uses no collations other than BINARY, assume that the order of index entries will not be changed by the VACUUM. (check-in: e403460b user: dan tags: sorter-opt)
16:39
Merge recent enhancements from trunk. (check-in: aea439bd user: drh tags: sessions)
16:18
Reduce the CPU used by CREATE INDEX statements by taking better advantage of the fact that keys are inserted in sorted order. (check-in: 592cdc5d user: dan tags: sorter-opt)
16:13
Merge all recent trunk fixes and enhancements into the apple-osx branch. (check-in: 71b6f507 user: drh tags: apple-osx)
13:21
Improved detection and suppression of endless loops in clearDatabasePage(). (check-in: 30011ad2 user: drh tags: trunk)
01:26
The build is still broken. Multiple definitions of sqlite3OSTrace when compiled using separate source files. (check-in: 5c965a71 user: drh tags: winTest)
2015-03-31
19:40
On windows, flush the mapping view when syncing content to disk. (check-in: a828e73d user: drh tags: trunk)
19:17
Set the winShm.id member when it is going to be traced. (check-in: fa7916b6 user: mistachkin tags: winTest)
19:06
Build fixes for OSTRACE enhancements. (check-in: f79c236f user: mistachkin tags: winTest)
18:18
Path portability enhancements for mptester.exe. (check-in: c8694657 user: drh tags: winTest)
18:05
Add the "mptest" target to main.mk. Change TRUNCATE and PERSIST to DELETE for mptest.c on Windows because of problems trying to delete the journal. (check-in: ea697e6d user: drh tags: trunk)
17:58
Path handling portability enhancements for mptester. (check-in: da49634b user: mistachkin tags: winTest)
17:45
Testing enhancements on Windows. (check-in: 9cc70eee user: mistachkin tags: winTest)
17:32
Change the sqlite3_log() message generated on a retry after delay in os_win to be an SQLITE_NOTICE instead of SQLITE_IOERR. (check-in: 5d533eee user: drh tags: trunk)
17:01
Fix configure.ac and Makefile.in so that they generate pkgIndex.tcl correctly. (check-in: 3deff252 user: drh tags: trunk)
16:42
Minor tweaks to the MSVC Makefile. (check-in: 7244ea59 user: mistachkin tags: trunk)
16:33
Handle very large URI pathnames for in-memory shared-cache databases. (check-in: 586a94e8 user: drh tags: trunk)
15:15
Fix harmless compiler warnings in lemon.c (check-in: bbe7dcda user: drh tags: trunk)
14:31
Fix the corruptJ.test case so that it works with and without SQLITE_SECURE_DELETE. (check-in: 0c0ecfd6 user: drh tags: trunk)
14:18
Additional logging information output by mptester. (check-in: 0cbbf6e4 user: drh tags: trunk)
13:46
Add the "mptest" target to Makefile.msc (check-in: 1e814e0b user: drh tags: trunk)
11:42
Ensure that comparison operators do not mess up the MEM_Dyn flag on registers when reverting affinity changes. (check-in: 02e3c88f user: drh tags: trunk)
00:10
Merge all recent trunk enhancements and fixes into the sessions branch. (check-in: df94e61f user: drh tags: sessions)
2015-03-30
23:52
Merge the latest trunk enhancements, and especially the fix for the infinite loop on a DROP TABLE in a corrupt database, into the apple-osx branch. (check-in: 4d42bf5e user: drh tags: apple-osx)
23:43
Prevent a possible infinite loop when trying to DROP a table from a corrupt database. (check-in: 395bb3e6 user: drh tags: trunk)
15:45
Merge sorter optimizations with this branch. (check-in: 9bf1cfb4 user: dan tags: insert-select-opt)
12:06
Improve performance of multi-field sorts where the first field has a low cardinality. (check-in: 601e7b6b user: dan tags: sorter-opt)
09:58
Remove some unnecessary code from vdbesort.c. (check-in: b58191e9 user: dan tags: sorter-opt)
2015-03-28
19:56
Further optimizations for sorting records that begin with integer or text values. (check-in: 24fe9f25 user: dan tags: sorter-opt)
2015-03-27
18:22
Merge updates from trunk. (Closed-Leaf check-in: 45acf6a8 user: mistachkin tags: winViewFlush)
18:20
Enhancements to OSTRACE usage in the Win32 VFS. (check-in: ab580029 user: mistachkin tags: trunk)
02:27
Fix the ".testctrl imposter" command in the command-line shell to be consistent in error reporting and results with the other .testctrl commands. (check-in: 0ec08ba8 user: drh tags: trunk)
00:21
Using MSVC, get the sqlite3IoTrace variable working with the USE_STDCALL and/or DYNAMIC_SHELL options. (check-in: fe976c91 user: mistachkin tags: trunk)
00:19
In the MSVC Makefile, make the DYNAMIC_SHELL option work without USE_STDCALL. (check-in: 25b46a9c user: mistachkin tags: trunk)
2015-03-26
23:36
When syncing a memory mapped file on Windows, flush the mapped view as well. (check-in: df204049 user: mistachkin tags: winViewFlush)
18:24
Revise Win32 locking test to account for recent log message changes. (check-in: 1bc76339 user: mistachkin tags: trunk)
17:04
Avoid leaving the malloc subsystem in a partially initialized state if the low-level initialization callback fails. (check-in: 3e872011 user: drh tags: trunk)
15:27
Provide source code line numbers for errors in the Windows VFS generated by the winLogIoerr() routine. (check-in: b5da0d93 user: drh tags: trunk)
14:29
Fix a harmless compiler warning in FTS3. (check-in: 1688f60c user: drh tags: trunk)
12:38
Merge sorter optimization into this branch. (check-in: aeb8e9a9 user: dan tags: insert-select-opt)
11:55
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. (check-in: ce5ad17c user: dan tags: sorter-opt)
2015-03-25
18:29
Change an unreachable branch into an assert(). (check-in: fb076b28 user: drh tags: trunk)
17:35
Fix the saveCursorPosition() routine in btree.c so that it works correctly for a eState=CURSOR_SKIPNEXT cursor. (check-in: 37866b4d user: drh tags: trunk)
15:23
Extend [52e73eec] so that the IS optimization may be used on primary keys with more than 3 columns. (check-in: 4e8796af user: dan tags: ota-update)
13:06
Reactivate an older assert() (adding an "|| CORRUPT_DB" term) and add a new assert() in btree.c. (check-in: 1e96520a user: drh tags: trunk)
12:05
Add two new assert()s to the sqlite3BtreeDataSize() method. (check-in: 42d1793d user: drh tags: trunk)
00:09
Backport the 'stdcall' related enhancements from trunk. (Leaf check-in: cbb93d1a user: mistachkin tags: stdcall-3.8.8)
2015-03-24
22:00
Add SQLITE_STDCALL and SQLITE_CDECL macros on public function definitions. (check-in: cae3239a user: mistachkin tags: trunk)
21:54
Further simplifications to the amalgamation builder. (Closed-Leaf check-in: e826cd7d user: drh tags: stdcall)
21:52
Update the 'mksqlite3c-noext' tool as well. (check-in: a5322566 user: mistachkin tags: stdcall)
21:34
Fix a couple comment typos in a tool script. No changes to code. (check-in: 83421af6 user: mistachkin tags: trunk)
21:27
Add SQLITE_STDCALL and SQLITE_CDECL macros on public function definitions. (check-in: 242f09d4 user: mistachkin tags: stdcall)
19:43
Update this branch with latest trunk changes. (check-in: 3ccd64ef user: dan tags: insert-select-opt)
19:02
Merge all recent trunk enhancements into the sessions branch. (check-in: 54aaa6f2 user: drh tags: sessions)
18:49
Merge the latest trunk enhancements into the apple-osx branch. (check-in: a2bd81e5 user: drh tags: apple-osx)
18:21
Merge the latest trunk changes into this branch. (check-in: 9d9b6c88 user: dan tags: ota-update)
18:19
Suppress a compiler warning that was appearing with SQLITE_THREADSAFE=0. (check-in: 436314b5 user: drh tags: trunk)
18:03
When the OTA module updates or deletes a row, save only those fields that are part of an index or primary key to the ota update database. (check-in: 6326fd32 user: dan tags: ota-update)
16:43
Prevent a virtual table from being destroyed while it is in use. Also: replace Vdbe.inVtabMethod with sqlite3.nVDestroy. Simplify the EXPLAIN output for P4.pVtab to only show the sqlite3_vtab pointer. (check-in: cbeb9a1a user: drh tags: trunk)
14:57
Add tests to check that attempting to DROP a virtual table while it is use does not cause problems. (Closed-Leaf check-in: 5ee625b1 user: dan tags: nVDestroy)
14:57
Simplify the EXPLAIN output of virtual table P4 parameters to only show the pointer to the sqlite3_vtab object and omit the sqlite3_module object. (Closed-Leaf check-in: 85610bbb user: drh tags: nVDestroy)
14:05
More defenses against virtual table being deleted out from under a running statement. (check-in: 116c9982 user: drh tags: nVDestroy)
13:32
Prevent a virtual table from being destroyed while it is in use. (check-in: fba674c0 user: drh tags: nVDestroy)
12:51
Replace the Vdbe.inVtabMethod field with the sqlite3.nVDestroy counter. (check-in: 9faefb96 user: drh tags: nVDestroy)
2015-03-23
21:32
Disable loadable extensions in the command-line shell on VxWorks user-space. (check-in: 0ee2d38d user: drh tags: trunk)
19:55
Track total memory usage using a 64-bit integer on 64-bit systems. Add the sqlite3_status64() interface. Make the sqlite3_status() and sqlite3_status64() interfaces atomic using mutexes and verify correct mutex operation using assert() statements. (check-in: 6fc4e79a user: drh tags: trunk)
19:16
Fix a non-C89 variable declaration that causes problems for MSVC. (Closed-Leaf check-in: 3de085ea user: drh tags: status64)
19:03
Fix datetype size asserts in btree.c. (check-in: ff4812d0 user: drh tags: trunk)
18:52
Add the SQLITE_PTRSIZE macro. Use it to help sqlite3_status() run faster on 32-bit systems. (check-in: c742bd60 user: drh tags: status64)
17:25
Add the sqlite3_status64() interface. Make the new interface and the legacy sqlite3_status() both atomic and threadsafe. Check threadsafety using assert()s. (check-in: 1ce8e8fa user: drh tags: status64)
17:10
Fix a broken assert() in the ota module. (check-in: 858de8a5 user: dan tags: ota-update)
14:39
Set the OPFLAG_SEEKRESULT correctly in "INSERT INTO ... SELECT" statements. (check-in: 6f7d9995 user: dan tags: insert-select-opt)
2015-03-22
10:23
Fix a potential NULL pointer dereference following a syntax error. (check-in: 8d27e3e1 user: drh tags: trunk)
2015-03-21
23:38
Fix harmless compiler warnings with MSVC when assert() and SQLITE_MEMDEBUG are both enabled. (check-in: 9513dbd4 user: mistachkin tags: trunk)
22:23
Add more comments to the MSVC batch build tool. (check-in: 03522da3 user: mistachkin tags: trunk)
22:13
Increase the debugging level for the debug configuration in the MSVC batch build tool. (check-in: 041484ff user: mistachkin tags: trunk)
20:59
Do not invoke a C preprocessor macro with an empty argument, as (reportedly) some versions of GCC are unable to deal with that. (check-in: de9da317 user: drh tags: trunk)
20:50
Add a missing "int" on a constant declaration. (check-in: 235157de user: drh tags: trunk)
19:35
Avoid a segfault if NULL is passed as the first argument to SQL scalar function fts3_tokenizer(). (check-in: 6d098969 user: dan tags: trunk)
17:00
Merge all recent trunk enhancements and especially the blocking WAL-lock fix into the apple-osx branch. (check-in: 9f1f8b33 user: drh tags: apple-osx)
16:40
Change walblock.test to block an external process for 10 seconds, not 5. 5 seconds is not long enough to tell the difference between a blocking lock and a series of retries. (check-in: 717335fc user: dan tags: trunk)
16:36
Fix the blocking WAL lock so that it works and so that it compiles on a Mac. (check-in: 67d69d21 user: drh tags: trunk)
15:45
Merge trunk changes with this branch. (check-in: 14274391 user: dan tags: fts5)
15:37
When scanning the full-text index as part of the fts5 integrity-check, also run a point query for every term and verify that these results are consistent with those found by the linear scan. (check-in: ce972f6a user: dan tags: fts5)
15:26
Do not use sorters for INSERT statements that insert multiple rows using the VALUES clause. (check-in: 93e28ea1 user: dan tags: insert-select-opt)
15:04
Merge latest trunk changes with this branch. (check-in: 9affe7f3 user: dan tags: insert-select-opt)
12:25
Remove an unreachable branch from the OP_VCreate opcode (merge accidental fork in trunk). (check-in: 2fbfec62 user: dan tags: trunk)
12:22
Avoid an integer overflow in fts3 causing gcc 4.7.1 with -O2 to behave counter-intuitively (perhaps because the behaviour is undefined). Add an "ifcapable trace" to a test in shell4.test. (check-in: e3e23464 user: dan tags: trunk)
12:22
Remove an unreachable branch from the OP_VCreate opcode. (check-in: 5fca41a3 user: drh tags: trunk)
10:53
Add a missing "ifcapable fts3" to a test case in vtab2.test. (check-in: d845b0f6 user: dan tags: trunk)
07:16
Merge recent trunk changes with this branch. (check-in: 35eef4dd user: dan tags: insert-select-opt)
07:03
Disable the sorter optimization used by INSERT INTO SELECT statements if the statement explicitly specifies REPLACE, IGNORE or FAIL conflict handling. (check-in: d4215942 user: dan tags: insert-select-opt)
03:18
Correctly detect the error of having a "*" wildcard on a SELECT without a FROM clause on the left-hand side of a recursive CTE. (check-in: b11d1793 user: drh tags: trunk)
02:58
If a column is both UNIQUE and a PRIMARY KEY, make sure the PRIMARY KEY designation takes precedence. (check-in: d871a792 user: drh tags: trunk)
02:34
Merge updates from trunk. (check-in: 441a00e7 user: mistachkin tags: expShell)
02:25
Remove superfluous define from the MSVC makefile. (check-in: 880d2513 user: mistachkin tags: trunk)
02:22
Improvements to the MSVC build. Fix harmless compiler warnings. Enable use of 'stdcall'. (check-in: 737630b8 user: mistachkin tags: trunk)
2015-03-20
20:30
Where possible insert the set of new keys for each index in sorted order within "INSERT INTO ... SELECT" statements. (check-in: 0a7f2051 user: dan tags: insert-select-opt)
16:54
Provide the BTREE_SEEK_EQ hint to the b-tree layer. (check-in: 3c367004 user: drh tags: trunk)
16:34
Fix to get SQLITE_SMALL_STACK working correctly again after the previous change. (Closed-Leaf check-in: 78df0ce1 user: drh tags: seek-eq)
14:57
Provide the BTREE_SEEK_EQ hint to the b-tree layer. (check-in: e750830f user: drh tags: seek-eq)
08:43
Fix a problem causing collation sequence names to be dequoted multiple times under some circumstances. (check-in: eddc05e7 user: dan tags: trunk)
2015-03-19
20:09
If a virtual table is created with a malformed UTF8 name in a UTF16 database, make sure that does not cause problems. (check-in: b74cb0a9 user: drh tags: trunk)
19:59
Fix a crash that can occur following an OOM condition within a CREATE VIRTUAL TABLE statement on a utf-16 database. (Closed-Leaf check-in: 9453e7da user: dan tags: malformed-vtab-name)
18:56
Fix a problem with creating virtual table with names specified using malformed utf-8 within utf-16 databases. (check-in: 9969cff2 user: dan tags: malformed-vtab-name)
16:25
Fix an FTS3/4 problem with handling empty tokenizer declarations (e.g. "CREATE VIRTUAL TABLE t(tokenize=);"). (check-in: 26d2def8 user: dan tags: trunk)
15:52
Silently ignore any attempt to add a prefix index for prefixes zero bytes in size to an fts3/4 table. Or any prefix index size so large that it overflows a 32-bit signed integer. (check-in: ad4b19d2 user: dan tags: trunk)
15:04
Add an assert() to check that the database mutex is held in sqlite3BtreeLeave(). (check-in: 31f54d7b user: dan tags: trunk)
14:48
Fix typo in shell error message. (check-in: 775a02d5 user: mistachkin tags: trunk)
14:46
Merge updates from trunk. (check-in: 3e363f40 user: mistachkin tags: expShell)
13:30
Fix a bug in error handling in the ".trace" command of the command-line shell. (check-in: 6a48b5d7 user: drh tags: trunk)
2015-03-18
20:03
Allow whereShortCut() to use the PRIMARY KEY index of a WITHOUT ROWID table to optimize a vector of "IS" operators in a WHERE clause. (check-in: 52e73eec user: dan tags: ota-update)
19:04
Clarify that OTA is unable to update or delete rows with NULL values in primary key fields. (check-in: 2e7c1e0a user: dan tags: ota-update)
16:00
Add another sqlite3FaultSim() to the multi-threaded sorter logic to improve testability. (check-in: 49ea2cde user: drh tags: trunk)
2015-03-17
20:39
Clarify the documentation on sqlite3_errcode(). No changes to code. (check-in: 2c0e0d87 user: drh tags: trunk)
18:54
Merge all recent trunk enhancements into the sessions branch. (check-in: 1d1c57c3 user: drh tags: sessions)
18:35
Merge all recent trunk changes, and in particular the blocking WAL lock change, into the apple-osx branch. (check-in: 8abbeadb user: drh tags: apple-osx)
17:08
Also merge the WAL blocking lock tests that were somehow missed on the previous check-in. (check-in: 7214dab7 user: drh tags: trunk)
16:59
Transient locks in WAL mode can now block in order to resolve priority inversions. (check-in: ec2f46de user: drh tags: trunk)
16:01
Add a test for the change on this branch. (Closed-Leaf check-in: e22dde18 user: dan tags: wal-blocking-lock)
2015-03-16
20:40
Make SQLite slightly more likely to use an auto-index within a sub-query. (check-in: ab832336 user: dan tags: trunk)
18:08
Fix typo of test prefix in the new WHERE test file. (check-in: 34779c52 user: mistachkin tags: trunk)
17:48
When the WHERE clause contains two OR-connected terms with identical operands but different operators, try to combine them into a single term. Example: (X=A OR X>A) becomes (X>=A). (check-in: 8bdda827 user: drh tags: trunk)
17:07
Modify the fts3query.test script so that it works even when testfixture is built using a version of TCL that is unable to sort the integer -9223372036854775808 (check-in: f61fd24b user: drh tags: trunk)
16:44
When deleting the master journal to commit a multi-database transaction, do not sync the directory if PRAGMA synchronous=OFF for all participating database files. (check-in: 018d7671 user: drh tags: trunk)
16:28
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. This generates more accurate estimates. (check-in: 3e0590de user: dan tags: trunk)
13:48
Use #ifdef to omit code that is only used for STAT3 and STAT4. (check-in: f2c9c5b5 user: drh tags: trunk)
13:12
Improved comments. No code changes. (Closed-Leaf check-in: 23f71a26 user: drh tags: combine-disjuncts)
12:13
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). (check-in: 7a309768 user: drh tags: combine-disjuncts)
09:21
Another test case for the planner change on this branch. (Closed-Leaf check-in: f2207a06 user: dan tags: stat4-change)
2015-03-14
18:59
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. (check-in: e1caf93c user: dan tags: stat4-change)
2015-03-13
15:44
Add tests to ensure "PRAGMA incremental_vacuum" and "PRAGMA auto_vacuum = incremental" handle corrupt databases correctly. (check-in: 1c2166cb user: dan tags: trunk)
08:31
Extra tests for commit [0f250957]. (check-in: 5aa522dc user: dan tags: trunk)
00:11
Remove debugging logic accidently included in the previous check-in. (check-in: 2887fb38 user: drh tags: trunk)
2015-03-12
23:48
Fix the "now" option for date-time functions for cases when STAT4 is disabled. (check-in: 3ac1f6a3 user: drh tags: trunk)
21:22
When STAT4 is enabled, allow probes of the STAT4 table using the value of constant functions computed at compile-time. (check-in: 0f250957 user: drh tags: trunk)
21:02
Always disallow functions as the DEFAULT of a column. Add assert()s and (Closed-Leaf check-in: a991bb1a user: drh tags: stat4-function)
19:12
Disable multiplexing of master-journal files in the test_multiplex.c module. (check-in: b8684df3 user: dan tags: trunk)
18:38
If an error occurs in the compile-time evaluation of an application-defined function, then propagate back out the exact error code, not just the generic SQLITE_ERROR. (check-in: 93f42586 user: drh tags: stat4-function)
06:46
The valueFromFunction() routine is better able to handle OOM errors. Omit unreachable branches. (check-in: 8fb6bd9b user: drh tags: stat4-function)
05:08
Improve the text on one of the opcode documentation comments in vdbe.c. (check-in: 08958f57 user: drh tags: trunk)
2015-03-11
20:59
Allow the default value for columns added using ALTER TABLE ADD COLUMN to be a function in existing schemas loaded from disk. But prevent this version of SQLite from being used to create such a column. (check-in: ff868e22 user: dan tags: stat4-function)
20:06
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. (check-in: b7f1fc26 user: dan tags: stat4-function)
14:51
Add an optimization to the fts5 unicode tokenizer code. (check-in: f5db4892 user: dan tags: fts5)
14:34
Expand the multi-process test cases to repeat each case 20 times and to repeat tests using different journal modes. (check-in: a2715b04 user: drh tags: trunk)
2015-03-10
20:22
Arrange for some of the transient locks in WAL mode to block, as a single to the OS to fix priority inversions. (check-in: c6e6d5f4 user: drh tags: wal-blocking-lock)
19:24
Avoid redundant string comparisons while merging fts5 segment b-trees. (check-in: 5c46820d user: dan tags: fts5)
15:34
Fix an incrblob2 test case so that it works on 32-bit systems. (check-in: 8d0b11c9 user: drh tags: trunk)
13:50
Revise test cases in malloc5.test to accommodate varying allocation sizes returned by some system malloc() implementations. (check-in: fbae6baf user: drh tags: trunk)
2015-03-09
13:24
Merge recent trunk enhancements into the ota-update branch. (check-in: 5489cb68 user: drh tags: ota-update)
13:18
Merge recent trunk enhancements into the apple-osx branch. (check-in: 5e04eec8 user: drh tags: apple-osx)
13:07
Merge recent trunk enhancements into the sessions branch. (check-in: 68c8937e user: drh tags: sessions)
13:01
Fix the LIKE optimization so that it works even if there are additional range contraints on the column that is subject to the LIKE or GLOB. (check-in: 984c3fd5 user: drh tags: trunk)
12:11
Always use LIKE optimization range constraints in pairs. (Closed-Leaf check-in: 0e02dc94 user: drh tags: like-opt-fix)
10:40
Increase the version number to 3.8.9 (check-in: e5da5e7d user: drh tags: trunk)
2015-03-07
20:32
Fix another problem with the LIKE optimization. (check-in: 465bfc72 user: drh tags: like-opt-fix)
15:46
Fix some compiler warnings caused by signed/unsigned pointer conversions. (check-in: cccee7b5 user: dan tags: fts5)
13:56
Fix the LIKE optimization so that it finds BLOB entries in addition to text entries. Ticket [05f43be8fdda9f]. (check-in: 74cb0b03 user: drh tags: trunk)
12:58
New test cases for LIKE and GLOB with BLOB left-hand side values. (Closed-Leaf check-in: 50fa3c5f user: drh tags: like-opt-fix)
11:50
Fix the bm25() function so that it multiplies scores by -1 before returning them. This means better matches have a lower numerical score, so "ORDER BY rank" (not "ORDER BY rank DESC") does what you want. (check-in: 3ee7b5a9 user: dan tags: fts5)
03:02
Remove some code that is commented out. (check-in: 55ff4291 user: drh tags: like-opt-fix)
02:51
Fix problems with reverse order sorting and indexes in the LIKE optimization. (check-in: 564b8fe7 user: drh tags: like-opt-fix)
00:57
Refactor some jump opcodes in the VDBE. Add JumpZeroIncr and DecrJumpZero. Fix the LIKE optimization to work with DESC sort order. (check-in: 26cb5145 user: drh tags: like-opt-fix)
2015-03-06
20:49
Test cases added. Comments fixed. Proposed solution for ticket [05f43be8fdda9fbd9]. (check-in: 6b993bd5 user: drh tags: like-opt-fix)
19:47
Fix the LIKE optimization even when comparing mixed-case BLOBs. (check-in: a58aafdb user: drh tags: like-opt-fix)
16:45
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. (check-in: 5757e803 user: drh tags: like-opt-fix)
04:37
Clearification of some documentation text. Added requirements marks. (check-in: 8c1e85aa user: drh tags: trunk)
03:31
Clarification of documentation on sqlite3_backup. (check-in: 31d5e9b4 user: drh tags: trunk)
2015-03-05
16:21
Fix some problems with OTA and empty target databases, or target databases with the wrong set of tables. Also add SQLITE_FCNTL_VFSNAME support to the OTA VFS. (check-in: 46119e8d user: dan tags: ota-update)
15:34
New test cases and requirements marks for PRAGMA index_info, index_xinfo, and index_list. (check-in: e5b13634 user: drh tags: trunk)
14:29
Revert "PRAGMA index_info" to output only three columns, for complete compatibility with prior versions. The new "PRAGMA index_xinfo" can be used to get the extra information in 4th, 5th, and 6th columns. (check-in: fc543c2c user: drh tags: trunk)
14:07
Add comments to sqlite3ota.h to make it clear that passing NULL in place of a parent VFS name to sqlite3ota_create_vfs() causes the new VFS to use the system default as its parent. (check-in: 158c1a48 user: dan tags: ota-update)
13:43
Fix a typo in sqlite3ota.h. (check-in: 04087dec user: dan tags: ota-update)
01:29
New requirements marks on compound SELECT statements. (check-in: e7991bc5 user: drh tags: trunk)
2015-03-04
23:14
New requirements marks on INSERT and INDEXED BY and on some sqlite3_config() options. (check-in: c298ea0b user: drh tags: trunk)
20:18
Fix harmless compiler warning. (check-in: 580dae46 user: mistachkin tags: trunk)
15:35
Refinement to the wording of the documentation on depreciated functions. (check-in: 04a59d6f user: drh tags: trunk)
15:25
Remove a surplus </dl> mark in the documentation. No changes to code. (check-in: 5450e465 user: drh tags: trunk)
08:29
Fix a couple of build problems. (check-in: a5d5468c user: dan tags: fts5)
2015-03-03
20:42
Clean up #ifdef logic dealing with VxWorks in os_unix.c. On VxWorks, automatically use posix advisory locking if it is available or fall back to named semaphore locking if not. (check-in: ac8c7ca3 user: drh tags: trunk)
19:56
Fix compiler warnings when compiling under VxWorks 7. (check-in: 55c21521 user: drh tags: trunk)
16:58
Enhance SQLITE_ALLOW_URI_AUTHORITITY to elide //localhost/ and to deal with dodgy URIs that contain too many "/" characters. (check-in: 39b566a2 user: drh tags: trunk)
14:00
Fix over-length source code lines in the main.c source file. (check-in: debba6f1 user: drh tags: trunk)
2015-03-02
22:06
Changes so that the amalgamation and the command-line shell build without modifications on VxWorks 7. Still gives a few compiler warnings, and still mostly untested on that platform. (check-in: 7d92f1f1 user: drh tags: trunk)
17:25
Ensure that automatic indexes are *not* considered when doing the the subqueries of the OR-optimization. (check-in: 17890292 user: drh tags: trunk)
2015-02-28
14:03
In the command-line shell, the inability to read ~/.sqliterc is no longer a fatal error. A warning is issued, but processing continues. (check-in: 6bf62463 user: drh tags: trunk)
01:04
More test cases and requirements marks for pragmas. (check-in: fc51037c user: drh tags: trunk)
2015-02-27
21:53
Remove all references to SQLITE_DEFAULT_TEMP_CACHE_SIZE. Add requirements marks related to cache_size changing. (check-in: 766ad650 user: drh tags: trunk)
20:28
New requirements marks and a few new test cases to go with them. No changes to code. (check-in: 8c2b29d9 user: drh tags: trunk)
19:40
Merge updates from trunk. (check-in: acf76843 user: mistachkin tags: expShell)
09:41
Further minor optimizations to flushing fts5 data to disk. (check-in: a07dcca9 user: dan tags: fts5)
07:23
Fix suffix and prefix compression of terms in top-level fts5 segments. And a crash that could follow an OOM condition. (check-in: bb104b36 user: dan tags: fts5)
00:33
Add a couple of requirements marks. (check-in: d70b0fd4 user: drh tags: trunk)
2015-02-26
21:04
Fix potential memory leaks in the misc 'compress' extension. (check-in: 3bc34fd4 user: mistachkin tags: trunk)
20:49
Optimize copying data from fts5 in-memory hash tables to top level segments. (check-in: 8e3ca632 user: dan tags: fts5)
16:40
Update a requirements mark to reflect a change of wording in the documentation. No changes to code. (check-in: 3038d016 user: drh tags: trunk)
16:32
Fix a real bug (in test code) that was introduced while trying to eliminate harmless compiler warnings from OpenBSD (see check-in [10321910990195878c]). (check-in: a62ba58c user: drh tags: trunk)
14:54
Fix an fts5 bug in large incremental merges. (check-in: 208e3cb6 user: dan tags: fts5)
14:27
In the command-line shell, change the units on the ".width" directive from bytes to characters. (Leaf check-in: b1a9e291 user: drh tags: cli-char-width)
02:33
Simplifications to the description of the nByte parameter to sqlite3_prepare() and friends. (check-in: 4bee8295 user: drh tags: trunk)
2015-02-25
19:24
Instead of the 4-byte fields, use regular varints for the poslist-size field in fts5_hash.c. (check-in: 7eb022d7 user: dan tags: fts5)
14:25
Make sure the sqlite3_mutex.id field is initialized in the Win32 mutex implementation, even when SQLITE_DEBUG is turned off. (check-in: 6d132e7a user: drh tags: trunk)
14:09
Merge the latest trunk fixes and enhancements into the apple-osx branch. (check-in: ba8294e2 user: drh tags: apple-osx)
14:02
Merge the latest trunk fixes into the sessions branch. (check-in: 131a2d31 user: drh tags: sessions)
13:48
Add support for the linenoise command-line editing library in shell.c. (check-in: 03bbb947 user: drh tags: trunk)
13:29
Version 3.8.8.3 (Leaf check-in: 9d6c1880 user: drh tags: release, version-3.8.8.3, branch-3.8.8)
12:52
Add support for linenoise to shell.c. (check-in: ec27ab0e user: dan tags: branch-3.8.8)
10:54
Add support for linenoise to shell.c. (Closed-Leaf check-in: f7f2598c user: dan tags: linenoise)
01:06
When cleaning with MSVC, prevent superfluous output regarding 'missing' files and directories. (check-in: 034c16bd user: mistachkin tags: trunk)
00:24
Remove an always-false conditional from constructAutomaticIndex(). Put an assert() in its place to prove that the conditional is always false. (check-in: 3af300bf user: drh tags: trunk)
2015-02-24
20:12
Make sure partial indexes are not qualified incorrectly by a constraint that is inside the ON clause of a LEFT JOIN. Fix for ticket [2326c258d02ead33]. Cherry-pick from [491cfe9b3f87f]. (check-in: 9d94ac6a user: drh tags: branch-3.8.8)
20:10
Prevent partial indexes on the table on the left hand side of a LEFT JOIN from being incorrectly qualified by a constraint in the ON clause of the join. This relaxes the rule introduced by the previous commit (as the partial indexes on the table on the rhs of the LEFT JOIN may now be qualified by terms within the ON clause). (check-in: 1d6fb43a user: dan tags: trunk)
20:04
Make sure partial indexes are not qualified incorrectly by a constraint that is inside the ON clause of a LEFT JOIN. Fix for ticket [2326c258d02ead33]. (check-in: 491cfe9b user: drh tags: trunk)
18:39
More test cases to help ensure that partial indexes do not get used if their qualifing constraint is inside the ON clause of a LEFT JOIN. (Closed-Leaf check-in: c6399958 user: drh tags: tkt-2326c258)
16:48
This additional fix prevents a partial index from being qualified for use if the constraint that qualifies the partial index is part of the ON clause of a LEFT JOIN. (check-in: 1a1516e4 user: drh tags: tkt-2326c258)
16:22
Increase the version number to 3.8.8.3 (check-in: a92afe7d user: drh tags: branch-3.8.8)
16:05
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. (check-in: c0f4e308 user: drh tags: tkt-2326c258)
2015-02-23
20:09
Fix building with ENABLE_OTA and OMIT_LOAD_EXTENSION. (check-in: d6d21ff5 user: dan tags: ota-update)
16:17
Merge latest trunk changes with this branch. (check-in: e5ca79d2 user: dan tags: ota-update)
15:41
Change SQLITE_FCNTL_ZIPVFS_PAGER to SQLITE_FCNTL_ZIPVFS. (check-in: f7865b94 user: dan tags: ota-update)
15:02
Update the sqlite3ota_db() API to account for the fact that each OTA handle now uses two SQLite database handles. (check-in: ef08ecce user: dan tags: ota-update)
12:22
Improve tests for resuming ota updates following power failures. Fix a problem revealed by the same. (check-in: 1cb675e5 user: dan tags: ota-update)
2015-02-21
20:08
Fix some problems with resuming ota updates if saving the state is interrupted by a power failure or system crash. (check-in: 6d5ed70d user: dan tags: ota-update)
15:42
Update document on sqlite3_mprintf() and related functions. Discuss the %w format and point out that obscure ANSI-C formats are not supported. No changes to code. (check-in: f8917ba4 user: drh tags: trunk)
15:13
Merge all recent trunk changes into the sessions branch. (check-in: f36bb5fa user: drh tags: sessions)
01:03
Merge trunk changes into the apple-osx branch. (check-in: 3896e233 user: drh tags: apple-osx)
00:56
Fix a compiler warning associated with USE_PREAD64. (check-in: c299e55a user: drh tags: trunk)
00:49
Fix over-length source code lines in os_unix.c. (check-in: 7560a9fa user: drh tags: trunk)
00:19
Keep track of the optimal number of reserved bytes (by looking at reserve byte requests in calls to sqlite3BtreeSetPageSize()) and then change the reserve byte count to the optimal when doing a VACUUM or when using the backup API. (check-in: 28c2b726 user: drh tags: trunk)
2015-02-20
14:36
Add some missing comments and fix other minor code issues in sqlite3ota.c. (check-in: 718fd8b6 user: dan tags: ota-update)
2015-02-19
19:59
Ensure the mutex used to protect the linked list of all main database files opened by a single ota vfs is allocated. (check-in: 9c8682d6 user: dan tags: ota-update)
18:06
Update various documentation comments in sqlite3ota.c and sqlite3ota.h. (check-in: 60e0a46b user: dan tags: ota-update)
17:16
Fix errors in the EBCDIC upper-case to lower-case translation table. (check-in: 905009f6 user: drh tags: trunk)
16:12
Remove a redundant call to statfs() in the xOpen() method of the unix VFS. Also fix an unused local variable warning. (check-in: 8215727d user: drh tags: trunk)
15:56
Incremental merge to prevent a huge pileup of merge conflicts resulting from editing the same code in two different branches. (check-in: 82c4c4e2 user: drh tags: apple-osx)
14:41
Merge latest trunk changes with this branch. (check-in: 6f5888a5 user: dan tags: ota-update)
13:36
Add tests for a couple of previously untested branches in the ota code. (check-in: a3c1bc5d user: dan tags: ota-update)
02:43
Move the os_unix.c file closer to trunk. (check-in: 57d70240 user: drh tags: apple-osx)
02:43
Move the os_unix.c file closer to apple-osx. (check-in: 81f242e3 user: drh tags: trunk)
00:29
First small steps toward brining trunk and apple-osx closer together. (check-in: 28284ccc user: drh tags: trunk)
2015-02-18
20:17
Add new file ota12.test, containing tests for applying ota updates to live databases with other active reader/writer clients. (check-in: 0864d127 user: dan tags: ota-update)
20:16
Add ota tests to increase code coverage. Fix some minor issues in error handling within the ota code. (check-in: 2b10c5d2 user: dan tags: ota-update)
17:40
Fix a problem with OTA updates in the presence of database readers. (check-in: 144bb29f user: dan tags: ota-update)
2015-02-17
20:49
Improve test coverage of ota code a bit. (check-in: a438fa6c user: dan tags: ota-update)
2015-02-16
21:13
Add extra tests and fixes for ota. (check-in: e0b71519 user: dan tags: ota-update)
11:48
Add further tests and fixes for ota. (check-in: 62dc1fff user: dan tags: ota-update)
06:27
Move tcl test code from sqlite3ota.c to new file ext/ota/test_ota.c. (check-in: f20779a6 user: dan tags: ota-update)
2015-02-14
18:58
Change the way the "incremental checkpoint" function of OTA works in order to reduce the effect on the SQLite core code. (check-in: b64a11a7 user: dan tags: ota-update)
2015-02-13
16:42
Enhancements to SQLITE_ENABLE_API_ARMOR merged from trunk. (check-in: 5147b94a user: drh tags: apple-osx)
16:36
Improvements to SQLITE_ENABLE_API_ARMOR. (check-in: 823ad40c user: drh tags: trunk)
12:13
Merge all recent trunk fixes and enhancements into the apple-osx branch. (check-in: b2449d67 user: drh tags: apple-osx)
12:05
Make sure the prepared statement auto-resets on extended error codes of SQLITE_BUSY and SQLITE_LOCKED even when compiled using SQLITE_OMIT_AUTORESET. (check-in: 3c6ca414 user: drh tags: trunk)
2015-02-12
22:45
For the shell '.import' command, make sure the last column value present is considered before NULL filling any missing ones. (check-in: 9c5bcad1 user: mistachkin tags: trunk)
17:15
Improve the performance of fts3/4 queries that use the OR operator and at least one auxiliary fts function. Cherrypick of [245e8730451f]. (check-in: b2082462 user: dan tags: branch-3.8.8)
2015-02-11
17:05
Merge the ota-update-no-pager_ota_mode branch into this one. (check-in: 71887cd9 user: dan tags: ota-update)
16:54
Merge latest trunk changes with this branch. (Closed-Leaf check-in: 0b63e8dc user: dan tags: ota-update-no-pager_ota_mode)
16:25
Ensure that an error is reported if an attempt is made to update a wal mode database via ota. (check-in: 6fc5d4d2 user: dan tags: ota-update-no-pager_ota_mode)
2015-02-10
20:00
Further tweaks to work with zipvfs. (check-in: 0f152416 user: dan tags: ota-update-no-pager_ota_mode)
17:08
Add documentation and test cases for sqlite3ota_create_vfs(). Also code to detect errors in zipvfs/ota setup. (check-in: e7296681 user: dan tags: ota-update-no-pager_ota_mode)
2015-02-09
20:07
Add the sqlite3ota_create_vfs() and sqlite3ota_destroy_vfs() functions. (check-in: 96443ecb user: dan tags: ota-update-no-pager_ota_mode)
18:28
Propagate COLLATE operators upward through function calls and CASE operations. And do not flatten an aggregate subquery into a query that uses other subqueries. Fixes for tickets [ca0d20b6cdddec5] and [2f7170d73bf9], respectively. (check-in: 24e78b8d user: drh tags: trunk)
17:46
Fix WITHOUT ROWID table handing in sqlite3_analyzer. (check-in: 937e0fe7 user: dan tags: trunk)
16:34
Add test cases for the query flattener fix for ticket [2f7170d73bf9abf8]. (Closed-Leaf check-in: dd8f7f75 user: drh tags: tkt-2f7170d7)
16:09
Propagate the COLLATE operator upward through function calls. Initial fix for ticket [ca0d20b6cdddec5e8]. (check-in: c053448a user: drh tags: tkt-2f7170d7)
15:21
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]. (check-in: 0b7d65e3 user: drh tags: tkt-2f7170d7)
14:07
Rename the internal "EP_Constant" bitmask to a less misleading "EP_ConstFunc". (check-in: 4ef7cece user: drh tags: trunk)
13:42
In selecttrace 0x100 mode, show the parse tree after name resolution instead of before flattening, so that it is always seen even if flattening does not occur. Also: add the hex pointer value to the top of each SELECT tree. (check-in: aa093fef user: drh tags: trunk)
11:54
In selecttrace mode 0x100, show a complete parse-tree both before and after query flattening. This is a change to debugging code only. (check-in: b3c6b8a3 user: drh tags: trunk)
10:20
Fix over-length source code lines in resolver.c. No logic changes. (check-in: c12edb85 user: drh tags: trunk)
2015-02-07
20:20
Add comments to explain the role of the ota vfs. (check-in: 7bb63363 user: dan tags: ota-update-no-pager_ota_mode)
19:17
Remove "PRAGMA pager_ota_mode". (check-in: 8ac58e46 user: dan tags: ota-update-no-pager_ota_mode)
15:30
Merge increment blob I/O fixes from trunk. (check-in: 292cf68b user: drh tags: apple-osx)
15:16
Fix potential 32-bit integer overflow problems on the offset and length parameters to sqlite3_blob_read() and sqlite3_blob_write(). For sqlite3_blob_open(), make sure the *ppBlob return parameter is zeroed if the interface fails with SQLITE_MISUSE. (check-in: 5df02f50 user: drh tags: trunk)
2015-02-06
16:03
Merge all recent trunk enhancements into the apple-osx branch. (check-in: 44711921 user: drh tags: apple-osx)
15:40
Merge all the latest enhancements from trunk. (check-in: ae7eef11 user: drh tags: sessions)
15:03
Merge the command-line shell enhancements from trunk. (check-in: c3931db5 user: drh tags: ota-update)
14:51
Change the name of ".info" to ".dbinfo" and add an optional second argument which is the ATTACH-ed DB about which information is provided. Provide ".indexes" as an alternative name to the legacy ".indices" command. (check-in: 0f65a7e2 user: drh tags: trunk)
14:19
Add the ".info" command to the shell. (check-in: 0a3100a7 user: drh tags: trunk)
01:07
Add the index_xinfo pragma which gives information about the fields that reference the table PRIMARY KEY in addition to the index key fields. Add extra columns "desc", "coll", and "key" to the index_info and index_xinfo pragmas. Add the "origin" and "partial" columns to the index_list pragma. (check-in: 2743846c user: drh tags: trunk)
00:31
Revise the way that the index structure for a WITHOUT ROWID table is discovered. (check-in: 7f10a0ea user: drh tags: ota-update)
2015-02-05
17:46
Change a comment in sqlite3ota.h to make it clear that it is not possible to insert a NULL value into an INTEGER PRIMARY KEY column using ota. (check-in: a5e86bea user: dan tags: ota-update)
17:36
Prevent ota updates from violating NOT NULL constraints. Add a comment to the "limitations" section of sqlite3ota.h saying that CHECK constraints are not enforced. (check-in: 74e073dd user: dan tags: ota-update)
01:49
Figure out the primary-key type of a table using queries of sqlite_master and the table_info and index_list pragmas, obviating the need for SQLITE_TESTCTRL_TBLTYPE. (check-in: 50ecdfc4 user: drh tags: ota-update)
2015-02-04
23:51
Merge all changes from index_xinfo, including the move of the pragma table into the separate pragma.h file. (check-in: 21e95d28 user: drh tags: ota-update)
23:13
Merge all recent trunk changes, including the movement of the pragma table into the separate pragma.h header file. (Closed-Leaf check-in: 3af19f84 user: drh tags: index_xinfo)
20:56
Fix a missing mutex in SQLITE_TESTCTRL_IMPOSTER. (check-in: 71691c4b user: drh tags: trunk)
19:20
Fix the error messages returned by ota if an update violates a unique constraint. (check-in: c4845a3b user: dan tags: ota-update)
16:32
Avoid a linear scan of the entire table when ota updates or deletes a row from a table with an external primary key index. (check-in: 1db198cc user: dan tags: ota-update)
11:08
Fix a memory leak that could follow an OOM error in ota. (check-in: 0d5415f2 user: dan tags: ota-update)
2015-02-03
19:20
Fix a typo in the --help output for speedtest1. Fix a dependency error in the Makefile.in for speedtest1. (check-in: f30a057a user: drh tags: trunk)
18:43
Fix some problems surrounding WITHOUT ROWID tables with DESC primary key indexes . (check-in: a21fefb7 user: dan tags: ota-update)
15:56
Remove "PRAGMA ota_mode". (check-in: 1c111447 user: dan tags: ota-update)
2015-02-02
22:19
Add an experimental pragma "PRAGMA preload;" that preloads the pcache with the entire database file. (Leaf check-in: 6dca23e6 user: drh tags: preload-pragma)
21:34
Break out the (script-generated) pragma parsing tables into a separate file, pragma.h, to make editing easier. (check-in: 32c0325b user: drh tags: trunk)
11:58
Ensure generated header file fts5parse.h is included in sqlite3.c. (check-in: bc7be2fc user: dan tags: fts5)
11:32
Fix some problems with building fts5 and fts3 together using the amalgamation. (check-in: fb10bbb9 user: dan tags: fts5)
09:40
Merge latest trunk changes with this branch. (check-in: 76212f2c user: dan tags: fts5)
2015-01-31
20:42
Have ota use imposter tables to write to indexes instead of the sqlite3_index_writer() interface. The error handling in this version is broken in a few small ways. (check-in: cdaeab46 user: dan tags: ota-update)
15:23
Minor optimizations to fts5 writes. (check-in: 1fffe51f user: dan tags: fts5)
02:34
Merge in support for the index_xinfo pragma. (check-in: f9b6dc77 user: drh tags: ota-update)
02:00
Add the "index_xinfo" pragma. Add new columns to the "index_info" and "index_list" pragmas. (check-in: 30f51d7b user: drh tags: index_xinfo)
2015-01-30
21:00
Merge the SQLITE_TESTCTRL_IMPOSTER changes from trunk. (check-in: 3ed6eb2f user: drh tags: ota-update)
20:59
Change SQLITE_TESTCTRL_INITMODE to SQLITE_TESTCTRL_IMPOSTER. Revise the order of parameters. Give it the ability to reset the schema parse table so that imposter tables can be erased. (check-in: 42d56017 user: drh tags: trunk)
16:36
Merge all recent trunk changes, and especially the SQLITE_TESTCTRL_INITMODE enhancement. (check-in: 36436dde user: drh tags: ota-update)
15:52
Added SQLITE_TESTCTRL_INITMODE for improved testability. (check-in: 98e02913 user: drh tags: trunk)
15:40
Add a few simple test cases for SQLITE_TESTCTRL_INITMODE - cases which also test PRAGMA integrity_check. (Closed-Leaf check-in: 3a6e2afe user: drh tags: initmode-testctrl)
14:30
Version 3.8.8.2 (check-in: 7757fc72 user: drh tags: release, version-3.8.8.2, branch-3.8.8)
2015-01-29
20:59
Fix some problems with transactions that both read and write an fts5 table. (check-in: 0e225b15 user: dan tags: fts5)
20:01
Bump the version number to 3.8.8.2 (check-in: 65bfbbb4 user: drh tags: branch-3.8.8)
19:59
Ensure that "PRAGMA wal_checkpoint = TRUNCATE|FULL|RESTART" block on other connections and truncate the wal file as required even if the entire wal file has already been checkpointed. Cherry-pick from trunk. (check-in: 18610617 user: drh tags: branch-3.8.8)
19:27
Fix some duplicated test names. (check-in: 1797158d user: mistachkin tags: trunk)
19:12
Ensure that "PRAGMA wal_checkpoint = TRUNCATE|FULL|RESTART" block on other connections and truncate the wal file as required even if the entire wal file has already been checkpointed. (check-in: 53429689 user: dan tags: trunk)
18:38
Split up the SRC variable in Makefile.msc to avoid over-long cmd.exe commands when TOP is set to a long pathname. (check-in: 7d70ac65 user: drh tags: trunk)
17:54
Add the INITMODE test-control. (check-in: 5940af8e user: drh tags: initmode-testctrl)
15:53
Improvements to the DELETE code generator for the one-pass case. Avoid some OP_Goto instructions. Read content from the index cursor if the index cursor is valid and was used to locate the row that is to be deleted. (Closed-Leaf check-in: 58cc257a user: drh tags: one-writable-btree)
14:48
Avoid overlength command lines in Makefile.msc when using TOP= with a large directory name. (check-in: 0cdd59bf user: drh tags: one-writable-btree)
11:52
Optimize range constraints on the rowid column of fts3/4 tables even if there is no MATCH clause in the query. (check-in: 85dc1262 user: dan tags: trunk)
02:26
Experimental sqlite_db_config() setting to disable writing to all btrees except for one btree with a particular root page. (check-in: 23054110 user: drh tags: one-writable-btree)
2015-01-28
20:37
Add missing VdbeCoverage() macros to the sqlite3_index_writer() implementation. (check-in: 6f8cda26 user: drh tags: ota-update)
15:30
When a "full", "restart" or "truncate" checkpoint is attempted, return SQLITE_BUSY if a reader prevents the checkpointer from copying any frames at all into the database file. (check-in: f2700040 user: dan tags: ota-update)
12:27
Correctly detect errors returned by walCheckpointStart() due to OOM. (check-in: 8e878c20 user: drh tags: ota-update)
12:00
Merge in all changes from trunk. (check-in: 17c69be8 user: drh tags: ota-update)
2015-01-27
21:24
Fix harmless compiler warnings. (check-in: e7d2ec04 user: mistachkin tags: trunk)
20:41
Fix a problem with fts5 doclist-indexes that occured if the first rowid of the first non-term page of a doclist is zero. (check-in: f704bc05 user: dan tags: fts5)
19:01
Fix a bug in the fts3 snippet() function causing it to omit leading separator characters from snippets that begin with the first token in a column. (check-in: adc9283d user: dan tags: trunk)
18:43
Improve the performance of fts3/4 queries that use the OR operator and at least one auxiliary fts function. (check-in: 245e8730 user: dan tags: trunk)
13:17
Fix a (almost always harmless) read past the end of a memory allocation that comes about because the Expr.pTab field is checked on an EXPR_REDUCEDSIZE Expr object before checking the Expr.op field to know that the Expr.pTab field is meaningless. (check-in: e098de69 user: drh tags: trunk)
2015-01-25
20:19
The va_list argument cannot take on a NULL value and cannot be compared with NULL on some platforms (ex: ARM). So do not attempt to do so. (check-in: 1964e656 user: drh tags: trunk)
2015-01-24
19:57
Have fts5 store rowids in ascending order. Query speed is virtually the same regardless of rowid order, and ascending order makes some insert optimizations easier. (check-in: 5206ca60 user: dan tags: fts5)
12:12
In the command-line shell, make sure stderr is unbuffered so that it automatically flushes. This has always been the case already for unix and on Windows when the output is a console, but apparently was not the case on Windows when the output was a pipe. (check-in: 2a9ea9b4 user: drh tags: trunk)
2015-01-23
17:43
Fix compression of keys stored on internal segment b-tree nodes by fts5. (check-in: 51444f67 user: dan tags: fts5)
06:50
Remove some redundant code from fts5. (check-in: 939b7a5d user: dan tags: fts5)
2015-01-22
19:13
Add further tests and fixes for fts5. (check-in: 5b295897 user: dan tags: fts5)
12:00
Make sure errors in the FROM clause of a SELECT cause analysis to abort and unwind the stack before those errors have a chance to mischief in the "*" column-name wildcard expander. Fix for ticket [32b63d542433ca67]. (check-in: 9e6eae66 user: drh tags: trunk)
11:29
Change the undocumented ".selecttrace" command in the shell to accept an integer bitmask rather than a boolean. (check-in: bd63bf88 user: drh tags: trunk)
2015-01-21
20:30
Further tests and fixes for fts5. (check-in: c020a291 user: dan tags: fts5)
18:23
Fix an fts5 issue with loading doclist-indexes for a term that is the last thing on its leaf page. (check-in: e0d61442 user: dan tags: fts5)
17:20
Merge trunk changes with this branch. (check-in: f8699a1a user: dan tags: fts5)
17:00
Fix an assert() that may fail following an OOM error. (check-in: 5f592359 user: dan tags: trunk)
16:10
Add further tests for fts5 backend. (check-in: 09dabb3b user: dan tags: fts5)
06:36
Merge latest trunk changes with this branch. (check-in: b3348b1e user: dan tags: fts5)
00:51
Fix harmless compiler warning seen with MSVC. (check-in: 78c2e62b user: mistachkin tags: trunk)
00:48
Enhancements to entropy generation for the Win32 VFS. (check-in: 26190b3c user: mistachkin tags: trunk)
2015-01-20
20:34
Add extra fault injection tests to fts5. (check-in: f45a0dc0 user: dan tags: fts5)
16:51
Version 3.8.8.1 (check-in: f73337e3 user: drh tags: release, version-3.8.8.1, branch-3.8.8)
03:04
Fix another instance of an incorrect value for KeyInfo.nXField on a sorting index. Ticket [f97c4637102a3ae72b79]. (check-in: 0077f645 user: drh tags: trunk)
02:51
Change the version number to 3.8.8.1 (check-in: c75555a3 user: drh tags: branch-3.8.8)
02:50
Fix another instance of an incorrect value for KeyInfo.nXField on a sorting index. More changes for ticket [f97c4637102a3ae72b79]. (check-in: dc711db4 user: drh tags: branch-3.8.8)
2015-01-19
21:38
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]. (check-in: 59e592f6 user: drh tags: branch-3.8.8)
21:36
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]. (check-in: f7201bb0 user: drh tags: trunk)
21:27
Improve precision of the new test case by removing a superfluous carriage-return from the shell command input. (check-in: 913c41b2 user: mistachkin tags: expShell)
21:11
Add comments and improve the new test case. (check-in: 4ec2aead user: mistachkin tags: expShell)
21:10
There are asserts in place now that will prevent a recurrence of ticket [f97c4637102a3ae7]. Nevertheless, it is good to add some test cases as well. (Closed-Leaf check-in: e02959b9 user: drh tags: tkt-f97c4637)
20:59
Make sure that the KeyInfo.nXField value of ephermeral tables used for ORDER BY and GROUP BY is set correctly, so that the correct comparison function can be choosen by sqlite3VdbeFindCompare(). (check-in: c16bae5e user: drh tags: tkt-f97c4637)
20:57
Fix the assert() of the previous check-in so that it works even when compiled without SQLITE_DEBUG. (check-in: 38868f84 user: drh tags: tkt-f97c4637)
20:22
Remove a shell function that is now superfluous. (check-in: d8564f70 user: mistachkin tags: expShell)
20:19
Merge updates from trunk. (check-in: d9f4035b user: mistachkin tags: expShell)
20:05
Fix compilation on Cygwin when SQLITE_MAX_WORKER_THREADS is greater than zero. (check-in: 2037442c user: mistachkin tags: trunk)
19:48
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. (check-in: bf744b49 user: drh tags: tkt-f97c4637)
19:21
An alternative way of fixing the key comparison bug of ticket [f97c4637102a3ae72b]. (Closed-Leaf check-in: e41376cf user: drh tags: alt1-tkt-f97c4637)
18:18
Strengthen the KeyInfo number-of-columns assert() added by the previous check-in. (Closed-Leaf check-in: d0971b79 user: drh tags: tkt-f97c4637)
17:28
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]. (check-in: 083f523d user: drh tags: tkt-f97c4637)
15:05
Enhance the command-line shell with the ability to set the SQLITE_TESTCTRL_NEVER_CORRUPT flag using: ".testctrl never_corrupt 1". (check-in: 824328f9 user: drh tags: trunk)
11:15
Handle the case where a tokenizer determines that there are zero tokens in an fts5 query term. (check-in: 75f3d17f user: dan tags: fts5)
07:42
Merge updates from trunk. (check-in: c7167f88 user: mistachkin tags: expShell)
00:35
Eliminate all use of sprintf(), strcpy() and strcat() from test logic because OpenBSD hates those functions. (check-in: 10321910 user: drh tags: trunk)
2015-01-18
20:30
Set binary mode for output on Windows when writing a quoted string that might contain newline characters. (check-in: 7096e6c0 user: drh tags: trunk)
09:02
Modify the new shell test case to work on non-Windows platforms as well. (check-in: f362c5d9 user: mistachkin tags: expShell)
05:35
Some experimental command line shell input/output enhancements. (check-in: 25e99f3f user: mistachkin tags: expShell)
01:50
Set the command-line shell stdin to binary mode on windows. (check-in: 80541e8b user: drh tags: trunk)
2015-01-17
20:01
Ensure an up to date copy of the fts5 configuration has been loaded into memory before attempting to modify the same configuration. (check-in: f30afd20 user: dan tags: fts5)
17:48
Improve the performance of the fts5 porter tokenizer implementation. (check-in: 96ea6004 user: dan tags: fts5)
15:26
Fix a harmless compiler warning the VFS for Windows. (check-in: ceac571f user: drh tags: trunk)
2015-01-16
19:35
Fix harmless compiler warning. (Closed-Leaf check-in: cab46fb7 user: mistachkin tags: msvcWarn)
12:44
Merge all 3.8.8 changes into the sessions branch. (check-in: bebd131a user: drh tags: sessions)
12:24
Merge the 3.8.8 release changes from trunk. (check-in: 518621f8 user: drh tags: apple-osx)
12:08
Version 3.8.8 (check-in: 7d68a42f user: drh tags: trunk, release, version-3.8.8)
2015-01-15
17:38
Fix the spelling of "malloc_usable_size" in configure and configure.ac. (check-in: 8f45217c user: drh tags: trunk)
15:47
Makefile enhancements: (1) Rename autoconf/tea/configure.in to autoconf/tea/configure.ac so that it works with the latest versions of autoconf. (2) Add the "amalgamation-tarball" targets to Makefile.in and main.mk (renamed from "dist" in the latter case). (3) Update the README.first file in autoconf/ (4) The TOP macro in Makefile.in is now an absolute rather than a relative path. (check-in: 3bafeec9 user: drh tags: trunk)
2015-01-14
17:16
Merge trunk 3.8.8 beta changes into the sessions branch (check-in: 0ba12454 user: drh tags: sessions)
2015-01-13
21:26
Simplify some code in rtree, to avoid confusing the optimizer in GCC on some macs: gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00). Prior to these changes, compiling with -O3 would cause incorrect code to be generated. The change to the nodeGetCell() routine is key. The other changes are merely cosmetic details discovered while bug hunting. (check-in: 882181ff user: drh tags: trunk)
17:25
Fix prefix indexes so that they work in characters, not bytes. (check-in: af8d43a4 user: dan tags: fts5)
01:12
Fix the e_walauto.test test module so that it works on both little-endian and big-ending machines. (check-in: 5682db7b user: drh tags: trunk)
2015-01-12
21:43
Fix harmless compiler warnings when using -W4 with MSVC. (check-in: e693e11d user: mistachkin tags: trunk)
20:25
Fix harmless compiler warning in an assert() statement. (Closed-Leaf check-in: bdbeed01 user: mistachkin tags: msvcW4)
20:20
Add two more classes of harmless MSVC compiler warnings. (check-in: de30d5b0 user: mistachkin tags: msvcW4)
19:59
Silence some harmless uninitialized local variable warnings. (check-in: 44375a34 user: mistachkin tags: msvcW4)
19:49
Harmless compiler warning fixes for 'testfixture' and the miscellaneous extensions when built with the MSVC makefile. (check-in: 923fd660 user: mistachkin tags: msvcW4)
18:52
Merge updates from trunk. (check-in: ca5f2c54 user: mistachkin tags: msvcW4)
18:52
Get things compiling cleanly with MSVC and W4. (check-in: c8725fa5 user: mistachkin tags: msvcW4)
18:38
Fix some harmless compiler warnings. (check-in: 2b8eecbf user: mistachkin tags: msvcW4)
18:27
Fix comments and add another disabled warning for MSVC. (check-in: 43b6b4cc user: mistachkin tags: msvcW4)
18:02
Work in progress on fixing harmless compiler warnings when using -W4 and MSVC. (check-in: 856dd245 user: mistachkin tags: msvcW4)
17:58
Optimize the unicode61 tokenizer so that it handles ascii text faster. Make it the default tokenizer. Change the name of the simple tokenizer to "ascii". (check-in: f22dbcca user: dan tags: fts5)
17:56
Add an assert() in order to calm a scan-build warning. (check-in: 11e81ac2 user: drh tags: trunk)
2015-01-10
20:34
Fix some documentation issues in fts5. (check-in: 512e1bdb user: dan tags: fts5)
18:22
Add detection of the isnan() library function to the configure script. Make the code responsive to the HAVE_ISNAN configuration option. (check-in: 46f3aba2 user: drh tags: trunk)
18:02
Make use of the fdatasync() interface if the HAVE_FDATASYNC macro is true. (check-in: 694228e4 user: drh tags: trunk)
16:49
Improvements to compile-time-option hygiene. Use "#if OPTION" instead of "#ifdef OPTION" in cases where that makes sense, so that -DOPTION=0 will work. Add the "Have-Not" configuration in releasetest.tcl which disables all of the "HAVE_component" compile-time options. (check-in: 9e92a5ed user: drh tags: trunk)
15:21
Add the ability to put comments in the Config and Platform setup sections of the releasetest.tcl script. (check-in: d6f8c899 user: drh tags: trunk)
14:27
Autoconf configure script updates: (1) remove the long-obsolete --enable-cross-thread-connections option. (2) remove the --with-hints= options. (3) Extension loading is enabled by default. (4) Check for strchrnull() (5) Update the --help text. (check-in: 5004063c user: drh tags: trunk)
2015-01-09
21:54
Change the testfixture binary so that it explicitly enabled core files on a crash (on unix). Add a test case to verify that this works. (check-in: 90f422ed user: drh tags: trunk)
20:00
Add SQLITE_ENABLE_STMT_SCANSTATUS to the Update-Delete-Limit configuration in the releasetest.tcl script. (check-in: c70d5eda user: drh tags: trunk)
19:45
Remove an unused preprocessor macro from pcache.c. (check-in: 88a7a967 user: drh tags: trunk)
19:36
Improvements to the sqlite3_stmt_scanstatus() documentation. No changes to code. (check-in: 9309c9bc user: drh tags: trunk)
01:27
Fix three crash problems discovered by afl-fuzz. Ticket [a59ae93ee990a55]. (check-in: fe578863 user: drh tags: trunk)
00:38
Add the "ascii" mode to the command-line shell. (check-in: e1518a94 user: drh tags: trunk)
2015-01-08
22:08
Omit modules from the "valgrind" permutation that fork off separate processes. Also omit selectG.test because it is timing sensitive and valgrind is too slow to get the right answer. (check-in: 662932a6 user: drh tags: trunk)
20:06
Merge recent enhancements from trunk, including test scripts enhancements and the removal of limits on the number of terms in a VALUES clause. (check-in: 5a2dec55 user: drh tags: sessions)
19:55
Merge the testing enhancements and the unlimited VALUES enhancement from trunk. (check-in: cc780842 user: drh tags: apple-osx)
16:47
Try to fix up the "valgrindtest" target in Makefile.in so that it avoids misuse testing that can trigger false errors. (check-in: 50b5a8af user: drh tags: trunk)
02:28
Fix the extension tags on the "smoketest" makefile target for Windows. (check-in: 826fd311 user: drh tags: trunk)
02:15
In releasetest.tcl: (1) Add the Failure-Detection platform. (2) Re-add the --disable-shared argument on Default that was mistakenly removed by the previous commit. (3) Remove the -ftrapv tests, as we read that -ftrapv does not work in GCC. (check-in: 1f2fb777 user: drh tags: trunk)
01:05
In releasetest.tcl: add options --veryquick and pass-through compiler optimization settings (ex: -O0). Collect the SQLite version number from the main.test output and show it during the summary report at the end. (check-in: e7e7bc1d user: drh tags: trunk)
2015-01-07
19:38
In releasetest.tcl, always use --disable-shared together with --disable-amalgamation because mingw generates a binary that crashes and cannot be debugged using gdb if you don't. (check-in: 19982439 user: drh tags: trunk)
19:33
Add the fts5 'optimize' command. (check-in: e749be56 user: dan tags: fts5)
18:44
In releasetest.tcl, copy certain command-line arguments (-g, -D..., etc) down into each test run. (check-in: 889864b5 user: drh tags: trunk)
18:19
Modify the valgrind target to be consistent with regard to target suffixes. (check-in: dc4aa732 user: mistachkin tags: trunk)
18:11
Fix threads-enabled builds on Windows when the amalgamation is not in use. (check-in: 9b92a4d2 user: mistachkin tags: trunk)
17:11
Add the 'rebuild' and 'delete-all' commands. (check-in: 0cb2fed5 user: dan tags: fts5)
14:41
In releasetest.tcl, change the --dryrun option to work as it does in multitest.tcl of TH3. Add the new --trace option that work like the --dryrun option used to work. Add the ability to specify additional configure-script options in the Config array, and create configurations that use --disable-shared and --disable-amalgamation for testing. (check-in: be17ef03 user: drh tags: trunk)
14:09
Add a valgrind test to the Linux-x86_64 platform in releasetest.tcl. (check-in: 4b6df035 user: drh tags: trunk)
2015-01-06
21:31
Fix a problem in the unix implementation of FCNTL_SIZE_HINT on systems that do not support posix_fallocate(). (check-in: af20eae1 user: dan tags: trunk)
19:08
Remove the iPos parameter from the tokenizer callback. Fix the "tokenchars" and "separators" options on the simple tokenizer. (check-in: 65f0262f user: dan tags: fts5)
16:53
Improved and more rigorous test of large VALUES clauses. (check-in: 6917d9f4 user: drh tags: trunk)
14:38
Further fixes and test cases related to external content tables. (check-in: ce6a899b user: dan tags: fts5)
2015-01-05
20:41
Tests and fixes for fts5 external content tables. (check-in: 047aaf83 user: dan tags: fts5)
20:13
Enhance "INSERT INTO ... VALUES" so that the number of rows in the VALUES clause is not limited by SQLITE_LIMIT_COMPOUND_SELECT, and so that the stack depth is constant regardless of the number of rows in VALUES. (check-in: e1c4a359 user: drh tags: trunk)
20:04
Avoid O(N*N) behavior with very long lists of VALUES. (Closed-Leaf check-in: ee30fb35 user: drh tags: many-VALUEs)
19:16
Handle compound-select statements originating from VALUES clauses as a special case that does not use recursion. (check-in: 9ce9e43a user: drh tags: many-VALUEs)
16:27
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. (check-in: c9d65f73 user: drh tags: many-VALUEs)
15:48
Remove some needless recursion from compound SELECT processing. (check-in: fe677d13 user: drh tags: trunk)
2015-01-03
20:44
Add support for external content tables to fts5. (check-in: 17ef5b59 user: dan tags: fts5)
18:59
In releasetest.tcl, omit the CC=clang text from the label on Sanitize tests, so that the label fits on an 80-character line. (check-in: 23d4c07e user: drh tags: trunk)
2015-01-02
21:54
Fix a harmless compiler warning. (check-in: e0de5807 user: drh tags: trunk)
20:06
Merge updates from trunk. (Closed-Leaf check-in: ea99f4b2 user: mistachkin tags: asciiMode)
19:17
Merge the latest changes from trunk into the apple-osx branch. (check-in: df3cdf9f user: drh tags: apple-osx)
15:55
Add the SQLITE_CONFIG_PMASZ start-time option. (check-in: acb0d1e8 user: drh tags: trunk)
14:55
Allow the rank column to be remapped on a per-query basis by including a term similar to "rank match 'bm25(10,2)'" in a where clause. (check-in: 1cd15a17 user: dan tags: fts5)
2015-01-01
23:02
Add logic to releasetest.tcl that detects -fsanitize=undefined errors. Fix a few false-positivies that come up when running the sanitize=undefined test. (check-in: 2835e79a user: drh tags: trunk)
19:53
Add the ability to specify an alternative compiler (clang instead of gcc) on the default Makefile. Use this in releasetest.tcl to implement an -fsanitize=undefined test. (check-in: c55c05fe user: drh tags: trunk)
19:11
Enhance the "lemon" executable so that it ignores -f, -W, -O, and -I command-line options. This permits most of the same options that are passed to the compiler to also be harmlessly passed to lemon, and thus simplifies makefiles. (check-in: da408d12 user: drh tags: trunk)
18:54
Fix an error in the computation of the number of hours of runtime for individual test runs in the releasetest.tcl script. (check-in: e2b0ebe2 user: drh tags: trunk)
18:03
Merge latest trunk changes with this branch. (check-in: 4b365167 user: dan tags: fts5)
16:47
Fix a harmless compiler warning in rtree. (check-in: 30891c6b user: drh tags: trunk)
16:46
Add a version of the unicode61 tokenizer to fts5. (check-in: d09f7800 user: dan tags: fts5)
14:13
Fix two test cases in memsubsys1 so that they work with the mmap permutation. (check-in: 66269d0d user: drh tags: trunk)
14:06
Fix the fkey-7.1 test so that it sorts its answer and hence always gives the same answer. (check-in: 5830c557 user: drh tags: trunk)
2014-12-31
20:35
Fix to releasetest.tcl: When doing the secondary _debug runs, convert "fulltest" to just "test". (check-in: ec264bde user: drh tags: trunk)
20:25
Adjust the memsubsys1-5.5 test case to avoid occasional false positives. (check-in: 43241318 user: drh tags: trunk)
20:19
Fix a floating-point round-off error problem in the percentile.test module. (check-in: 456948ea user: drh tags: trunk)
19:58
Disable the bigsort.test module on machine with less than 8GB of available RAM or machine, to avoid thrashing. (check-in: 9d4fe116 user: drh tags: trunk)
18:55
Change threadtest3.c so that SQLITE_SCHEMA returns result in warnings not hard errors. Add the Darwin-x86_64 platform to releasetest.tcl. (check-in: b09a139c user: drh tags: trunk)
18:28
Update the command-line parsing for threadtest3 so that tests are run in the order they are specified on the command-line. (check-in: f489bc31 user: drh tags: trunk)
18:25
Add a missing sqlite3_close() call to threadtest3.c. (check-in: a65a44f3 user: dan tags: trunk)
18:10
Only run walthread5 once when running all tests in threadtest3. (check-in: ca2e4a5b user: drh tags: trunk)
18:08
Do run pragma3.test as part of the mmap permutation. As it works as of [cf48eb608a]. (check-in: 11057e26 user: dan tags: trunk)
15:14
Change the width of output lines in releasetest.tcl from 70 to 79 characters. (check-in: a468d967 user: drh tags: trunk)
14:27
Merge the fix to PRAGMA data_version and testing improvements from trunk. (check-in: 86e39123 user: drh tags: sessions)
14:18
Make sure PRAGMA data_version is updated even if the cache is empty when another connection changes the database. (check-in: cf48eb60 user: drh tags: trunk)
09:52
Do not run pragma3.test as part of the mmap permutation. (check-in: 94101011 user: dan tags: trunk)
2014-12-30
20:40
Add the "mptester" tests to releasetest.tcl. (check-in: 93094a68 user: drh tags: trunk)
19:58
Ensure that when a file is extended using FCNTL_SIZE_HINT the last page is allocated on disk, even if the file will only use part of it. (check-in: c7f84717 user: dan tags: trunk)
19:26
Update the threadtest3 test program so that its output summary is compatible with releasetest.tcl. In threadtest3, do not record errors that contain the string "no such table" as being fatal errors, since they happen sometimes in a race condition in stress1. (check-in: 98cb56e2 user: drh tags: trunk)
18:07
Fix problems with the "inmemory_journal" permutation. (check-in: 79693f04 user: dan tags: trunk)
14:40
If the sorter uses mmap'd temp files, ensure all pages of the temp file have been allocated before it is accessed. Otherwise, a disk-full condition might result in a SIGBUS exception. (check-in: 77664841 user: dan tags: trunk)
13:04
Make SQLITE_CONFIG_PCACHE_HDRSZ accurate (not an over-estimate) on 32-bit systems. (check-in: 340b3477 user: drh tags: trunk)
12:03
Change notify2.test to check that sqlite3_blocking_step() uses CPU more efficiently than sqlite3_step(), not that it results in greater overall throughput for any specific number of threads. (check-in: d904d293 user: dan tags: trunk)
00:57
Round all object sizes that go into computing SQLITE_CONFIG_PCACHE_HDRSZ up to a multiple of 8 bytes. (check-in: b28ce75f user: drh tags: trunk)
2014-12-29
19:54
Fix the --dryrun option in releasetest.tcl. (check-in: 0f9e5496 user: drh tags: trunk)
15:59
Move all fts5 test files to new directory "ext/fts5/test". (check-in: 7f148edb user: dan tags: fts5)
12:02
Fix some recently added tests so that they work with SQLITE_DEFAULT_AUTOVACUUM=1. (check-in: ef0626ab user: dan tags: trunk)
11:50
Reinstate an assert() by adding an "|| CORRUPT_DB" term. (check-in: 95ce2034 user: drh tags: trunk)
11:24
Fixes to built-in tokenizers. (check-in: b33fe0dd user: dan tags: fts5)
02:55
Fix the "checksymbols" target in Makefile.in so that it actually works. Enhance the releasetest.tcl script to count the total number of tests run over all configurations. (check-in: 4eda1c74 user: drh tags: trunk)
2014-12-28
22:10
Fix WITHOUT ROWID tables so that they correctly deal with PRIMARY KEYs that contain redundant columns. (check-in: 0dfef675 user: drh tags: trunk)
2014-12-25
12:19
Update the SQLITE_CONFIG_PAGECACHE documentation so that the maximum page size is correctly stated to be 65536. (check-in: 3286424b user: drh tags: trunk)
2014-12-24
23:35
Fix the error counter in releasetest.tcl. And report the total time in HH:MM:SS instead of just seconds. (check-in: 6396f804 user: drh tags: trunk)
18:11
Fix a failing assert() in balance_nonroot(). (check-in: e2e32314 user: dan tags: trunk)
17:17
When building the amalgamation with SQLITE_ENABLE_IOTRACE defined, do not mark symbol sqlite3IoTrace as static. (check-in: 5b7ca013 user: dan tags: trunk)
2014-12-23
21:17
Merge the new and improved releasetest.tcl script into trunk. Add a "make releasetest" target to the autoconf makefile. (check-in: 1deb00ec user: drh tags: trunk)
21:10
Remove 'threadtest' as a target on Windows, due to lack of pthreads. Also, change 'fulltest' to 'fulltestonly'. (Closed-Leaf check-in: a010c404 user: mistachkin tags: releasetest-refactor)
21:03
Fix typo in library object file name. (check-in: f49566a7 user: mistachkin tags: releasetest-refactor)
20:42
Permit sqlite3_shutdown() to be called with OMIT_WSD enabled and without having called sqlite3_initialize() first. (check-in: 3f7dbdb5 user: mistachkin tags: trunk)
20:41
In the releasetest.tcl script, show the test target for each configuration that is run. And show the time in HH:MM:SS. (check-in: 2295e9e0 user: drh tags: releasetest-refactor)
20:31
Add the threadtest target to Makefile.in. Add --enable-load-extension to the configure issued by releasetest.tcl. (check-in: cb128067 user: drh tags: releasetest-refactor)
20:22
Draft of changes necessary to make releasetest work on Windows via MinGW. (check-in: af166c5c user: mistachkin tags: releasetest-refactor)
20:05
Fix a potential segfault following OOM error in the test harness. The SQLite core itself is not at fault. (check-in: 1bb26695 user: drh tags: trunk)
19:52
Add the "checksymbols" target to Makefile.in (check-in: 5bd73dba user: drh tags: releasetest-refactor)
19:40
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. (check-in: 7c85e831 user: drh tags: releasetest-refactor)
19:18
Fix the fts5 bm25() function so that it matches the documentation. (check-in: 1ac7a8d0 user: dan tags: fts5)
2014-12-22
22:02
Fix a typo in an evidence mark on a test script. No changes to code. (check-in: a08b0c75 user: drh tags: trunk)
21:01
Fixes and simplifications for the snippet() and highlight() functions. (check-in: ca5d4404 user: dan tags: fts5)
18:48
Merge the PRAGMA data_version redefinition and other fixes from trunk. (check-in: 315243e4 user: drh tags: sessions)
18:41
Redefine the way PRAGMA data_version works: It continues to change when any other connection commits, including shared-cache connections, but does not change if the local connection commits. (check-in: 7a97826f user: drh tags: trunk)
2014-12-21
11:56
Fixes to the README.md file. No changes to code. (check-in: ef4b734d user: drh tags: trunk)
2014-12-20
22:21
Support manually disabling overlapped file I/O for Windows sub-platforms other than Windows CE. (check-in: b9330b88 user: mistachkin tags: trunk)
21:14
Minor fixes and enhancements to the SQLITE_ENABLE_API_ARMOR functionality. (check-in: cb3e4219 user: mistachkin tags: trunk)
14:58
Merge the PRAGMA data_version command and the enhancements to FK query planning from trunk into the sessions branch. (check-in: d4f82af0 user: drh tags: sessions)
14:50
Add the "PRAGMA data_version" command for checking to see if a database has been modified. (check-in: de50f25c user: drh tags: trunk)
14:34
Update the PRAGMA data_version command so that it reponse to changes made by a shared-cache database connection, and also to changes made by the same database connection. Add test cases to verify the new behavior. (Closed-Leaf check-in: 44ee5383 user: drh tags: data_version_pragma)
2014-12-19
22:20
Merge updates from trunk. (check-in: 555fb71f user: mistachkin tags: asciiMode)
20:53
Remove the fts5_test() aux function. Test aux functions using the tcl interface instead. (check-in: 67e3ffd9 user: dan tags: fts5)
20:27
Adding test cases for the "PRAGMA data_version" command. (check-in: c5fb7d6a user: drh tags: data_version_pragma)
19:28
Experimental "PRAGMA data_version" command for detecting when another process has changed the database file. (check-in: 43db1f44 user: drh tags: data_version_pragma)
18:49
Simplify the implementation of the "header-value" pragmas (schema_version, user_version, freelist_count, and application_id) by making them more table-driven. (check-in: da27a09d user: drh tags: trunk)
2014-12-18
20:01
Fix a problem with prefix queries and the AND operator. (check-in: 38b3c65e user: dan tags: fts5)
18:25
Fix various problems in fts5 revealed by fault-injection tests. (check-in: e358c3de user: dan tags: fts5)
2014-12-17
15:03
Experimental opimizations to speed up FK constraint CASCADE and SET NULL action processing. (check-in: 8c5dd6cc user: dan tags: trunk)
14:38
Fix some comments in fkey.c. Add tests to fkey8.test. (Closed-Leaf check-in: 210cb2a6 user: dan tags: experimental-fk-actions)
2014-12-16
20:13
Experimental opimizations to speed up FK constraint CASCADE and SET NULL action processing. Requires further testing. (check-in: 35a20a5f user: dan tags: experimental-fk-actions)
12:46
Fix the e_walauto.test script so that it works on windows. (check-in: 7d092ebb user: drh tags: trunk)
01:05
Merge threading fixes from trunk into the sessions branch. (check-in: 9817a286 user: drh tags: sessions)
00:29
Merge latest fixes and enhancements from trunk into apple-osx. (check-in: 2c1d8dda user: drh tags: apple-osx)
00:20
Enhanced "stress2" testing in the threadtest3.c test program. (check-in: ae43539e user: drh tags: trunk)
00:08
Make sure the sqlite3BtreeCount() routine does not leave index cursors in an inconsistent state, as doing so might result in an assertion fault inside of sqlite3BtreeKey() called from saveAllCursors() if content is deleted out from under the statement that issued the sqlite3BtreeCount() call. (check-in: 5b1b6970 user: drh tags: trunk)
2014-12-15
20:49
Changes to threadtest3 so that "stress2" is more similar to the SDS stress test. (Closed-Leaf check-in: 5648af96 user: dan tags: threadtest3)
16:27
Add new test file e_walauto.test. (check-in: 62ef4514 user: dan tags: trunk)
08:46
Fix errors in threadtest3 tests caused by earlier tests neglecting to close database handles. (check-in: 1d44f1b1 user: dan tags: trunk)
2014-12-13
17:41
Further enhancements to threadtest3 stress tests. (check-in: ba772cff user: dan tags: trunk)
2014-12-12
23:17
Add extra tests to threadtest4.c. Fix a benign data race accessing the text encoding using ENC(db). (check-in: d7bb7ea4 user: drh tags: trunk)
16:39
Add extra tests to threadtest3. (check-in: f6bf86f9 user: dan tags: trunk)
01:27
Add new tests to the threadtest4.c program. Fix a long-standing data race in WAL mode for shared-cache. (check-in: d8d3e6d0 user: drh tags: trunk)
00:52
Remove the KeyInfo cache (for now - perhaps we will add it back in later - or maybe not since it provides negligible benefit but adds a lot of complexity and thread-safety risk). Add a mutex to ATTACH to deal with a data race. (check-in: 03c443ea user: drh tags: trunk)
00:40
Make sure the Btree mutex is held when setting the locking mode and the secure delete flag when attaching a shared-cache database. (Closed-Leaf check-in: 6bef7ede user: drh tags: threadtest4)
00:26
Merge the cell overflow page number cache thread race fix from trunk. (check-in: cefad47e user: drh tags: threadtest4)
00:20
Fix a bug in the threadtest4.c program. Remove the keyinfo cache as it provides minimal performance improvements, and then only at SQL preparation time, not at runtime, and it has problems with data races in shared-cache mode. We might later add the keyinfo cache back but only enable it when shared-cache mode is off. (check-in: b7489f94 user: drh tags: threadtest4)
2014-12-11
19:29
Add the threadtest4.c test program. Not yet working. (check-in: ec3a7446 user: drh tags: threadtest4)
16:38
Fix a race condition to do with very large index keys in shared-cache mode. (check-in: fc157dd7 user: dan tags: trunk)
15:27
Fix a typo in the documentation for sqlite3_threadsafe(). (check-in: 258e747b user: drh tags: trunk)
04:49
Update a comment. (check-in: e0e102a0 user: mistachkin tags: asciiMode)
03:29
Rename a structure member to improve code clarity. (check-in: d48eda16 user: mistachkin tags: asciiMode)
03:25
Remove an unused structure member. (check-in: d8404340 user: mistachkin tags: asciiMode)
03:20
Further simplify shell mode changes. (check-in: cf9c6e7e user: mistachkin tags: asciiMode)
03:12
Simplify and cleanup the implementation of the new ASCII mode for the shell. (check-in: 66a28f7a user: mistachkin tags: asciiMode)
02:28
Merge updates from trunk. (check-in: 5b5d3e4d user: mistachkin tags: asciiMode)
2014-12-10
20:57
Fix a typo causing a test error in e_walhook.test. (check-in: d9f916ba user: dan tags: trunk)
20:29
Add new test file e_walhook.test. (check-in: 2eb6d3e4 user: dan tags: trunk)
17:34
Revise mutex handling by the sqlite3_win32_reset_heap() function. (check-in: eacb3b7b user: mistachkin tags: trunk)
04:58
Fix typos in the documentation for sqlite3_table_column_metadata(). No changes to code. (check-in: 3528f8dd user: drh tags: trunk)
2014-12-09
22:24
Fix the sqlite3_table_column_metadata() routine so that it gives the correct answer for the "rowid" column in a WITHOUT ROWID table. Enhance it so that it can be used to check for the existence of a table by setting the column name parameter to NULL. The routine is now included in the build by default, even without the SQLITE_ENABLE_COLUMN_METADATA compile-time option. (check-in: cf9be419 user: drh tags: trunk)
20:13
Add extra tests to e_walckpt.test. (check-in: 84f95810 user: dan tags: trunk)
19:16
Lower the default SQLITE_SORTER_PMASZ value back to 10, where it has been for the past couple of releases. Applications that need a larger value can set one. (check-in: 1ba8911c user: drh tags: trunk)
19:07
Make the sqlite3_table_column_metadata() interface available by default and without requiring the SQLITE_ENABLE_COLUMN_METADATA compile-time option. Other sqlite3_column_* interfaces that have a run-time penalty even if they are unused still require the SQLITE_ENABLE_COLUMN_METADATA option at compile-time. (check-in: 4f7549ff user: drh tags: trunk)
15:12
Add the SQLITE_REVERSE_UNORDERED_SELECTS compile-time option that causes the "PRAGMA reverse_unordered_selects" setting to be on by default. (check-in: 75a803e6 user: drh tags: trunk)
15:01
Increase the default PMA size from 10 to 250 pages and provide the SQLITE_SORTER_PMASZ compile-time option to change this default. Add needed mutex call when clearing the KeyInfo cache in shared-cache mode. (check-in: 6e2da589 user: drh tags: apple-osx)
14:54
Merge the KeyInfo cache mutex fix from trunk. (check-in: f0940c73 user: drh tags: sessions)
14:42
Increase the default minimum PMA size for multi-threaded sorting from 10x the page size to 250x the page size. Provide the SQLITE_SORTER_PMASZ compile-time option to change this default. (check-in: b05340fe user: drh tags: trunk)
04:26
Fix harmless compiler warning. (check-in: e97b7a8b user: mistachkin tags: trunk)
01:34
Version 3.8.7.4 (Leaf check-in: f66f7a17 user: drh tags: release, version-3.8.7.4, branch-3.8.7)
2014-12-08
20:29
Add extra tests to e_walckpt.test. (check-in: d6832aa2 user: dan tags: trunk)
20:23
Add missing mutex calls around a call to sqlite3SchemaGet() within sqlite3_open(). (check-in: 266b3441 user: dan tags: branch-3.8.7)
20:20
Add missing mutex calls around a call to sqlite3SchemaGet() within sqlite3_open(). (check-in: 45415899 user: dan tags: trunk)
18:08
Add a missing mutex around calls to clear the KeyInfo cache when closing a database connection. (check-in: 7047ce32 user: drh tags: trunk)
18:02
Increase the version number to 3.8.7.4. (check-in: 33c90027 user: drh tags: branch-3.8.7)
17:45
Add a missing mutex around calls to clear the KeyInfo cache when closing a database connection. (check-in: 3ddc7e4c user: drh tags: branch-3.8.7)
07:50
Update this branch with latest trunk changes. (check-in: 69a312ad user: dan tags: ota-update)
07:28
Update comments in sqlite3ota.h to remove the "must have PRIMARY KEY" restriction. (check-in: 088a41eb user: dan tags: ota-update)
07:22
Extra tests for the ota_rowid column. (check-in: 46069393 user: dan tags: ota-update)
2014-12-06
19:30
Allow the ota extension to write to tables with no PRIMARY KEY declaration. (check-in: ba59a7e2 user: dan tags: ota-update)
14:56
Avoid accessing a single uninitialized byte when moving a rare 3-byte cell from an internal page to a leaf. This was not actually causing a problem, just a valgrind warning. (check-in: 6aeece19 user: dan tags: trunk)
02:05
Fix a (harmless) uninitialized variable reference in b-tree balancing for auto-vacuumed tables with overflow pages. (check-in: dd1dd445 user: drh tags: trunk)
2014-12-05
22:29
Version 3.8.7.3 (check-in: 647e77e8 user: drh tags: release, version-3.8.7.3, branch-3.8.7)
21:18
Avoid a potential NULL pointer deference in the sqlite3_stmt_scanstatus() logic. (check-in: 42d44adc user: drh tags: trunk)
21:04
Fix a buffer overread that might occur in analyze.c if SQLITE_ENABLE_STAT4 was defined. (check-in: c1ae1268 user: dan tags: trunk)
20:46
Add new test file e_walckpt.test. Still some tests to come. (check-in: e4db3db3 user: dan tags: trunk)
20:43
Fix a buffer overread that might occur in analyze.c if SQLITE_ENABLE_STAT4 was defined. (check-in: 194c90db user: dan tags: branch-3.8.7)
20:16
Merge the shared-cache KeyInfo fix from trunk. (check-in: 8a9b43f9 user: drh tags: apple-osx)
20:05
Merge the fix for the shared-cache KeyInfo cache bug from trunk. (check-in: 5a73da6a user: drh tags: sessions)
19:50
Make sure the WhereTerm objects are fully zeroed when they are allocated. (check-in: fdb66733 user: drh tags: trunk)
15:31
The KeyInfo cache must be cleared before closing the btree, not after. Revised fix for ticket [e4a18565a36884b00edf]. (check-in: 7ed3346e user: drh tags: trunk)
15:25
The KeyInfo cache must be cleared before closing the btree, not after. Revised fix for ticket [e4a18565a36884b00edf]. (check-in: 48529508 user: drh tags: branch-3.8.7)
14:54
Increase the version number to 3.8.7.3. (check-in: 9f7560bc user: drh tags: branch-3.8.7)
14:51
When closing a (shared-cache) database connection, be sure to clear out all KeyInfo objects cached on Index objects. Fix for ticket [e4a18565a36884b00edf]. (check-in: b7905b8c user: drh tags: branch-3.8.7)
14:44
When closing a (shared-cache) database connection, be sure to clear out all KeyInfo objects cached on Index objects. Fix for ticket [e4a18565a36884b00edf]. (check-in: adca7688 user: drh tags: trunk)
14:36
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. (Closed-Leaf check-in: 68b23c3d user: drh tags: collseq-checking)
14:34
Improved comment on the sharedB.test test script. (Closed-Leaf check-in: 71f589e3 user: drh tags: fix-stale-keyinfo-cache)
14:07
Test case demonstrating the problem described by ticket [e4a18565a36884b00edf]. (check-in: ffea3e90 user: drh tags: fix-stale-keyinfo-cache)
05:38
When closing a (shared-cache) database connection, be sure to clear out all KeyInfo objects cached on Index objects. Proposed fix for ticket [e4a18565a36884b00edf]. (check-in: 651ed97d user: drh tags: fix-stale-keyinfo-cache)
00:49
Import compiler warning and autoconf makefile fixes from trunk. (check-in: 5437e053 user: drh tags: apple-osx)
00:41
Import from trunk the fix the "test" target on the autoconf and MSVC makefiles and some minor compiler warning fixes. (check-in: c9f20eb2 user: drh tags: sessions)
00:32
Fix compiler warnings. (check-in: e9955c0e user: drh tags: trunk)
00:17
Fix the autoconf and MSVC makefiles, which have been broken for nearly a month. :-( (check-in: 520c2b83 user: drh tags: trunk)
2014-12-04
23:42
Import from trunk support for SQLITE_CHECKPOINT_TRUNCATE and fixes for a couple of obscure bugs. (check-in: 463ad971 user: drh tags: apple-osx)
23:35
Incorporate the SQLITE_CHECKPOINT_TRUNCATE enhancement and a couple of obscure bug fixes from trunk. (check-in: 34ffa3b3 user: drh tags: sessions)
21:54
Make sure that a DISTINCT query with an ORDER BY works correctly even if it uses a descending index. Fix for ticket [c5ea805691bfc4204b1cb9e]. (check-in: 0d3aef97 user: drh tags: trunk)
20:24
Performance enhancement for single-table queries with many OR-connected WHERE clause terms and multiple indexes with the same left-most columns. (check-in: 1461d543 user: drh tags: trunk)
16:29
If a table is the right operand of a LEFT JOIN, then any column of that table can be NULL even if that column has a NOT NULL constraint. Fix for ticket [6f2222d550f5b0ee7ed]. (check-in: 5a80957b user: drh tags: branch-3.8.7)
16:27
If a table is the right operand of a LEFT JOIN, then any column of that table can be NULL even if that column has a NOT NULL constraint. Fix for ticket [6f2222d550f5b0ee7ed]. (check-in: 6f6fcbe4 user: drh tags: trunk)
15:02
Clarification of the meaning of the second parameter to the busy-handler callback. No changes to code. (check-in: 1e2bc484 user: drh tags: trunk)
14:01
Fix comment typos reported on the mailing list. No changes to code. (check-in: 93a71c9f user: drh tags: trunk)
04:50
Add an implementation mark and fix a comment describing the OP_Checkpoint opcode. (check-in: 7475b90c user: drh tags: trunk)
2014-12-03
19:25
Add evidence marks and assert()s used as evidence for checkpoint requirements. (check-in: b2da8afc user: drh tags: trunk)
19:08
Fix over-length comment lines in sqlite.h.in. No changes to code. (check-in: cbd357fd user: drh tags: trunk)
18:32
Simplify the sqlite3_wal_checkpoint() documentation. Add some source code evidence marks. (check-in: 026c44ff user: drh tags: trunk)
17:27
Begin testing fts5 OOM and IO error handling. (check-in: 2037dba6 user: dan tags: fts5)
16:30
Futher tweaks to the sqlite3_wal_checkpoint_v2() documentation. (check-in: 7d284d04 user: drh tags: trunk)
15:50
Updates to the documentation for sqlite3_wal_checkpoint_v2() and related interfaces, including adding many requirements marks. (check-in: 1e212d98 user: drh tags: trunk)
2014-12-02
20:51
Add support for SQLITE_CHECKPOINT_TRUNCATE. (check-in: edda2b9e user: drh tags: trunk)
20:18
Add a configuration option to remap the "rank" column to an auxiliary fts5 function. (check-in: b5f59712 user: dan tags: fts5)
19:35
When attempting to restart a wal file, make any required calls to sqlite3_randomness() before waiting on or checking for wal file readers. This restores the behaviour exhibited by the trunk. (Closed-Leaf check-in: 6ee08769 user: dan tags: checkpoint-truncate)
19:04
Add the SQLITE_CHECKPOINT_TRUNCATE option. (check-in: 8e20a434 user: dan tags: checkpoint-truncate)
16:38
Merge all recent enhancements and bug fixes from trunk into the apple-osx branch. (check-in: 43c4ba26 user: drh tags: apple-osx)
16:31
Merge all recent fixes and enhancements from trunk into sessions. (check-in: 2617d937 user: drh tags: sessions)
16:16
Convert two unreachable branches into assert() statements. (check-in: 61b31e77 user: drh tags: trunk)
13:46
Work around overzealous NULL pointer checking in memcpy() and memset() for some systems. (check-in: 0d04f380 user: drh tags: trunk)
2014-12-01
20:05
Add code to parse a rank() function specification. And a tcl interface to add auxiliary functions to fts5. (check-in: 9c1697a2 user: dan tags: fts5)
2014-11-28
20:01
Add a cookie mechanism to ensure that the %_config table is re-read as required. (check-in: bb4a37b5 user: dan tags: fts5)
13:35
Remove the ill-designed "-end" option from the command-line shell. Instead, allow multiple SQL or dot-commands as command-line arguments. Any -cmd commands are processed first, followed by other command-line arguments, for backwards compatibility. (check-in: 24fa2e98 user: drh tags: trunk)
11:54
Add the -end option to the command-line shell, which forces it to exit after reading prior command-line options (presumably including one or more -cmd options) and without reading standard input. (check-in: b59397b1 user: drh tags: trunk)
2014-11-27
20:03
Add a %_config table to fts5. (check-in: 83491c56 user: dan tags: fts5)
18:09
Update ota so that the hidden columns of virtual tables may be written. (check-in: ccee9996 user: dan tags: ota-update)
11:36
Fix a buffer overread during compilation of CREATE VIRTUAL TABLE statements that featured an explicit database name but no virtual table arguments. For example, "CREATE VIRTUAL TABLE main.ft USING fts4". (check-in: f095cde5 user: dan tags: trunk)
04:23
More test cases for the balancer. (check-in: 358ea818 user: drh tags: trunk)
03:46
Fix a problem in the new b-tree balancer that was causing corruption of the fragmentation count. (check-in: f242394e user: drh tags: trunk)
2014-11-25
18:59
Fix an integer overflow bug in vdbesort.c. (check-in: 62382719 user: dan tags: trunk)
2014-11-24
16:24
Add the auxiliary highlight() function to fts5. (check-in: 05909237 user: dan tags: fts5)
2014-11-22
21:37
Always reinitialized the Index.bUnordered and Index.noSkipscan flags before rereading the sqlite_stat1 table, even if SQLITE_ENABLE_STAT4 is defined. (check-in: 1e1221fc user: drh tags: trunk)
19:52
Fix an error in the comments from the previous check-in. (check-in: 9660ce54 user: drh tags: trunk)
18:50
Deploy heuristics (well-commented) to better estimate how much unindexed terms in the WHERE clause filter the number of output rows from a single table. (check-in: 22165994 user: drh tags: trunk)
16:14
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. (Closed-Leaf check-in: e1f893c6 user: drh tags: mistake)
12:22
Remove a redundant test case (probably a copy/paste error). Add an assert() to where.c to ensure that automatic indexes do not have there output row counts adjusted downward by supplementary constraints. (check-in: eea47933 user: drh tags: trunk)
09:09
Add SQLITE_ENABLE_OTA pre-processor directives so that this branch may be compiled with or without OTA. (check-in: 600cefdd user: dan tags: ota-update)
2014-11-21
14:37
Merge latest trunk changes with this branch. (check-in: 7ef44c5b user: dan tags: ota-update)
11:22
Changes to comments in sqlite3ota.h. (check-in: 14139542 user: dan tags: ota-update)
10:46
Add support for updating virtual tables via ota. (check-in: 4dfcfe54 user: dan tags: ota-update)
2014-11-20
23:21
Fix a typo in a requirements mark on the abs() SQL function. (check-in: b1e6c02f user: drh tags: trunk)
23:11
Fix a benign test error on PRAGMA collation_list introduced by a recent checkin. (check-in: 332cc959 user: drh tags: trunk)
23:03
Updates to requirements tags on the mutex documentation. (check-in: fcf8b7e4 user: drh tags: trunk)
19:22
Add requirements marks on the built-in collating functions. (check-in: 4b608b62 user: drh tags: trunk)
19:19
Add the "ota_delta()" feature for delta-compressed updates. (check-in: c64dcd17 user: dan tags: ota-update)
17:37
Update the ota extension so that it can be used to update tables with external PRIMARY KEY indexes. (check-in: 55066a11 user: dan tags: ota-update)
15:30
Ensure that when the number of cells on a page drops to zero that the freelist and fragment counter are both cleared. Also add evidence marks corresponding to file-format documentation. (check-in: ef9fbc08 user: drh tags: trunk)
15:11
Updates to support zipvfs in pass-through mode. (check-in: 556c3de5 user: dan tags: ota-update)
02:58
Fix the encoding of some integers to use the minimum amount of space: -128, -32768, -8388608, -217483648, and -140737488355328. (check-in: 2d7c8da5 user: drh tags: trunk)
02:18
Add some requirements marks to the record formatting logic. Comment changes only - the code is unaltered. (check-in: 9a9627e1 user: drh tags: trunk)
2014-11-19
16:36
Add new requirements marks associated with the file format documentation. No changes to code. (check-in: 6d00bcca user: drh tags: trunk)
14:31
Completely remove an assert() that had previously been commented out. (check-in: 89b3c1c4 user: drh tags: trunk)
14:05
Add an ALWAYS on an always-true branch in wal.c. Fix the ANALYZE command so that it resets the "unordered" and "noskipscan" flags on indices when reloading the sqlite_stat1 table. (check-in: 9ed97a85 user: drh tags: trunk)
2014-11-18
21:54
Adding the "noskipscan" token to an sqlite_stat1.stat field prevents an index for being used with the skip-scan algorithm. (check-in: 4461bf04 user: drh tags: trunk)
21:45
Allow an automatic index to be used if the only uses of declared indexes for the same loop use the skip-scan algorithm. (check-in: c52f7971 user: drh tags: trunk)
21:27
Merge recent trunk enhancements. (check-in: ccb601f6 user: drh tags: apple-osx)
21:20
Merge recent trunk enhancements, including the read-after-ROLLBACK change and the addition of sqlite3_stmt_scanstatus() support, as well as various minor bug fixes. (check-in: f09055f3 user: drh tags: sessions)
20:57
Version 3.8.7.2. (check-in: 2ab564bf user: drh tags: release, version-3.8.7.2, branch-3.8.7)
20:49
Merge in all the other ROLLBACK fixes from the branch-3.8.7 branch. I don't know why I was doing them one-by-one. (check-in: 296b0c73 user: drh tags: trunk)
20:22
Fix a bug in the sqlite3TripAllCursors() routine that prevents it from reporting errors. It is unknown at this time whether or not this omission can result in any incorrect result in an actual query. (check-in: 2896f264 user: drh tags: trunk)
20:16
Update a couple of test cases to account for the fact that ROLLBACK does not always abort all running SELECT statements. (check-in: abccda76 user: drh tags: trunk)
12:28
Increment the version number to 3.8.7.2 (check-in: 945a9e68 user: drh tags: branch-3.8.7)
02:44
Add an ALWAYS() to an always-true conditional in the WAL rollback logic. (check-in: c5eae8a6 user: drh tags: branch-3.8.7)
2014-11-17
20:33
Remove code from sqlite3BtreeKeySize() made unreachable by the previous check-in. (check-in: 57c4aa98 user: drh tags: branch-3.8.7)
19:44
Avoid calling sqlite3BtreeKeysize() on a b-tree cursor in SKIPNEXT or SKIPPREV state. Cherrypick of [54e7d3fcb1]. (check-in: 2f2ecb99 user: dan tags: branch-3.8.7)
19:42
Avoid calling sqlite3BtreeKeysize() on a b-tree cursor in SKIPNEXT or SKIPPREV state. (check-in: 54e7d3fc user: dan tags: trunk)
19:25
Improved comments on the BtCursor.skipNext field. No changes to code. (check-in: e956e7db user: drh tags: branch-3.8.7)
18:35
Add tests for WITHOUT ROWID tables with composite primary keys. (check-in: 712d413d user: dan tags: ota-update)
17:57
Changes so that sqlite3_ckpt_open() works with zipvfs databases. (check-in: acbed338 user: dan tags: ota-update)
17:13
When a SELECT statement is terminated by a ROLLBACK TO operation, make the error message be "abort due to ROLLBACK" rather than "callback requested query abort". (check-in: 34fc4a08 user: drh tags: branch-3.8.7)
15:32
Fix a bug in the sqlite3TripAllCursors() routine that prevents it from reporting errors. It is unknown at this time whether or not this omission can result in any incorrect result in an actual query. (check-in: 42588207 user: drh tags: branch-3.8.7)
15:22
Update a couple of test cases to account for the fact that ROLLBACK does not always abort all running SELECT statements. (check-in: eba171e9 user: dan tags: branch-3.8.7)
15:07
Fix a problem with the parameters to an OP_Affinity in one of the VM programs generated by sqlite3_index_writer() that was causing an OOB read. (check-in: 447b33b3 user: dan tags: ota-update)
2014-11-15
20:07
Fix the customization interfaces so that they match the documentation. (check-in: fba0b5fc user: dan tags: fts5)
19:08
Adding the "noskipscan" token to an sqlite_stat1.stat field prevents an index for being used with the skip-scan algorithm. (Closed-Leaf check-in: 00fe0950 user: drh tags: noskipscan-token)
2014-11-14
19:34
Consider using an automatic-index for a scan even if there exists a possible skip-scan that uses one or more "=" operators. (Closed-Leaf check-in: 93642a65 user: dan tags: experimental-autoindex-fix)
15:42
Do not automatically remove the DISTINCT keyword from "a IN (SELECT DISTINCT ...)" expressions. Fix for [db87229497]. (check-in: 98457a57 user: drh tags: branch-3.8.7)
15:28
Do not automatically remove the DISTINCT keyword from "a IN (SELECT DISTINCT ...)" expressions. Fix for [db87229497]. (check-in: 55e453aa user: dan tags: trunk)
2014-11-13
14:30
Modify the documentation for sqlite3_backup_init() to indicate that it will fail if there is already a read or read-write transaction open on the destination database. (check-in: ef03a203 user: dan tags: trunk)
14:18
Have calls to sqlite3_backup_init() fail if there is already a read or read-write transaction open on the destination database. (check-in: 169b5505 user: dan tags: trunk)
13:42
When a transaction or savepoint rollback occurs, save the positions of all open read-cursors so that they can be restored following the rollback operation. Cherry-pick of check-in [dd03a2802f3f27] (check-in: 402780a9 user: drh tags: branch-3.8.7)
2014-11-12
17:45
Add further tests for rollback operations in the presence of ongoing selects. (check-in: eaf3aae0 user: dan tags: trunk)
14:56
When a transaction or savepoint rollback occurs, save the positions of all open read-cursors so that they can be restored following the rollback operation. (check-in: dd03a280 user: dan tags: trunk)
14:12
Fix the %c format character in sqlite3VXPrintf() so that it correctly handles precisions larger than 70. (check-in: 839a6df9 user: drh tags: branch-3.8.7)
14:07
Make sure that NULL results from OP_Column are fully and completely NULL and do not have the MEM_Ephem bit set. Fix for ticket [094d39a4c95ee4]. (check-in: e1017745 user: drh tags: branch-3.8.7)
2014-11-11
22:55
Enhance ROLLBACK so that pending queries are allowed to continue as long as the schema does not change. This is a cherry-pick of check-in [b5df5ac052]. (check-in: d4b2d5d0 user: drh tags: branch-3.8.7)
19:07
Remove some calls to the 'breakpoint' test command. (check-in: 1412fcc4 user: mistachkin tags: trunk)
16:11
Add tests for sqlite3_blob_bytes(). (check-in: a066a383 user: dan tags: trunk)
14:59
Permit read operations to continue after a ROLLBACK as long as the schema does not change. (check-in: b5df5ac0 user: drh tags: trunk)
12:20
Add new test file e_blobclose.test, containing tests for sqlite3_blob_close(). (check-in: 5a1eac24 user: dan tags: trunk)
01:33
Experimental changes that permit read operations to continue after a ROLLBACK, as long as the schema is unchanged. (Closed-Leaf check-in: fa6e6a9a user: drh tags: read-after-rollback)
2014-11-10
19:16
New test cases for deleting content out from under a SELECT statement. (check-in: 8289c3e9 user: drh tags: trunk)
17:53
Add test file e_blobwrite.test, containing tests for the sqlite3_blob_write() interface. (check-in: 1df77e5f user: dan tags: trunk)
16:49
Add the eval() SQL function extension in ext/misc/eval.c. (check-in: 27cf665b user: drh tags: trunk)
14:42
Shorten over-length source code lines in shell.c. (check-in: 7f3819f6 user: drh tags: trunk)
2014-11-07
14:41
Add new test file e_blobopen.test, containing tests for sqlite3_blob_open(). (check-in: ecbccd0e user: dan tags: trunk)
14:37
Fix another harmless comment typo. (check-in: b45bc80b user: drh tags: trunk)
13:52
In the ".scanstats on" output from the shell, round the estRows value to the nearest integer, rather than rounding toward zero. (check-in: 57005085 user: drh tags: trunk)
13:24
Fix harmless typos in comments. (check-in: 94c564da user: drh tags: trunk)
11:39
Fix typo in sqlite3.h reported on the mailing list. (check-in: 40270321 user: drh tags: trunk)
01:43
Update documentation on sqlite3_config() and add corresponding evidence marks. (check-in: 360c8ca1 user: drh tags: trunk)
2014-11-06
14:43
Added SQLITE_SCANSTAT_SELECTID. Change the value returned by SQLITE_SCANSTAT_EST from sqlite3_int64 to double. Enhanced the formatting and display of scan statistics using the ".scanstats on" command in the shell. (check-in: 20c7614a user: drh tags: trunk)
12:46
Further improvements to the ".scanstats on" display in the shell. Be sure to show the results of all subqueries even if there are gaps in the SELECTID values. Add ".scanstats" to the ".help" output. (Closed-Leaf check-in: ee922682 user: drh tags: scanstatus)
12:17
On the ".scanstats on" output in the shell, initialize the estimated count for the first loop of each subquery to the actual loop count. (check-in: d1c51c84 user: drh tags: scanstatus)
12:08
Changes the formatting of ".scanstats on" in the shell so that the stats for subqueries are grouped together and occur after the main query. (check-in: eacbbd88 user: drh tags: scanstatus)
04:42
Add the SQLITE_SCANSTAT_SELECTID metric. Use it to improve the ".stmtscan on" output in the shell. (check-in: 64ad5761 user: drh tags: scanstatus)
03:55
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. (check-in: f9684000 user: drh tags: scanstatus)
2014-11-05
21:34
Fixes to the Windows VFS to allow memory mapped files to work without WAL support. (check-in: 272fddc1 user: drh tags: trunk)
21:21
Fix harmless compiler warnings in the new balance_nonroot() routine. (check-in: 83a1e5db user: drh tags: trunk)
19:26
Change the query planner to do a better job of estimating the number rows selected by a BETWEEN operator using STAT4 when both upper and lower bounds are contained within the same sample. (check-in: 2d36be5d user: drh tags: trunk)
15:57
Make sure that NULL results from OP_Column are fully and completely NULL and do not have the MEM_Ephem bit set. Fix for ticket [094d39a4c95ee4]. (check-in: 42705fd7 user: drh tags: trunk)
14:19
Add a test case to check that the previous commit is effective. (check-in: 948d6e5d user: dan tags: trunk)
13:13
Enhance whereLoopCheaperProperSubset(X,Y) so that it does not report true if X uses skip-scan less than Y, since in that case X might deserve to be cheaper even if it is a proper subset. (check-in: c106b755 user: drh tags: trunk)
09:07
Add the ".scanstats on" command to the shell tool. Executing this command causes the shell tool to print values from sqlite3_stmt_scanstatus() after each query is run. (check-in: 7974c0ed user: dan tags: trunk)
2014-11-04
21:38
Improved output formatting for the showstat4 tool. (check-in: 7df82c46 user: drh tags: trunk)
19:52
Skip tests that require WAL mode when it is not enabled. (Closed-Leaf check-in: 6fc4ead2 user: mistachkin tags: winMmapNoWal)
19:37
For the Win32 VFS, allow memory mapped files to work when compiled without WAL support. (check-in: 1fc7e2f3 user: mistachkin tags: winMmapNoWal)
17:23
Add various requirements evidence marks for sqlite3_config() options. (check-in: d423349d user: drh tags: trunk)
14:22
Change the definition of SQLITE_CONFIG_SCRATCH so that at most one scratch buffer is used per thread. Use the generic heap memory allocator for the WalIterator object when running a checkpoint. (check-in: 391c9b85 user: drh tags: trunk)
13:41
Improved documentation and addition of source-code evidence marks for the sqlite3_config() interface. (check-in: 681031a4 user: drh tags: trunk)
12:11
Add the SQLITE_CONFIG_PCACHE_HDRSZ option for sqlite3_config(). (check-in: 6eb03e62 user: drh tags: trunk)
2014-11-03
18:03
Updates to the sqlite3_stmt_scanstatus() documentation. No changes to code. (check-in: d97c324e user: drh tags: trunk)
16:56
Add the experimental sqlite3_stmt_scanstatus() API. For comparing the number of rows actually visited by a loop with the estimate used by the query planner. (check-in: ab3b0fc5 user: dan tags: trunk)
16:39
Fix a typo preventing this from building with SQLITE_ENABLE_STMT_SCANSTATUS defined. (Closed-Leaf check-in: 4c5714ab user: dan tags: scanstatus)
16:35
Refactor the interface to make it more easily extensible. (check-in: 7955342d user: drh tags: scanstatus)
15:33
Add further tests. Fixes so that compilation without ENABLE_STMT_SCANSTATUS works. (check-in: a2303c71 user: dan tags: scanstatus)
14:46
Use exponential buffer size growth in StrAccum, as long as the size does not grow to large, to avoid excess memory allocation resize operations. Also, document the fact that setting scratch memory causes SQLite to try to avoid large memory allocations. (check-in: a518bc33 user: drh tags: trunk)
13:24
When enlarging the size of a StrAccum object, use sqlite3DbMallocSize() to record the entire size of the allocation, not just the requested size. (check-in: 3dda3c93 user: drh tags: trunk)
11:25
Remove unused variable from struct WhereInfo. Add some explanatory comments to new code. (check-in: f5313e0c user: dan tags: scanstatus)
2014-11-01
21:00
Minor performance enhancements to SQLITE_ENABLE_STMT_SCANSTATUS code. (check-in: f13d6ba8 user: dan tags: scanstatus)
20:38
If SQLITE_ENABLE_STMT_SCANSTATUS is defined, record the number of times each VDBE opcode is executed. Derive the values returned by sqlite3_stmt_scanstatus() from these records on demand. (check-in: 9ea37422 user: dan tags: scanstatus)
18:32
Add requirements marks and make minor tweaks to documentation. (check-in: 49188b2b user: drh tags: trunk)
18:08
Minor fixes and documentation improvements for sqlite3_stmt_scanstatus(). (check-in: 8d8cc960 user: dan tags: scanstatus)
2014-10-31
20:11
Add the experimental sqlite3_stmt_scanstatus() API. (check-in: 6a9bab34 user: dan tags: scanstatus)
15:20
Merge all recent trunk enhancements into the apple-osx branch. (check-in: fef8430f user: drh tags: apple-osx)
14:53
Merge recent trunk enhancements, and in particular the improvements to the b-tree balancing logic, into the sessions branch. (check-in: 28b044a5 user: drh tags: sessions)
14:46
Change the command-line shell man-page to use the ".tr" troff directive instead of ".cc" for escaping the initial "." characters in the ".help" output. (check-in: 67f0d469 user: drh tags: trunk)
14:26
Simplify the logic in the cell redistribution loop of balance_nonroot(). Enhance and clarify comments and add assert() statements for additional verification of correctness. (check-in: a07078b6 user: drh tags: trunk)
12:22
Simplify the math slightly, and reduce by one the number of loop iterations, for the loop in balance_nonroot() that moves cells between pages. (check-in: 2e838db8 user: drh tags: trunk)
10:31
Add the "varint.c" utility program in the tool directory. (check-in: ea5d56be user: drh tags: trunk)
02:51
Remove an unnecessary branch from balance_nonroot(). (check-in: 9fc7c88e user: drh tags: trunk)
00:05
In the balance_nonroot() routine, protect the values in aPgno[] array from change during the page sort, so that aPgno[] can be used to avoid unnecessary pointer-map updates for auto_vacuum databases. (check-in: 69c3924f user: drh tags: trunk)
2014-10-30
23:14
Improvements to the wording of some comments. Reinstate an assert() that is only true for non-corrupt database files by adding an "|| CORRUPT_DB" term. (check-in: 67adb448 user: drh tags: trunk)
20:48
Tweaks to comments in btree.c. Minor code changes to enhance testability. (check-in: c7d9aa3a user: drh tags: trunk)
2014-10-29
18:20
Fix the %c format character in sqlite3VXPrintf() so that it correctly handles precisions larger than 70. (check-in: 08a27440 user: drh tags: trunk)
13:59
Version 3.8.7.1 (check-in: 3b7b72c4 user: drh tags: release, version-3.8.7.1, branch-3.8.7)
01:27
Increase the version number to 3.8.7.1 (check-in: 83afe23e user: drh tags: branch-3.8.7)
01:26
Fix problems with running UPDATE and DELETE against a VIEW and referencing the rowid in the WHERE clause. This is a cherrypick of [95f8ebdbf87326f2] and [8523670d50004f3]. (check-in: cc33e846 user: drh tags: branch-3.8.7)
01:18
Disable the use of strchrnul() unless specifically enabled by compile-time options. Cherrypick of check-in [e580470db77d6da9] (check-in: 837368ad user: drh tags: branch-3.8.7)
01:13
In the OP_Column opcode, when extracting a field that is past the end of a short record (because the row was originally inserted prior to ALTER TABLE ADD COLUMN) then make sure the output register is fully NULL and does not contain leftover flags (such as MEM_Ephem) from its previous use. Fix for ticket [43107840f1c02]. This is a cherrypick of check-in [24780f8ddc1683fc]. (check-in: 304ea6ba user: drh tags: branch-3.8.7)
01:07
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]. (check-in: a8f9bd1e user: drh tags: branch-3.8.7)
00:58
In the OP_Column opcode, when extracting a field that is past the end of a short record (because the row was originally inserted prior to ALTER TABLE ADD COLUMN) then make sure the output register is fully NULL and does not contain leftover flags (such as MEM_Ephem) from its previous use. Fix for ticket [43107840f1c02]. (check-in: 24780f8d user: drh tags: trunk)
2014-10-28
20:49
Add new test file e_totalchanges.test, containing tests of the sqlite3_total_changes() interface. (check-in: f84af4ad user: dan tags: trunk)
20:35
Update the documentation on the sqlite3_randomness() interface to conform to enhancements associated with the SQLITE_ENABLE_API_ARMOR change. (check-in: 96e9917c user: drh tags: trunk)
18:24
Modify the documentation for sqlite3_changes() to make it more testable. Add tests and minor fixes for the same. (check-in: 41cdd0c4 user: dan tags: trunk)
16:50
Fix a crash that could occur if the WHERE clause of an UPDATE statement on a view that does not feature a column named "rowid" contains a term such as "rowid=?". (check-in: 8523670d user: dan tags: trunk)
16:19
Fix a faulty assert() in the DELETE code generator. (check-in: 95f8ebdb user: drh tags: trunk)
15:58
Trivial simplification to the automatic index logic. (check-in: 23073a05 user: drh tags: trunk)
12:35
Bump the version number to 3.8.8 (check-in: 1a7e711e user: drh tags: trunk)
00:56
Correct the documentation on the maximum size of a scratch allocation. (check-in: 30f86eb3 user: drh tags: trunk)
2014-10-27
22:06
Add special handling for static mutexes in sqlite3_mutex_alloc() when automatic calls to sqlite3_initialize() are enabled. (check-in: 7857d27c user: mistachkin tags: trunk)
20:14
Remove a small amount of unnecessary #ifdeffery from random.c. (check-in: 2b9340c8 user: drh tags: trunk)
19:58
Fix compilation issue with MSVC due to a misplaced variable declaration. (check-in: 9588b345 user: mistachkin tags: trunk)
19:42
Fix harmless compiler warning in an assert statement. (check-in: d33a1ff3 user: mistachkin tags: trunk)
19:39
Fix a typo in the macro name of an #ifdef (check-in: 9646a136 user: drh tags: trunk)
18:42
Merge latest enhancements, including the SQLITE_ENABLE_API_ARMOR patch, from trunk. (check-in: 10aaf3b1 user: drh tags: apple-osx)
18:34
Add the SQLITE_ENABLE_API_ARMOR compile-time option for extra API parameter validation. Enhance sqlite3_stricmp(), sqlite3_strnicmp(), and sqlite3_uri_parameter() for improved NULL parameter handling. (check-in: ffb9d814 user: drh tags: trunk)
18:21
Fix an unused variable in btree.c:allocateSpace(). (check-in: 63724616 user: drh tags: trunk)
14:26
Optimizations aimed at reducing the number of memcpy() operations required by balance_nonroot(). (check-in: face33be user: dan tags: trunk)
11:25
Add test file e_wal.test. (check-in: fc6920b5 user: dan tags: trunk)
08:02
If a free-slot is found within a page, but using that free-slot would fragment the page further and there are already at least 60 fragmented bytes, degragment the page. This matches the behaviour of the trunk. (Closed-Leaf check-in: 1f80f8c1 user: dan tags: defrag-opt)
07:01
Merge trunk with this branch. (check-in: a13df301 user: dan tags: defrag-opt)
2014-10-25
20:36
Further modifications to new code to better handle corrupt databases. (check-in: 1a8cf0a0 user: dan tags: defrag-opt)
13:42
Increase the resolution of the second parameter to the likelihood() SQL function (the probability value) so that it can handle probabilities as small as 0.00000001. Formerly, it ran out of precision at 0.001. (check-in: 0f08924f user: drh tags: trunk)
12:28
Do not use virtual (and hence redundant) WHERE-clause terms to restrict the content of a automatic partial index. Show when an automatic partial index is used in the EXPLAIN QUERY PLAN output. (check-in: b9ad601e user: drh tags: trunk)
2014-10-24
20:57
Ensure that the "Any prior cache entry associated with newKey is guaranteed not to be pinned" guarantee made to xRekey implementations is not violated. (check-in: ecc3544e user: dan tags: defrag-opt)
19:28
Enhance the automatic index logic so that it creates a partial index when doing so gives the same answer for less work. UPDATE: This change introduced a bug described by ticket [2326c258d02ead33]. (check-in: d95d0313 user: drh tags: trunk)
18:43
Fix some issues in the new code on this branch related to the handling of corrupt databases. (check-in: 19736dd9 user: dan tags: defrag-opt)
16:40
Fix some minor formatting and code organization issues. (check-in: eab8706d user: dan tags: defrag-opt)
15:26
Honor a high likelihood() on range constraints. (check-in: 401235ed user: drh tags: trunk)
14:32
Get the likelihood() functions working on operators like BETWEEN that create virtual terms in the WHERE-clause analysis. (check-in: 03d0498d user: drh tags: trunk)
12:37
Fix two problems. Tests now passing. (Closed-Leaf check-in: 1c220b80 user: drh tags: api-armor)
00:35
Add the SQLITE_ENABLE_API_ARMOR compile-time option. This is a work in progress and is not yet completely functional. (check-in: c297a84b user: drh tags: api-armor)
2014-10-23
17:26
Add debugging code to count the number of iterations of each loop made as part of statement execution. (Leaf check-in: c6a5b67a user: dan tags: debug-loopcounters)
01:01
Implement sqlite3_create_collation() by invoking sqlite3_create_collation_v2() with a NULL destructor argument. This saves a little space. (check-in: 9762ad06 user: drh tags: trunk)
2014-10-22
20:07
Disable the use of strchrnul() unless specifically enabled by compile-time options. (check-in: e580470d user: drh tags: trunk)
19:57
Change the 0x800 bit of SQLITE_TESTCTRL_OPTIMIZATIONS so that it disables the loading of STAT3 and STAT4 content, not just the using of that content. Change the internal name of that bit to SQLITE_Stat34. (check-in: ca3b00c4 user: drh tags: trunk)
18:42
Merge latest trunk with this branch. (check-in: 854a54c6 user: dan tags: defrag-opt)
16:25
The _beginthreadex() / _endthreadex() functions should only be used when compiling with MSVC. (Closed-Leaf check-in: 1a5a5da3 user: mistachkin tags: msvcThreads)
15:33
Add tests to check error handling in OTA. (check-in: ec7321ae user: dan tags: ota-update)
15:27
Take steps to avoid misestimating range query costs based on STAT4 data due to the roundoff error of converting from integers to LogEst and back to integers. (check-in: 3c933bf9 user: drh tags: trunk)
14:22
Version 3.8.6.1 (check-in: 1581c30c user: drh tags: release, version-3.8.6.1, branch-3.8.6)
11:30
Sync the database file in sqlite3_ckpt_close(), even if the checkpoint has not finished. (check-in: e2729d62 user: dan tags: ota-update)
03:00
Update the version number to 3.8.6.1 (check-in: cad7f8d6 user: drh tags: branch-3.8.6)
02:43
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] (check-in: 67484807 user: drh tags: branch-3.8.6)
2014-10-21
21:56
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. (check-in: 3e922208 user: drh tags: trunk)
19:35
Test that sqlite3ota_open() works with URI paths. Fix some other issues. (check-in: 6fd09854 user: dan tags: ota-update)
18:16
Further tuning of the cost estimates for skip-scan loops, especially for cases when skip-scan loops are in competition with regular loops. (check-in: a27861c2 user: drh tags: trunk)
18:09
Add tests for another application writing the database while an ota update is ongoing. (check-in: 2402baa0 user: dan tags: ota-update)
16:01
Add WHERETRACE debugging output to the whereLoopAdjustCost() routine. (check-in: ec1e942f user: drh tags: trunk)
01:05
If a skip-scan is a proper subset of some other scan, then adjust the cost of the skip-scan upward so that it is more costly than the other scan. Such a cost imbalance can arise under STAT4 because of difficulties in getting an accurate estimate for skip-scans. (check-in: f4b22a26 user: drh tags: trunk)
2014-10-20
16:34
Merge version-3.8.7 changes with this branch. (check-in: d380a648 user: dan tags: ota-update)
16:24
Have the ota extension perform an incremental checkpoint after generating the wal file. (check-in: 0bf1301a user: dan tags: ota-update)
2014-10-17
21:35
Fix a (probably harmless) bug in the CSV output mode of the command-line shell. (check-in: 19fe4a0a user: drh tags: trunk)
12:11
Merge the 3.8.7 changes into the apple-osx branch. (check-in: aa7bbed1 user: drh tags: apple-osx)
11:53
Merge all version 3.8.7 updates from trunk. (check-in: f4de9e07 user: drh tags: sessions)
11:24
Version 3.8.7 (check-in: e4ab094f user: drh tags: trunk, release, version-3.8.7)
2014-10-16
21:39
Work around MSVC not being able to deduce that a local variable was initialized in a called function. (check-in: 06c576c1 user: mistachkin tags: trunk)
18:34
Changes to work around Win32 and MSVCRT APIs that are not present on Windows CE 200x. (check-in: 1418c006 user: mistachkin tags: trunk)
11:45
Update the vdbe-compress.tcl script to account for expressions of the form (123>var), where "var" should be replaced with a reference to a union member. (check-in: 640345d8 user: dan tags: trunk)
2014-10-15
20:02
Fix a problem causing sqlite3changeset_concat() to fail to detect attempts to concatenate patchsets which changesets. (check-in: 236704a9 user: dan tags: sessions)
19:37
Merge latest trunk changes with this branch. (check-in: 1b2824f1 user: dan tags: sessions)
15:28
Update releasetest.tcl so that x86-64 runs a superset of the x86 tests. (check-in: 3c1e70f4 user: dan tags: trunk)
14:45
Fix a problem causing lock5.test to fail in mmap-mode. (check-in: b3e7b446 user: dan tags: trunk)
11:55
Add a four-byte prefix to the BtShared.pTmpSpace buffer to avoid reading before the beginning of an allocation. (check-in: 9386bfca user: drh tags: trunk)
11:31
Rearrange an expression in vdbemem.c to avoid a (harmless) reference to a possibly unitialized variable. (check-in: 4a7b3fa0 user: dan tags: trunk)
2014-10-14
20:25
Make sure new sqlite3_vtab objects created by the xCreate() virtual table method are initialized by the system, in accordance with the documentation. (check-in: eab82330 user: drh tags: trunk)
17:27
Fix some code duplication issues on this branch. Add minor optimizations to the new code. (check-in: 58d7793b user: dan tags: defrag-opt)
14:17
Merge from trunk recent micro-optimizations and the fix for the DESC index GROUP BY ORDER BY bug. (check-in: 880df756 user: drh tags: apple-osx)
13:41
Merge recent trunk micro-optimizations and the DESC index GROUP BY ORDER BY bug fix into the sessions branch. (check-in: 83d4114f user: drh tags: sessions)
2014-10-13
23:39
Optimize a database corruption test inside of the OP_Column opcode. (check-in: 005e5b38 user: drh tags: trunk)
20:12
Use the padding word in the Mem object as temporary storage for serial_type value in OP_Record, and thus avoid a redundant computation of the serial_type for each column. (check-in: 4b3b65ee user: drh tags: trunk)
18:09
Merge trunk changes into this branch. (check-in: d5b7c5a8 user: dan tags: defrag-opt)
18:03
Further work on balance_nonroot(). (check-in: 6594f9b4 user: dan tags: defrag-opt)
17:42
Three small optimizations to vdbeaux.c. (check-in: 04892f8b user: drh tags: trunk)
16:02
Reduce the CPU load imposed by sqlit3VdbeCursorMoveto() by factoring out some of its functions and by avoiding unnecessary calls. (check-in: c2799aec user: drh tags: trunk)
13:00
Remove the OPFLAG_CLEARCACHE flag from OP_Column. In its place, change the P3 parameter of OP_SorterData to be the index of the pseudo-table cursor whose record header cache is to be cleared. This gives a small size reduction and performance increase. (check-in: 20062f49 user: drh tags: trunk)
12:30
Use OP_SorterColumns in aggregate queries. Remove OPFLAG_CLEARCACHE. (Closed-Leaf check-in: 134e65c0 user: drh tags: OP_SorterColumns)
01:23
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. (check-in: b9c695e8 user: drh tags: OP_SorterColumns)
2014-10-12
22:37
Remove the VdbeCursor.lastRowid cache of the current rowid, since maintaining the correct cache value uses more CPU cycles than just recomputing the rowid on the occasions when it is actually needed. Replace it with the VdbeCursor.aOffset field which used to be computed from VdbeCursor.aType when needed. Saves 100 bytes of code space and runs 0.2% faster. (check-in: 91384a7d user: drh tags: trunk)
2014-10-11
23:31
Performance optimization and very slight size reduction for OP_Column. (check-in: 869c30e4 user: drh tags: trunk)
20:00
Attempt to further reduce memcpy() in balance_nonroot(). (check-in: fec849dc user: dan tags: defrag-opt)
17:22
Simplification to the insertCell() routine in btree.c, resulting in a performance boost and a very small size decrease. It turns out that the extra work involved in sometimes avoiding an memcpy() of the first four bytes of a record takes more time than just unconditionally copying those four bytes. (check-in: 66de1558 user: drh tags: trunk)
10:52
Require the SQLITE_ENABLE_RTREE compile-time option in speedtest1.c in order to enable the R-Tree tests. (check-in: 5d29a033 user: drh tags: trunk)
02:12
Make sure that a GROUP BY that also implements an ORDER BY scans the table in the correct order. Fix for ticket [ba7cbfaedc7e6]. (check-in: 7a32fdfd user: drh tags: trunk)
01:22
Remove an unnecessary conditional from the EXPLAIN QUERY PLAN logic. (check-in: c5dc83eb user: drh tags: trunk)
2014-10-10
20:52
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]. (Closed-Leaf check-in: 2a957396 user: dan tags: experimental)
19:15
Restrict the scope of the explainIndexRange() function in where.c. (check-in: c3012452 user: drh tags: trunk)
19:10
Fix a failing test case in index5.test. Also tweak the way cache memory is divided between read-only and dirty pages when using SQLITE_CONFIG_PAGECACHE to reduce IO in some cases. (check-in: 8541dfb3 user: dan tags: trunk)
18:09
Changes to enable compiling using VC6. (check-in: 9ee5686a user: drh tags: trunk)
17:47
When using the -config option to releasetest.tcl, default the testing type to "fulltest" if it is not specified on the command line. (check-in: cf291cbe user: drh tags: trunk)
17:44
Provide the new "-config CONFIG" option to the test/releasetest.tcl script, which allows one to run a single test configuration selected by name. (check-in: d479e32b user: drh tags: trunk)
17:20
Add the estimated number of output rows to the EXPLAIN QUERY PLAN output if compiled with SQLITE_EXPLAIN_ESTIMATED_ROWS. This feature is off by default for the time being. (check-in: daa8314f user: drh tags: trunk)
15:47
Simplify the code used to generate the text for EXPLAIN QUERY PLAN. (check-in: beea1efc user: drh tags: trunk)
15:01
Fix a potential problem in the whereRangeScanEst() routine when STAT4 is active. The problem was introduced by recent enhancements. (check-in: 68e1b4de user: drh tags: trunk)
13:08
Cause the command-line shell to return non-zero if the final SQL statement is incomplete. (check-in: 177fff3b user: drh tags: trunk)
12:56
Merge all recent trunk changes. (check-in: abfef254 user: drh tags: sessions)
2014-10-09
19:35
Change the balance_nonroot() routine to reduce the amount of memcpy work that takes place. This is a work in progress. (check-in: 29304499 user: dan tags: defrag-opt)
15:08
Allow FTS tokenizers to choose whether or not to consider the "*" character part of tokens or not. This restores the pre-[e21bf7a2ad] behaviour. Also fix a problem causing FTS to interpret tokens beginning with "*" characters as EOF. (check-in: 49dfee7c user: dan tags: trunk)
14:10
Add a test case for the memory leak fixed by the previous check-in. (check-in: bae36d54 user: drh tags: trunk)
14:00
Fix a memory leak associated with the FTS4 matchinfo() function. (check-in: fb8da824 user: drh tags: trunk)
11:40
Record the errno on fstat() failures. (check-in: 2a6a0820 user: drh tags: apple-osx)
11:27
Merge the latest trunk enhancements into the apple-osx branch. (check-in: 6fc72077 user: drh tags: apple-osx)
2014-10-08
19:33
Remove an always-true branch in whereRangeScanEst(). Replace it with an assert(). (check-in: 42e48fd3 user: drh tags: trunk)
15:53
Fix up test cases to account for the new SQLITE_LIMIT_WORKER_THREADS limit. (check-in: 6483d426 user: drh tags: trunk)
14:28
Set the connection-specific lastRowid value before calling any SQL function. (check-in: dff0f642 user: drh tags: trunk)
13:34
Ensure that the Pager.pTmpSpace allocation is correct even if an OOM error occurs while reducing the page size. (check-in: e4b43967 user: drh tags: trunk)
11:11
Remove some temporary code in mallocA.test that was accidentally checked in. (check-in: dedd15f7 user: dan tags: trunk)
02:53
Fix the STAT4 range scan estimates for DESC indexes. (check-in: e3fe8400 user: drh tags: trunk)
00:08
More intuitive labels on ".wheretrace" output. (check-in: adcb3fed user: drh tags: trunk)
2014-10-07
23:02
Make sure the sqlite3VdbeMemClearAndResize() routine is never called with a zero size parameter, since a size of zero could lead to either a memory leak or an assertion fault. (check-in: f672a380 user: drh tags: trunk)
20:09
Fix the corruptI.test script so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK and with SQLITE_DEFAULT_AUTOVACUUM=1. (check-in: e405b9e4 user: drh tags: trunk)
16:59
Restrict the scope of the valueToText() routine. (check-in: 13c962b3 user: drh tags: trunk)
15:46
Enhance (and fix) the MEMTYPE tags associated with heap memory allocations when SQLITE_MEMDEBUG is used. (check-in: ca5b789e user: drh tags: trunk)
2014-10-06
18:33
Remove unreachable branches in decodeIntArray() when compiling without STAT3 or STAT4. (check-in: 80e1baa5 user: drh tags: trunk)
14:37
Improve the accuracy of the estimates used when searching an index for values not present in any stat4 samples. (check-in: 3aff9a9c user: dan tags: trunk)
12:41
Fix a harmless compiler warning inside an assert() in FTS4. (check-in: 418f3c9a user: drh tags: trunk)
2014-10-04
19:31
Tweaks to documentation on sqlite3_open() and sqlite3_bind(). No code changes. (check-in: b8f7f19d user: drh tags: trunk)
11:59
Updates to documentation and requirements marks. No code changes. (check-in: 0f8102d7 user: drh tags: trunk)
10:22
Add a test to show that the change on this branch is effective. (Closed-Leaf check-in: fc619be0 user: dan tags: stat4-avgeq)
00:07
Avoid leaking Index.aiRowEst memory if an OOM causes a rollback which deletes the index before the aiRowEst deletion code in sqlite3AnalysisLoad() routine has a chance to run. Since the aiRowEst now might be deleted from freeIndex() which does not always have a db pointer, make sure the aiRowEst memory is not held in lookaside. (check-in: efd87ba1 user: drh tags: stat4-avgeq)
2014-10-03
19:29
Fix a division-by-zero error that might occur if the sqlite_stat1 table is corrupt. (check-in: f9c053b2 user: dan tags: stat4-avgeq)
19:16
Improve the accuracy of the estimates used when searching an index for values not present in any stat4 samples under some circumstances. (check-in: e6f7f97d user: dan tags: stat4-avgeq)
16:00
Add requirements marks on the sqlite3_db_status() interface implementation. Fix a typo in the documentation. Fix the new sqlite3_result_text64() routine so that it works correctly with an encoding parameter of SQLITE_UTF16. (check-in: d2fc3227 user: drh tags: trunk)
14:54
Update to requirements marks related to changes in the memory allocation interface and enhancement of the documentation regarding DEFAULT clauses in CREATE TABLE. (check-in: 440705b9 user: drh tags: trunk)
2014-10-02
21:52
Avoid a NULL pointer deference when processing the IS operator if the right-hand side is an illegal "#ID" style variable. Fix for ticket [8c32a33a53092c85a15b] (check-in: ffe75736 user: drh tags: trunk)
2014-10-01
13:17
Show the TK_DOT operator in the TreeView debugging output. No changes to production code. (check-in: 07c89940 user: drh tags: trunk)
12:01
Avoid ever writing before the start of an allocated buffer in the DIRECT_OVERFLOW_READ code. Fix for [e3a290961a6]. (check-in: c3c15d20 user: dan tags: trunk)
01:52
Merge the latest enhancements from trunk. (check-in: 2695772c user: drh tags: sessions)
01:46
Merge the latest enhancements from trunk. (check-in: 2078454a user: drh tags: apple-osx)
2014-09-30
21:24
Draw the TreeView debugging graphs using unicode box-drawing characters. (Closed-Leaf check-in: 0efc6859 user: drh tags: box-character-graph)
19:04
Improvements to the new syntax-tree output routines: Omit the "END SELECT" mark and instead terminate the graph at the last item. Increase the maximum tree depth to 100. (check-in: 5ce05757 user: drh tags: trunk)
17:31
Enable the query planner to deal with WHERE clauses that have OR terms nested within AND terms that are nested within OR terms. Also remove an unused function declaration. (check-in: b6b28918 user: drh tags: trunk)
17:03
Further enhancements to the "wheretrace" debugging output. (check-in: 670993eb user: drh tags: trunk)
14:14
Enhanced debug output for OR-logic in the query loop optimizer. (check-in: 2e375eae user: drh tags: trunk)
13:46
Show tree diagrams of data structures in the debugging output when the 0x100 bit is set on sqlite3WhereTrace or sqlite3SelectTrace. (check-in: 92e0b4bd user: drh tags: trunk)
12:33
Remove the SQLITE_ENABLE_TREE_EXPLAIN compile-time option. Add alternative debugging display routines: sqlite3TreeViewExpr(), sqlite3TreeViewExprList(), and sqlite3TreeViewSelect(). (check-in: 4ff51325 user: drh tags: trunk)
2014-09-29
18:47
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 (Leaf check-in: 5e5d6e86 user: drh tags: faster-OP_Column)
15:42
Fix the header comment in sqlite3VdbeDeletePriorOpcode(). No changes to code. (check-in: 7fb16268 user: drh tags: trunk)
15:00
Ensure that the OP_Prev opcode verifies that content has not been deleted out from under the cursor. Fix for ticket [209d31e3161b9e9ff]. (check-in: 414f0d6a user: drh tags: trunk)
2014-09-27
20:45
Change the names of the stream interface APIs to be of the form "_strm" instead of "_str". In other words, added an "m" to the end, to try to make it clear that we are talking about a "stream" and not a "string. (check-in: 1f44bfdc user: drh tags: sessions)
19:51
Merge recent trunk changes (performance enhancements) into the sessions branch. (check-in: 497367cb user: drh tags: sessions)
18:18
Fix a segfault in the sessions module that could follow an OOM. (check-in: 09985fa6 user: dan tags: sessions)
16:33
Fix a segfault in the streaming API functions triggered by a very long table name. (check-in: d2642543 user: dan tags: sessions)
12:26
Improve sessions module documentation and comments. Fix some other code issues. (check-in: bfc8bd80 user: dan tags: sessions)
05:00
Reduce the amount of memcpy() required by defragmentPage(). (check-in: 3edab995 user: drh tags: defrag-opt)
2014-09-26
18:30
Add an assert() to verify the last-row-id for the database just prior to calling a SQL function. (check-in: d026f0c9 user: mistachkin tags: trunk)
10:52
Fix a problem with concatenating patchsets containing DELETE and INSERT operations on the same row. (check-in: 4d8537ea user: dan tags: sessions)
02:41
Fix the "PRAGMA integrity_check" command so that it avoids formatting error message context messages until it actually needs to generate an error message. This avoids much formatting, and hence greatly improves the performance of "PRAGMA integrity_check" in the common case when there are no errors. It also makes the code a little smaller. (check-in: 83913515 user: drh tags: trunk)
01:10
If an SQL function makes a recursive call to do an INSERT into the same database, make sure that the last_insert_rowid() for that INSERT is recorded. (check-in: e93aecc0 user: drh tags: trunk)
2014-09-25
20:43
Add streaming version of sqlite3changeset_concat(). (check-in: 88eb6656 user: dan tags: sessions)
17:42
Minor code reformatting and comment change, to improve clarity. No logic changes. (check-in: baeb72a3 user: drh tags: trunk)
14:54
Add streaming version of sqlite3changeset_invert() to sessions module. (check-in: 8ded6a46 user: dan tags: sessions)
13:17
Simplifications to the SQL function and aggregate calling procedures. (check-in: 3467049a user: drh tags: trunk)
12:31
Simplification to the random rowid picking logic that begins running when the maximum possible rowid has already been used. (check-in: 1330c72e user: drh tags: trunk)
11:08
Still more performance enhancements to the LIKE and GLOB operators. (check-in: 6c8924ca user: drh tags: trunk)
03:51
More performance optimization for the LIKE and GLOB operators. (check-in: 5ab1023d user: drh tags: trunk)
02:44
Change that might allow SQLite to build and work using the EBCDIC character set. (check-in: ef30e035 user: drh tags: trunk)
00:56
Size reduction and performance improvement in the LIKE and GLOB operators. (check-in: b2c89ef4 user: drh tags: trunk)
2014-09-24
19:47
Have each open database allocate its pTmpSpace when the first write cursor is opened, rather than on each insert or delete, for a small space savings and performance boost. (check-in: 99323552 user: drh tags: trunk)
18:31
Small performance and size optimization for btreeUnlockIfUnused(). (check-in: 13c746f8 user: drh tags: trunk)
17:13
Add streaming version of sqlite3changeset_apply(). Tests and fixes for the same and sqlite3changeset_start_str(). (check-in: b917fc14 user: dan tags: sessions)
13:20
Do not allow parameters in a DEFAULT clause of a CREATE TABLE statement. Ticket [78c0c8c3c9f7c1]. (check-in: 1ad2bc1e user: drh tags: trunk)
04:38
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. (Closed-Leaf check-in: c705cf85 user: drh tags: linear-interpolation)
02:05
Have the clearCell() routine return the cell size to the caller, rather than have the caller make a separate call to cellSizePtr(). (check-in: f21d2175 user: drh tags: trunk)
01:23
Shorten all lines of source code in btree.c to at most 80 characters. No logical changes. (check-in: 5dd41cdb user: drh tags: trunk)
00:59
Add the MemPage.noPayload boolean and use it to help cellSizePtr() and btreeParseCellPtr() run faster. (check-in: 8e337531 user: drh tags: trunk)
2014-09-23
23:12
Remove an unused C-preprocessor macro. No functional changes to the code. (check-in: f480582c user: drh tags: trunk)
22:36
Avoid calling btreeParseCellPtr() from within fillInCell() since most of what btreeParseCellPtr() computes is ignored by fillInCell(). Instead, have fillInCell() compute the values it needs inline. Performance improvement. (check-in: 4147f667 user: drh tags: trunk)
21:25
Simplify the CellInfo structure for a size reduction and performance improvement. (check-in: bf59df66 user: drh tags: trunk)
20:39
Begin adding 'streaming' APIs to sessions module. This is a work in progress. (check-in: 3c7d3d95 user: dan tags: sessions)
18:30
Add the "multiplex_truncate" PRAGMA to the multiplexor extension, for querying and setting the truncate flag on a database connection. (check-in: d2962a5f user: drh tags: trunk)
01:40
Adjust skip-scan cost estimates slightly so that a full table scan is preferred over a skip-scan to a column with only two distinct values. (check-in: ae9a42b2 user: drh tags: trunk)
2014-09-22
20:38
Fix to payload size overflow detection in the cellSizePtr() change of the previous check-in. (check-in: 76097440 user: drh tags: trunk)
19:51
Size reduction and substantial performance increase for cellSizePtr(). (check-in: bc8bbf32 user: drh tags: trunk)
14:30
Tune the query planner to be more aggressive about using automatic indexes on views and subqueries for which there is not opportunity to declare a persistent schema index. (check-in: 41de1643 user: drh tags: trunk)
03:22
Disable shared memory operations using the unix-nolock VFS. (check-in: 10a6e510 user: drh tags: trunk)
2014-09-21
23:08
Merge in all recent changes from trunk. (check-in: 3967ebe8 user: drh tags: apple-osx)
22:49
Merge all recent trunk changes into the sessions branch. (check-in: 6406b77f user: drh tags: sessions)
22:31
Correctly handle an ORDER BY clause on an outer query when applying the compound-subquery flattening optimization. Ticket [d11a6e908f]. Also add the SQLITE_ENABLE_SELECTTRACE option for additional debugging and analysis information about select statement processing. (check-in: d5880abd user: drh tags: trunk)
20:31
Add test cases for ticket [d11a6e908f]. (Closed-Leaf check-in: 9683e001 user: drh tags: select-trace)
17:51
Add the "showauth" extension in ext/misc. (check-in: 28d52c1c user: drh tags: select-trace)
00:27
Improved ".selecttrace" output. (check-in: c0b61f70 user: drh tags: select-trace)
2014-09-20
20:38
Candidate fix for [d11a6e908f]. (check-in: 89398880 user: dan tags: select-trace)
20:24
Fix the SELECTTRACE_ENABLE macro so that it doesn't cause problems for testfixture. Add new SELECTTRACE() calls. (check-in: f1ba68f1 user: drh tags: select-trace)
18:18
Enable SELECT query planning tracing when compiled with SQLITE_ENABLE_SELECTTRACE and either SQLITE_DEBUG or SQLITE_TEST. (check-in: cbe0cf9d user: drh tags: select-trace)
00:35
Fix the usage of the _GNU_SOURCE and _BSD_SOURCE macros in the main internal header file, sqliteInt.h. Set HAVE_STRCHRNUL to 1 by default on Linux only. (check-in: 59e2c9df user: drh tags: trunk)
00:29
Only enable HAVE_STRCHRNUL by default on linux, as that is the only place it appears to work by default. (Closed-Leaf check-in: 0fac2c04 user: drh tags: sqliteIntMacros)
00:02
Revise macro usage in 'sqliteInt.h'. (check-in: 35db3e2f user: mistachkin tags: sqliteIntMacros)
2014-09-19
22:44
Simplify two conditionals and add testcase() macros to the affinity transform logic in the comparison operators. (check-in: 544664ca user: drh tags: trunk)
22:30
Recognize the invariant that a Mem object cannot be MEM_Dyn and have a non-zero szMalloc at the same time. Enforce this with assert()s and exploit it in the sqlite3VdbeMemClearAndResize() routine for a performance increase. (check-in: 3b21cf2b user: drh tags: trunk)
22:01
Tighten the conditions under which applyNumericAffinity() be called and add assert() statements to prove that it is never called otherwise. (check-in: e996ca32 user: drh tags: trunk)
20:13
Fix the affinity on inserts into the ANALYZE tables. Change the affinity characters to be upper case, to make the P5 parameter of comparison operators easier to read. (check-in: 3f3ca76a user: drh tags: trunk)
19:43
Do not attempt to extend the temp file if VFS version 3 is not supported and hence memory mapped I/O is unavailable. (check-in: 3ab20ba1 user: drh tags: trunk)
19:00
Make the "nolock" VFS on unix a version-3 VFS so that the sorter can use memory-mapped I/O. (check-in: 3db78d61 user: drh tags: trunk)
18:08
Add further tests to ota5.test. Add "ota.test", for running all ota tests. (check-in: 95ffdaa5 user: dan tags: ota-update)
16:56
Remove a local variable from the OP_Column implementation, resulting in a modest size reduction and a performance increase. (check-in: 6199760d user: drh tags: trunk)
16:13
Small size reduction and performance increase for releaseMemArray(). (check-in: 24cd32d6 user: drh tags: trunk)
16:02
Updates to comments. No code changes. (check-in: 9b42c3da user: drh tags: trunk)
15:28
The OP_Column opcode runs faster and is smaller by manually in-lining the code that persists string values in the output register. (check-in: 36b613cc user: drh tags: trunk)
15:06
Add extra tests for the ota extension. (check-in: 1e468fe1 user: dan tags: ota-update)
04:42
Add the sqlite3VdbeMemClearAndResize() function. Fix a sorting-index prefilter problem. (check-in: 987a7a21 user: drh tags: trunk)
02:01
Make sure that the sorting-index pre-filter recognizes that a rowid reference might be sortable. This fixes a performance regression. (Closed-Leaf check-in: 72727b68 user: drh tags: Cplusplus-comment)
00:43
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. (check-in: 5b9b8987 user: drh tags: Cplusplus-comment)
2014-09-18
21:25
Add the Mem.szMalloc element to the Mem object and use it to keep track of the size of the Mem.zMalloc allocation. (check-in: 9c09ac35 user: drh tags: trunk)
18:55
Correct typos in comments. No changes to code. (check-in: 55879932 user: mistachkin tags: trunk)
17:57
Update the ota extension to support SQLITE_ENABLE_8_3_NAMES builds. (check-in: 718da6de user: dan tags: ota-update)
17:52
Merge the Mem.r value into the MemValue union as Mem.u.r. Hence, a Mem can now store an integer or a real but not both at the same time. Strings are still stored in a separate element Mem.z, for now. (check-in: 4c8c89d7 user: drh tags: trunk)
16:38
Use quotes instead of angle-brackets to include sqlite3.h from sqlite3ota.h. (check-in: fce9c6cc user: dan tags: ota-update)
16:28
Performance improvement for affinity transformations on comparison operators. (check-in: d7afdcba user: drh tags: trunk)
15:57
Remove some c++isms from sqlite3ota.c. (check-in: 0da1862b user: dan tags: ota-update)
15:22
Add new file ext/ota/README.txt, containing notes regarding the implementation of the ota extension. (check-in: 3c6e1cbb user: dan tags: ota-update)
14:48
Add an API to query an ota handle for the total number of key/value operations performed so far. (check-in: e3943fa7 user: dan tags: ota-update)
14:36
Since numeric affinity is the most common case, check it first. Interchange the NONE and TEXT affinity codes for easier checking of no affinity. (check-in: 4ef4c9a7 user: drh tags: trunk)
11:31
Merge latest trunk changes with this branch. (check-in: 67ea2979 user: dan tags: ota-update)
11:15
Fix an ota bug causing attempts to write to tables with more than 8 columns to fail. (check-in: 7da98ca2 user: dan tags: ota-update)
09:59
Modify an assert() within sqlite3PagerWalFramesize(), a function only ever used by zipvfs, to account for recent zipvfs changes. (check-in: 3bd7c1b2 user: dan tags: trunk)
02:20
Fix harmless warnings on 32-bit MSVC builds. (check-in: 5192f964 user: drh tags: trunk)
01:50
Make sure of the strchrnul() library function on platforms where it is available. (check-in: ef1aa10b user: drh tags: trunk)
01:29
Merge micro-optimizations into trunk after fixing the build on MSVC. Performance now shows 7.58% faster than the 3.8.6 release on x64 with gcc 4.8.1 and -Os. (check-in: 1de558bc user: drh tags: trunk)
01:21
Fix compiler warnings and change the nullMem structure initializer into a format that MSVC can understand. (Closed-Leaf check-in: 163bfae8 user: drh tags: micro-optimizations)
2014-09-17
23:37
Performance improvement and slight size reduction to the comparison operators in the VDBE. (check-in: 14052a7d user: drh tags: micro-optimizations)
19:05
Fix an unintialized variable problem in sqlite3ota.c. (check-in: 01268607 user: dan tags: ota-update)
16:41
In the Mem object, stop requiring that Mem.xDel be NULL when the MEM_Dyn bit is clear. Also reduce the amount of initialization of Mem objects. All for a small size reduction and performance increase. (check-in: fdddb477 user: drh tags: micro-optimizations)
15:20
Add tests and fixes for "PRAGMA ota_mode". (check-in: 39df35c4 user: dan tags: ota-update)
14:52
Improved interface to the Mem object handling. Small size reduction and performance increase. (check-in: 4e437844 user: drh tags: micro-optimizations)
2014-09-16
21:54
Continuing cleanup of memory register memory allocation handling. (check-in: 2598aedc user: drh tags: micro-optimizations)
20:05
Make sure registers are cleared properly prior to being used to store the result of an OP_Column operator. (check-in: 78fb8838 user: drh tags: micro-optimizations)
20:02
Clarify the effects of the pager_ota_mode pragma. Add tests and fixes for the same. (check-in: decaccc3 user: dan tags: ota-update)
18:22
Simplification of the OP_Column logic for the case of rows with overflow. (check-in: f7367803 user: drh tags: micro-optimizations)
14:55
Remove an unused parameter from sqlite3VdbeIdxRowid(). This is cosmetic only as the C-compiler optimizers were already omitting this parameter on amalgamation builds. (check-in: a10a6bba user: drh tags: micro-optimizations)
14:37
Reduce the number of arguments to RecordCompare functions from 4 to 3, resulting in a small performance increase. (check-in: 8239c35a user: drh tags: micro-optimizations)
14:16
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. (check-in: 0be3019e user: drh tags: micro-optimizations)
13:30
Changes to sqlite3VdbeRecordUnpack() to make it slightly smaller and faster. (check-in: 8fb90da7 user: drh tags: trunk)
03:24
Performance improvement to the sqlite3MemCompare() routine by factoring out sqlite3BlobCompare(). (check-in: 20ed2321 user: drh tags: trunk)
2014-09-15
19:34
Remove the experimental sqlite3_transaction_save() and restore() APIs. (check-in: 48d201cd user: dan tags: ota-update)
16:57
Merge latest trunk fixes into this branch. (check-in: 5efafef5 user: dan tags: ota-update)
16:53
Fix tool/showwal.c so that it handles WAL files that contain 64KiB pages. (check-in: 4060efb6 user: dan tags: trunk)
16:50
Avoid attempting to call the xFetch() method of an sqlite3_io_methods object with a version number less than 3. (check-in: dedaa6fb user: dan tags: trunk)
15:34
Merge latest trunk changes with this branch. (check-in: 55b8011d user: dan tags: ota-update)
15:22
Have sqlite3ota.c use grave accents instead of double-quotes to enclose identifiers in generated SQL. To avoid having the SQL engine substitute a literal string if a column reference cannot be resolved. (check-in: 79f24184 user: dan tags: ota-update)
14:59
Remove the EXPENSIVE_ASSERTS in pcache.c having to do with the pSynced field of the Pcache object, as they are incorrect, as revealed by recent pcache enhancements. (check-in: 69a64560 user: drh tags: trunk)
14:54
Ensure the correct collation sequences are used when sorting data in sqlite3ota.c. (check-in: 473a72d7 user: dan tags: ota-update)
14:46
Do not flatten aggregate subqueries that contain min() or max() functions so that if the min()/max() are discarded by the outer query, they still function and cause non-aggregate expression to be evaluated on the minimal or maximal row. (check-in: 0bdf1a08 user: drh tags: trunk)
12:18
Have the sqlite3_index_writer() VMs check that the final values of records inserted into indexes on rowid tables are integers. (check-in: cca376bf user: dan tags: ota-update)
11:14
Adjust comments to show that subquery flattening restriction (10) was removed from the code back in 2005. This is a comment change only. (check-in: 4ff0eb96 user: drh tags: trunk)
10:44
Add OP_Affinity opcodes to the VMs generated by sqlite3_index_writer(). (check-in: b9b38cb8 user: dan tags: ota-update)
2014-09-12
20:30
Small performance improvement to the dirty list handling in the pager. (check-in: b332a84d user: drh tags: trunk)
17:41
Simplify the way the column cache is managed around OP_Move instructions. (check-in: 32055623 user: drh tags: trunk)
04:28
Fix a problem with parser memory allocation on 32-bit systems. (check-in: 2f69a1fa user: drh tags: trunk)
2014-09-11
23:34
Fix an issue with sqlite3_bind_text64() with the SQLITE_UTF16 encoding parameter. Remove some unreachable code from the text64() and blob64() implementation. (check-in: 34292b08 user: drh tags: trunk)
18:44
Add new APIs that take 64-bit length parameters: sqlite3_malloc64(), sqlite3_realloc64(), sqlite3_bind_blob64(), sqlite3_bind_text64(), sqlite3_result_blob64(), and sqlite3_result_text64(). Add the sqlite3_msize() interface. Internal memory allocation routines now use 64-bit unsigned length parameters for safety. Fix the sqlite3_get_table() to use sqlite3_realloc64() to avoid a integer overflow problem. (check-in: 7e4978c0 user: drh tags: trunk)
17:27
Add the SQLITE_USER_AUTHENTICATION extension to the trunk. This extension is disabled by default. Special compilation procedures are need to enable it. (check-in: 65884d4f user: drh tags: trunk)
17:14
Clean up some #includes in the extension API implementation. (Closed-Leaf check-in: b149ef5c user: drh tags: user-auth)
16:36
Suppress the potential schema error that occurs when a non-user-auth SQLite library tries to parse the sqlite_user table definition in a user-auth database. (check-in: cda33c1e user: drh tags: user-auth)
16:19
Enhance the sqlite3_user_add() interface to initialize the user authentication logic. Add test cases for the extra argument on the end of the authorizer callback. (check-in: 842c6da8 user: drh tags: user-auth)
15:25
All interfaces working and tested. (check-in: 96ea5c0b user: drh tags: user-auth)
14:56
Get the sqlite3_user_delete() interface working. (check-in: 974a9c65 user: drh tags: user-auth)
14:40
Fix the sqlite3_user_change() interface so that it does allow a non-admin user to change their own password. (check-in: 52d440c7 user: drh tags: user-auth)
14:01
Move user authentication blocking from sqlite3_prepare() over to the table lock generator, thus allowing SQL statements (like "PRAGMA locking_mode") that do not touch database content to run prior to authentication. (check-in: 70121e7c user: drh tags: user-auth)
13:44
Add support for the extra parameter on the sqlite3_set_authorizer() callback and support for failing an ATTACH with an authentication-required database using bad credentials. The extension is now feature complete, but much testing and bug-fixing remains. (check-in: 596e728b user: drh tags: user-auth)
00:27
Reorder parameters on the sqlite3_user_*() interfaces for consistency. Add the first TCL test cases. (check-in: 2f6d8f32 user: drh tags: user-auth)
2014-09-10
22:46
Complete the implementation of the various APIs. Fix several problems. This is another incremental check-in that does not completely work. (check-in: 4eaaa7fa user: drh tags: user-auth)
19:01
Add the ".user" shell command and implement the sqlite3_user_add() routine. Incremental check-in. The code compiles but does not work. (check-in: a0455f9d user: drh tags: user-auth)
17:34
Further ideas on user authentication. Not yet working code. (check-in: c8171ecd user: drh tags: user-auth)
2014-09-09
20:30
Change the name of the _texte64() interfaces to just _test64(), without the "e". (Closed-Leaf check-in: 6ab76c5f user: drh tags: 64-bit-lengths)
18:41
Add new interfaces to the loadable extension mechanism. (check-in: 18d80cbc user: drh tags: 64-bit-lengths)
17:27
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. (check-in: 94954850 user: drh tags: 64-bit-lengths)
14:47
Non-working preliminary implementation attempts on user authentication. (check-in: 8440f093 user: drh tags: user-auth)
2014-09-08
17:50
Add support for update statements to sqlite3ota.c. (check-in: e109b27e user: dan tags: ota-update)
15:04
Merge support for large files on Android from trunk. (check-in: c2885c6b user: drh tags: sessions)
2014-09-06
20:19
Add support for delete operations to the ota extension. (check-in: f988234b user: dan tags: ota-update)
17:06
Fixes to os_unix.c to support database (and other) files larger than 2GiB on Android. (check-in: ad7063aa user: dan tags: trunk)
16:52
Merge latest trunk changes with this branch. (Closed-Leaf check-in: 9dca7ce5 user: dan tags: android-large-filles)
16:49
Fixes to os_unix.c to support database (and other) files larger than 2GiB. (check-in: e7fae33c user: dan tags: android-large-filles)
16:39
Fix typos in comments. No code changes. (check-in: e62aab5e user: peter.d.reid tags: trunk)
03:38
Do not record a page-size change if the attempt to change the page size failed due to an OOM error. (check-in: 4d4fb197 user: drh tags: trunk)
03:16
Add the sqlite3_memdebug_title_count global variable, used during debugging to count the number of invocations of test_memdebug_settitle. By examining this variable in the debugger after a segfault, one can then set a breakpoint on test_memdebug_settitle that will fire just before the problem. (check-in: 27e3ca3e user: drh tags: trunk)
02:00
Fix a couple of typos in comments. No changes to code. (check-in: a758465e user: mistachkin tags: trunk)
01:35
Query planner heuristic update: When doing a full table scan on a table that has an equality constraint on an unindexed column, do not allow the estimated number of output rows to be greater than half the total number of rows in the table. (check-in: 73954f93 user: drh tags: trunk)
2014-09-05
19:52
Switch back to using a single database connection in sqlite3ota.c. (check-in: 3c2f4a07 user: dan tags: ota-update)
19:31
Reorganize the code in sqlite3ota.c in preparation for adding support for update and delete operations. (check-in: 98387f05 user: dan tags: ota-update)
05:58
Fix harmless compiler warning. (check-in: 73311906 user: mistachkin tags: trunk)
2014-09-04
19:05
Avoid ever running a checkpoint in ota mode. (check-in: 9ae44447 user: dan tags: ota-update)
18:05
Fix showwal.c so that it works with 64KiB pages. (check-in: fc4f7c11 user: dan tags: ota-update)
11:03
Avoid calling sqlite3OsFetch() on a file-handle for which the xFetch method is NULL. (check-in: 071f7f2d user: dan tags: ota-update)
2014-09-03
19:30
Split part of "PRAGMA ota_mode" off into "PRAGMA pager_ota_mode". This allows some specialized custom VFS implementations to intercept and implement the expected pager-related effects of this pragma. (check-in: 209f672e user: dan tags: ota-update)
08:25
Add a command line program that uses the extension. This serves as example code and is also useful for performance testing. (check-in: ffa1524e user: dan tags: ota-update)
2014-09-02
19:59
Add an experimental extension for applying bulk updates to databases. (check-in: 2954ab50 user: dan tags: ota-update)
15:57
Merge the latest trunk changes into the apple-osx branch. (check-in: 696dc935 user: drh tags: apple-osx)
15:49
Merge the latest trunk changes, including the multi-threaded sorter, into the sessions branch. (check-in: d4cce2c7 user: drh tags: sessions)
2014-09-01
23:06
Update comments in the ANALYZE command that describe how the Stat4Accum objecct is passed around within the VDBE. No changes to functional code. (check-in: 9779c7a9 user: drh tags: trunk)
22:34
Avoid a confusing (though correct) argument to the sqlite3_result_blob() function in the implementation of ANALYZE. (check-in: 4cae93f8 user: drh tags: trunk)
19:29
For sqlite3_win32_is_nt(), assume WinRT is NT-based and revise #ifdef ordering to prefer the ANSI version of GetVersionEx, when available. (check-in: be0a0372 user: mistachkin tags: trunk)
18:21
Tweak the documentation for SQLITE_LIMIT_WORKER_THREADS. No changes to executable code. (check-in: 672e7387 user: drh tags: trunk)
17:36
Add support for using separate worker threads to speed large sorts. The SQLITE_MAX_WORKER_THREADS and SQLITE_DEFAULT_WORKER_THREADS compile-time options and the SQLITE_LIMIT_WORKER_THREADS argument to sqlite3_limit() and the "PRAGMA threads=N" pragma are added. (check-in: b1c0f0bc user: drh tags: trunk)
13:37
Attempt to make the xDelete method of the unix VFS more robust on VxWorks. (check-in: b0f6b91f user: drh tags: trunk)
13:29
Micro-optimizations in sqlite3BtreeNext() and sqlite3BtreePrevious(). (check-in: 839c7996 user: drh tags: trunk)
01:16
Fix harmless compiler warnings for MSVC. (check-in: 3ef32461 user: mistachkin tags: trunk)
01:15
Merge updates from trunk. (check-in: 51f33cf1 user: mistachkin tags: asciiMode)
2014-08-30
15:49
In the command-line shell, added options --lookaside, --pagecache, and --scratch used to configure auxiliary memories. (check-in: f61db04b user: drh tags: trunk)
2014-08-29
19:06
Disable worker threads when SQLITE_THREADSAFE=0. Set the default compile-time maximum number of worker threads to 8 and honor the SQLITE_DEFAULT_WORKER_THREADS compile-time constant (which defaults to 0). (Closed-Leaf check-in: 33fa0410 user: drh tags: threads)
18:06
Fix the speedtest1.c test program to set the worker thread count using the threads pragma. (check-in: 2ab4b5ad user: drh tags: threads)
16:20
Add SQLITE_LIMIT_WORKER_THREADS for controlling the maximum number of worker threads. (check-in: 1b598c68 user: drh tags: threads)
14:40
Merge recent performance enhancements from trunk onto the threads branch. (check-in: 35c44a3c user: drh tags: threads)
14:20
Not a fault after all, rather a testing mistake. Move this change back to trunk. Was: Avoid an unnecessary OP_Move operation for expression subqueries. (check-in: 2a74129a user: drh tags: trunk)
12:29
Contains a fault. Was: Avoid an unnecessary OP_Move operation for expression subqueries. (Closed-Leaf check-in: 462f42af user: drh tags: mistake)
11:24
Add the sqlite3VdbeChangeDest() routine that can be used to eliminate OP_Move opcodes. (Closed-Leaf check-in: 8c57bcc3 user: drh tags: experimental)
2014-08-28
19:38
Improved WHERETRACE messages for the estimated output row reductions from range scans. (check-in: fdd478bb user: drh tags: trunk)
17:30
Fix a problem causing an inaccurate stat4-based estimate for the number of rows visited by a range scan. (check-in: a9daf3ac user: drh tags: trunk)
17:20
Add a testcase() macro to help verfity the row estimation logic. (Closed-Leaf check-in: 6ba60952 user: drh tags: stat4-experimental)
16:01
Fix a problem causing an inaccurate stat4-based estimate for the number of rows visited by a range scan. (check-in: 052d89b5 user: dan tags: stat4-experimental)
13:42
Fix a formatting error ("%d" needed in place of "%g") on a WHERETRACE macro inside of the query planner. This fix applies to debugging logic only. (check-in: c931ca2b user: drh tags: trunk)
2014-08-27
23:18
Refactor the sqlite3PcacheFetch() routine into three separate routines, which are significantly faster overall and about 100 bytes smaller in size as well. (check-in: bdb6e497 user: drh tags: trunk)
17:53
Add a VDBE synopsis comment for clarification. (check-in: 029a6dc7 user: mistachkin tags: trunk)
17:48
Add a missing ticket number to a comment in index7.test. (check-in: d8b1c433 user: dan tags: trunk)
17:37
When determining whether or not a partial index is usable, do not assume that the cursor number assigned to each table in the query is the same as its index in the FROM clause. Fix for ticket [98d973b8f5]. (check-in: fcebca16 user: dan tags: trunk)
14:14
In the sqlite3_context object, keep a pointer to the result value rather than storing the result value in the sqlite3_context object and using memcpy() to move the value back into its register after the function returns. This runs faster and saves over 500 bytes of code space. (check-in: 6c1ee3e3 user: drh tags: trunk)
03:28
Factor out the exception paths from sqlite3ValueToText() into a separate function so that the main routine is much faster for the common case of no required type or encoding conversions. (check-in: 1624916c user: drh tags: trunk)
00:50
Performance enhancement in sqlite3VdbeMemNulTerminate(). (check-in: f94cacc3 user: drh tags: trunk)
2014-08-26
15:06
Change the page cache so that a new sqlite3_pcache object is allocated as soon as the page cache is opened, not delayed until the first fetch request. This give a noticable performance boost. The interface between pager and the page cache has changed slightly, which might break ZIPVFS. (check-in: f1f94a97 user: drh tags: trunk)
02:15
Merge recent performance enhancements and the CAST operator enhancements into the sessions branch. (check-in: 08ae974a user: drh tags: sessions)
02:02
Merge recent performance enhancements and the CAST operator enhancements into the apple-osx branch. (check-in: 5c273111 user: drh tags: apple-osx)
2014-08-25
23:44
Remove the SQLITE_CONFIG_WORKER_THREADS configuration parameter. The number of worker threads in the sorter is now determined only by the PRAGMA threads=N setting. (check-in: e3305d4b user: drh tags: threads)
22:43
Merge the CAST operator enhancements from trunk. (check-in: 6c8f86e4 user: drh tags: threads)
22:37
Add an assert() and five testcase() macros to the OP_Cast opcode implementation to help verify that it is fully tested. (check-in: af364cce user: drh tags: trunk)
21:11
Minor changes to the CAST logic to make it more testable. (check-in: 1ad70ec5 user: drh tags: trunk)
20:21
Test cases added for using unary "+" and CAST operators on the RHS of range constraints and verifying that STAT3/4 can use those constraints. (check-in: 42505e5a user: drh tags: trunk)
20:11
Allow CAST expressions and unary "+" operators to be used in the DEFAULT argument of an ALTER TABLE ADD COLUMN and to be understand on the RHS of range constraints interpreted by STAT3/4. This involves a rewrite of the implementation of the CAST operator. (check-in: 91d8a8d0 user: drh tags: trunk)
19:58
Add documentation for tokenizer api to fts5.h. Also add a script to extract extension API docs and format them as html. (check-in: e240d467 user: dan tags: fts5)
18:29
In cases where stat4 data is available but cannot be used because the rhs of a range constraint is too complex a expression, fall back to using the default estimates for number of rows scanned. (check-in: e06dc6f0 user: dan tags: trunk)
15:13
Query or change the maximum number of worker threads allowed on each database connection separately using the "PRAGMA threads" command. (check-in: 29c5e8a7 user: drh tags: threads)
13:27
Merge the recent performance enhancements implemented on trunk into the threads branch. (check-in: dfdc900f user: drh tags: threads)
11:33
Remove the pager_lookup() function since it is redundant with sqlite3PagerLookup(). (check-in: 54164ce4 user: drh tags: trunk)
11:20
Change the name of the VdbeMemRelease() macro to VdbeMemReleaseExtern() to more accurately reflect what it does. Performance enhancement to the sqlite3VdbeMemRelease() function. (check-in: 3ca5846d user: drh tags: trunk)
2014-08-24
02:53
The sqlite3VdbeChangeEncoding() routine goes about 3x faster if the sqlite3VdbeMemTranslate() subroutine is not inlined. (check-in: 0c7e1b87 user: drh tags: trunk)
01:32
Patch the sqlite3PagerWrite() method in the Pager to run a bit faster. (check-in: c63311e2 user: drh tags: trunk)
2014-08-23
23:15
Faster implementation of pcache1Fetch() (check-in: 0371cc3b user: drh tags: trunk)
20:25
Faster implementation of the sqlite3ApiExit() routine. (check-in: bd41d394 user: drh tags: trunk)
19:42
Another memory allocator performance optimization. (check-in: 6da6f46d user: drh tags: trunk)
19:08
Fix a variable-declaration after code problem in btree.c. Harmless in GCC and CLANG but unacceptable for MSVC. (check-in: 45abd5c0 user: drh tags: trunk)
19:04
Changes to sqlite3ScratchMalloc() that make the entire memory allocation interface a little faster and about 100 bytes smaller. (check-in: f83daa16 user: drh tags: trunk)
18:17
Make the implementation of the sqlite3_aggregate_context() interface faster for second an subsequent invocations. This helps all aggregate functions to perform better. (check-in: 802148f3 user: drh tags: trunk)
17:41
Improved performance in the type handling of arithmetic operators in the VDBE. (check-in: 0c0a6039 user: drh tags: trunk)
17:21
Performance optimization in the applyAffinity() logic inside the VDBE. (check-in: 25f2246b user: drh tags: trunk)
2014-08-22
23:33
Another performance tweak: Split the sqlite3BtreeCursorHasMoved() routine into two with the second routine named sqlite3BtreeCursorRestore(). The first now only reports whether or not the cursor has moved and the second tries to restore the cursor. This allows the sqlite3VdbeCursorMoveto() routine to be refactored to avoid stack pointer movements, for a noticable performance gain. (check-in: ce123b5c user: drh tags: trunk)
22:26
Factor the saveAllCursors() routine of btree.c into two separate routines, for a noticable performance improvement. (check-in: 3eb08439 user: drh tags: trunk)
21:58
Performance enhancements in the b-tree mutex logic. (check-in: 89145306 user: drh tags: trunk)
20:35
Combine the pcacheAddToDirtyList() and pcacheRemoveFromDirtyList() routines into a single pcacheManageDirtyList() routine. The resulting binary code is slightly faster and a few bytes smaller. (check-in: 6bcf1af6 user: drh tags: trunk)
19:12
Revise #ifdef ordering to prefer the ANSI version of GetVersionEx, when available. (Closed-Leaf check-in: 9fe0f075 user: mistachkin tags: winrt)
18:48
Performance enhancement in sqlite3PutVarint(). (check-in: a929be55 user: drh tags: trunk)
18:00
Split the sqlite3Error() routine into sqlite3Error() and sqlite3ErrorWithMsg(), for a slight size reduction and performance increase. (check-in: cf561d1f user: drh tags: trunk)
15:40
Performance improvement in the printf() logic by avoiding unnecessary stack pointer movement. (check-in: f7f2160d user: drh tags: trunk)
15:19
Improve the performance and reduce the size of the sqlite3VdbeSerialGet() routine by avoiding the use of stack. (check-in: ebc10e46 user: drh tags: trunk)
14:56
Handle the 4-byte integer case in the stackless routine. (Closed-Leaf check-in: 3f55484e user: drh tags: experimental)
14:34
Get the sqlite3VdbeSerialGet() routine to run faster by avoiding the use of local variables. (check-in: 8267d821 user: drh tags: experimental)
13:22
Change a while-loop into a do-loop in sqlite3VdbeSerialPut() for a small size reduction and performance improvement. (check-in: 750bb0a0 user: drh tags: trunk)
11:11
Enhance the spellfix extension with the ability to specify a rowid when inserting new rows. (check-in: 369c480c user: drh tags: trunk)
2014-08-21
20:26
Simplify the interface to the symbol table, saving 600 bytes of code space. (check-in: 14b0f561 user: drh tags: trunk)
19:11
For sqlite3_win32_is_nt(), assume WinRT is NT-based. (check-in: 2f59e71f user: mistachkin tags: winrt)
16:09
Merge all recent trunk changes, especially the fix for ticket [369d57fb8e5ccdff06f1], but also the skip-scan improvement and performance improvements in the b-tree code. (check-in: 0b9e2c32 user: drh tags: sessions)
14:10
Fix a faulty assert() statement. Add comments to clarify the behavior of the sqlite3OpenTableAndIndices() routine in insert.c. Add test cases to verify that the assert() statement is not firing inappropriately. Ticket [369d57fb8e5ccdff06f1]. (check-in: 7029b340 user: drh tags: trunk)
2014-08-20
23:42
Increase the version number to 3.8.7 (check-in: 91594aae user: drh tags: trunk)
23:38
Enhancements to skip-scan such that it is operable when a middle column of an index is skipped while the left-most column is constrained in the WHERE clause. (check-in: bc985caa user: drh tags: trunk)
18:43
A small performance improvement in freeSpace() by special-casing the relatively common case of an empty freelist. (check-in: 49f44d35 user: drh tags: trunk)
17:56
Reimplement the freeSpace() routine in btree.c so that it runs faster. (check-in: fe4fd014 user: drh tags: trunk)
14:37
Refactor local variable names in the freeSpace() routine of btree.c for improved understandability. (check-in: 7e63089a user: drh tags: trunk)
13:35
Size reduction and performance improvements in btree.c and the allocateSpace() routine. Also fix an assert() in freeSpace(). (check-in: 121308fa user: drh tags: trunk)
13:25
Add SQLITE_API macros in front of interface routines in the test_intarray.c extension. (check-in: eea06617 user: drh tags: trunk)
13:17
Change an assert() added by the previous commit into a testcase(). Fix a separate assert() in btree.c:freeSpace(). (Closed-Leaf check-in: fe51d3aa user: drh tags: btree-speedup)
11:56
Further size reduction and performance improvement in btree.c:allocateSpace(). (check-in: 1cb1cd64 user: drh tags: btree-speedup)
10:42
Fix a typo in the showdb usage message. (check-in: 6c66beae user: dan tags: trunk)
00:54
Minor performance improvement and size reduction for the btree-page space allocator. (check-in: 73637d12 user: drh tags: trunk)
2014-08-19
23:04
Modify the memsubsys1-3.1.4 test so that it does not fail arbitrarily due to variations in the behavior of system malloc(). (check-in: d280157d user: drh tags: trunk)
20:41
A better fix for the sqlite3_trace() problem. Ticket [11d5aa455e0d98f3c1e6a] (check-in: 44d5bd4c user: drh tags: trunk)
20:27
Make sure the sqlite3_trace() callback is invoked, even if the prepared statement was marked "expired" before it ever entered sqlite3_step(). Ticket [11d5aa455e0d98f3c1e6a08]. (check-in: 0d4d3df4 user: drh tags: trunk)
19:28
Improvements to output formatting with the ".trace" command in the command-line shell. (check-in: d09d63c0 user: drh tags: trunk)
09:15
Minor changes to do with the Tcl tea extension package autoconf system. (check-in: f10a6111 user: dan tags: trunk)
00:33
Disable the hook-7.5.2 tests when using sessions, since that are not correct in that case. (check-in: 6d5b9332 user: drh tags: sessions)
00:26
Improved response to error conditions in the ".session" shell command and in the "changeset" command-line program. (check-in: b69f7dd1 user: drh tags: sessions)
2014-08-18
20:23
Fix the autoconf and MSVC makefiles so that they construct the changeset command-line utility upon request. Delete that utility program when "make clean" is run. (check-in: 4dc15fe0 user: drh tags: sessions)
20:14
Fix a harmless compiler warning in the sessionAppendDelete() function. (check-in: 1324d08d user: drh tags: sessions)
20:08
Add the "changeset" command-line tool for analyzing and manipulating changesets in files on disk. Add the ".session" command to the command-line tool. (check-in: 31addb62 user: drh tags: sessions)
20:01
A reasonably complete implementation of the "changeset" command-line tool and the ".sessions" command in the command-line shell. (Closed-Leaf check-in: 7b12f1f9 user: drh tags: sessions_from_cli)
19:30
Add an "automerge=0" mode that disables auto-merging and falls back to fts4-style crisis merges. (check-in: 2397404e user: dan tags: fts5)
17:56
Add the "changeset" command-line utility for getting an ASCII dump of change sets. (check-in: 55bb3544 user: drh tags: sessions_from_cli)
16:03
Add miscellaneous test cases to improve coverage of sessions module. (check-in: 0fac6cff user: dan tags: sessions)
15:08
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. (check-in: c2fcf0b9 user: drh tags: sessions_from_cli)
13:48
Merge the latest trunk changes, and in particular the refactoring of the object names in the command-line shell. (check-in: 419d286a user: drh tags: sessions)
13:45
Refactor the names of state objects in the command-line shell implementation.. (check-in: 11a70e1a user: drh tags: trunk)
08:42
Add tests for sessions module. (check-in: 82fdb197 user: dan tags: sessions)
2014-08-16
19:01
Fix some missing and out-of-date comments in the sessions module. (check-in: 05c1d914 user: dan tags: sessions)
16:47
Fixes for the sqlite3changeset_concat() API regarding patchsets. (check-in: dccb3485 user: dan tags: sessions)
2014-08-15
20:15
Begin adding the sqlite3session_patchset() API to the sessions extension. This is an interim commit. (check-in: 60a4565a user: dan tags: sessions)
16:13
Fix compiler warnings on WinCE. (check-in: 28a379fc user: drh tags: trunk)
16:10
Merge the 3.8.6 changes into the apple-osx branch. (check-in: b91fcb3b user: drh tags: apple-osx)
15:46
Merge the 3.8.6 release into the threads branch. (check-in: 05807c41 user: drh tags: threads)
15:10
Update the sessions branch for version 3.8.6. (check-in: 2acbeac1 user: drh tags: sessions)
11:46
Version 3.8.6 (check-in: 9491ba7d user: drh tags: trunk, release, version-3.8.6)
2014-08-14
19:53
Fix an assert that can fail if the database file is corrupted. (check-in: 3f45b819 user: dan tags: trunk)
18:31
Fix compiler warnings on WinCE. (Closed-Leaf check-in: cc910b8e user: mistachkin tags: winCeWarn)
14:02
Merge the pre-3.8.6 changes into the threads branch. (check-in: a608fd1d user: drh tags: threads)
13:39
Merge the pre-3.8.6 changes from trunk into the apple-osx branch. (check-in: 08058df3 user: drh tags: apple-osx)
13:06
Fix typos in comments used to help generate documentation. No changes to code. (check-in: 13a2d90a user: drh tags: trunk)
02:59
Add icon to the Windows shell executable. This is a resource change only, no changes to code. (check-in: f5cce9db user: mistachkin tags: trunk)
2014-08-13
14:43
Merge the trunk changes for 3.8.6 beta3 into the sessions branch. (check-in: d49455d9 user: drh tags: sessions)
11:39
Minor change to unixDelete for VxWorks with a DOS filesystem. (check-in: f01d42cc user: drh tags: trunk)
2014-08-12
20:13
Fix where9.test so that it works with the "no_optimization" permutation. (check-in: d46adf9d user: dan tags: trunk)
16:13
Fix compilation issue in the Win32 VFS when manually defining SQLITE_WIN32_NO_ANSI. (check-in: 67159912 user: mistachkin tags: trunk)
16:07
Cache the value of the "totals" record in memory during transactions. (check-in: 05dfdad4 user: dan tags: fts5)
14:29
Improve the comments associated with SQLITE_TEST_REALLOC_STRESS and add an extra assert() to prove an assumption. (check-in: 35c45461 user: drh tags: trunk)
14:06
Run a test with TEST_REALLOC_STRESS and OMIT_LOOKASIDE defined as part of releasetest.tcl on Linux/x86-64. (check-in: a1baf3a7 user: dan tags: trunk)
13:38
If SQLITE_TEST_REALLOC_STRESS is defined, extend the op-code array used by virtual-machine programs by one element at a time, instead of doubling its size with each realloc(). (check-in: 4c291827 user: dan tags: trunk)
13:32
Remove support for Win9x. (Leaf check-in: 169fc47e user: drh tags: drop-win9x-support)
12:19
Fix typos in the VxWorks code of os_unix.c. (check-in: 19682e8f user: drh tags: trunk)
09:36
Add a test to ensure that the problem fixed by [a179e41e40] does not recur. (check-in: 31356f2c user: dan tags: trunk)
08:36
Automatically resize the hash table used by fts5. (check-in: f1cb48f4 user: dan tags: fts5)
01:23
Fix an assert() statement in the SELECT code generator that was incorrect following an OOM error. (check-in: a179e41e user: drh tags: trunk)
2014-08-11
20:26
Simplify the way position lists are copied when merging data. (check-in: 9f8d678a user: dan tags: fts5)
19:44
Replace the hash table borrowed from fts3. (check-in: 617e2fac user: dan tags: fts5)
17:51
Modify GetVersionEx Win32 VFS fix for use with the test suite. (check-in: fd222176 user: mistachkin tags: trunk)
17:41
Further clarification and typo fixes for the previous comment change. (check-in: 87ef9e2f user: drh tags: trunk)
17:40
Clarify the comment explaining the meaning of the SQLITE_WIN32_GETVERSIONEX macro in the Windows VFS. (check-in: 69714287 user: drh tags: trunk)
17:38
Fix for #ifdef issue with GetVersionEx in the Win32 VFS. (check-in: 1a0d466d user: mistachkin tags: trunk)
17:37
Add a few more requirements tests. (check-in: b5652439 user: drh tags: trunk)
15:54
Updates to evidence marks and requirements. No changes to code. (check-in: 62d38308 user: drh tags: trunk)
14:21
Fix harmless compiler warnings. (check-in: 52b03f04 user: drh tags: trunk)
13:53
Changes that will perhaps enable SQLite to work better on VxWorks. (check-in: de27c742 user: drh tags: trunk)
2014-08-09
18:22
Fix an uninitialized variable causing a problem during fts5 table initialization. (check-in: a14fa876 user: dan tags: fts5)
18:02
Use multiple memory allocations for a single Fts5Structure object. This is probably less efficient but much easier to get right. (check-in: 2821825f user: dan tags: fts5)
2014-08-08
18:26
Update requirements marks. No changes to code. (check-in: 7556bd9a user: drh tags: trunk)
17:49
Improvements to the way the query planner handles sorting costs, so that very large sorting costs do not overwhelm the loop costs. (check-in: bdaa6947 user: drh tags: trunk)
17:25
Fix a buffer overrun in the previous commit. (Closed-Leaf check-in: 43c59c85 user: dan tags: query-planner-fix)
16:52
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]. (check-in: 299b9570 user: dan tags: query-planner-fix)
15:38
The SQLITE_IOERR_BLOCKED extended error code is not longer used, so remove assert() statements and documentation for that error code. Also make other documentation improvements. (check-in: 36b7c5ce user: drh tags: trunk)
12:51
Reworking the documentation on integer result codes. This is a comment and documentation change only. There are no changes to code. (check-in: 54f1df7b user: drh tags: trunk)
2014-08-07
20:42
When the estimated sorting cost overwhelms the estimated lookup cost, ensure that lookup costs are still taken into account when selecting a lookup algorithm. (check-in: 2af630c5 user: drh tags: trunk)
20:37
Clarify the computation of compatible isOrdered by in the plan solver of the query planner. (Closed-Leaf check-in: b5e8fd57 user: drh tags: query-planner-fix)
20:25
Remove the extraneous debugging printf() from the previous check-in. (check-in: 8f04d2c0 user: drh tags: query-planner-fix)
18:47
Add "segment promotion" to fts5. This prevents the FTS index from growing indefinitely as data is added and deleted. (check-in: ba359d78 user: dan tags: fts5)
16:50
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. (check-in: ec5d84ba user: drh tags: query-planner-fix)
2014-08-06
20:04
Avoid writing delete markers to the oldest segment in an FTS index. (check-in: 1baeb1ce user: dan tags: fts5)
18:50
A couple more harmless compiler warnings eliminated. (check-in: bcf6d775 user: drh tags: trunk)
17:49
Fix two more harmless compiler warnings. Make sure the fts3_unicode2.c file is in sync with mkunicode.tcl. (check-in: a2a60307 user: drh tags: trunk)
16:30
Add support for savepoints to fts5. (check-in: 3b19eba0 user: dan tags: fts5)
14:36
Fix harmless compiler warnings. In the command-line shell, report if the ".system" command returns a non-zero result. (check-in: 1202e977 user: drh tags: trunk)
12:00
Merge the second InterlockedCompareExchange() fix from trunk. (check-in: 69018967 user: drh tags: sessions)
11:58
Fix an obsolete comment in the func.c source file. No changes to code. (check-in: 5c6bb57d user: drh tags: trunk)
11:57
On the windows VFS, do not try to make InterlockedCompareExchange an overloadable function, since sometimes it is a macro. (check-in: ab1a751e user: drh tags: trunk)
11:49
Fix an obsolete comment in the func.c source file. No changes to code. (check-in: 7a145c94 user: drh tags: sessions)
03:16
Merge in the fix for the InterlockedCompareExchange() build issue. (check-in: 091aa5f1 user: drh tags: sessions)
03:06
In the Win32 VFS, work around InterlockedCompareExchange() being a macro on some platforms (e.g. x64). (check-in: 7be244ce user: mistachkin tags: trunk)
02:03
Merge all recent changes from trunk. (check-in: a353a851 user: drh tags: threads)
01:51
Merge 3.8.6 beta changes in from trunk. (check-in: b2e01080 user: drh tags: apple-osx)
01:25
Merge the latest 3.8.6 beta changes from trunk. (check-in: 68a6d5e2 user: drh tags: sessions)
01:08
Fix typos in the opcode documentation. Comment changes only. No changes to code. (check-in: 717245d4 user: drh tags: trunk)
00:29
A simpler fix for ticket [3a88d85f36704eebe1] - one that uses less code. The error message is not quite as good, but as this error has apparently not previously occurred in over 8 years of heavy use, that is not seen as a serious problem. (check-in: 0ad1ed8e user: drh tags: trunk)
2014-08-05
21:31
Ensure that aggregate functions are not used when evaluating a default value for a table column. Candidate fix for ticket [3a88d85f36704eebe134f7]. (check-in: 29ba8128 user: drh tags: trunk)
19:35
Use doclist indexes for AND queries as well as phrases. (check-in: 5d38e6ed user: dan tags: fts5)
19:16
Add the ability to evaluate IN operators as a sequence of comparisons as an alternative to the long-standing algorithm of building a lookup table. Use the new implementation in circumstances where it is likely to be faster, such as when the RHS of the IN changes between successive evaluations. (check-in: 95286821 user: drh tags: trunk)
19:00
Use doclist-indexes with "ORDER BY rowid ASC" fts5 queries as well. (check-in: d028ba65 user: dan tags: fts5)
11:04
Rename the internal Schema.flags field to Schema.schemaFlags. (check-in: 5ae80b3c user: drh tags: trunk)
00:53
Improved VdbeCoverage() macros. A few minor simplifications to generated VDBE code. (Closed-Leaf check-in: 01f60027 user: drh tags: IN-operator-improvements)
2014-08-04
21:26
Part of the change in the previous check-in was incorrect and can result in an incorrect UPDATE for WITHOUT ROWID tables. This check-in fixes the problem. (check-in: ee5f6eae user: drh tags: IN-operator-improvements)
20:07
Fix fts5_index.c to use doclist-indexes when possible. Only some cases work so far. (check-in: 90b82d3e user: dan tags: fts5)
18:50
Further enhancements to IN-operator processing. (check-in: 7fdf26da user: drh tags: IN-operator-improvements)
16:39
Refinements to the enhanced IN-operator logic. (check-in: 92ba2821 user: drh tags: IN-operator-improvements)
15:12
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. (Closed-Leaf check-in: 2f724cba user: drh tags: deadend)
2014-08-02
21:03
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. (check-in: 436e8842 user: drh tags: IN-operator-improvements)
20:49
Start changing things to use doclist indexes as required. code is not activated yet. (check-in: b8864da9 user: dan tags: fts5)
20:44
Remove (newly) incorrect preprocessor check to fix build on WinRT. (check-in: ba782654 user: mistachkin tags: trunk)
2014-08-01
21:12
A better comment on the generated code for the NULL-in-RHS-of-IN detection logic. (check-in: 9bc1c730 user: drh tags: trunk)
21:00
Improved detection and handling of NULL values on the RHS of a IN operator. (check-in: 468e7300 user: drh tags: trunk)
20:13
Add a special case to the integrity-check code to check that the final integer in a doclist index is as expected. (check-in: c9893415 user: dan tags: fts5)
19:27
Have the fts5 integrity-check verify that doclist indexes match the contents of the leaf pages that they index. (check-in: 37a7d303 user: dan tags: fts5)
18:00
Remove an unnecessary OP_Null in the IN-operator logic. Attempt to clarify comments explaining the IN-operator code, though it is not clear that the comments are correct even yet - more work to be done. (check-in: c11e55fa user: drh tags: trunk)
15:51
Clean up the IN operator code generation logic to make it easier to reason about. In the process, improve code generation to omit some unused OP_Null operations. (check-in: 7c6fbcfe user: drh tags: trunk)
15:34
The idea of coding IN operator with a short list on the RHS as an OR expression turns out to be helpful. If the list is of length 1 or 2, the OR expression is very slightly faster, but the ephemeral table approach is clearly better for all list lengths greater than 2. Better to keep the code simple. (Closed-Leaf check-in: e13175d3 user: drh tags: IN-operator-improvements)
14:46
Begin making changes to the IN operator in an attempt to make it run faster and to make the code easier to understand. (check-in: ee0fd6aa user: drh tags: IN-operator-improvements)
11:16
Add "doclist index" records to the database. These are to make navigating within very large doclists faster. They are not yet used by queries. (check-in: 89377421 user: dan tags: fts5)
01:40
Enhance the PRAGMA integrity_check command to detect UNIQUE and NOT NULL constraint violations. (check-in: 9abcf269 user: drh tags: trunk)
2014-07-31
22:59
Refactoring: Change "pIndex->onError!=OE_None" to use a macro: "IsUniqueIndex(pIndex)". Easier to understand that way. (check-in: e75b26ee user: drh tags: trunk)
20:16
Omit a pointless OP_Null when processing a value-list RHS of an IN operator where the LHS is a rowid. (check-in: 1361450a user: drh tags: trunk)
18:54
Optimizations to the OS sub-type checking in the Win32 VFS. (check-in: 1e5489fa user: mistachkin tags: trunk)
18:14
Add a missing call to "test_sqlite3_log" to multiplex.test. (check-in: 0708f9df user: dan tags: trunk)
17:53
Add a comment explaining why fts5 cannot cache "sorter statements". (check-in: e6af3b7a user: dan tags: fts5)
17:47
Try to reuse sorter statements in fts5. Does not work due to circular references on VTable object. (Leaf check-in: bc14e64b user: dan tags: save_sorter_stmt)
17:35
Fix a leaked database handle in pager2.test. (check-in: 47457b04 user: dan tags: trunk)
15:44
Deactivate the DISTINCT in a SELECT on the right-hand side of an IN operator, since it should not make any difference in the output but dues consume extra memory and CPU time. (check-in: f4cb5365 user: drh tags: trunk)
11:57
Add further tests for the extension APIs with "ORDER BY rank" queries. (check-in: 37a417d2 user: dan tags: fts5)
2014-07-30
23:11
Re-integrate the recent changes from the 'winMutex' branch back into the Win32 mutex subsystem. (check-in: 5360ecb0 user: mistachkin tags: trunk)
21:10
Add three new static mutexes for use by the application. This is a partial import of changes from the threads branch. (check-in: 3aad0196 user: drh tags: trunk)
20:26
Fix things so that the fts5 extension API works with "ORDER BY rank" queries. (check-in: f1b4e1a9 user: dan tags: fts5)
19:41
Add hidden column "rank". Currently this always returns the same value as the bm25() function. (check-in: 4cc048c3 user: dan tags: fts5)
18:47
Add a new sqlite3FaultSim() call to vdbePmaReaderSeek() to facilitate tests of error handling in the sorter. (check-in: 655d8cfc user: drh tags: threads)
17:21
Mark some invariants in the vdbesort.c logic when SQLITE_MAX_WORKER_THREADS==0. (check-in: 721cd965 user: drh tags: threads)
15:43
Add the "eForce" parameter to the sqlite3_multiplex_shutdown() entry point in test_multiplex.c. Shutdown is forced if true. Shutdown is not done if there are pending database connections and eForce is false, but an error log entry is made instead. (check-in: c7303d01 user: drh tags: trunk)
14:57
Merge in the CREATE UNIQUE INDEX fix of ticket [9a6daf340df99ba93c53bcf]. (check-in: fa791232 user: drh tags: apple-osx)
14:44
Merge recent trunk changes, and especially the fix for the CREATE UNIQUE INDEX problem of ticket [9a6daf340df99ba9]. (check-in: 5b50a838 user: drh tags: threads)
14:29
Merge the fix for the CREATE UNIQUE INDEX problem into the sessions branch. (check-in: 43401ee6 user: drh tags: sessions)
13:56
Ensure that the correct number of columns in a UNIQUE index are checked for uniqueness, regardless of whether or not the original table has a ROWID or if the columns are NOT NULL, etc. Ticket [9a6daf340df99ba93c]. (check-in: 6b785e92 user: drh tags: trunk)
11:49
Merge all recent trunk changes, and especially the R-Tree IN operator fix of ticket [d2889096e7bdeac]. (check-in: 654c6c65 user: drh tags: apple-osx)
2014-07-29
21:44
Disable an assert that is sometimes generated spuriously. (check-in: bd9ee0ea user: mistachkin tags: threads)
19:54
Enhancements and updates to the Win32 mutex subsystem. (check-in: ca9868cd user: mistachkin tags: trunk)
19:00
Update return value checking to conform to the beginthreadex() specs. (check-in: 3144a16f user: mistachkin tags: threads)
18:53
Add a couple more assert statements. (check-in: 4e816db2 user: mistachkin tags: threads)
18:46
Fix unreachable branches in the threads.c module. (check-in: 3175e366 user: drh tags: threads)
18:03
Merge updates from trunk. (Closed-Leaf check-in: 08c9a4ea user: mistachkin tags: winMutex)
17:22
Fix a harmless compiler warning. (check-in: 216d21d0 user: drh tags: threads)
16:37
Make the Win32 thread handles are available after the threads exit. (check-in: 565c5af7 user: mistachkin tags: threads)
15:18
Fix the threads build on Windows when SQLITE_MAX_WORKER_THREADS is greater than 0. (check-in: f37db3a0 user: drh tags: threads)
14:16
Merge the R-Tree fix and the new SQLITE_TESTCTRL_ISINIT test control from trunk. (check-in: b2f7eb3c user: drh tags: threads)
14:09
Add the SQLITE_TESTCTRL_ISINIT file control. (check-in: 8b651d4d user: drh tags: trunk)
12:40
Merge recent trunk changes, and especially the fix for the R-Tree problem described in ticket [d2889096e7bdeac6]. (check-in: 8f1beead user: drh tags: sessions)
11:54
Have calls to the xFilter() method of rtree virtual tables ensure that cursor is initialized before proceeding. Fix for [d2889096e7bdeac]. (check-in: 8cc41b0b user: dan tags: trunk)
05:49
Enhancements and updates to the Win32 mutex subsystem. (check-in: 18984c32 user: mistachkin tags: winMutex)
00:42
Add some asserts to the Win32 mutex subsystem. (check-in: e8f2dc5f user: mistachkin tags: threads)
00:23
Fix the build on windows. (check-in: 2773a5f9 user: drh tags: threads)
2014-07-28
20:16
Remove an unnecessary parameter from vdbeMergeEngineStep(). Rename a couple other routines to be more descriptive of what they do. (check-in: f2407a40 user: drh tags: threads)
20:14
Add the "loadfts" program, for performance testing the loading of data into fts3/fts4/fts5 tables. (check-in: 770b9540 user: dan tags: fts5)
19:58
Rename vdbeIncrMergerInit() to vdbeMergeEngineInit() - a much more accurate name. (check-in: 5b084a2d user: drh tags: threads)
18:57
In vdbesort.c, rename vdbeSorterDoCompare() to vdbeMergeEngineCompare() and move it closer to the one place where it is called. Other minor comment changes. (check-in: 09d50d9f user: drh tags: threads)
17:18
In vdbesort.c, rename all pointers to sqlite3_file objects "pFd" and use the name "pFile" only for pointers to SortFile objects. Other comment enhancements. (check-in: 518290a7 user: drh tags: threads)
15:01
Merge recent trunk changes into the threads branch. (check-in: 163c247b user: drh tags: threads)
14:54
Improvements to comments in the multi-threaded sorter. Also include a function name change for clarity. And add a test to help show that the MergeEngine object is only used by a single thread. (check-in: 9af50a87 user: drh tags: threads)
2014-07-26
20:12
Remove an unreachable branch from the sqlite3_value_numeric_type() interface. (check-in: 5350229b user: drh tags: trunk)
18:38
Add tests and fixes for bm25() function. (check-in: 71d32f53 user: dan tags: fts5)
16:47
Avoid unnecessary no-op calls to applyNumericAffinity() for a small performance improvement. (check-in: 413d7287 user: drh tags: trunk)
2014-07-25
21:35
Try to fix harmless compiler warnings reported by Fortify. (check-in: e0fa6fdc user: drh tags: trunk)
20:30
Add extension apis xRowCount, xQueryPhrase, xSetAuxdata and xGetAuxdata. And a ranking function that uses all of the above. (check-in: c4d50428 user: dan tags: fts5)
18:37
Improved comments on VDBE opcodes, for better documentation. No code or logic changes. (check-in: 2d32e487 user: drh tags: trunk)
18:01
Add constraints (enforced only when SQLITE_DEBUG is enabled) on the use of OP_Next and OP_Prev. (check-in: 2230c74f user: drh tags: trunk)
2014-07-24
23:23
Improve the performance of the ANALYZE command by taking advantage of UNIQUE constraints on indices. (check-in: 114dcf33 user: drh tags: trunk)
22:51
Correct help text and make consistent use of snprintf. (check-in: 9c424a5c user: mistachkin tags: asciiMode)
22:41
Fix a bug in the whereRangeSkipScanEst() procedure (added by check-in [d09ca6d5efad3e4cfa]) where it fails to consider the possibility of a ROWID column when computing the affinity of a table column. (check-in: 6aea2258 user: drh tags: trunk)
22:33
Update a shell test case. (check-in: b84008cb user: mistachkin tags: asciiMode)
22:20
Fix typo in comment and update help text. (check-in: 289092bb user: mistachkin tags: asciiMode)
22:13
Merge updates from trunk. (check-in: 8dc0cdf6 user: mistachkin tags: asciiMode)
20:25
Avoid trying to allocation zero bytes when analyzing a unique non-null index. (Closed-Leaf check-in: 85e2bade user: drh tags: faster-analyze)
19:54
Avoid change tests when analyzing single-column unique indexes after getting past the initial NULL entries. (check-in: 4690e99c user: drh tags: faster-analyze)
16:54
Merge all recent trunk changes into the threads branch. (check-in: 77068589 user: drh tags: threads)
16:43
Merge recent trunk changes into the apple-osx branch. (check-in: 3810dc62 user: drh tags: apple-osx)
16:23
Merge recent trunk changes into the sessions branch. (check-in: a9db017e user: drh tags: sessions)
12:39
Add the readfile(FILENAME) and writefile(FILENAME,CONTENT) SQL functions to the command-line shell. (check-in: fb1048cb user: drh tags: trunk)
12:19
Add support for hexadecimal integer literals in the parser. (check-in: f8f79f28 user: drh tags: trunk)
12:09
In the command-line shell, in CSV output mode, terminate rows with CRNL but do not expand NL characters in data into CRNL. Provide the extra -newline command-line option and the extra argument to .separator to designate an alternative newline character sequence for CSV output. (check-in: 16c8ce10 user: drh tags: trunk)
2014-07-23
23:57
Add experimental "costmult" logic. Only enabled when compiled with -DSQLITE_ENABLE_COSTMULT. (check-in: 729ece40 user: drh tags: trunk)
19:37
Ugh. Consecutive UNIQUE index entries are only distinct if the index is on NOT NULL columns. So the previous version was not quite right. This check-in fixes the problem. (check-in: 30033f96 user: drh tags: faster-analyze)
19:31
Add a snippet() function to fts5. (check-in: bdc58fd2 user: dan tags: fts5)
19:04
Enhancements to the hex literal tests. (Closed-Leaf check-in: a3cc027f user: mistachkin tags: hex-literal)
18:36
Improve the performance of the ANALYZE command by taking advantage of the fact that every row of a UNIQUE index is distinct. (check-in: 3e1e79e1 user: drh tags: faster-analyze)
15:51
Updated documentation on sqlite3_temp_directory. No changes to code. (check-in: e6225a7b user: drh tags: trunk)
14:52
Remove a surplus function prototype. #ifdef code that is not used when hex integers are omitted at compile time. (check-in: a5b383e0 user: drh tags: hex-literal)
13:40
Change the hex literal processing so that only the SQL parser understands hex literals. Casting and coercing string literals into numeric values does not understand hexadecimal integers. This preserves backwards compatibility. Also: Throw an error on any hex literal that is too big to fit into 64 bits. (check-in: 6c6f0de5 user: drh tags: hex-literal)
02:07
Casting hex literals directly from string to float always results in a positive number. (check-in: 4b86ccdf user: drh tags: hex-literal)
01:59
Reformatting a few test cases for clarity. (check-in: 7e1bbacb user: drh tags: hex-literal)
01:56
Test cases for hex literals. (check-in: 19054339 user: drh tags: hex-literal)
01:26
Add support for parsing C-style hexadecimal literals. (check-in: 34a1f38b user: drh tags: hex-literal)
2014-07-22
22:46
When running ANALYZE, it is not necessary to check the right-most key column for changes since that column will always change if none of the previous columns have. (check-in: 48f40861 user: drh tags: trunk)
20:02
Add the OP_ReopenIdx opcode that works like OP_OpenRead except that it becomes a no-op if the cursor is already open on the same index. Update the OR-optimization logic to make use of OP_ReopenIdx in order to avoid unnecessary cursor open requests sent to the B-Tree layer. (check-in: 77f412ca user: drh tags: trunk)
19:14
The optimization of check-in [b67a6e33f2] does not work (it generates incorrect VDBE code) if an OR term is AND-ed with a constant expression. So back that optimization out and add a test case to make sure it does not get added back in. (check-in: eed754fe user: drh tags: trunk)
16:00
Fix the index name for the shadow tables in the spellfix1 extension so that multiple instances of the spellfix1 virtual table can each have their own index. (check-in: 438c348a user: drh tags: trunk)
15:33
Correction: The maximum SQLITE_MAX_ATTACHED value to avoid overflowing a signed 8-bit integer is 125, not 127. (check-in: 48e37802 user: drh tags: trunk)
14:58
Enhance the sqlite_stat1.stat parsing to allow additional text parameters at the end. Unrecognized parameters are silently ignored. (check-in: ca2a5a2c user: drh tags: trunk)
14:42
Expire prepared statements after running ANALYZE. (check-in: b083a961 user: drh tags: trunk)
12:05
Enhance the comment on whereLoopAddBtree(). No changes to code. (check-in: b22dd165 user: drh tags: trunk)
00:40
For the OR-optimization, avoid generating OP_OpenRead opcodes that reopen exactly the same index. (check-in: b67a6e33 user: drh tags: trunk)
2014-07-21
20:07
Limit the maximum SQLITE_MAX_ATTACHED to 127, since a signed character is sometimes used to store the database index. (check-in: f1c76c7c user: drh tags: trunk)
15:45
Fix DELETE and UPDATE operations on fts5 tables. (check-in: d44d3a85 user: dan tags: fts5)
15:44
Allow the SQLITE_MAX_ATTACHED compile-time option to be larger than 62. The default limit on the number of attached databases remains 10. (check-in: 1a817ae2 user: drh tags: trunk)
14:22
Add the xTokenize extension API. (check-in: 8c6b0aff user: dan tags: fts5)
11:44
Fix the xColumnSize() extension API. (check-in: 19504c41 user: dan tags: fts5)
2014-07-19
20:27
Add simple tests for the xColumnText() extension api. (check-in: 1e9053ab user: dan tags: fts5)
20:15
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). (check-in: 7fe601ea user: mistachkin tags: asciiMode)
17:57
Update the sqlite3_stmt_busy() function so that it correctly returns true for "ROLLBACK" statements that have been stepped but not yet reset. (check-in: 61cee3c0 user: dan tags: trunk)
17:49
Fix harmless compiler warnings in the showdb and showwal tools and in the unicode tokenizer of FTS3. (check-in: 574cc8eb user: drh tags: trunk)
15:44
Fix some harmess compiler warnings in the FTS3 Unicode module. (Closed-Leaf check-in: c01caea5 user: mistachkin tags: toolWarnings)
15:40
Fix warnings related to having a 64-bit size_t. (check-in: 29ac9336 user: mistachkin tags: toolWarnings)
15:35
Fixes for the xColumnSize() fts5 extension API. (check-in: 43fcb844 user: dan tags: fts5)
15:30
Fix warnings caused by the previous commit. (check-in: 89634a41 user: mistachkin tags: toolWarnings)
2014-07-18
21:16
Fix harmless compiler warnings for MSVC in the showdb/showwal command line tools. (check-in: 6dc7b2f1 user: mistachkin tags: toolWarnings)
21:02
Update clean targets with the recently added command-line tools. (check-in: 2beefa68 user: mistachkin tags: trunk)
19:59
Fix issues with position lists and NEAR constraints. (check-in: 16352d36 user: dan tags: fts5)
19:06
Improved documentation for checkpoints and the busy handler. No changes to code. (check-in: ca92c024 user: drh tags: trunk)
17:39
SQLite has long accepted some unadvertised and non-standard join syntax. Add a test to ensure that future versions continue to accept this non-standard syntax, to avoid breaking legacy applications that use the undefined syntax. (check-in: 824dde7f user: drh tags: trunk)
14:43
Improvements to the ".fullschema" command in the command-line shell. (check-in: fa80c64c user: drh tags: trunk)
2014-07-17
15:14
Fix a problem with position list processing for OR queries. (check-in: 5808f30f user: dan tags: fts5)
2014-07-16
20:07
Fixes for tcl list generation in fts5_test(). (check-in: c1f9a4b7 user: dan tags: fts5)
19:15
Begin adding interface for auxiliary functions. (check-in: 1e2a7ba0 user: dan tags: fts5)
2014-07-15
11:59
Add simple tests for new sqlite3BtreeCursorHint() functionality. (check-in: 1efa6ed5 user: dan tags: cursor-hints)
2014-07-14
19:04
In the expression passed to sqlite3BtreeCursorHint() for the inner loops of joins, replace any TK_COLUMN references to columns in the outer loops with TK_REGISTER expressions (Expr.iTable indicates the specific register containing the value). There are no automated tests for this yet. (check-in: f9dddd00 user: dan tags: cursor-hints)
2014-07-10
20:21
Support "ORDER BY rowid ASC". (check-in: b96b5e16 user: dan tags: fts5)
2014-07-08
16:27
Add support for prefix queries to fts5. (check-in: 75ebd3cd user: dan tags: fts5)
2014-07-07
18:03
Fix harmless compiler warnings in the fts3view utility program that can occur with MSVC. (check-in: 1cec1e03 user: mistachkin tags: trunk)
17:57
Add the fts3view utility program to the MSVC makefile. (check-in: b04751bd user: mistachkin tags: trunk)
16:07
Fix a division-by-zero error in the fts3view utility program. Add the fts3view utility program to the "main.mk" makefile. (check-in: 64f02699 user: drh tags: trunk)
2014-07-05
15:15
Add support for AND, OR and NOT to fts5. (check-in: 8682b87e user: dan tags: fts5)
07:54
Add support for the "colname : <nearset>" syntax to fts5. (check-in: 00466710 user: dan tags: fts5)
2014-07-03
20:39
Add support for NEAR expressions to fts5. (check-in: 250ae8d4 user: dan tags: fts5)
12:18
Change fts3/4 so that the "unicode61" is included in builds by default. It may now be excluded by defining SQLITE_DISABLE_FTS3_UNICODE. (check-in: 0cc0230a user: dan tags: trunk)
2014-07-02
20:18
Add support for phrase queries to fts5. (check-in: 2e5652e6 user: dan tags: fts5)
2014-07-01
20:45
Change the position list format so that its size in bytes is stored at the start of the list itself. (check-in: 62f2ff20 user: dan tags: fts5)
15:22
Add another test to verify that SQLite is using stat4 data for composite primary keys on WITHOUT ROWID tables. (check-in: 0df1fe72 user: dan tags: trunk)
11:54
Ensure that all fields are loaded from the stat4 table for records that correspond to indexes on WITHOUT ROWID tables with composite primary keys. (check-in: 21981e35 user: dan tags: trunk)
2014-06-30
20:25
Merge the latest trunk changes into the threads branch. (check-in: ae23a65e user: drh tags: threads)
20:02
Merge the latest trunk enhancements into the sessions branch. (check-in: a5d94eab user: drh tags: sessions)
19:57
Merge the latest trunk changes into the apple-osx branch. (check-in: f426876f user: drh tags: apple-osx)
19:28
Bump the version number to 3.8.6. (check-in: f925e9ba user: drh tags: trunk)
19:07
Attempt to use STAT4 information to estimate the selectivity of WHERE clause terms when using the skip-scan optimization. (check-in: d09ca6d5 user: drh tags: trunk)
18:57
Fix for ticket [b2fa5424e6fcb15]: Better define the format of the sqlite_stat4 file for WITHOUT ROWID tables and make sure the ANALYZE command generates a file in the appropriate format. Use the sqlite_stat4 data to enable the use of WHERE terms that cover all indexed columns plus some prefix of columns in the primary key. (check-in: bc2de809 user: drh tags: trunk)
18:02
Fix a problem in where.c with using the stat4 sample data of an index on a WITHOUT ROWID table. (Closed-Leaf check-in: 053a210e user: dan tags: stat4-without-rowid)
17:07
Fix the STAT4 information for WITHOUT ROWID tables. (check-in: 5d8628fd user: drh tags: stat4-without-rowid)
15:23
Fix where.c so that the primary key values appended to every index entry on a WITHOUT ROWID table may be used when useful. (check-in: 6624a61d user: dan tags: stat4-without-rowid)
13:56
Omit non-primary-key columns from the STAT4 samples for WITHOUT ROWID tables. Indexes, both rowid and without-rowid, still hold an exact copy of the index entry. (check-in: de826c31 user: drh tags: stat4-without-rowid)
13:32
Generate complete samples for sqlite_stat4 on WITHOUT ROWID tables. Ticket [b2fa5424e6fcb15b5] (check-in: 8cb43edd user: drh tags: stat4-without-rowid)
11:14
Add makefile targets for various diagnostic tools, such as showstat4. Fix harmless compiler warnings in diagnostic tools. (check-in: 6f86d89b user: drh tags: trunk)
2014-06-28
19:06
Add an OOM fault injection test for the new code on this branch. (Closed-Leaf check-in: c96de490 user: dan tags: stat4-skipscan)
17:35
Add further tests to skipscan5.test. (check-in: 4b8230e8 user: dan tags: stat4-skipscan)
16:06
Add header comments on new routines. Rework the sqlite3Stat4Column() routine so that is (in theory) able to deal with corrupt samples. (check-in: ef5cdf94 user: drh tags: stat4-skipscan)
15:26
Fix a problem with using stat4 samples of type text when estimating the rows visited by a range-query/skip-scan loop. (check-in: dfb09db6 user: dan tags: stat4-skipscan)
14:28
Change the VDBE to export the sqlite3MemCompare() routine and thus free where.c from the dependency on vdbeInt.h. (check-in: d186d1ac user: drh tags: stat4-skipscan)
14:25
Merge fixes from trunk with this branch. (check-in: 6af219d1 user: dan tags: stat4-skipscan)
2014-06-27
20:14
Fix a couple of problems in estimating the number of rows visited by a range query that uses a skip-scan. (check-in: 219736f5 user: dan tags: stat4-skipscan)
2014-06-26
22:17
Add some more IN operator tests. (check-in: fb32e374 user: mistachkin tags: trunk)
21:32
Fix compilation issue when STAT4 is not enabled. (check-in: 74a5454a user: mistachkin tags: stat4-skipscan)
21:28
Revise the affinity returned for expressions flagged as 'generic'. Fix for [9a8b09f8e6]. (check-in: 92f7ad43 user: mistachkin tags: trunk)
20:21
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. (check-in: 01dc8102 user: dan tags: stat4-skipscan)
12:31
Fix minor problems in term matching. (check-in: 94eeb077 user: dan tags: fts5)
2014-06-25
20:28
Begin adding query support to fts5. (check-in: 47a9f3cc user: dan tags: fts5)
2014-06-24
20:19
Fix showstat4.c so that it decodes typecodes 8 and 9 correctly. (check-in: 9ca737c0 user: drh tags: trunk)
16:59
Add simple full-table-scan and rowid lookup support to fts5. (check-in: 3515da85 user: dan tags: fts5)
00:59
Add the showstat4.exe utility program for decoding and displaying the content of the sqlite_stat4 table in a database. (check-in: b4d9f605 user: drh tags: trunk)
2014-06-23
23:28
Add the .fullschema command to the sqlite3.exe utility. This command shows the schema and the content of the sqlite_stat tables, all in one go. Useful when reporting problems with the query planner. (check-in: ebec4892 user: drh tags: trunk)
11:33
Add some code for an experimental fts5 module. Does not work yet. (check-in: 1e0648dc user: dan tags: fts5)
10:18
Fix a problem with SQLITE_OMIT_WSD builds. (check-in: 07dda49c user: dan tags: trunk)
10:04
Fix a problem with SQLITE_OMIT_WAL builds. (check-in: 612b6d1b user: dan tags: trunk)
2014-06-20
13:55
Improved display of record data in the "NNNbd" output of the showdb.exe utility program. (check-in: f735c249 user: drh tags: trunk)
01:32
In the showdb.exe utility, for the "NNNbd" command, also show data fields in addition to header fields on each record decoded. Improvements to formatting. (check-in: b451fe0c user: drh tags: trunk)
2014-06-19
23:38
Add the ability to decode the headers of individual cells, byte-by-byte, in the "showdb.exe" utility. (check-in: 306b461d user: drh tags: trunk)
2014-06-18
18:10
Add the "LogEst" and "LogEst.exe" target to the makefiles. (check-in: 7b91b058 user: drh tags: trunk)
15:24
Fix a comment on the sqlite3Utf8Read() routine. No changes to code. (check-in: 5e514f6a user: drh tags: trunk)
15:18
Merge in all recent changes from trunk, and especially the automatic index enhancements. (check-in: 0e1b7349 user: drh tags: threads)
15:11
Prevent an automatic index from taking the place of a declared index. (check-in: 0a52bddd user: drh tags: trunk)
2014-06-17
20:16
Prevent an automatic index from taking the place of a declared index. (Closed-Leaf check-in: 4ece839d user: drh tags: autoindex-improvements)
17:00
Fix a missing space in a "wheretrace" comment. No changes to production code. (check-in: b500f2a0 user: drh tags: trunk)
16:11
Add the likely() function for symmetry with unlikely(). The likely(X) function means the same thing as likelihood(X,0.9375). (check-in: 38965484 user: drh tags: trunk)
15:53
Improvements to query planning, especially in regards to estimating the cost and benefit of automatic indexes. (check-in: 1272fb89 user: drh tags: trunk)
15:13
Small tweaks to the query planner to get it to try harder to use an index for sorting and to avoid using automatic indexes on constant terms. (Leaf check-in: 2d9de154 user: drh tags: branch-3.8.3)
13:23
Add the autoindex2.test testing module. (check-in: ffe3fea4 user: drh tags: autoindex-improvements)
12:33
A different approach to the autoindex problem that deletes query-planner code rather than adding it. (check-in: f270fb6e user: drh tags: autoindex-improvements)
09:52
Simplification to the logic that prevents automatic indexes from being formed on constant expressions. (check-in: 36d67e1d user: drh tags: autoindex-improvements)
09:00
Allow an automatic index on a WHERE constraint where the RHS is does not reference another table as long as the RHS is not a constant. (check-in: 58acc2a8 user: drh tags: autoindex-improvements)
02:46
Do not attempt to create an automatic index on a constant constraint, as doing so is pointless. (check-in: d6883e96 user: drh tags: autoindex-improvements)
2014-06-16
22:45
Fix CSV import issue, reported via the mailing list, in the shell when the file to be imported ends with an empty line. (check-in: fc918f7d user: mistachkin tags: trunk)
21:30
In the "wheretrace" logic (disabled for normal builds) expand the print width of the flags field to be wide enough for all 17 bits. (check-in: 3181d206 user: drh tags: trunk)
18:35
Add the SQLITE_UNLINK_AFTER_CLOSE compile-time option. If enabled, the unlink of temporary files on unix is deferred until after the file is closed. (check-in: e43a2f92 user: drh tags: trunk)
18:17
Add an application ID for MBTiles tilesets. (check-in: 837f6404 user: drh tags: trunk)
16:41
Back out the unix VFS changes that seeks to avoid fstat() calls after an unlink(). That change did not clear the problem on FuseFS. (check-in: 0617e20a user: drh tags: trunk)
15:01
Add the ".eqp" dot-command to the ".help" output in the command-line shell. This was accidently omitted when the ".eqp" command was originally implemented for SQLite 3.8.4 (check-in [e6ecf7337658624]). (check-in: b0b4c776 user: drh tags: trunk)
12:51
Fix the extension01.test script so that it works on windows. Fix a harmless compiler warning in the fileio extension. (check-in: baf95a19 user: drh tags: trunk)
12:44
Add test cases for the fileio extension. (check-in: 86343331 user: drh tags: trunk)
2014-06-13
13:43
Add the fileio.c loadable extension, that implements readfile() and writefile() SQL functions. (check-in: 0ca104d8 user: drh tags: trunk)
13:08
Add an extension that implements compress() and uncompress() SQL functions. (check-in: d5c17d1a user: drh tags: trunk)
2014-06-12
17:10
Increase the WAL-mode SQLITE_PROTOCOL timeout to 10 seconds. (check-in: 2aeacf81 user: drh tags: trunk)
15:46
Simplify the estLog() routine. (check-in: 6c68d758 user: drh tags: trunk)
2014-06-10
20:18
Proposed change to the fix for ticket [1c69be2dafc28b] such that legacy applications that were exploiting the older buggy behavior in SQLite continue to work. (Leaf check-in: 401a0ca3 user: drh tags: group-by-name-resolution)
2014-06-09
20:39
Avoid an unnecessary initialization of the szFile field of unixFile in the unix VFS. (check-in: 6484fb5a user: drh tags: trunk)
20:24
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. (check-in: 10707d35 user: drh tags: trunk)
20:06
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. (Closed-Leaf check-in: c41df393 user: drh tags: omit-fstat-after-unlink)
13:11
Modify the %nonassoc directive in lemon so that it generates a run-time error rather than a parsing conflict. This changes is due to a bug report on the mailing list. SQLite does not use the %nonassoc directive in its grammar so this change does not affect SQLite. (check-in: 1925f3a0 user: drh tags: trunk)
2014-06-06
20:49
Add a test case to ensure that estLog() works for negative numbers. (check-in: 813469d9 user: drh tags: trunk)
20:20
Make sure the estLog() routine in the query planner handles negative values correctly (always returning 1). Prior to this change, estLog(-1) would return a large number which could throw off the cost computations in the query planner in obscure circumstances. (check-in: 75437bee user: drh tags: trunk)
17:09
Fix an obsolete comment on the whereRangeScanEst() routine. No changes to code. (check-in: b16bf851 user: drh tags: trunk)
2014-06-05
13:22
Bring the threads branch up-to-date with the 3.8.5 release. (check-in: e4b01676 user: drh tags: threads)
12:53
Merge in the 3.8.5 release changes and the FTS integrity-check fix. (check-in: 2dbdfa51 user: drh tags: apple-osx)
11:15
Fix a problem that was causing the FTS4 integrity-check command to fail if the table had one or more "notindexed" columns. (check-in: 7123bb26 user: dan tags: trunk)
2014-06-04
14:06
Version 3.8.5 (check-in: b1ed4f2a user: drh tags: trunk, release, version-3.8.5)
2014-06-03
20:09
Merge the 3.8.5 release candidate changes into the sessions branch. (check-in: 09e75d82 user: drh tags: sessions)
14:42
Avoid closing a pseudo-table associated with sorting in a co-routine since that pseudo-table might be used again in an outer loop. (check-in: 6d818052 user: drh tags: trunk)
11:32
Add a test to double-check that [1cbe7a0883] did not affect anything. (check-in: c6b512a7 user: dan tags: trunk)
2014-06-02
21:00
Remove the WHERE_LIKELIHOOD bit, as it does not seem to effect any result. (check-in: 1cbe7a08 user: drh tags: trunk)
18:24
Fix a typo in a requirements mark comment in a test script. No changes to code. (check-in: 75ff459b user: drh tags: trunk)
11:26
Fix the query planner so that it once again knows that queries without a FROM clause will never return more than one row and hence do not require sorting. (check-in: 9f18b303 user: drh tags: trunk)
09:39
Add the "valgrind-nolookaside" permutation to permutations.test. (check-in: 8e8472d9 user: dan tags: trunk)
2014-05-31
15:43
Fix a harmless "scan-build" compiler warning in the command-line shell. (check-in: 39fafe0a user: drh tags: trunk)
15:39
Fix a compile of harmless static analyzer warnings. (check-in: 7e287f20 user: drh tags: trunk)
2014-05-30
21:01
Revise locking retry semantics in Win32 VFS to abort early if the file handle is reported as invalid. (check-in: a4df4a5b user: mistachkin tags: trunk)
16:54
Add extra checking of the database extended error code. (Closed-Leaf check-in: f2906c44 user: mistachkin tags: winLockHandle)
16:42
Add tests for the invalid file handle detection logic in the winLock() function. (check-in: ed5a9eb4 user: mistachkin tags: winLockHandle)
2014-05-29
20:39
Fix a harmless compiler warning in the command-line shell code. (check-in: a80527f6 user: drh tags: trunk)
20:36
Merge trunk changes into the apple-osx branch. (check-in: b9fad449 user: drh tags: apple-osx)
20:29
Merge trunk changes into the sessions branch. (check-in: 9f18e78f user: drh tags: sessions)
20:24
Merge changes from the trunk into the threads branch. (check-in: 416cb091 user: drh tags: threads)
20:17
Fix to the EXPLAIN indentation logic in the command-line shell. (check-in: 8f916ed1 user: drh tags: trunk)
12:36
Improvements to error messages for errors in the dot-commands of the command-line shell. Add the ".once" command. The output of ".help" now goes to the designated output channel. (check-in: 48dce821 user: drh tags: trunk)
03:17
Only quote the arguments to the ".shell" and ".system" commands if they contain spaces. (check-in: e58f4bd3 user: drh tags: trunk)
2014-05-28
20:22
Add the ".shell" and the ".system" commands (aliases for the same thing) to the command-line shell. (check-in: d018a34a user: drh tags: trunk)
10:00
Add an extra test to verify that the FTS notindexed option is working. (check-in: c461c0fe user: dan tags: trunk)
03:27
Revise locking retry semantics in Win32 VFS to abort early if the file handle is reported as invalid. (check-in: d43e2e59 user: mistachkin tags: winLockHandle)
03:23
Revise how OSTRACE reports logically boolean results in the Win32 VFS. (check-in: c405f971 user: mistachkin tags: trunk)
2014-05-27
20:19
Remove an incorrect assert() in the sorter. (check-in: b8b66103 user: drh tags: trunk)
19:18
Fix harmless compiler warnings. (check-in: 20b75460 user: drh tags: trunk)
18:18
Change the name of the Index.autoIndex field to Index.idxType and provide symbolic names for the various values of that field rather than using magic numbers. (check-in: d16e575d user: drh tags: trunk)
17:57
Avoid unnecessary cursor opens and seeks when running the OR-optimization on a WITHOUT ROWID table. (check-in: 9c785c58 user: drh tags: trunk)
16:41
Improved comments on the OR-optimization logic in the query planner. (check-in: 77fef5a3 user: drh tags: trunk)
15:21
Remove unused code (previously #ifdef-ed out) from btree.c. (check-in: 8bc97371 user: drh tags: trunk)
11:54
Fix a harmless compiler warning in the FTS4 logic. (check-in: 64a869ad user: drh tags: trunk)
11:42
Add a test to whereI.test that uses a multi-column PK. (check-in: aa183e60 user: dan tags: trunk)
10:57
Fix for (unsupported) SQLITE_USE_FCNTL_TRACE code. (check-in: 994b2b7a user: drh tags: trunk)
2014-05-26
22:05
Add the OR-optimization to WITHOUT ROWID tables. (check-in: 06a23b8b user: drh tags: trunk)
22:01
Minor enhancements to comments and clarification of the code. (Closed-Leaf check-in: cbec30d0 user: drh tags: without-rowid-or-opt)
20:25
Add a missing VdbeCoverage() macro on an OP_Found opcode added in the previous check-in. (check-in: b4980a07 user: drh tags: without-rowid-or-opt)
20:15
Merge recent trunk changes into the threads branch. (check-in: 82152027 user: drh tags: threads)
20:08
Merge recent trunk changes into the apple-osx branch. (check-in: 54b5fa77 user: drh tags: apple-osx)
20:06
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. (check-in: 2c7e277b user: dan tags: without-rowid-or-opt)
20:00
Merge recent trunk changes into the sessions branch. (check-in: a769c7e0 user: drh tags: sessions)
18:27
Fix a problem in the shell when importing CSV files. If the leftmost field of the first row in the CSV file was both zero bytes in size and unquoted, no data was imported. (check-in: 856d44a2 user: dan tags: trunk)
16:40
Fix a problem in FTS4 where columns with names that are prefixes of any notindexed column were also being (incorrectly) marked as not indexed. For example in "CREATE ... t1(abc, bc, abcd, notindexed=abcd)", both abc and abcd were being treated as notindexed. (check-in: d90c4964 user: dan tags: trunk)
2014-05-24
17:15
Remove references in comments to VDBE opcodes that no longer exist. This is a documentation change only; no changes to code. (check-in: ebfb51fe user: drh tags: trunk)
2014-05-23
17:17
Changes to the output of EXPLAIN QUERY PLAN to make it clearer when a query uses the PRIMARY KEY index of a WITHOUT ROWID table. (check-in: 9268df30 user: dan tags: trunk)
12:03
In the command-line shell, if three or more interrupt signals (control-c) are received in a row without a response from sqlite3_interrupt() then call exit(1) immediately. This allows control-C to interrupt the shell even if it is stuck in a computation or loop that does not involve the VDBE. (check-in: b5cde571 user: drh tags: trunk)
11:48
Make sure sufficient VDBE registers are allocated for an INSERT...SELECT when there is an idlist on the insert table that includes an explicit rowid. Ticket [e9654505cfda93610585fde5a9bbf2e730c8a8d5] (check-in: 9a2dd187 user: drh tags: trunk)
2014-05-22
09:58
Add a test for the EQP output of a skip-scan query that uses the PK index of a WITHOUT ROWID table. (check-in: 10238fad user: dan tags: trunk)
2014-05-21
08:48
Do not burn memory remembering CHECK constraints in a read-only database. (check-in: 34ddf02d user: drh tags: trunk)
08:21
Fix the sqlite3_db_readonly() API so that it reports true if the database is readonly because the file format write version (byte 18 of the header) is too large. (check-in: 8d8af114 user: drh tags: trunk)
2014-05-20
19:11
Improvements to the testability of the threads.c module. (check-in: 386e0888 user: drh tags: threads)
11:03
In vdbesort.c, change the names of PmaReader variables "pIter" to "pReadr". Other related comment changes. The generated object code should be the same. (check-in: 99efb235 user: drh tags: threads)
00:27
Merge all recent trunk changes into the apple-osx branch. (check-in: 23722be4 user: drh tags: apple-osx)
00:20
Merge recent trunk changes into the sessions branch. (check-in: 2d33afe0 user: drh tags: sessions)
2014-05-19
23:17
Merge recent changes from trunk. (check-in: 6eefdad9 user: drh tags: threads)
19:26
Fix harmless compiler warnings in MSVC. (Leaf check-in: aa7e2041 user: drh tags: safer-malloc)
15:16
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. (check-in: 17349a49 user: drh tags: safer-malloc)
2014-05-17
16:56
Internally, use a 64-bit integers for segment level numbers. (check-in: 8180e320 user: dan tags: trunk)
15:10
Fix a broken test case in fts4growth2.test. (check-in: 9fde5b96 user: dan tags: trunk)
2014-05-16
23:38
Fix harmless compiler warnings. (Closed-Leaf check-in: 7e60347e user: mistachkin tags: ftsWarnings)
23:15
Work around compilation issue with MSVC. (check-in: 9623a29c user: mistachkin tags: trunk)
20:24
Rearrange some conditionals and add #if statements to make the code more testable. (check-in: 17afd770 user: drh tags: threads)
17:31
Add a pair of sqlite3FaultSim(100) calls to vdbesort.c to facilitate testing of obscure and hard to reach error conditions. (check-in: cceac14f user: drh tags: threads)
16:16
Fixes to prevent an FTS index from growing indefinitely as the corresponding table is updated. Change the FTS 'automerge' option to allow the user to specify the number of segments that should be merged simultaneously by auto-merges. (check-in: a75f1800 user: dan tags: trunk)
15:48
Add extra test to backcompat.test to ensure that old and new versions of FTS may work together on the same incremental merge operation. (Closed-Leaf check-in: 3997d47b user: dan tags: fts4-experimental)
14:27
Merge all recent changes from trunk, and especially the new sqlite3FaultSim() interface. (check-in: 43fcbd91 user: drh tags: threads)
14:17
Repurpose the SQLITE_TESTCTRL_FAULT_INSTALL test-control to register a callback to be invoked by sqlite3FaultSim(). That test-control has been unused since 2008-06-20 and was never used in any official release. (check-in: 0d43a7ad user: drh tags: trunk)
12:18
Use #ifdef logic to avoid an always-true branch when SQLITE_MAX_WORKER_THREADS=0 (check-in: 88cfe6d7 user: drh tags: threads)
10:30
Fix a bug causing an incorrect segment size value to be stored if both an old and new FTS version performed work on the same incremental merge operation. (check-in: a9a2aeab user: dan tags: fts4-experimental)
2014-05-15
19:05
Merge latest trunk changes with this branch. (check-in: 5809986f user: dan tags: fts4-experimental)
18:36
Fix a problem with the handling of delete markers by automerge on large databases. (check-in: 2b09bd17 user: dan tags: fts4-experimental)
16:56
Use #ifdef to omit code that is not used when SQLITE_MAX_WORKER_THREADS is zero. (check-in: 2e8d287d user: drh tags: threads)
2014-05-14
19:49
Do not search for promotable segments following an FTS 'optimize' operation or creation of a new segment on the oldest existing level. (check-in: 34f6b4b8 user: dan tags: fts4-experimental)
18:45
Fix a problem to do with loading the value of the FTS automerge setting from the database. (check-in: 7268119f user: dan tags: fts4-experimental)
15:58
Fix various problems to do with segment promotion. Add test file fts4growth2.test, containing tests to check that the FTS index does not grow indefinitely as the table is updated. Allow the user to configure the number of segments merged simultaneously by the automerge option. (check-in: 21491a9b user: dan tags: fts4-experimental)
2014-05-13
20:11
Fix a problem preventing delete markers from ever being removed from the FTS index. (check-in: 7f47ae5c user: dan tags: fts4-experimental)
2014-05-12
22:36
Improve a comment in the MSVC makefile. No changes to code. (check-in: 0901dcce user: mistachkin tags: trunk)
21:12
Add VSIX packaging support for Windows Phone 8.1 using Visual Studio 2013 Update 2. (check-in: 013738f3 user: mistachkin tags: trunk)
20:04
Experimental code to prevent FTS indexes from growing indefinitely as the table is updated. (check-in: b3b505a4 user: dan tags: fts4-experimental)
15:37
In mutex_w32.c, make inclusion of the Windows header file dependent on SQLITE_OS_WIN, not SQLITE_MUTEX_W32. (check-in: 93ffbcc0 user: mistachkin tags: trunk)
15:30
In the sorter, only use large memory allocations if scratch memory has not been configured. Add #ifdefs to disable unused code when SQLITE_MAX_WORKER_THREADS is zero. Other sorter changes in support of testability. (check-in: d7e2b0d9 user: drh tags: threads)
2014-05-10
17:33
Merge updates from trunk. Emit the AppliesTo and DependsOn SDK manifest attributes when building the VSIX for Windows Phone 8.1. (Closed-Leaf check-in: f6237a5f user: mistachkin tags: vsixWinPhone81)
17:28
When using Visual Studio 2013, add the appropriate MaxPlatformVersion attribute to the VSIX SDK manifest. (check-in: 0a4f5967 user: mistachkin tags: trunk)
2014-05-09
23:31
Further MSVC makefile changes to support Windows Phone 8.1. (check-in: a9c81815 user: mistachkin tags: vsixWinPhone81)
20:54
Merge updates from trunk. (check-in: f4fea7bb user: mistachkin tags: vsixWinPhone81)
20:51
When cross-compiling with the MSVC makefile, make sure the correct library path is used. Also, keep track of the required compilation options separately. (check-in: c3dce2e7 user: mistachkin tags: trunk)
17:17
Merge recent trunk changes into the orderby-planning branch. (Leaf check-in: 8d8609d6 user: drh tags: orderby-planning)
15:00
Merge the latest trunk changes into the threads branch. (check-in: 9ac8f1e7 user: dan tags: threads)
14:56
Fix a misplaced #endif and a C99-ism in the unix VFS. (check-in: c8d384d1 user: drh tags: apple-osx)
13:27
Fix compiler warnings. When forcing the delete of a WAL file, do not fail if the WAL files does not exist. All "veryquick.tcl" tests are now passing on Linux under the standard compile-time options. (check-in: eafd8aa1 user: drh tags: apple-osx)
12:18
Fix an incorrect check for API misuse. (check-in: 856400dc user: drh tags: apple-osx)
11:45
Bring the PRAGMA logic into closer alignment with trunk, and in the process fix a couple of crashes. (check-in: d66fe706 user: drh tags: apple-osx)
11:15
Add new static mutex SQLITE_MUTEX_STATIC_APP3. (check-in: ee0ab09c user: dan tags: threads)
00:36
Fix several harmless compiler warnings. (Closed-Leaf check-in: 360c0fd1 user: mistachkin tags: winPreCache)
2014-05-08
23:01
Initial attempt to merge in all trunk changes over the previous 1.5 years. This check-in compiles but there are compiler warnings and "make test" segfaults after only running a few test modules. (check-in: 9411d7dc user: drh tags: apple-osx)
22:15
Fix typos in logging code. (check-in: dc7f84df user: mistachkin tags: winPreCache)
22:08
Fix a memory leak of the temporary read buffer. (check-in: 37e60d21 user: mistachkin tags: winPreCache)
22:05
Update comments and only include the thread routine when required. (check-in: a60c545f user: mistachkin tags: winPreCache)
22:01
Experimental changes to pre-cache a database file prior to it being fully opened. (check-in: 38cbcedb user: mistachkin tags: winPreCache)
22:01
Fix static variable declaration issue on Windows. (check-in: a41d2969 user: mistachkin tags: threads)
2014-05-07
21:16
Include sqlite3rtree.h in the tsrc/ pile of source files during target_source in the main.mk makefile. (check-in: 116bed5a user: drh tags: trunk)
20:33
Remove a superfluous variable initialization. (check-in: 68766f83 user: drh tags: trunk)
20:24
A better fix for the group_concat() problem. (check-in: 1c086dee user: drh tags: trunk)
19:59
Fix the way parenthesis in MATCH expressions are handled by FTS if the tokenizer considers them to be token characters. (check-in: e21bf7a2 user: dan tags: trunk)
18:23
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]. (check-in: d01cedaa user: drh tags: trunk)
18:21
Ensure that the sqlite3StrAccumAppend() routine is never called with a NULL second argument. Doing so is harmless when N==0, but it causes an assert() to fail that was placed to quiet static analyzers. (Closed-Leaf check-in: f03fbf37 user: drh tags: tkt-55746f9e)
17:19
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]. (check-in: 0deac873 user: drh tags: tkt-55746f9e)
15:46
Add the SQLITE_IOCAP_IMMUTABLE bit as a possible return value from the xDeviceCharacteristics method in the VFS. Add the "nolock" and "immutable" query parameters to URI filenames. (check-in: 1a0d7d3d user: drh tags: trunk)
15:32
Fix nolock and immutable so that they work even if READONLY is requested. (Closed-Leaf check-in: e193aced user: drh tags: win32-none)
15:09
Add test cases and documentation for the nolock and immutable query parameters. (check-in: 19d56cba user: drh tags: win32-none)
2014-05-06
21:37
Merge updates from trunk. (check-in: 69698ae9 user: mistachkin tags: vsixWinPhone81)
21:37
Update the template VSIX package file as well. (check-in: 99d96765 user: mistachkin tags: trunk)
21:30
Merge updates from trunk. (check-in: 7579c44a user: mistachkin tags: vsixWinPhone81)
21:26
Enhance the VSIX package creation tool to better support Visual Studio 2013. (check-in: c1fb04f6 user: mistachkin tags: trunk)
16:21
Add a little extra variety to the tests in sort4.test. (check-in: 7de6aee6 user: dan tags: threads)
15:38
Re-implement the core of the multi-threaded sorter tests in sort4.test using C. Run each test in sort4.test ten times, or repeat all tests for 300 seconds as part of the "multithread" permutation test. (check-in: 208b2b04 user: dan tags: threads)
15:28
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. (Leaf check-in: 8ad0a123 user: drh tags: smaller-expr)
00:09
Refactor VSIX package creation tool to better support Visual Studio 2013. (check-in: 8be166af user: mistachkin tags: vsixWinPhone81)
2014-05-05
22:50
Merge updates from trunk. (check-in: 668ed76a user: mistachkin tags: vsixWinPhone81)
22:49
Add the "omit_check_constraints" pragma that causes the check constraint expressions to be omitted from the parse tree. (Leaf check-in: f1a4bf01 user: drh tags: reduce-schema-size)
22:43
When building for Windows 8.0 using Visual Studio 2013, make sure the cross-compilation native library path is set correctly. (check-in: c1ab9092 user: mistachkin tags: trunk)
21:08
More modularization work on the MSVC batch build tool. (check-in: 9a06773a user: mistachkin tags: trunk)
20:35
Merge updates from trunk. (check-in: eaa8fc81 user: mistachkin tags: vsixWinPhone81)
20:34
Incorporate the latest trunk changes so that hopefully now this branch will build on beagleboard. (check-in: 2647b17d user: drh tags: reduce-schema-size)
20:32
Create new header file "os_setup.h" used to detect the operating system at compile-time, and "os_win.h" that contains windows-specific header in formation. (check-in: bd92e0f8 user: drh tags: trunk)
20:24
Work on cleaning up the MSVC batch build tool integration with Visual Studio 2013. (check-in: b5a72dfd user: mistachkin tags: trunk)
20:21
Attempt to fix the build on beagleboard. (Closed-Leaf check-in: 3ac75725 user: drh tags: winHdr)
20:03
Add test file sort4.test, containing brute force tests for the multi-theaded sorter. (check-in: 9cc364c4 user: dan tags: threads)
19:57
Try to reduce the amount of memory used to hold the schema when PRAGMA ignore_check_constraints is active. (check-in: 35a9f3f1 user: drh tags: reduce-schema-size)
18:24
Centralize and reform use of the Win32 related include files. (check-in: 857f2baf user: mistachkin tags: winHdr)
17:49
Merge updates from trunk. (check-in: 6f07f20e user: mistachkin tags: vsixWinPhone81)
17:45
Merge updates from trunk. (check-in: a3cfd813 user: mistachkin tags: winHdr)
17:43
Fix several header file comments. No changes to code. (check-in: dd6eb5d1 user: mistachkin tags: winHdr)
15:58
Fix a race condition in the sorter code. (check-in: 2d2edfe5 user: dan tags: threads)
09:08
Add tests so that the "coverage-sorter" test permutation covers all branches in vdbesort.c. Fix a few minor problems in the same file. (check-in: bde28b70 user: dan tags: threads)
2014-05-03
20:43
Add an extra fault-injection test to sortfault.test. Remove an unreachable branch from vdbesort.c. (check-in: a33a366b user: dan tags: threads)
19:33
Fix a race condition in the sorter. (check-in: 32ccf3ae user: dan tags: threads)
14:28
Fix a problem in the sorter causing it to return spurious SQLITE_NOMEM errors when configured to use memsys3 or memsys5. (check-in: 3a66c4e1 user: dan tags: threads)
13:53
Get SQLITE_MUTEX_STATIC_APP1 and _APP2 working for the debugMutex implementation. (check-in: f49ba1c9 user: drh tags: threads)
12:00
Add two new static mutexes, SQLITE_MUTEX_STATIC_APP1 and _APP2, for use by the application program. First intended use is in test programs for the memory allocation logic where one does not want to allocating a _FAST or _RECURSIVE mutex since that would involve using the memory allocation system under test. (check-in: 13686035 user: drh tags: threads)
11:22
Add the SQLITE_DEFAULT_WORKER_THREADS compile-time option. Fix a NULL-pointer dereference that can occur following OOM. (check-in: e0dea89b user: drh tags: threads)
2014-05-02
22:39
Enhance the Win32 VFS I/O retry logic. (check-in: 47605043 user: mistachkin tags: trunk)
21:42
Merge updates from trunk. (Closed-Leaf check-in: 598a3875 user: mistachkin tags: winIoRetry)
21:38
Merge updates from trunk. (check-in: c4d1d8a0 user: mistachkin tags: winHdr)
19:12
Fix typo in Windows makefile. Make sure the WaitForSingleObjectEx system call is always available. (check-in: d7ed529f user: mistachkin tags: threads)
18:46
Do not run the vdbeRecordCompareDebug() assert if pKeyInfo->db is NULL since in that case there would be no way to check for a memory allocation failure. (check-in: 63ed2d6a user: drh tags: threads)
18:05
Merge orderby-planning with this branch. (check-in: d9549de3 user: dan tags: threads)
17:33
Simplify assert() statements used to verify correct operation of record comparison routines. (check-in: 3300d62d user: drh tags: orderby-planning)
17:12
Fix some broken asserts in btree.c and vdbeaux.c that may fail following an OOM error. (check-in: e15f4706 user: dan tags: threads)
16:22
Failure to extend a temp file for use with mmap() in vdbesort.c is benign. (check-in: d4d39638 user: drh tags: orderby-planning)
16:03
Remove a faulty assert() from vdbesort.c. (check-in: d95d68aa user: dan tags: threads)
15:25
Fix a faulty assert() statement. (check-in: 9196ce40 user: drh tags: orderby-planning)
14:54
Fix a broken test case in fuzz.test. (check-in: faa46935 user: dan tags: trunk)
13:09
Merge latest trunk enhancements and fixes into the orderby-planning branch. (check-in: 84862d3a user: drh tags: orderby-planning)
00:09
Add a comment explaining why WhereLoop cost adjustments are omitted for skip-scan loops. (check-in: 3bc43594 user: drh tags: trunk)
2014-05-01
20:26
Fix an obscure problem to do with temp register allocation that could occur if more than one simple SELECT within a compound SELECT uses a partial sort. (check-in: 427409ae user: dan tags: trunk)
20:24
Add #ifdefs for test coverage. Add a testcase(). (check-in: be2702ce user: drh tags: trunk)
10:19
Update a test case in wal2.test that explicitly corrupts a checksum in the wal file to account for the fact that the first byte of said checksum may initially be 0xFF. (check-in: 2b935bde user: dan tags: trunk)
01:49
Take out the special handling of nolock=true in os_win.c and add it to pager.c, so that it works for all VFSes. Add the pPager->noLock boolean for clarity. (check-in: 725c1c14 user: drh tags: win32-none)
01:20
Avoid unnecessary xUnlock operations on temp file. (check-in: 1829c38c user: drh tags: win32-none)
01:13
Add the immutable=TRUE query parameter and SQLITE_IOCAP_IMMUTABLE, either of which prevents locking of the database and omits tests for existance of journal files. (check-in: 71f152c8 user: drh tags: win32-none)
2014-04-30
20:32
Merge in all recent changes and enhancements from trunk. (check-in: 84243f84 user: drh tags: win32-none)
18:11
Fix a problem in calculating the costs of "OR" scans. (check-in: 9bbca48b user: dan tags: trunk)
15:22
Modify the way the costs of various query plans are estimated. If the user supplies a likelihood() value (or equivalent) on an indexed WHERE constraint, use it to estimate the number of index rows visited. (check-in: 90e36676 user: dan tags: trunk)
15:00
Add text to the header comment of whereLoopAddBtree() describing how the costs of various b-tree loops are estimated. (Closed-Leaf check-in: 05e6e16c user: dan tags: experimental-costs)
14:53
Update a couple of test cases to account for the fact that this branch prefers an index scan and partial sort over a full-table scan and full external sort. (check-in: 9b975bf3 user: dan tags: experimental-costs)
14:47
Fix a couple of out-of-date comments in where.c. (check-in: eefeda32 user: dan tags: experimental-costs)
14:22
Improved rendering of LogEst values corresponding to real values near 0.0 in the tool/logest.c utility program. (check-in: 32910c8c user: drh tags: experimental-costs)
13:19
Fix long-standing typos in comments. (check-in: b9f91317 user: drh tags: experimental-costs)
2014-04-29
19:01
Test that the default values used when sqlite_stat1 data is not available are calculated correctly. Fixes for the same. (check-in: e2d42f90 user: dan tags: experimental-costs)
16:46
Merge trunk changes into this branch. (check-in: d74299f0 user: dan tags: experimental-costs)
16:10
Ignore likelihood() values on indexed IPK lookups. (check-in: 5bb7757a user: dan tags: experimental-costs)
12:01
Fix a test case so that it updates sqlite_stat1 consistently. (check-in: 2dc5a0b5 user: dan tags: experimental-costs)
2014-04-28
20:11
Do not reduce the number of rows scanned at all for "IS NOT NULL" constraints. Fix a bug in calculating the number of rows visited by scans of partial indicies. (check-in: a8ae93f0 user: dan tags: experimental-costs)
19:34
The trunk assumes that an open range constraint on an indexed term (col>?) term matches 1/4 of the indexed rows, and that a closed constraint (col BETWEEN ? AND ?) matches 1/64. Change this branch to do the same. (check-in: 4047ac75 user: dan tags: experimental-costs)
18:02
Merge all recent trunk enhancements and fixes into the sessions branch. (check-in: e158812c user: drh tags: sessions)
17:56
Add the sqlite3_rtree_query_callback() API to the RTree virtual table. (Cherrypick from the sessions branch.) (check-in: af2cbe64 user: drh tags: trunk)
17:51
Add the sqlite3_rtree_query_callback() API to the RTree virtual table. (check-in: 3dca2809 user: drh tags: sessions)
15:11
Update unordered.test to take into account for the fact that SQLite now prefers a full-table scan over a non-covering index scan that visits a large percentage of the table rows. (check-in: 20f468df user: dan tags: experimental-costs)
12:08
Add an extra column to a table in analyze9.test to give the planner a little more reason to select an index. (check-in: 1b95544f user: dan tags: experimental-costs)
10:00
Update test script analyze3.test to account for the fact that SQLite now prefers a full-table scan over a non-covering index scan that visits a large percentage of the table rows. (check-in: 35f46a55 user: dan tags: experimental-costs)
09:35
Modify internal function whereLoopAdjustCost() so that it does not prefer a skip-scan over a regular index scan even if the regular scan uses a subset of the WHERE terms used by the skip-scan. (check-in: 88a5758d user: dan tags: experimental-costs)
08:49
Fix an error in estimating of the number of rows visited by a range scan. (check-in: d491de62 user: dan tags: experimental-costs)
2014-04-26
20:21
Fix an sqlite3_stmt_status() problem caused by recent changs on this branch. (check-in: dee20409 user: dan tags: experimental-costs)
19:23
Update requirements marks to fix typos in the requirements text. No changes to code. (check-in: f5a26365 user: drh tags: trunk)
17:52
Allow the xfer optimization to proceed if the DEFAULT on the very first column of the two tables is different. This is a refinement of the fix for ticket [f67b41381a]. (check-in: 349f4834 user: drh tags: trunk)
14:07
Avoid transfering records between tables unless the default values for all columns are the same. Fix for [f67b41381a]. (check-in: f8c4c495 user: dan tags: trunk)
2014-04-25
20:22
If the user provides likelihood() data for a WHERE clause term used as part of an index key, have the planner use it when calculating the expected number of rows visited by the loop. (check-in: c51efaa5 user: dan tags: experimental-costs)
17:37
Add test cases to ensure correct operation of joins with a virtual table that include DISTINCT and ORDER BY clauses. Verification for ticket [388d01d4bb8f9]. (check-in: 5ada136f user: drh tags: trunk)
16:29
Enhance the sqlite3_rtree_query_info object to report on the number of elements in the priority queue at each level. (Closed-Leaf check-in: f7dad408 user: drh tags: rtree-enhancements)
15:01
Store values loaded from the stat1 table as logarithmic values in memory. (check-in: 1bd74c49 user: dan tags: experimental-costs)
14:42
Make sure ORDER BY clauses on joins that involve virtual tables and that have a DISTINCT clause work correctly. This is a candidate fix for ticket [388d01d4bb8f9]. Test cases for that ticket will be checked in separately. (check-in: 17113812 user: drh tags: trunk)
12:35
When VDBE_PROFILE is enabled, ignore negative opcode times, which sometimes occur, perhaps due to context swaps. (check-in: 4e88042f user: drh tags: trunk)
2014-04-24
20:04
Changes to the way the planner calculates the costs of various table and index scans. Some test cases still failing. (check-in: c5a6ec0a user: dan tags: experimental-costs)
16:25
Improved header comment on the vdbesort.c module. No changes to code. (check-in: bf09ce24 user: drh tags: orderby-planning)
15:06
Reopen the orderby-planning branch and merge in the latest trunk enhancements and fixes. (check-in: 6077ddcd user: drh tags: orderby-planning)
12:28
Improvements to comments. Store some extra information in SqliteThread that is useful for debugging. (check-in: 9fb5e212 user: drh tags: threads)
2014-04-23
12:57
Merge all recent trunk changes into the threads branch. (check-in: e2c9f71a user: drh tags: threads)
12:00
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. (Closed-Leaf check-in: 2029a396 user: drh tags: five-digit-year)
2014-04-22
19:42
Change from using the win32-none VFS to just a query parameter. (check-in: ffceacf6 user: drh tags: win32-none)
19:34
Add some OSTRACE calls for consistency. (check-in: be292d55 user: mistachkin tags: win32-none)
19:30
Add the win32-none VFS which omits rollback-journal locking. (check-in: 03e3c5a8 user: drh tags: win32-none)
2014-04-21
18:13
Fix the generation of sqlite3_rtree_query_info.iRowid and add test cases to verify that it is fixed. (check-in: eba95ead user: drh tags: rtree-enhancements)
18:00
Preliminary changes to support building VSIX packages for Windows 8.0 and Windows Phone 8.0 using Visual Studio 2013. (check-in: 3bf97c81 user: mistachkin tags: vsixWinPhone81)
15:53
Be sure to initialize the sqlite3_rtree_query_info.iRowid field for the leaves of the R-Tree when doing a query callback search. (check-in: 43946938 user: drh tags: rtree-enhancements)
15:21
Fix an off-by-one error in setting the "iLevel" field of the sqlite3_rtree_query_info structure passed into the RTree query callback. (check-in: d708f159 user: drh tags: rtree-enhancements)
13:36
Comment tweaks on the test case for the [b75a9ca6b0] bug fix. (check-in: 65d2544a user: drh tags: trunk)
13:21
Avoid discarding an ORDER BY clause in the case where an identical GROUP BY clauses uses an index to group, but not sort, the rows. Fix for [b75a9ca6b0]. (check-in: de9a490f user: dan tags: trunk)
2014-04-18
22:20
Clean up the proper-subset cost adjustment logic to make it more compact and easier to read and so that full branch test coverage is more easily obtained. (check-in: 9a5d38c7 user: drh tags: trunk)
13:57
Add to speedtest1.c the --threads option for setting the SQLITE_CONFIG_WORKER_THREADS configuration. (check-in: 5fce40c4 user: drh tags: threads)
13:40
Fix harmless compiler warnings. (check-in: f8f72ecb user: drh tags: threads)
12:38
Merge recent trunk changes into the threads branch. (check-in: 8729aa3e user: drh tags: threads)
01:37
Further improvements to the RTREE_DECODE_COORD() method, to take advantage of known processor byte orders when available. This makes the code 3% faster, according to valgrind. Also add test cases to make sure the on-disk representation is correct. (check-in: 6f3e94f4 user: drh tags: rtree-enhancements)
01:14
Merge the latest changes from sessions. (check-in: d9eef5b0 user: drh tags: rtree-enhancements)
01:10
Merge recent trunk changes into sessions. (check-in: 95e77efe user: drh tags: sessions)
00:49
Add the SQLITE_RUNTIME_BYTEORDER compile-time option to force SQLite to check the processor byte-order at run-time. Add additional compile-time byte order checks for ARM, PPC, and SPARC. (check-in: 2c536387 user: drh tags: trunk)
00:08
Preliminary changes to support building VSIX packages for Windows Phone 8.1. (check-in: a1b2f28b user: mistachkin tags: vsixWinPhone81)
00:06
Add the SQLITE_TESTCTRL_BYTEORDER test control to interrogate SQLite's notion of the processor byte order and whether the byte order is known at compile-time or determined at run-time. (check-in: 9c696196 user: drh tags: trunk)
2014-04-17
23:23
Performance optimization on byte-swapping in R-Tree. (check-in: 444084fd user: drh tags: rtree-enhancements)
15:34
More test cases with very long priority queues. (check-in: 71692aa9 user: drh tags: rtree-enhancements)
14:52
Test cases and bug fixes for the sqlite3_rtree_query_callback() mechanism. (check-in: 1ccaaed6 user: drh tags: rtree-enhancements)
13:15
Refactor the constraint checking logic in RTree. The new-style constraint callbacks created by sqlite3_rtree_query_callback() are now hooked up from end to end, though still untested. (check-in: 32a13870 user: drh tags: rtree-enhancements)
08:57
Fix build problems in vdbesort.c. Add further comments and changes to make things easier to understand. (check-in: 12b190db user: dan tags: threads)
2014-04-16
21:02
Performance optimization on nodeGetCell() in R-Tree. (check-in: 5d20ff9e user: drh tags: rtree-enhancements)
19:04
Clarify the purpose of the nField argument passed to sqlite3VdbeSorterInit(). (check-in: c0c8cff1 user: dan tags: threads)
17:41
Change the name of vdbeIncrInit2 to vdbePmaReaderIncrInit. Add a header comment to the same function. (check-in: 6622d876 user: dan tags: threads)
17:23
Convert the RTree module query mechanism over to using a priority queue for walking the RTree. (check-in: f26936f7 user: drh tags: rtree-enhancements)
17:15
TCL tests now all pass. (Closed-Leaf check-in: f864bacc user: drh tags: rtree-queue)
16:43
Rework the way trees of MergeEngine objects are built in vdbesort.c to make it easier to follow. Fix memory leaks that could follow an OOM or IO error. Add various comments to explain functions in vdbesort.c. (check-in: 69026ec7 user: dan tags: threads)
14:45
Fix a bug in rowid=? query handling. More problems remain. (check-in: 5b0e6ba4 user: drh tags: rtree-queue)
13:00
Bug fixes to the priority-queue implementation for R-Trees. Improved tracing capability. Some queries work now, but still many problems. (check-in: a439ddd6 user: drh tags: rtree-queue)
2014-04-15
21:06
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. (check-in: 53688a25 user: drh tags: rtree-queue)
20:52
Fix some problems to do with OOM conditions in vdbesort.c. Some problems remain. (check-in: 2f94f9ce user: dan tags: threads)
19:52
Fix further code and documentation issues in vdbesort.c. (check-in: d03f5b86 user: dan tags: threads)
2014-04-14
19:48
Make sure the undocumented sqlite_rename_parent() function does not crash even if it is invoked with NULL arguments. Ticket [264b970c4379fd4b94] (check-in: c6fa8d0d user: drh tags: trunk)
19:23
Allow the sorter to begin returning data to the VDBE as soon as it is available, instead of waiting until all keys have been sorted. (check-in: cb0ab20c user: dan tags: threads)
18:41
Improve performance in single-threaded mode by having the final merge pass keys directly to the VDBE, instead of going via a final PMA. (Closed-Leaf check-in: 02610cd9 user: dan tags: threads-experimental)
14:43
Fix comments on the rtreenode() and rtreedepth() test function in the R-Tree module. (check-in: ade5b986 user: drh tags: rtree-enhancements)
12:18
Remove over 300 lines of unused code, code that implemented the older Guttman insertion algorithms that are no longer used. (check-in: 3ba5f295 user: drh tags: rtree-enhancements)
08:45
Minor fixes so that builds with SQLITE_MAX_WORKER_THREADS=0 work. (check-in: e400bbbf user: dan tags: threads-experimental)
07:30
Improve use of multiple threads in sqlite3VdbeSorterRewind(). (check-in: e1bdc4b8 user: dan tags: threads-experimental)
2014-04-13
19:28
Remove the unused second argument from sqlite3ExprCachePop(). Add an ALWAYS() on an always-true conditional in sqlite3VdbeResolveLabel(). (check-in: ab23abf3 user: drh tags: trunk)
19:15
Make sure column cache elements are cleared correctly when jumping over code for key generation in a partial index. Fix for ticket [2ea3e9fe6379fc3f6]. (check-in: 3122b836 user: drh tags: trunk)
16:10
Continuing work on the new custom query mechanism for r-tree. (check-in: ca7357e6 user: drh tags: rtree-enhancements)
2014-04-12
19:34
Fix many issues with new code. (check-in: 62c406a0 user: dan tags: threads-experimental)
17:44
Continuing clean-up of the R-Tree module in preparation for cutting in the new generalized query mechanism. (check-in: 66c858f2 user: drh tags: rtree-enhancements)
2014-04-11
23:14
Add the new interfaces to rtree, though they do not yet work. Add the "show_speedtest1_rtree.tcl" script for showing the test data used for the R-Tree tests of speedtest1. Change speedtest1 to generate better R-Tree test data. (check-in: 0b702759 user: drh tags: rtree-enhancements)
19:43
Avoid having the sorter merge too many PMAs at a time when incrementally merging data following a SorterRewind(). (check-in: 98bf0307 user: dan tags: threads-experimental)
17:41
Add the --verify option to speedtest1. Add verification test cases to the "rtree" testset and a case that uses a custom geometry callback. (check-in: 9d485c42 user: drh tags: rtree-enhancements)
16:14
Update comments in the R-Tree module in preparation for some big changes. Add an "rtree" performance test to speedtest1. (check-in: 20a73ec0 user: drh tags: rtree-enhancements)
2014-04-10
02:24
Modify the OR-clause handling so that it can safely deal with OR-clause with 17 or more terms. Fix for ticket [10fb063b1179be53ea0b53bb]. (check-in: a67b5312 user: drh tags: trunk)
2014-04-09
20:04
Experimental multi-threaded sorting changes to allow the sorter to begin returning items to the VDBE before all data is sorted. (check-in: f9d5e09a user: dan tags: threads-experimental)
2014-04-07
18:44
Experimental multi-threaded sorting changes to begin merging PMAs before SorterRewind() is called. (Closed-Leaf check-in: cbfc0f6d user: dan tags: abandoned)
2014-04-04
22:44
Fix harmless compiler warnings. (check-in: e54dded2 user: drh tags: threads)
21:40
Fix typo in a Windows threading support routine. (check-in: 5e3dfa27 user: mistachkin tags: threads)
18:49
Performance improvements when reading large blobs, especially if SQLITE_DIRECT_OVERFLOW_READ is defined. (check-in: 2312eb6a user: drh tags: trunk)
18:37
Merge the latest trunk changes into the threads branch. (check-in: 39ac79cf user: drh tags: threads)
18:20
Merge changes to the query planner that strive to ensure that any index usage that is a proper subset of some other index usage always has a slightly higher cost. (check-in: 683dd379 user: drh tags: trunk)
14:12
Ensure the "PRAGMA journal_mode=WAL" works coming from any other journal_mode with ATTACH-ed databases. (check-in: e54330b4 user: drh tags: trunk)
07:52
Add test file sort3.test, which should have been part of commit [9d3351b8d7]. (check-in: dceed2c8 user: dan tags: threads)
02:13
Change vdbeSorterExtendFile() so that it makes a best effort to create the PMA file of the desired size, but does not return an error if unable. (check-in: 217814bc user: drh tags: threads)
2014-04-03
16:53
Version 3.8.4.3 (Leaf check-in: a611fa96 user: drh tags: release, version-3.8.4.3, branch-3.8.4)
16:42
Merge all recent changes from trunk. (check-in: a0910079 user: drh tags: threads)
16:35
Merge all recent changes from trunk, including the fix for the OP_SCopy-vs-OP_Copy problem. (check-in: 9515c834 user: drh tags: sessions)
16:29
Use OP_Copy instead of OP_SCopy when moving results out of a subquery, to prevent the subquery results from changing out from under the outer query. Fix for ticket [98825a79ce1456]. Problem introduced by check-in [1e64dd782a126f48d78]. (check-in: d5513dfa user: drh tags: trunk)
16:25
Fix an integer overflow problem in the sorter. (check-in: 9d3351b8 user: dan tags: threads)
16:18
Increase the version number to 3.8.4.3 (check-in: f05a49b6 user: drh tags: branch-3.8.4)
16:16
Use OP_Copy instead of OP_SCopy when moving results out of a subquery, to prevent the subquery results from changing out from under the outer query. Fix for ticket [98825a79ce1456]. Problem introduced by check-in [1e64dd782a126f48d78]. (check-in: ec6a0624 user: drh tags: branch-3.8.4)
14:31
Fix a typo in the "Synopsis:" comment for the OP_VFilter opcode. (check-in: 48ecdd4a user: drh tags: trunk)
14:29
Fix minor errors causing compilation to fail with SQLITE_MAX_WORKER_THREADS set to a value greater than zero. (check-in: 0561272a user: dan tags: threads)
02:54
Refactor local object and method names in vdbesort.c so that their names more closely reflect their actual use. (check-in: d284e30e user: drh tags: threads)
00:32
In the command-line shell, run set writable_schema before running the ".clone" command. (check-in: 9d2ae634 user: drh tags: trunk)
2014-04-02
18:58
Add a big introductory comment to vdbesort.c explaining its operation at a high level. Also adjust some symbolic names and fix other comment issues in that file. (check-in: eef60f1b user: drh tags: threads)
15:15
Fix some problems with OOM handling in vdbesort.c. (check-in: 47e702bd user: dan tags: threads)
14:38
Change the name of the SorterThread object to "SortSubtask" to avoid confusion with the SQLiteThread object. (check-in: 4ee2d910 user: drh tags: threads)
2014-04-01
18:41
When sorting data for a CREATE INDEX statement in single-threaded mode, assume that keys are delivered to the sorter in primary key order. Also fix various comments that had fallen out of date. (check-in: 821d1ac4 user: dan tags: threads)
15:38
Even if compile time option SQLITE_MAX_WORKER_THREADS is set to one or greater, set the default number of worker threads to zero. Distribute data more evenly between threads in sqlite3VdbeSorterWrite() to improve performance when sorting large amounts of data. Add new test file sort2.test. (check-in: 643c86a0 user: dan tags: threads)
10:19
Fix a problem with OOM handling in the sorter code. (check-in: 59cd5229 user: dan tags: threads)
01:24
Remove an unnecessary conditional, replacing it with an assert(). Improvements to comments. (Closed-Leaf check-in: 834bf1c3 user: drh tags: overflow-pgno-cache)
2014-03-31
23:57
Fix a compiler warning when SQLITE_DIRECT_OVERFLOW_READ is defined. Minor performance enhancement and size reduction. (check-in: 96385dc4 user: drh tags: overflow-pgno-cache)
22:03
Merge in the latest changes and fixes from trunk. (check-in: f6211540 user: drh tags: overflow-pgno-cache)
20:05
Remove an unnecessary conditional. (Closed-Leaf check-in: 7473c4df user: drh tags: query-plan-experiments)
19:57
Add the SQLITE_MAX_WORKER_THREADS compile time option. And the SQLITE_CONFIG_WORKER_THREADS sqlite3_config() switch. (check-in: 2774710d user: dan tags: threads)
19:49
Also make sure an index that is a proper subset of some other index has a higher cost than that other index. Add test cases. (check-in: b7830d23 user: drh tags: query-plan-experiments)
18:24
Make sure that an index that covers a proper superset of the WHERE clause terms of some other index has a lower cost than the other index. (check-in: ea8b0910 user: drh tags: query-plan-experiments)
13:42
Avoid a (harmless) buffer overread that is possible on an OOM when MEMSYS5 is engaged. (check-in: b3296267 user: drh tags: trunk)
2014-03-29
21:16
Experiments in picking better query plans, especially when the usage of one index is a subset of another. (check-in: 8f869ca7 user: drh tags: query-plan-experiments)
19:48
Changes to make the multi-threaded sorter sort stably. (Closed-Leaf check-in: 83a105c8 user: dan tags: threads-closed)
10:01
Fix a broken assert() in vdbesort.c. (check-in: 18d1b402 user: dan tags: threads)
09:34
Fix a problem in vdbesort.c causing spurious SQLITE_NOMEM errors when using memsys3 or memsys5. (check-in: a683c05f user: dan tags: threads)
06:27
Add the optimization to avoid some unnecessary calls to sqlite3VdbeRecordUnpack() added to the trunk by [707ea170b3]. (check-in: fc4d04e6 user: dan tags: threads)
2014-03-28
19:47
Fix a compiler warning and an after-OOM memory leak. (check-in: 58f7ca29 user: drh tags: orderby-planning)
19:18
Merge latest changes from orderby-planning branch. (check-in: 4c7fb542 user: dan tags: threads)
18:35
Merge the latest changes from trunk. (check-in: 3047a25f user: drh tags: orderby-planning)
14:41
Disable the wal64k.test script for non-unix systems since it depends on unix-only features. (check-in: 27deb6e4 user: drh tags: trunk)
12:56
Fix a harmless compiler warning. (check-in: a4e47150 user: drh tags: trunk)
03:12
Enhance the sqlite3VdbeRecordCompare() routines so that if they encounter database corruption, they will set the UnpackedRecord.isCorrupt field and return 0. The sqlite3BtreeMovetoUnpacked() routine detects this and returns SQLITE_CORRUPT, causing the corruption to be reported back to the top-level. (check-in: 7fa85eaa user: drh tags: trunk)
2014-03-27
19:25
Instead of allocating a single large buffer at the beginning of each sort operation, start with a small buffer and extend it using realloc() as required. (check-in: 81987c8c user: dan tags: orderby-planning)
18:36
Minor cleanup of the code in the query planner that computes the costs estimates for the various plans. There are no changes to the costs at this time. But the code is slightly more readable now and that might facilitate future enhancements. (check-in: 9b4d7226 user: drh tags: trunk)
17:23
Use xFetch() to access temporary files in vdbesort.c. Use a single large allocation instead of many small allocations when accumulating records in vdbesort.c. This is an interim commit - it allocates a buffer the size of the page-cache every time data is sorted. (check-in: f4ac1bf2 user: dan tags: orderby-planning)
14:05
Enhance the logest.c utility with new operators: "dup", "inv", "log", and "nlogn". Provide help on an invalid input. (check-in: b4bd2a06 user: drh tags: trunk)
00:09
Merge the latest trunk changes and the fix for the crash on a corrupt database. (check-in: 0b35346c user: drh tags: orderby-planning)
2014-03-26
19:45
Merge from trunk the fix for the crash on a corrupt database. (check-in: 8cb2b02b user: drh tags: threads)
19:43
Merge in fixes (including the corrupt-database crash fix) and performance enhancements from trunk. (check-in: fc8ca1a8 user: drh tags: sessions)
18:51
Version 3.8.4.2 (check-in: 02ea1663 user: drh tags: release, version-3.8.4.2, branch-3.8.4)
16:25
Increase the version number to 3.8.4.2. (check-in: 59978a2e user: drh tags: branch-3.8.4)
16:22
Fix a potential buffer overread that could have occurred when searching a corrupt database file. (check-in: db293547 user: drh tags: branch-3.8.4)
15:14
Add an extra test case for the potential buffer overread patched by [28ddecff04]. (check-in: f585f5d7 user: dan tags: trunk)
15:05
Add a test case to verify that the previous change avoids excess buffer overread in sqlite3VdbeRecordCompare(). (check-in: 2b28e8d5 user: drh tags: trunk)
14:51
Earlier detection of corruption in sqlite3VdbeRecordCompare() in order to avoid a potential buffer overread. (check-in: 28ddecff user: drh tags: trunk)
12:02
Add an assert() and a comment to clarify the operation of the vdbeRecordCompareInt() routine. (check-in: 851abdb8 user: drh tags: trunk)
2014-03-25
20:28
Adjust the repeat counts on several tests in speedtest1 so that the relative time spent on the test is roughly the same regardless of --size. (check-in: 7922809e user: drh tags: trunk)
18:29
Merge enhancements and fixes from trunk. (check-in: e005f2d6 user: drh tags: orderby-planning)
17:45
Add another performance test case to speedtest1. This case is another ORDER BY test but this time without LIMIT. (check-in: 9ab7ffd5 user: drh tags: trunk)
17:07
Fix a problem in the code added by [707ea170b3] causing vdbesort.c to sort unstably. (check-in: d3e640af user: dan tags: orderby-planning)
15:04
Remove the sequence values from sorter records used by ORDER BY as well. (check-in: c3ae3697 user: dan tags: orderby-planning)
14:54
Add an ORDER BY test case to speedtest1.c (check-in: 58812264 user: drh tags: trunk)
14:12
Enable four sorting threads by default in the command-line shell. (check-in: 1cab8357 user: drh tags: threads)
13:17
Merge all fixes and enhancements from trunk. (check-in: b415dfb6 user: drh tags: threads)
11:00
Detect when a VdbeCursor is still pointing at a valid row but that row has moved, and invalidated the return from prior sqlite3BtreeDataFetch() or sqlite3BtreeKeyFetch() calls. (check-in: e6798871 user: drh tags: trunk)
2014-03-24
20:19
Omit the sequence value from sorter records used by GROUP BY queries that cannot use an index. (check-in: 3f90abdd user: dan tags: orderby-planning)
18:08
Avoid unnecessary moving of content between registers during an ORDER BY. (check-in: 4f472acc user: drh tags: orderby-planning)
16:30
Remove unused variables Parse.nColCache and Parse.iColCache. (check-in: 4d7551ce user: dan tags: trunk)
15:00
Fix arithmetic operators so that they do not change the affinity of their input operands. Ticket [a8a0d2996a]. (check-in: 221f8f94 user: drh tags: trunk)
12:33
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. (Closed-Leaf check-in: 0b95b7a8 user: drh tags: tkt-a8a0d2996a)
11:23
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. (check-in: db7d62c8 user: dan tags: trunk)
09:34
Remove an unnecessary temporary register allocation. (check-in: 5d506743 user: dan tags: orderby-planning)
02:20
Remove a pointless OP_Once operation in ORDER BY clauses with LIMIT. (check-in: e6c59d23 user: drh tags: orderby-planning)
01:43
Further enhancements to generated VDBE code for ORDER BY. (check-in: e7188fad user: drh tags: orderby-planning)
2014-03-23
18:47
merge fixes from trunk (check-in: faf7f9ca user: drh tags: orderby-planning)
17:45
Use only a single OP_MakeRecord instead of two when constructing entries to go onto a sorter. (check-in: d696cded user: drh tags: orderby-planning)
16:29
Avoid a possible use of an uninitialized variable following an I/O or OOM error. (check-in: 641408a1 user: drh tags: trunk)
2014-03-22
02:19
Clear the sort-order flags on the KeyInfo object associated with the OP_Compare/OP_Jump of the block-sort logic, in order to make the OP_Jump fully testable. (check-in: 9b2838f2 user: drh tags: trunk)
01:52
Increase the version number to 3.8.5. (check-in: 9760879d user: drh tags: trunk)
00:27
Fix the ORDER BY optimization logic so that it will do a block-sort on a partial DESC ORDER BY. This enhancement uncovered a memory leak in pushUntoSorter() which is also fixed. (check-in: c36f7461 user: drh tags: trunk)
2014-03-21
20:58
Add the ability to use indices for the first few terms of an ORDER BY clause, then sort in batches to handle the later terms. (check-in: fa06a6fe user: drh tags: trunk)
19:56
Change the names of SRT_DistTable and SRT_Table used by CTE to more meaningful SRT_DistFifo and SRT_Fifo, respectively. Simplify the IgnorableOrderby() macro in the process. (check-in: 45d8cc67 user: drh tags: trunk)
19:27
Avoid leaking memory in an obscure case where the flattener adds an ORDER BY clause to the recursive part of a recursive query. (check-in: 1f413aca user: dan tags: trunk)
18:45
Merge the OFFSET-on-query-without-FROM fix from trunk. (check-in: 71e9ae72 user: drh tags: orderby-planning)
18:16
Fix the OFFSET clause so that it works correctly on queries that lack a FROM clause. Ticket [07d6a0453d4ed8]. (check-in: 179ef816 user: drh tags: trunk)
15:24
New test case for block-sorting. (check-in: e70cfa28 user: drh tags: orderby-planning)
2014-03-20
20:56
Merge trunk fixes for "x IN (?)" handling. (check-in: eca35871 user: drh tags: orderby-planning)
19:04
Remove a testcase() that is now always true due to the "x IN (?)" optimization. Add an ALWAYS() around a conditional in the parser that cannot be false. (check-in: d5a1530b user: drh tags: trunk)
18:56
Only use the direct-overflow-read optimization if all data from the overflow page in question is being read. (check-in: d8e1f75d user: dan tags: overflow-pgno-cache)
18:45
Fix the EXPLAIN indenter in the command-line shell to correctly handle NextIfOpen and PrevIfOpen opcodes. (check-in: 01944c53 user: drh tags: trunk)
17:03
The "x IN (?)" optimization in check-ins [2ff3b25f40] and [e68b427afb] is incorrect, as demonstrated by the in4-5.1 test case in this check-in. The "COLLATE binary" that was being added to the RHS of IN was overriding the implicit collating sequence of the LHS. This change defines the EP_Generic expression node property that blocks all affinity or collating sequence information in the expression subtree and adds that property to the expression taken from RHS of the IN operator. (check-in: 2ea4a9f7 user: drh tags: trunk)
15:14
Fix harmless compiler warnings. (check-in: b1435f26 user: drh tags: trunk)
14:56
Previous check-in is not quite correct. "x IN (?)" is not exactly the same as "x==?" do to collation and affinity issues. The correct converstion should be to "x==(+? COLLATE binary)". The current check-in fixes this problem and provides test cases. Ticket [e39d032577df69] (check-in: 2ff3b25f user: drh tags: trunk)
13:26
Convert expressions of the form "X IN (?)" with exactly one value on the RHS of the IN into equality tests: "X=?". Add test cases to verify that statements work correctly on this corner case. Fix for ticket [e39d032577df6942]. (check-in: e68b427a user: drh tags: trunk)
12:36
One possible fix for the [e39d032577d] problem it to replace the failing assert() with a testcase() as shown here. (Closed-Leaf check-in: eae6dfbe user: drh tags: tkt-e39d0325)
12:17
Fix an unnecessarily obtuse use of a bitmask flag. (check-in: ca314081 user: drh tags: trunk)
09:42
Add a test to ensure os_unix.c works with 64KiB OS pages. (Closed-Leaf check-in: e3d2be3b user: dan tags: shm-mapping-fix)
08:59
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. (check-in: 6f3a5c24 user: dan tags: shm-mapping-fix)
2014-03-19
23:42
Merge the vdbesort.c optimization from trunk. (check-in: e4bfffb9 user: drh tags: orderby-planning)
23:24
Fix query planner weights associated with choosing block-sorting. Fix block sorting of tables with collating functions. Fix various test cases. All "veryquick" tests are now passing, though more tests need to be added. (check-in: 01afbf97 user: drh tags: orderby-planning)
20:01
Avoid some unnecessary calls to sqlite3VdbeRecordUnpack() that were being made when merging data from two or more temp files together in vdbesort.c (check-in: 707ea170 user: dan tags: trunk)
17:41
Make it possible for block-sort to use the OP_SorterOpen sorter in addition to a generic OP_OpenEphemeral. (check-in: 7ce2daaf user: drh tags: orderby-planning)
16:56
Fix a problem in the block-sort logic that can arise if the VDBE opcode array is resized while the block-sort logic is being coded. "make test" now runs to completion, though there are still 17 failures. (check-in: 62f3a220 user: drh tags: orderby-planning)
15:17
Avoid reusing temporary registers in co-routines when doing block-sorting. (check-in: 463d921b user: drh tags: orderby-planning)
14:30
Make sure the where.c query planner never reports that the number of ORDER BY terms that are satisfied by indices is negative. (check-in: b186d8d1 user: drh tags: orderby-planning)
14:10
First attempt at getting block-sort to work. This is an incremental check-in. There are many problems still to be worked out. (check-in: 59742dd4 user: drh tags: orderby-planning)
2014-03-18
20:33
Make the partial-ORDER-BY information in the query planner available to the SELECT code generator. Still doesn't make a difference in the generated code. (check-in: e258df23 user: drh tags: orderby-planning)
18:59
Adjust the query planner to keep track of the number of ORDER BY terms satisfied. Still doesn't do anything with this information. Some tests fail after this check-in, but all failures are believed to be benign. The failures will be addressed at a later stage. (check-in: 59d49b7f user: drh tags: orderby-planning)
15:30
Experiments with the optimization of ORDER BY and GROUP BY clauses. (check-in: b1509025 user: drh tags: orderby-planning)
2014-03-17
15:43
Add an experimental multi-threaded capability to vdbesorter.c. (check-in: ff0b5c85 user: dan tags: threads)
15:06
Clean up some obsolete "register" declarations in printf.c. (check-in: ecd9d3f9 user: drh tags: trunk)
14:24
Performance enhancements and size reduction for sqlite3VXPrintf() (check-in: eb071eb5 user: drh tags: trunk)
2014-03-14
11:46
Fix a harmless compiler warning that crops up with SQLITE_MAX_MMAP_SIZE=0. (check-in: 1277932b user: drh tags: trunk)
2014-03-13
15:41
Merge latest trunk changes into this branch. (check-in: d17231b6 user: dan tags: threads)
2014-03-12
19:38
Fix an obscure bug causing sqlite3_close() to fail if there are virtual tables on the disconnect list when it is called. (check-in: 6504aa47 user: dan tags: trunk)
19:20
Changes to FTS to ensure that it does not access the database from within the xConnect method. (check-in: c67a52c3 user: dan tags: trunk)
12:44
Prevent the rtree module from reading sqlite_stat1 data from the wrong database. (check-in: 7ce03c1b user: dan tags: trunk)
10:03
Bump the version number to 3.8.4.1., to conform with trunk. (check-in: 42c9d8fc user: drh tags: sessions)
2014-03-11
23:44
Remove a stray C99-style comment. (check-in: f500e87d user: drh tags: overflow-pgno-cache)
23:40
Combine the various boolean fields of the BtCursor object into a single bit-vector. This allows setting or clearing more than one boolean at a time and makes the overflow-pgno-cache branch faster than trunk on speedtest1. (check-in: 968fec44 user: drh tags: overflow-pgno-cache)
20:33
Enable the b-tree cursor object's overflow page-number cache, which is normally enabled only for incr-blob cursors, for all cursors. (check-in: da591985 user: dan tags: overflow-pgno-cache)
15:27
Version 3.8.4.1 (check-in: 018d317b user: drh tags: trunk, release, version-3.8.4.1)
15:25
Update version number to 3.8.4.1 (check-in: 33f5694f user: drh tags: trunk)
14:44
Forgot to change the VERSION file. (Closed-Leaf check-in: 04caffce user: drh tags: mistake)
09:19
Add a test to see what happens if an rtree constructor encounters an SQLITE_BUSY error. No changes to code. (check-in: 5527e236 user: dan tags: trunk)
01:48
Version 3.8.4 for sessions (plus two minor fixes). (check-in: 917c4108 user: drh tags: sessions)
2014-03-10
20:12
Adjustments to the cost computation for the skip-scan query plan, to take into account the fact that a seek has to occur on each skip. (check-in: 0769eebd user: drh tags: trunk)
18:03
Attempt to work around MSVC's treatment of __LINE__ as a non-constant value in "Edit and Continue" mode by avoiding the use of __LINE__ when SQLITE_VDBE_COVERAGE is not defined. (check-in: 0a5318bc user: drh tags: trunk)
12:20
Version 3.8.4 (check-in: 530a1ee7 user: drh tags: trunk, release, version-3.8.4)
2014-03-08
19:07
Fix a bug causing "SELECT char()" to return SQLITE_NOMEM. (check-in: ba39df9d user: dan tags: trunk)
2014-03-07
14:57
Improved comment on the pager.c PERSIST rollback journal delete logic inside of hasHotJournal(). No changes to code. (check-in: e5b17a9d user: drh tags: trunk)
14:36
Merge the fix for the journal_mode=PERSIST error recovery delay bug. (check-in: bb6a75f4 user: drh tags: sessions)
03:31
Revise change from the previous check-in to clarify the situation when handling open journal files, regardless of journal mode. (check-in: 1c318ef3 user: mistachkin tags: trunk)
02:29
Avoid calling sqlite3OsDelete() on a file that is open, since this causes Windows to run *very* slowly. Comes up on error recovery in journal_mode=PERSIST. (check-in: fdc651e2 user: mistachkin tags: trunk)
2014-03-06
18:16
Do not run corruptH.test in mmap mode. (check-in: c0d54b4e user: dan tags: trunk)
15:01
Fix a harmless compiler warning in the sessions test harness. (check-in: d389e20a user: drh tags: sessions)
14:53
Enhance the test harness for the sessions interface so that it does not use SQLite operations that can encounter an OOM error in places where it is unable to report an OOM error back up to the test script. (check-in: bc0e6610 user: drh tags: sessions)
13:48
Merge the latest 3.8.4 tweaks from trunk. (check-in: 1ed463d9 user: drh tags: sessions)
13:38
Improved EXPLAIN indentation of a loop in the ANALYZE logic for STAT4. Mark the not-found jump of a seek operation in that loop as never taken. (check-in: 0a4200f9 user: drh tags: trunk)
12:36
Remove a branch that is never taken from where.c. (check-in: 4a499722 user: dan tags: trunk)
02:15
Cosmetic change to the shell in-memory database warning to skip coloring the trailing period. (check-in: c87d8e07 user: mistachkin tags: trunk)
01:56
Fix some incorrect comments and typos in comments. Add testcase() macros to some of the new record comparison code. (check-in: b83cfe89 user: drh tags: trunk)
00:30
Better loadable extension handling in the Win32 VFS when compiled for Cygwin. (check-in: 29b0a4f1 user: mistachkin tags: trunk)
00:28
Better support for MinGW 4.x. (check-in: 170e0585 user: mistachkin tags: trunk)
2014-03-05
23:12
Merge compiler-warning fixes from trunk. (check-in: a1f2b042 user: drh tags: sessions)
19:36
Always include the ctype.h header in the spellfix.c extension. (check-in: bfd75f47 user: drh tags: trunk)
19:13
Avoid running a couple of test cases that use realloc() extensively if SQLITE_MEMDEBUG is defined. (check-in: e406d4bb user: dan tags: trunk)
19:04
Fix a harmless compiler warning on MSVC. (check-in: 0723effc user: drh tags: trunk)
17:29
Add SQLITE_OMIT_CTE to the list of compile options that might be returned by "PRAGMA compile_options". (check-in: f33f2b3f user: dan tags: trunk)
16:15
Add tests to join.test to verify that it is not possible to use more than 64 tables in a join. (check-in: ef1a9986 user: dan tags: trunk)
15:52
Count the number of elements in a SrcList object using an "int" rather than a "u8", to avoid overflows and to work around an issue in the C compiler on AIX. (check-in: eee2a13f user: drh tags: trunk)
15:04
Add a test case for the problem fixed by [1d134ba2ed]. (check-in: d4fbc05d user: dan tags: trunk)
14:49
Merge in various obscure bug fixes and the removal of Mem.memType from trunk. (check-in: 0828975d user: drh tags: sessions)
14:40
When converting a result type from TEXT to BLOB using the sqlite3_value_blob() interface, continue to report SQLITE_TEXT as the true type from sqlite3_value_text() as long as that text is still valid. The maintains legacy behavior from before the noMemType change. (check-in: 1d134ba2 user: drh tags: trunk)
12:47
Separate the column NULL value constant into a separate routine for greater commonality with the sessions branch. (check-in: 12cbebb9 user: drh tags: trunk)
11:48
Remove the redundant memType field from struct Mem. (check-in: 9e852857 user: dan tags: trunk)
11:22
Do not run corruptI.test with the mmap permutation. (check-in: 378b290d user: dan tags: trunk)
01:29
Experimental simplification of memory flags/type handling. (Closed-Leaf check-in: bac2820e user: mistachkin tags: noMemType)
2014-03-04
21:19
Avoid indexing off the front end of an array when creating a view with two or more blank column names in the SELECT statement that defines the view. (check-in: 554501f1 user: drh tags: trunk)
21:00
Fix a problem with "DEFAULT (-(-9223372036854775808))" clauses in ALTER TABLE ... ADD COLUMN commands. (check-in: e072cb3e user: dan tags: trunk)
18:06
Fix a potential memory use-after-free problem following an OOM error. (check-in: 767ccb1f user: drh tags: trunk)
16:21
Fix an assert() so that it takes OOM errors into account. (check-in: 53f6ec79 user: drh tags: trunk)
16:05
Ensure that BtreeMovetoUnpacked() does not try to invoke xRecordCompare when it is set to NULL. (check-in: 2879234b user: dan tags: trunk)
14:34
Merge the performance enhancements of trunk (and some obscure bug fixes) into the sessions branch. (check-in: 7f51ad97 user: drh tags: sessions)
13:18
Improve clarity of presentation in the sqlite3VdbeMemFromBtree() routine. (check-in: 9830c343 user: drh tags: trunk)
12:07
Fix comment in test. (check-in: 1e57f67b user: mistachkin tags: trunk)
11:54
Fix minor typos in the new test file. (check-in: 3cbb9b1b user: mistachkin tags: trunk)
11:35
Add tests to verify the fix for bug [4ef7e3cfca]. (check-in: 62410bb8 user: dan tags: trunk)
11:29
Fix name resolution problem in sub-selects within triggers, ticket [4ef7e3cfca]. (check-in: 5bcd0b1c user: mistachkin tags: trunk)
11:16
Fix harmless compiler warning. (check-in: 8d18a803 user: mistachkin tags: trunk)
04:12
Refactor the sqlite3VdbeRecordCompare() routine used to compare btree records. Create fast-track special case routines to handle the common cases more quickly. This gives a significant performance boost. (check-in: 3325ad5b user: drh tags: trunk)
04:04
Fix more instances of assuming 'char' is signed. And, make sure to never shift a signed integer. (Closed-Leaf check-in: f10130ed user: drh tags: broken-on-arm)
00:15
Do not assume that 'char' is signed. Make it explicit. (check-in: 979da752 user: drh tags: broken-on-arm)
2014-03-03
21:59
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. (check-in: aec5473a user: drh tags: broken-on-arm)
21:46
Fix a couple of harmless compiler warnings. (Closed-Leaf check-in: fcf480cc user: drh tags: experimental)
20:48
Avoid a buffer overread in vdbeCompareRecordInt() that might occur if the database is corrupt. (check-in: 7c0b4381 user: dan tags: experimental)
19:29
Fix a typo in a comment. No changes to code. (check-in: 1f4991ab user: drh tags: experimental)
18:25
Fix compiler warnings. (check-in: ba899372 user: drh tags: experimental)
17:48
Merge latest trunk changes. (check-in: 1d603564 user: dan tags: experimental)
17:36
Change an OP_SCopy into an OP_Copy in a case where the destination might be used after the source has changed. (check-in: c0fa0c0e user: drh tags: trunk)
16:48
Change the "explain_i" tcl test command so that xterm color codes are only added if the output is actually a terminal. (check-in: 559835e5 user: dan tags: trunk)
15:13
Fix a harmless compiler warning. (check-in: d7f6837e user: drh tags: experimental)
14:45
Merge latest trunk changes. (check-in: e00ed717 user: dan tags: experimental)
14:20
Fix a segfault that can occur following an OOM error. (check-in: 7fdd378d user: dan tags: trunk)
00:12
Change the MEM_Dyn flag so that it means that Mem.xDel exists and must be used to free the string or blob. Add tighter invariant checks on Mem. (check-in: e3f6c61e user: drh tags: trunk)
2014-03-01
19:45
Merge trunk changes. (check-in: 9c1747b5 user: dan tags: experimental)
19:44
Remove the vdbeRecordCompareLargeHeader function. Fix some other details. (check-in: 3861e853 user: dan tags: experimental)
18:13
Change the MEM_Dyn flag so that it means that Mem.xDel exists and must be used to free the string or blob. Add tighter invariant checks on Mem. (Closed-Leaf check-in: 44e1c337 user: drh tags: enhanced-mem-check)
16:24
Factor the Mem invariant checker into a separate procedure (rather than a macro) so that it can be more easily extended. (check-in: 354699d5 user: drh tags: enhanced-mem-check)
14:45
Add extra assert() statements trying to catch a Mem object in an inconsistent state. (check-in: 4aeb3ae4 user: drh tags: enhanced-mem-check)
2014-02-28
20:47
In the command-line shell add the (undocumented and unsupported) ".eqp" command and -eqp command-line option, to cause EXPLAIN QUERY PLAN to be run on each SQL statement as it is evaluated. Intended use is for analysis of the query planner. (check-in: e6ecf733 user: drh tags: trunk)
19:37
Provide an #ifdef in shell.c to work around issues when cross-compiling from Ubuntu to windows. (check-in: 0a3579d9 user: drh tags: trunk)
18:39
Update some test cases that deal with corrupt databases. (check-in: 3a09f560 user: dan tags: experimental)
09:48
Minor tweak to vdbeRecordCompareInt(). (check-in: 284bde0e user: dan tags: experimental)
2014-02-27
20:52
Merge in latest trunk changes. (check-in: 8f30b095 user: dan tags: experimental)
20:44
Further changes to sqlite3VdbeRecordCompare(). (check-in: 57089374 user: dan tags: experimental)
15:11
A better way of handling the USE_SYSTEM_SQLITE #define in shell.c. (check-in: 51ce713c user: drh tags: trunk)
15:04
Add #defines to the command-line shell source code (shell.c) so that it can be imported directly into other projects (ex: Fossil) and used without editing. (check-in: a6690400 user: drh tags: trunk)
05:47
Merge updates from trunk. (check-in: ed0bfcfa user: mistachkin tags: winIoRetry)
2014-02-26
21:35
More efficient removal of duplicates in recursive queries using the UNION compound operator. (check-in: 06c2db87 user: drh tags: trunk)
19:05
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. (Leaf check-in: 3ad687b7 user: drh tags: open-only-once)
13:53
In the command-line shell for CSV import, if the lines are \r\n terminated and the last field is blank, make sure an empty string and not a "\r" string is imported. (check-in: 9c2e7612 user: drh tags: trunk)
02:26
Improved handling of constants and especially constant functions in the ORDER BY clause of a query. Do not optimize out "ORDER BY random()". Fix for ticket [65bdeb9739605cc2296]. (check-in: dca1945a user: drh tags: trunk)
2014-02-25
21:55
Do not allow temporary registers to be in use across an OP_Yield within a co-routine. Fix for ticket [8c63ff0eca81a9132d8]. (check-in: 97a8c973 user: drh tags: trunk)
21:01
Attempt to speed up sqlite3VdbeRecordCompare() by various means. This code is in an interim state. (check-in: 85206e0b user: dan tags: experimental)
19:38
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] (Closed-Leaf check-in: cc5eda54 user: drh tags: tkt-8c63ff0eca)
18:12
Also adjust the order of files in the amalgamation to ensure that _FILE_OFFSET_BITS is defined before any #include, for QNX. (check-in: 23001a85 user: drh tags: trunk)
14:52
QNX requires that _FILE_OFFSET_BITS be set prior to any system #include. (check-in: 953cdd6a user: drh tags: trunk)
2014-02-24
21:42
Fix several small style/consistency issues with the previous check-in. (check-in: 2477b3a2 user: mistachkin tags: trunk)
21:23
Merge updates from trunk. (Closed-Leaf check-in: 854d410a user: mistachkin tags: cygDlOpen)
21:20
Enhance testing support for the Win32 VFS dynamic extension loading facilities. (check-in: 53081e72 user: mistachkin tags: trunk)
19:49
Close some stray connections in walro.test. (check-in: d6746cab user: dan tags: trunk)
19:07
In memsys5, initialize new allocations to non-zero bytes. Change the content of freed allocations to prevent use after free. These changes in SQLITE_DEBUG only. (check-in: ba5f0a55 user: drh tags: trunk)
14:24
Remove an unused variable from the VDBE_PROFILE compile-time option. Keep the opcode count in an u32 instead of an int. (check-in: 4df0ac90 user: drh tags: trunk)
2014-02-21
10:48
Merge updates from trunk. (check-in: 09cf240a user: mistachkin tags: winHdr)
05:44
Better loadable extension handling in the Win32 VFS when compiled for Cygwin. (check-in: 6676475c user: mistachkin tags: cygDlOpen)
2014-02-20
19:42
Fix the text of a comment used to generate VDBE opcode documentation so that it omits symbols that can be mistaken for a hyperlink by the parser. (check-in: b46d4e89 user: drh tags: trunk)
19:32
Fix a harmless shadowed-variable warning. (check-in: 82402909 user: drh tags: trunk)
19:23
Make sure that the difference between two string pointers is passed into sqlite3_mprintf() as type "int". (check-in: d5d973fe user: drh tags: trunk)
2014-02-19
19:14
Add the VdbeCoverageNeverTaken() macro, and comments that better describe how the VDBE branch coverage measurement works. Add some tags to provide 100% VDBE branch coverage. (check-in: c1e94169 user: drh tags: trunk)
14:20
Add the SQLITE_NOTNULL P5 code for comparison operations - really a composite of SQLITE_NULLEQ and SQLITE_JUMPIFNULL. This flag indicates that NULL operands are not possible and raises and assert() if NULL operands are seen. Also omit an unnecessary scan of the sqlite_sequence table when writing into an AUTOINCREMENT table. (check-in: d2c047f3 user: drh tags: trunk)
01:31
Make sure a multi-row VALUES clause works correctly in a compound SELECT. (check-in: 85b355cf user: drh tags: trunk)
00:53
Tweaks in support of VDBE branch test coverage. (check-in: b9782564 user: drh tags: trunk)
2014-02-18
11:31
Fix VDBE branch accounting on comparison operators. (check-in: b287520c user: drh tags: trunk)
05:18
Enhance the Win32 VFS I/O retry logic. (check-in: adba783c user: mistachkin tags: winIoRetry)
03:07
Add VdbeCoverage() and VdbeCoverageIf() macros for improved VDBE coverage testing. (check-in: b92d31a9 user: drh tags: trunk)
01:07
Improvements to "NOT IN (SELECT ...)" processing. Only test for NULL values on the RHS on the first iteration, then remember the result. There has been logic to do this for year, but it didn't work right and ended up repeating the NULL test on every iteration. This inefficiency was found using the VDBE coverage testing tools. (check-in: 915f6f1c user: drh tags: trunk)
2014-02-17
23:52
Merge in performance enhancements for INSERT operations, especially INSERTs on tables that have no affinity columns or that have many indices or INSERTs with content coming from a SELECT. Add the SQLITE_TESTCTRL_VDBE_COVERAGE test control and the SQLITE_VDBE_COVERAGE compile-time option used for measure coverage of branches in VDBE programs. (check-in: a7268769 user: drh tags: trunk)
22:40
Add logic to do test coverage measurements on the VDBE code. (Closed-Leaf check-in: ce184c7b user: drh tags: insert-optimization)
15:40
Add a test case for OP_SoftNull. (check-in: f29d194e user: drh tags: insert-optimization)
15:36
Merge the VDBE_PROFILE fixes from trunk. (check-in: 2914e419 user: drh tags: insert-optimization)
14:59
Avoid unnecessary calls to applyAffinity() during INSERT and UPDATE operations, especially for table that have indices and tables for which all columns have affinity "NONE". (check-in: 35b4d6e9 user: drh tags: insert-optimization)
01:13
Fix the VDBE_PROFILE logic. Add a script to process the output file. (check-in: 7adb3da2 user: drh tags: trunk)
2014-02-16
19:20
Use the modern MinGW major version macro, not the deprecated one. (Closed-Leaf check-in: 057c16ee user: mistachkin tags: mingw4x)
01:55
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. (check-in: aa2d8b0e user: drh tags: insert-optimization)
2014-02-14
23:49
Seek past NULLs in a top-constrained search. Avoid checking for NULLs in the body of the search. (check-in: e07a32f3 user: drh tags: trunk)
23:35
Better support for MinGW 4.x. (check-in: e1472307 user: mistachkin tags: mingw4x)
20:59
Reduce the number of cases where it is necessary to check for NULL after the loop terminating condition. (check-in: 3c1ae447 user: drh tags: trunk)
15:13
Add OP_IdxGT and OP_IdxLE as distinct opcodes. Formerly these operations where done using OP_IdxGE and OP_IdxLT with the P5 flag set. But VDBE code is easier to read with distinct opcode names. Also change OP_SeekGe to OP_SeekGE, and so forth, so that the capitalization is consistent. The whole point of this change is to improve the readability of VDBE listings. (check-in: b6bea903 user: drh tags: trunk)
00:25
Revise how the Tcl system encoding is handled by the test suite. (check-in: 9e573198 user: mistachkin tags: trunk)
2014-02-13
21:57
Improvements to the makefile and README for MSVC. (check-in: b22b6140 user: mistachkin tags: trunk)
19:27
Ensure that if the "psow=0" URI option or FCNTL_POWERSAFE_OVERWRITE file-control is used to clear the power-safe overwrite flag, extra padding frames are added to the WAL file. (check-in: 48c821fd user: dan tags: trunk)
19:10
Change README to README.md and expand it. Remove unrelated and obsolete files. (check-in: 18d4e258 user: drh tags: trunk)
18:46
Avoid passing a flags argument with the internal WAL_SYNC_TRANSACTIONS bit set when calling sqlite3OsSync(). (check-in: e3b79e92 user: dan tags: trunk)
13:42
Update the tclconfig files to the latest from http://core.tcl.tk/tclconfig. (check-in: b81ba7a4 user: drh tags: trunk)
2014-02-12
23:52
Minor simplifications to the "zeroPage()" routine in btree.c. (check-in: cc8f10bc user: drh tags: trunk)
21:31
Remove the "rowid cache" that sought to remember the largest rowid for a table and thereby speed up OP_NewRowid. That cache was ineffective. Removing it results in a performance increase of 0.4%, less memory usage, and a slightly smaller library size. (check-in: 56bc5ce8 user: drh tags: trunk)
15:05
Various fixes and test case updates so that veryquick.test passes again. (Leaf check-in: f352ef57 user: dan tags: deferred-open)
14:43
Make sure "rowid" columns are correctly resolved in joins between normal tables and WITHOUT ROWID tables. Fix for ticket [c34d0557f740c45070]. (check-in: 5d01426d user: drh tags: trunk)
14:43
Merge latest trunk changes. (check-in: 4d7057c4 user: dan tags: deferred-open)
2014-02-11
19:35
Test case updates to account for the fact that database files are not created until they are first written. (check-in: 8ef97420 user: dan tags: deferred-open)
16:31
Sync with trunk. Bring in the command-line shell updates and the new 3.8.4 version number. (check-in: 2cd35ff6 user: drh tags: sessions)
16:24
Increase the version number to 3.8.4 (check-in: 0a8bcbbd user: drh tags: trunk)
16:22
Updates to the command-line shell. Simplify the banner message. Add the ".save" command as an alias for ".backup". When starting with no arguments, include a banner message warning that the database is transient and in-memory and mention the ".open" command. (check-in: f5ad1e1b user: drh tags: trunk)
14:52
Version 3.8.3.1 (check-in: ea3317a4 user: drh tags: release, version-3.8.3.1, branch-3.8.3)
14:37
Fixes to the "editline" support in the command-line shell. (check-in: 7989ce5f user: drh tags: trunk)
05:26
Merge latest trunk changes. (check-in: 1f2e1b0c user: dan tags: deferred-open)
04:30
Sync the latest trunk changes, and in particular the STAT4 IS NOT NULL fix. (check-in: b0067926 user: drh tags: sessions)
03:55
Increase the version number to 3.8.3.1. (check-in: 3111df71 user: drh tags: branch-3.8.3)
03:50
Make sure that virtual WHERE-clause terms do not get transformed into real terms when processing set of OR-connected terms. Fix for ticket [4c86b126f22ad]. (check-in: de635e09 user: drh tags: branch-3.8.3)
01:50
Make sure that virtual WHERE-clause terms do not get transformed into real terms when processing set of OR-connected terms. Fix for ticket [4c86b126f22ad]. (check-in: c950d6c4 user: drh tags: trunk)
2014-02-10
21:09
Fix a bug causing the POWERSAFE_OVERWRITE device-characteristic flag to be set incorrectly if file opening is deferred. (check-in: 95d0c58d user: dan tags: deferred-open)
21:07
Fix a pointless conditional. Add a test case. (check-in: 9367632d user: drh tags: trunk)
19:59
Add the ".save" command as an alias for ".backup". Improvements to the way font changes are implemented on the in-memory database warning. (Closed-Leaf check-in: fe284afe user: drh tags: memdb-warning)
19:37
Experimental change to os_unix.c to delay creating a database file until it is first written. (check-in: 538f7b25 user: dan tags: deferred-open)
19:36
On unix, make the "transient in-memory database" text bold, but not red. Leave the text read on windows. (check-in: c9eba2f7 user: drh tags: memdb-warning)
19:27
In the command-line shell, on the banner, warn about the use of a transient in-memory database in bold red text. (check-in: 0fbc0fce user: drh tags: memdb-warning)
18:56
Fix the compound-select-to-subquery converter so that it works with the new compound-select object linkage introduced as part of the fix for ticket [31a19d11b97088296]. (check-in: 572d4be4 user: drh tags: trunk)
16:13
Modify the command-line shell to print a warning when using an in-memory database. (check-in: 90e9deae user: drh tags: memdb-warning)
15:56
Improvements to a "Synopsis:" comment in the VDBE engine. (check-in: 0dfa7ee9 user: drh tags: trunk)
12:59
Faster implementation for sqlite3MulInt64(). (check-in: 010c48f6 user: drh tags: trunk)
03:21
Faster and smaller implementation of sqlite3_value_type(). (check-in: 5708bc24 user: drh tags: trunk)
2014-02-09
23:59
Add a compound-query test to the speedtest1 test program. (check-in: 53299575 user: drh tags: trunk)
18:02
Use the WITH clause to help resolve names for SELECT statements on the left of a compound query. Proposed fix for ticket [31a19d11b97088296a]. (check-in: 67bfd59d user: drh tags: trunk)
00:52
Add the Mandelbrot Set testcase to the "cte" testset of speedtest1. (check-in: 56febbeb user: drh tags: trunk)
00:18
Add a new "testset" to the speedtest1 program: The sudoku solver. (check-in: 4677ef2f user: drh tags: trunk)
2014-02-08
23:20
Do away with the "multi-register pseudo-table" abstration. Instead, just use an OP_SCopy to load results directory from the result registers of the co-routine. (check-in: 1e64dd78 user: drh tags: trunk)
19:12
Change the OP_Found opcode so that it expands zero-blobs prior to comparing them. Fix for ticket [fccbde530a6583b] (check-in: e2303d1b user: drh tags: trunk)
13:24
Fix a harmless compiler warning in VS2013. (check-in: 83116ee3 user: drh tags: trunk)
13:22
Fix a harmless compiler warning in VS2013. (check-in: 35f2793d user: drh tags: branch-3.8.3)
13:12
Tweaks to the generated VDBE code to make it a little easier to follow. (check-in: 129217ee user: drh tags: trunk)
04:24
Enable constant expression factoring even if no tables are read and no transaction is started. (check-in: a45b8771 user: drh tags: trunk)
01:40
Change the OP_Trace opcode to OP_Init and give it the ability to jump to the initialization code at the bottom of the program, thus avoiding the need for an extra OP_Goto. (check-in: 192dea97 user: drh tags: trunk)
2014-02-07
22:21
Add opcodes OP_InitCoroutine and OP_EndCoroutine. Use these to remove the need for separate boolean registers to record when a co-routine has finished. (check-in: 5a88b6a7 user: drh tags: trunk)
19:33
Fix redundant definitions of _LARGE_FILE and _LARGEFILE_SOURCE. (check-in: 4043d879 user: drh tags: trunk)
19:26
In the TCL bindings, make sure Tcl_AppendResult() is always terminated by "(char*)0" and not just "0". (check-in: ea4d23d1 user: drh tags: trunk)
19:18
Change the OP_InitCoroutine instruction to jump over the co-routine implementation. (Closed-Leaf check-in: a522f364 user: drh tags: coroutine-refactor)
18:27
Get rid of the OP_Undef and OP_IsUndef opcodes in favor of higher-level OP_InitCoroutine and OP_EndCoroutine. (check-in: 1ec0e9dd user: drh tags: coroutine-refactor)
13:20
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. (check-in: 6fb74485 user: drh tags: coroutine-refactor)
03:28
More comment updates. No changes to code. (check-in: be24fbc2 user: mistachkin tags: trunk)
02:29
Update comments in vdbe.c. No changes to code. (check-in: 1122b410 user: drh tags: trunk)
2014-02-06
23:56
Delete the OP_VerifySchema opcode. Enhance OP_Transaction to do the schema version checks that OP_VerifySchema used to do. (check-in: 2f3376eb user: drh tags: trunk)
14:59
Change more OP_OpenEphemeral operations to OP_OpenHash. (Leaf check-in: 881164cf user: drh tags: subquery-codegen-refactor)
13:18
Change the spellfix1 virtual table to deterministically names its shadow tables. (check-in: 5219cdfc user: drh tags: trunk)
03:31
Use OpenHash instead of OpenEphemeral for the RHS of IN operators if the result is not needed for sorting. (check-in: 715fac77 user: drh tags: subquery-codegen-refactor)
02:46
Add additional error messages and a progress spinner to the ".clone" command. (check-in: dd0db3f0 user: drh tags: trunk)
01:15
Rename the '.repair' shell command to '.clone'. (check-in: 4f9d9562 user: mistachkin tags: trunk)
00:49
Add the ".repair" command to the command-line shell. (check-in: d1dfadea user: drh tags: trunk)
2014-02-05
19:10
Separate out the code generators for the RHS of an IN operator and for SELECT/EXISTS expressions. (check-in: 61c34ba7 user: drh tags: subquery-codegen-refactor)
18:15
Use a new opcode, OP_OpenHash, to indicate that ephemeral tables can be unordered, rather than using the BTREE_UNORDERED bit in the P5 field. (check-in: 2997e181 user: drh tags: subquery-codegen-refactor)
17:08
Make the root page of an ephemeral index be page 1 instead of page 2. (check-in: a332908b user: drh tags: subquery-codegen-refactor)
11:05
In the Win32 VFS, the winSysInfo variable should be static. (check-in: 4a4dd371 user: mistachkin tags: trunk)
2014-02-04
23:45
Do not mark the ephemeral tables used to hold the RHS of IN clauses as unordered because the NGQP will use those ephemeral tables to help order the output. This is not an issue for standard SQLite since ephemeral tables there are always ordered, regardless of the hint. It only affects systems that substitute an alternative storage engine. (check-in: f2504089 user: drh tags: trunk)
20:46
Remove the SF_Materialize flag from the SELECT object as it does not accomplish anything useful. (check-in: 65d5dcdd user: drh tags: trunk)
15:55
Rearrange fields in the Parse object for a tighter packing, resulting in an 8% size reduction on x64. (check-in: 3e1a3f68 user: drh tags: trunk)
2014-02-03
17:04
Performance optimizations in sqlite3PcacheFetch(). (check-in: b60cc11e user: drh tags: trunk)
14:04
Provide hints to the btree layer Next and Previous primitives to let them know if they can be no-ops if the underlying index is unique. (check-in: 6c643e45 user: drh tags: trunk)
13:58
Sync with version 3.8.3. (check-in: a704b65b user: drh tags: sessions)
13:52
Version 3.8.3 (check-in: e816dd92 user: drh tags: trunk, release, version-3.8.3)
13:49
Minor change to TEA extension docs in an attempt to make links work correctly. (check-in: af3c775e user: drh tags: trunk)
2014-01-31
11:50
Update the "sqlite3.1" unix manpage document. (check-in: 21ce9e3a user: drh tags: trunk)
06:35
Minor change to TEA extension docs in an attempt to make links work correctly. (Closed-Leaf check-in: 492585c8 user: mistachkin tags: teaDoc)
2014-01-30
17:47
Update evidence marks on SELECT tests. Comment changes only. No changes to code or tests. (check-in: 1973d80e user: drh tags: trunk)
15:03
Fix requirements marks only. No changes to code or tests. (check-in: 4a34378b user: drh tags: trunk)
14:10
Update a requirement mark and add some additional test cases to cover the requirement associated with ORDER BY and LIMIT on compound SELECT statements. (check-in: 8560091e user: drh tags: trunk)
12:45
Enhance the MSVC makefile for better debugging symbol support. (check-in: c9bef0f2 user: mistachkin tags: trunk)
12:16
Do not run test script mmapfault.test as part of the "inmemory_journal" permutation test. (check-in: b222b61a user: dan tags: trunk)
11:12
Enhance the MSVC makefile for better debugging symbol support. (Closed-Leaf check-in: c723ec27 user: mistachkin tags: msvcDebug)
2014-01-29
14:21
Merge latest fixes from the trunk. (check-in: 6b6dcd4c user: dan tags: sessions)
01:46
Make sure that sqlite3SelectDup() initializes the nSelectRow of the duplicate Select object. (check-in: 5bb29b82 user: drh tags: trunk)
2014-01-28
20:36
Fix harmless compiler warnings in the showdb utility program. (check-in: 27c27daa user: drh tags: trunk)
18:53
Fix a potential over-size and hence undefined shift operation. (check-in: 6379b072 user: drh tags: trunk)
18:06
Bring in the latest updates from trunk. (check-in: 7b5f3773 user: drh tags: sessions)
17:49
Minor bugfix in main.c so that the library builds with SQLITE_OMIT_WSD defined. (check-in: 5e3b9ecc user: dan tags: trunk)
00:49
Provide hints to the btree layer Next and Previous primitives to let them know if they can be no-ops if the underlying index is unique. (Leaf check-in: a2c347fa user: drh tags: branch-3.8.2)
2014-01-27
16:35
Fix a couple of problems with new test scripts causing the permutations test to fail. (check-in: 48d736c0 user: dan tags: trunk)
15:02
Update some requirements marks to conform with improvements in the documentation. (check-in: be1acb61 user: drh tags: trunk)
14:19
Fix a problem in pagerfault.test causing an assert() to fail. (check-in: ba8d2d50 user: dan tags: trunk)
13:58
Fix (harmless) duplicate variable declaration. (check-in: 94ed9bc4 user: drh tags: trunk)
08:48
Fix some problems in test scripts. No code changes. (check-in: 08acfc65 user: dan tags: trunk)
2014-01-25
12:16
Fix a problem causing SQLITE_OMIT_COMPOUND_SELECT builds to fail. (check-in: b30db0ac user: dan tags: trunk)
2014-01-24
22:58
Fixes for various clang warnings. (check-in: 87bf6063 user: drh tags: trunk)
20:37
Select collation sequences for ORDER BY expressions attached to recursive CTEs in the same way as they are selected for other compound SELECT statements. (check-in: 9554519c user: dan tags: trunk)
17:03
Fix harmless compiler warnings in the Tcl interface. (check-in: 35bc81f5 user: mistachkin tags: trunk)
16:57
Add test cases for LIMIT and ORDER BY on recursive CTEs. (check-in: 67d6c42d user: dan tags: trunk)
16:36
Use an unsigned integer to accumulate the string hash. Avoids compiler warnings. (check-in: b1824344 user: drh tags: trunk)
15:42
Add a few more CTE test cases to closure.test. (check-in: 1b6405d9 user: drh tags: trunk)
14:37
Add test cases that compare the performance of the transitive_closure virtual table again common table expressions for walking a tree. (check-in: 9a23f020 user: drh tags: trunk)
14:05
Bring in all the latest trunk changes, including the Common Table Expressions implementation. (check-in: 9b43e559 user: drh tags: sessions)
11:16
Add test cases showing the use of ORDER BY on a recursive query to control depth-first versus breath-first search of a tree. (check-in: 83b0b291 user: drh tags: trunk)
2014-01-23
14:44
Modifications to test files to omit any tests that intentionally access out-of-bounds locations in clang -fsanitize=address builds. (check-in: f4a701d5 user: dan tags: trunk)
2014-01-22
19:23
Avoid an extra seek when inserting records into the epheremal index used to ensure that rows returned by UNION recursive queries are unique. (check-in: 72c4b3f0 user: dan tags: trunk)
18:31
Fix harmless compiler warnings. (check-in: dea2ca6a user: drh tags: trunk)
18:16
Change the WITH RECURSIVE implementation to use a queue instead of a pair of tables. Add support for ORDER BY, LIMIT, and OFFSET on recursive queries. (check-in: b6cea420 user: drh tags: trunk)
18:07
Add support for LIMIT and OFFSET in a recursive query. (Closed-Leaf check-in: 1945484e user: drh tags: cte-via-queue)
17:43
Update the spellfix virtual table to optimize queries of the form "SELECT ... FROM tbl WHERE rowid=?". (check-in: a0ba55ff user: dan tags: trunk)
17:28
Get ORDER BY working for recursive queries. (check-in: 37b343b0 user: drh tags: cte-via-queue)
13:35
Add new SelectDest codes, SRT_Queue and SRT_DistQueue in anticipation of adding ORDER BY support on recursive queries. Factor out the recursive query code generator into a separate procedure. (check-in: 3eb5f9f8 user: drh tags: cte-via-queue)
10:22
Fix a typo in a comment. No changes to code or tests. (check-in: cceacc0e user: dan tags: cte-via-queue)
00:23
Remove an unnecessary parameter from selectInnerLoop(). Clean up comments. (check-in: 5e6c4a55 user: drh tags: cte-via-queue)
2014-01-21
22:25
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. (check-in: b2671e11 user: drh tags: cte-via-queue)
15:04
Remove the undocumented requirement for applications that use an SQLITE_ENABLE_SQLLOG build to define a sqlite3_init_sqllog() function. (check-in: 5e43bf01 user: dan tags: trunk)
01:13
Fix a couple comment typos and one overly long line. No functional changes. (Closed-Leaf check-in: c57deced user: mistachkin tags: level-pseudocolumn)
00:19
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. (check-in: cc1cb321 user: drh tags: level-pseudocolumn)
2014-01-20
19:55
In where.c, do not allocate space in sqlite3_index_info structures for the internal WHERE clause "terms" generated to record column equivalencies. Fix for ticket [1a1a194d1e5f8]. (check-in: 7d9e2218 user: dan tags: trunk)
18:25
Handle a few obscure problems that could manifest if a database corrupted in a certain way was written by a connection in the middle of a SELECT statement on the same db. (check-in: eba8a564 user: dan tags: trunk)
14:58
Remove an unused #define and add an assert(), both associated with WITH logic. (check-in: a06235e0 user: drh tags: trunk)
14:17
Do not run the tests in with2.test with SQLITE_OMIT_CTE builds. (check-in: 8a973912 user: dan tags: trunk)
2014-01-18
18:33
Add a sudoku solver to the recursive query tests in with1.test. (check-in: 679eff87 user: drh tags: trunk)
15:59
Add extra test cases. No changes to code. (check-in: d38d485e user: dan tags: trunk)
15:22
Add asserts() for a couple of unreachable conditions. Add the Mandelbrot Set query as a test case. (check-in: 2ad4583c user: drh tags: trunk)
08:27
Avoid spurious "no such table" errors in statements of the form "INSERT INTO tbl WITH xxx AS (...) SELECT * FROM xxx". (check-in: cccff8a0 user: dan tags: trunk)
2014-01-17
20:36
Add extra tests to with2.test. (check-in: eecc325a user: dan tags: trunk)
18:34
Minor simplification of error message text for a couple of errors associated with WITH clause processing. (check-in: 2031004d user: drh tags: trunk)
17:40
Resolve table names within CTEs in the context in which the CTE is declared, not the context in which it is used. (check-in: a7323838 user: dan tags: trunk)
16:19
Add tests that verify that keywords WITH, WITHOUT, and RECURSIVE can still be used as table and column names. (check-in: 9ca18a01 user: drh tags: trunk)
15:27
Fix a compiler warning in selectPopWith(). (check-in: c8eb1163 user: drh tags: trunk)
15:15
Add support for common table expressions (WITH clauses). (check-in: 0171e3bb user: dan tags: trunk)
14:59
Fix some problems to do with WITH clauses and name resolution. (Closed-Leaf check-in: 6a549187 user: dan tags: common-table-expr)
11:48
Remove some code from resolve.c that was only required for recursive cte references in sub-queries. Also a stray "finish_test" command in pagerfault.test. (check-in: f68c6c4d user: dan tags: common-table-expr)
2014-01-16
22:40
Add the ability for the authorizer callback to disallow recursive queries. (check-in: 9efc120a user: drh tags: common-table-expr)
21:59
Tweaks to error message text. (check-in: 090a77d9 user: drh tags: common-table-expr)
21:02
Improve the error messages used to report illegal recursive cte references. (check-in: 54eee9fe user: dan tags: common-table-expr)
18:34
Allow only a single recursive reference in a recursive CTE. Also require that this reference is not part of a sub-query. (check-in: a296b733 user: dan tags: common-table-expr)
15:31
Always use available indices to optimize LIKE operators even if the pattern of the LIKE operator has a COLLATE modifier. This fixes an ineffiency that was introduced into 3.7.15 by check-in [8542e6180d4] on 2012-12-08. (check-in: 16bd5478 user: drh tags: trunk)
10:58
Disable the flattening optimization if the parent query is the recursive part of a recursive CTE and the sub-query is a compound query. (check-in: 6bfa387e user: dan tags: common-table-expr)
04:37
Merge trunk changes. Fix a possible NULL-pointer deference in WITH clause name resolution. (check-in: 7f953b56 user: drh tags: common-table-expr)
2014-01-15
20:10
Remove an ALWAYS() that is no longer always true. (check-in: c95823cd user: drh tags: common-table-expr)
19:42
Fixes so that SQLITE_OMIT_CTE builds work. (check-in: 3908e2ea user: dan tags: common-table-expr)
18:35
Further comments on WITH-clause processing routines in select.c. (check-in: c948384d user: drh tags: common-table-expr)
18:23
Add a header comment to the searchWith() routine. (check-in: d9ae0f5d user: drh tags: common-table-expr)
18:21
Disable automatic indices on recursive CTE references. (check-in: 28aa6db8 user: dan tags: common-table-expr)
18:12
When resolving names, consider a reference to a recursive CTE column as equivalent to a reference to the outermost name-context. This ensures that correlated sub-queries are correctly identified as such. (check-in: 61be2da0 user: dan tags: common-table-expr)
15:27
Return an error if a CTE specifies a different number of columns than its SELECT statement returns. (check-in: 9a514b50 user: dan tags: common-table-expr)
14:40
Don't try to verify the schema of transient table (such as generated inside a WITH clause) when generating code for "IN table" operators. (check-in: 860aa936 user: drh tags: common-table-expr)
14:17
Disable the flattening optimization if the sub-query is a recursive CTE. (check-in: 9472f6d8 user: dan tags: common-table-expr)
02:40
Use the user-supplied table name in WITH RECURSIVE tables as the internal name of the table and the name of the table in VDBE comments. (check-in: a2933023 user: drh tags: common-table-expr)
00:24
Merge recent fixes from trunk. Cherrypick of [c43b59dac1], [a221aa82bb], [e1eba1fb09], and [1e131094b5]. (check-in: c697d2f8 user: mistachkin tags: branch-3.8.2)
2014-01-14
20:14
Add code to handle recursive CTEs. (check-in: a5c2a54a user: dan tags: common-table-expr)
10:17
Fix harmless compiler warning in LEMON. (check-in: f61a7058 user: mistachkin tags: trunk)
10:17
For the Win32 VFS, defining winShmMutexHeld should be controlled by NDEBUG, not SQLITE_DEBUG. (check-in: 1e131094 user: mistachkin tags: trunk)
2014-01-13
20:38
In the command-line shell, defend against a NULL-pointer dereference in the case where sqlite3_column_name() returns NULL (as might happen following an OOM error). (check-in: ac15455a user: drh tags: trunk)
20:32
For statements of just an unadorned VALUES clause, assign column names as "columnN" for increasing whole numbers N. (check-in: 260587d2 user: drh tags: trunk)
16:36
Fix some memory leaks and crashes that could follow an OOM condition during WITH clause parsing. (check-in: 8839850c user: dan tags: common-table-expr)
15:12
Add code to handle non-recursive CTEs in the same way as SQL views. (check-in: a26f399b user: dan tags: common-table-expr)
2014-01-11
19:19
Update the parser so that sub-queries and CTEs may have WITH clauses. (check-in: 704d3931 user: dan tags: common-table-expr)
13:22
Parse common table expressions. But do not do anything with them (yet). (check-in: da98b720 user: drh tags: common-table-expr)
12:52
In LEMON, limit the size of the grammar file to 100MB. This ensures that the program will never experience integer overflow. To be doubly sure, use calloc() instead of malloc() when allocating arrays. (check-in: 29ba458d user: drh tags: trunk)
03:54
Optimizations to the SQL language grammar that result in a small size reduction and speed increase. (check-in: cb5d1f83 user: drh tags: trunk)
03:27
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. (Aside: It is this change to avoid harmless compiler warnings that was the cause of the reason spat of bugs.) (check-in: 8eb48c04 user: drh tags: trunk)
03:13
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. (Closed-Leaf check-in: 4e4483b2 user: drh tags: buggy-lemon)
03:06
In LEMON, fix a bug in the text formatter introduced by the previous commit. Also add the new "%token_class" directive for defining symbolic names that stand any one of a collection of tokens. (Closed-Leaf check-in: da7890ca user: drh tags: lemon-updates)
2014-01-10
23:21
Do not use sprintf(), strcpy() or strcat() in the implementation of the lemon parser generator tool, to avoid compiler warnings in OpenBSD. (check-in: e43c522d user: drh tags: lemon-updates)
20:51
Remove unused structure definition from parse.y. (check-in: 7f1e7ae3 user: drh tags: trunk)
20:46
Allow a VALUES clause to be used any place that a SELECT statement can be used. (check-in: c9ea7d19 user: drh tags: trunk)
20:38
Fix CREATE TABLE ... AS so that it works with column names that are empty strings. (check-in: 632045f2 user: drh tags: trunk)
16:40
Fix another harmless compiler warning in unixUnfetch(). (check-in: 0484549b user: dan tags: trunk)
2014-01-09
13:39
Fix harmless compiler warning in unixUnfetch(). (check-in: 618f248f user: drh tags: trunk)
2014-01-06
18:32
Start a new experimental branch for support of Oracle-style CONNECT BY syntax. (Closed-Leaf check-in: 4365ddd6 user: drh tags: connect-by)
2014-01-04
20:00
Fix an typo that breaks the build when SQLITE_ENABLE_TREE_EXPLAIN is defined. (check-in: f461e2b3 user: drh tags: trunk)
19:58
Add the usual "fts3" prefix to new static method setEstimatedRows() in fts3.c. This fixes a problem when compiling the amalgamation, as the r-tree module also contains a static method named setEstimatedRows. (check-in: d6fcfc88 user: dan tags: trunk)
19:27
Avoid redundant register loads during index key generation when doing a DELETE or INTEGRITY_CHECK on a table with multiple indices. (check-in: 8f6e6149 user: drh tags: trunk)
16:49
Omit OP_Close operations that occur immediately prior to OP_Halt and which cannot be jumped over. (check-in: 874b7e99 user: drh tags: trunk)
15:17
Improvements to the column-cache for nested AND/OR operators. (check-in: 4e725f53 user: drh tags: trunk)
14:46
Have FTS assign extremely high costs to plans that feature unusable MATCH constraints. This discourages the planner from choosing such plans, which lead to "unable to use function MATCH in the requested context" errors. (check-in: fa8be488 user: dan tags: trunk)
14:42
Instead of having the planner ignore plans with unusable MATCH constraints, have FTS assign extremely high costs to such plans in order to discourage the planner from using them. (Closed-Leaf check-in: 24f84b38 user: dan tags: avoid-unusable-match)
14:16
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. (check-in: 19f3208b user: dan tags: avoid-unusable-match)
2014-01-03
16:03
Avoid some unnecessary OP_SCopy operations when inserting into a table with multiple indices. (check-in: 429018b1 user: drh tags: trunk)
2014-01-02
21:05
Try to factor constant subcomponents of the WHERE clause out of the loop. (check-in: 9d05777f user: drh tags: trunk)
19:35
Avoid unnecessary affinity transformations when building indices using data from a table. (check-in: 10d85135 user: drh tags: trunk)
17:57
Be more aggressive in optimizing constant conditional expressions. (check-in: b7e39851 user: drh tags: trunk)
2014-01-01
15:18
Try to detect process ID changes due to fork() calls in os_unix.c and reset the PRNG when a process ID change is detected. (check-in: e1eba1fb user: drh tags: trunk)
14:00
Enhance sqlite3_randomness(N,P) such that it resets the internal PRNG if N is less than 1. Subsequent calls to sqlite3_randomness() will reinitialize the internal PRNG by calling the xRandomness() method of the default VFS. (check-in: a221aa82 user: drh tags: trunk)
2013-12-24
12:09
Merge the latest trunk changes into the sessions branch. (check-in: cfd110bf user: drh tags: sessions)
12:04
Add -I. to the main.mk makefile for building sqlite3.o and speedtest1. (check-in: cc72c5ae user: drh tags: trunk)
2013-12-23
19:09
Move elements of the Vdbe object that are only used during statement preparation out into the Parse object. (check-in: c289a253 user: drh tags: trunk)
15:35
Make sure the WhereLoop.aLTerm[] array is large enough when processing the skip-scan optimization. Fix for ticket [520070ec7fbaac]. (check-in: ac5852d6 user: drh tags: branch-3.8.2)
11:33
Remove a stray tab character. (check-in: 25b8a1c9 user: drh tags: trunk)
2013-12-22
22:45
Remove a condition that is always in the logic that handles reading default values for columns. (check-in: 895af097 user: drh tags: trunk)
20:44
Make sure the WhereLoop.aLTerm[] array is large enough when processing the skip-scan optimization. Fix for ticket [520070ec7fbaac]. (check-in: 46d04059 user: drh tags: trunk)
2013-12-21
17:14
Fix speedtest1.c so that in --explain mode it only outputs non-explain text for DDL statements. (check-in: 2d2b3c49 user: drh tags: trunk)
17:07
Avoid compiler warnings by only enabling sqlite3ErrName() when SQLITE_TEST is defined. (check-in: 862228e5 user: drh tags: trunk)
16:06
Fix harmless compiler warnings in FTS4. This involved corrupting Martin Porter's beautifully written and elegant stemmer code, making it a little less beautiful and a little less elegant. Today is a sad day. But the warnings from GCC grow increasingly verbose and irksome with each new release and so something had to be done. (check-in: df056798 user: drh tags: trunk)
15:46
Fix the ".echo on" dot-command of the shell so that it echos comments in addition to SQL statements and dot-commands. Add the --explain option to speedtest1 so that the output can be piped into the command-line shell to show nicely-formated VDBE code for the entire test. (check-in: 96397263 user: drh tags: trunk)
00:04
Add a case to speedtest1.c that demonstrates the need to factor OP_Column operators out of inner loops. (check-in: 69a17336 user: drh tags: trunk)
2013-12-20
18:57
Fix compiler harmless warnings in tclsqlite.c that appeared with GCC 4.8.x. (check-in: d93ae683 user: drh tags: trunk)
18:44
Code simplification in sqlite3GenerateIndexKey() by making use of a subroutine found over in expr.c. (check-in: 0026d335 user: drh tags: trunk)
15:59
Combine adjacent single-register OP_Copy instructions into a single multi-register OP_Copy, where possible. Fix the Synopsis comment for multi-register OP_Copy instructions to show the correct register ranges. (check-in: 2ae22dc0 user: drh tags: trunk)
14:48
Allow any arbitrary expression as the filename in an ATTACH statement, including functions and subqueries. (check-in: df70a1f3 user: drh tags: trunk)
13:11
Simplify the accumulator reset for aggregate query processing so that it uses a single multi-register OP_Null rather than a separate OP_Null for each register. (check-in: 2c7fd9b0 user: drh tags: trunk)
2013-12-19
17:04
Do not inject OOM faults into SQLITE_FCNTL_COMMIT_PHASE_TWO file-control invocations. It causes problems for test scripts. (check-in: 8eb28d23 user: dan tags: trunk)
16:26
Make sure errors encountered while initializing extensions such as FTS4 get reported out from sqlite3_open(). This fixes a bug introduced by check-in [9d347f547e7ba9]. Also remove lots of forgotten "breakpoint" commands left in test scripts over the years. (check-in: ca3fdfd4 user: drh tags: trunk)
14:34
Remove an unneeded column-cache flush in aggregate SELECT and an unreachable branch in the INSERT logic. (check-in: ffa092e1 user: drh tags: trunk)
02:56
Omit an unnecessary OP_Null opcode from UPDATE. (check-in: 72d11133 user: drh tags: trunk)
02:23
Omit one or more pointless instructions that occur in between OP_NoConflict and OP_Halt. (check-in: 61e2f357 user: drh tags: trunk)
2013-12-18
18:44
Remove an unnecessary column-cache flush operation. Add code to trace the column cache when compiled with SQLITE_DEBUG and using PRAGMA vdbe_addoptrace=ON. (check-in: 58704ed1 user: drh tags: trunk)
16:27
Remove an unnecessary column-cache flush. Add another test case to the speedtest1.c program to accentuate the benefit of not flushing the cache at that point. (Closed-Leaf check-in: 97fdfc6b user: drh tags: column-cache-debug)
15:11
Show changes to the column cache when PRAGMA vdbe_addoptrace=ON is set. (check-in: 4c6a659c user: drh tags: column-cache-debug)
2013-12-17
16:32
Add evidence marks and additional test cases for the printf() SQL function. (check-in: 93121d30 user: drh tags: trunk)
16:10
Add the printf() SQL function. (check-in: a1bb62f9 user: drh tags: trunk)
15:58
Fix the formatting of %c in the printf() SQL function. (Closed-Leaf check-in: 3375571a user: drh tags: printf-sql-function)
15:03
Add the printf() SQL function. (check-in: 6db7052e user: drh tags: printf-sql-function)
2013-12-14
18:24
Merge in all recent preformance enhancements from trunk. (check-in: 32477642 user: drh tags: sessions)
13:44
Allow the SQLITE_DETERMINISTIC flag to be ORed into the preferred text encoding of application-defined functions, to mark the function as deterministic. (check-in: 5716fc23 user: drh tags: trunk)
2013-12-13
20:45
Performance optimizations in the pager_write() routine of pager.c. (check-in: bc5febef user: drh tags: trunk)
19:48
Reduce the number of calls to the subjRequiresPage() routine inside of pager. (check-in: e50ff39a user: drh tags: trunk)
19:35
Create and use a new pager interface sqlite3PagerUnrefNotNull() that works just like sqlite3PagerUnref() but guarantees that its argument is not a NULL pointer. (check-in: e00f37e2 user: drh tags: trunk)
18:50
Enhance the pcache1PinPage() routine so that it called much less often and runs much faster in the cases when it is actually called. (check-in: a845779c user: drh tags: trunk)
16:42
Avoid unnecessary calls to sqlite3_free() from within sqlite3VXPrintf(). (check-in: e2a8b280 user: drh tags: trunk)
16:23
Simplication and optimization of error message handling. (check-in: 9d347f54 user: drh tags: trunk)
2013-12-11
15:47
Add the SQLITE_FCNTL_SYNC and SQLITE_FCNTL_COMMIT_PHASETWO file-controls and have the pager call them at appropriate times. This is needed in order to enable ZIPVFS to do multi-file atomic commits. (check-in: 552f94d5 user: drh tags: trunk)
14:17
Merge in the latest trunk changes. (Closed-Leaf check-in: 9ff4dfe1 user: drh tags: zipvfs-multifile-commit)
14:00
Fix a bug in the shell ".import" command: Do not end the field when an escaped double-quote occurs at the end of a CRNL line. (check-in: 5e239ecd user: drh tags: trunk)
12:02
Remove an unreachable conditional inserted by the previous check-in. (check-in: 3e1d55f0 user: drh tags: trunk)
11:03
Have the crash-test infrastructure code in test6.c read and write the 512-byte block containing the pending-byte lock as normal. Earlier versions did not access this part of the file in order to avoid triggering an assert in os_unix.c. But the assert() has since been removed. And not reading/writing this part of the file causes problems for multiplexor tests. (check-in: fdc3f3fa user: dan tags: zipvfs-multifile-commit)
11:00
Fix harmless compiler warnings. (check-in: a7e5fcd6 user: drh tags: trunk)
02:21
Fix harmless compiler warning. (check-in: 2525296d user: mistachkin tags: trunk)
00:59
Do not run the tool/vdbe-compress.tcl script that generates the vdbeExecUnion object that reduces the size of the sqlite3VdbeExec() stack frame unless the SQLITE_SMALL_STACK compile-time option is specified as on of the OPTS in the makefile. The vdbeExecUnion object gets in the way of C-compiler optimizer and results in slightly slower code. (check-in: 4d078147 user: drh tags: trunk)
2013-12-10
21:38
Avoid unnecessary calls to sqlite3VdbeSerialType() from within sqlite3VdbeSerialPut(). (check-in: 079c04a5 user: drh tags: trunk)
20:53
In the OP_MakeRecord opcode, factor out affinity changes into separate loop, for a slight performance advantage. (check-in: 1c6ee9b8 user: drh tags: trunk)
19:49
Simplify and improve the performance of the sqlite3VdbeMemGrow() routine. (check-in: 48ecf187 user: drh tags: trunk)
17:34
Use SQLITE_FCNTL_SYNC instead of SQLITE_FCNTL_SYNC_OMITTED. Add documentation in for FCNTL_SYNC and FCNTL_COMMIT_PHASETWO. (check-in: 46231af9 user: dan tags: zipvfs-multifile-commit)
16:35
Merge changes from the trunk. (check-in: 3ee736a3 user: dan tags: zipvfs-multifile-commit)
16:27
Fix handling of errors returned by the SQLITE_FCNTL_OMIT_SYNCED file-control. (check-in: d9a5f44f user: dan tags: zipvfs-multifile-commit)
2013-12-09
23:17
Simplifications to the OP_MakeRecord opcode and the sqlite3VdbeSerialPut() helper function. (check-in: 7277a769 user: drh tags: trunk)
21:48
Correct the VFS name as reported by the file control when explicitly using the 'win32-longpath' VFS. (check-in: c43b59da user: mistachkin tags: trunk)
21:06
Reduce the number of times that OP_Column calls sqlite3VdbeMemMakeWriteable(). (check-in: 6b518635 user: drh tags: trunk)
20:43
Simplify the sqlite3BtreeKeyFetch() and sqlite3BtreeDataFetch() interfaces to the storage engine. (check-in: bf975985 user: drh tags: trunk)
20:42
Modify the way some internal file-controls are invoked. In order to support multi-file transactions in the zipvfs extension. (check-in: 32fb1784 user: dan tags: zipvfs-multifile-commit)
19:25
Minor performance optimizations in pager.c. (check-in: ba9eef5f user: drh tags: trunk)
19:03
Performance optimizations for sqlite3VXPrintf(). (check-in: 9227ad48 user: drh tags: trunk)
12:24
Fix an incorrect test number in the output of the speedtest1.c program. No changes to the test algorithms. (check-in: fbfc075a user: drh tags: trunk)
03:07
Avoid unnecessary (no-op) calls to sqlite3DbFree() from sqlite3VdbeMemRelease(). (check-in: 2d6dd7c2 user: drh tags: trunk)
02:32
Use memmove() rather than a home-made copy loop in insertCell() too. (check-in: a3d796b1 user: drh tags: trunk)
01:58
Use memmove() rather than a home-made copy loop in dropCell() of btree.c, for a size reduction and performance improvement. (check-in: 78e17068 user: drh tags: trunk)
01:04
Avoid unnecessary no-op calls from getAndInitPage() to btreeInitPage() in the btree.c logic. (check-in: 81f5ae13 user: drh tags: trunk)
00:47
Use putVarint32() instead of putVarint() for a quantity that can never exceed 2GiB - 1. (check-in: 6996fb34 user: drh tags: trunk)
2013-12-08
23:33
Another simplification to the OP_MakeRecord opcode, making it slightly faster and very slightly smaller. (check-in: f2f5a3ce user: drh tags: trunk)
22:59
Avoid unnecessary calls to sqlite3VarintLen() from the OP_MakeRecord opcode. (check-in: 7a234fc3 user: drh tags: trunk)
19:54
Interchange two conditions in an "if" statment in sqlite3PagerAcquire() for very slight (0.06%) overall performance increase. (check-in: fbcc1a3e user: drh tags: trunk)
2013-12-07
23:35
Do not allow cursor hints to use expressions containing subqueries. This change fixes the problem seen in the previous check-in. (check-in: bfefc575 user: drh tags: cursor-hints)
20:39
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. (check-in: 3a9bec52 user: drh tags: cursor-hints)
17:01
Increase the version number to 3.8.3. (check-in: 23d00f22 user: drh tags: trunk)
16:56
At the start of each journaled write transaction, check to see if the database file has been moved, and if it has refuse to start the transaction, returning an SQLITE_READONLY_DBMOVED error code. Writing to a moved or renamed database is still allowed when journal_mode is OFF or MEMORY. (check-in: 369a23e0 user: drh tags: trunk)
16:45
Back out the new device capability. The determination of whether or not a file has moved is now done strictly using a file-control. (Closed-Leaf check-in: 9c59f5af user: drh tags: detect-moved-db)
12:29
Actually look at i-node numbers to determine whether or not the database file has moved. (check-in: 2b1884dc user: drh tags: detect-moved-db)
2013-12-06
23:25
Performance optimization to the moveToRoot() subroutine in btree.c. (check-in: b5842a70 user: drh tags: trunk)
22:45
Use memcmp() instead of the BINARY collating function where possible, for a performance boost. (check-in: c5a3a1af user: drh tags: trunk)
22:44
Remove some commented-out code from sqlite3BtreeMovetoUnpacked() to try to make it more readable. (check-in: 2d62d113 user: drh tags: trunk)
19:58
Add the SQLITE_READONLY_DBMOVED error code to the sqlite3ErrName() function. (check-in: 7789f801 user: mistachkin tags: detect-moved-db)
17:23
Only error out on a database file move when attempting to start a write transaction. Assume read transactions are still safe. And make the error SQLITE_READONLY_DBMOVED instead of SQLITE_IOERR_NODB. (check-in: 28348f2a user: drh tags: detect-moved-db)
15:49
Update to the 3.8.2 release. (check-in: e579661a user: drh tags: sessions)
15:37
Add code to detect if the database file is moved or deleted out from under SQLite and return an SQLITE_IOERR_NODB. (check-in: 8759a8e4 user: drh tags: detect-moved-db)
14:53
Version 3.8.2 (check-in: 27392118 user: dan tags: trunk, release, version-3.8.2)
2013-12-05
17:12
Fix harmless compiler warnings and improve the MSVC makefile. (check-in: c6325670 user: drh tags: trunk)
16:41
Fix two potential (and apparently harmless) shift overflows discovered by the -fcatch-undefined-behavior option of clang. (check-in: e19eead8 user: drh tags: trunk)
2013-12-03
23:33
Make use of the CC nmake macro even when cross-compiling (with MSVC). (Closed-Leaf check-in: aae7b30e user: mistachkin tags: memTests)
22:33
Fix harmless compiler warnings. (check-in: a12d214e user: mistachkin tags: memTests)
22:32
Add memory subsystem related defines to the compile-time options list. (check-in: 52a44146 user: mistachkin tags: memTests)
20:51
Merge in trunk changes. (check-in: a2914d6b user: drh tags: sessions)
19:49
Remove a branch in STAT4 logic that is no longer reachable after the previous change. (check-in: eca7d3f1 user: drh tags: trunk)
19:16
Fix a possible (and probably harmless) uninitialized variable in STAT3/4. (check-in: 33ad4f91 user: drh tags: trunk)
18:26
Fix an alignment problem in the stat3/stat4 code affecting 32-bit platforms. (check-in: 14f9bc79 user: dan tags: trunk)
17:09
Fix a typo in fts3varint.test preventing the valgrind permutation test from running. (check-in: b654a4ec user: dan tags: trunk)
10:35
Modify test file conflict2.test so that it works with the "inmemory_journal" permutation. (check-in: e4164fd8 user: dan tags: trunk)
10:14
Remove an unnecessary branch from the UPDATE logic - one that was also unreachable except following an OOM on x64. (check-in: 72f97277 user: drh tags: trunk)
09:49
Add a "database_may_be_corrupt" directive to test file fuzz3.test. Reformat an assert() statement in vdbeaux.c to make its intent clearer. (check-in: 9d8a0e13 user: dan tags: trunk)
02:52
Change some unreachable test conditions to NEVER(). (check-in: 7d99858b user: drh tags: trunk)
00:11
Fix a harmless compiler warning on MacOS. (check-in: 74328de1 user: drh tags: trunk)
2013-12-02
21:58
Merge all recent 3.8.2 beta changes from trunk. (check-in: 67c34ccf user: drh tags: sessions)
21:25
Another #if SQLITE_VERSION_NUMBER macro in speedtest1.c for compatibility with older versions of SQLite. (check-in: bc8eacc7 user: drh tags: trunk)
01:24
Still more #if SQLITE_VERSION_NUMBER macros in test/speedtest1.c to enable compilation against older versions of SQLite. (check-in: 4b20cf42 user: drh tags: trunk)
2013-12-01
18:10
Add some #if SQLITE_VERSION_NUMBER macros to test/speedtest1.c in order to make it compatible with older versions of SQLite so that it can be used for historical speed comparisons. (check-in: a9e1627a user: drh tags: trunk)
01:18
Fix typos in the header comment on the sqlite3Atoi64() routine. (check-in: c85e0c54 user: drh tags: trunk)
2013-11-30
12:49
Detect a corrupt UnpackedRecord and return SQLITE_CORRUPT prior to calling sqlite3BtreeMovetoUnpacked(). (check-in: 55ec474d user: drh tags: trunk)
2013-11-29
15:39
Change the name of the CORRUPTIBLE macro to CORRUPT_DB. (check-in: f865be10 user: drh tags: trunk)
15:06
Add a new sqlite3_test_control() that indicates that database files are always well-formed. Use this during testing to enable assert() statements that prove conditions that are always true for well-formed databases. (check-in: 15e4f63d user: drh tags: trunk)
2013-11-28
19:28
Update a few test cases to account for the new error message formats. (check-in: 65a5bce3 user: dan tags: trunk)
14:14
Remove an assert() condition that may not be true if the database file is corrupt. Update a test case in corruptC.test. (check-in: 0bcf7551 user: dan tags: trunk)
06:17
Fix a test case in temptrigger.test so that it works in auto-vacuum mode. (check-in: c3b7a0e6 user: dan tags: trunk)
2013-11-27
21:53
Merge all recent trunk changes. (check-in: 3a2a1bd4 user: drh tags: sessions)
21:07
Remove unnecessary local variables from sqlite3VdbeExec() in order to reduce stack-space requirements of that routine. (check-in: 81891288 user: drh tags: trunk)
19:17
Update documentation of sqlite3_column() for clarity. Update evidence marks on test cases. (check-in: ec2d47a1 user: drh tags: trunk)
18:00
Fix spelling typo in speedtest1.exe. (check-in: ae90300e user: mistachkin tags: trunk)
14:50
Fix some harmless compiler warnings in speedtest1.exe. (check-in: c75f561f user: drh tags: trunk)
13:48
Additional test cases for skip-scan. (check-in: ce70803f user: drh tags: trunk)
13:24
Make sure the colWidth array is correctly initialized in the ".explain" command of the shell. (check-in: ceebcdca user: drh tags: trunk)
04:22
Lower the threshold for using skip-scan from 50 to 18, based on experiments that show that 18 is the approximate break-even point for a variety of schemas. (check-in: 83c0bb99 user: drh tags: trunk)
04:00
Avoid using the GetVersionEx functions if they are considered deprecated. (check-in: afdca299 user: mistachkin tags: trunk)
03:01
Avoid using the GetVersionEx functions if they are considered deprecated. (Closed-Leaf check-in: 0ea9e472 user: mistachkin tags: vs2013)
01:23
Add additional test cases for skip-scan. (check-in: 1ae4915d user: drh tags: trunk)
00:45
Add additional test cases and requirements evidence marks for WITHOUT ROWID. (check-in: b408d788 user: drh tags: trunk)
2013-11-26
23:27
Make sure the update hook is not invoked for WITHOUT ROWID tables, as the documentation specifies. This bug was found while adding requirements marks, so a few extraneous requirements marks are included in this check-in. (check-in: 0978bac6 user: drh tags: trunk)
22:46
Add requirements test cases for determining when an expression is true and when it is false. (check-in: 838654e5 user: drh tags: trunk)
21:18
Changing the CAST behavior of REAL values actually changed a documented requirement. So we also have to change the requirement evidence text to match. (check-in: d84aa44e user: drh tags: trunk)
18:22
Reduce the amount of code used to implement OP_SeekGe and similar. (check-in: 8b12a15a user: dan tags: trunk)
18:00
Merge in performance enhancements from trunk. (check-in: fc9ae839 user: drh tags: sessions)
16:51
Fix a possible NULL pointer deference in the wordcount test program. (check-in: 6f91dca0 user: drh tags: trunk)
16:48
Change tclsqlite3.c so that it never invokes ctype macros with signed character arguments. (check-in: c07caabf user: drh tags: trunk)
16:20
Do not try to run the atof1.test test script on ARM hardware which lacks the "long double" type. (check-in: fafca560 user: drh tags: trunk)
15:45
Change the REAL-to-INTEGER casting behavior so that if the REAL value is greater than 9223372036854775807.0 then it is cast to the latest possible integer, 9223372036854775807. This is sensible and the way most platforms work in hardware. The former behavior was that oversize REALs would be cast to the smallest possible integer, -9223372036854775808, which is the way Intel hardware works. (check-in: 6f53fc71 user: drh tags: trunk)
01:13
Fix comment. (check-in: 8364af39 user: mistachkin tags: winHdr)
01:00
Further work on Windows header file reform. (check-in: 540f5525 user: mistachkin tags: winHdr)
00:33
Merge updates from trunk. (check-in: c5ab4378 user: mistachkin tags: winHdr)
00:28
Better support for UTF-8 paths on Cygwin. (check-in: 9954327c user: mistachkin tags: trunk)
2013-11-25
23:42
Add SQLITE_CONFIG_WIN32_HEAPSIZE option to configure the maximum isolated heap size on Windows. (check-in: 914e6c9d user: mistachkin tags: trunk)
22:24
Change a while-loop into a do-loop in sqlite3VdbeRecordCompare() and add an assert() to verify that the do-loop really is appropriate. This gives about a 10% performance boost in that routine, or a 0.9% boost overall. (check-in: 011a6be4 user: drh tags: trunk)
21:49
Clarify docs for the SQLITE_CONFIG_WIN32_HEAPSIZE option. (Closed-Leaf check-in: 51e87607 user: mistachkin tags: winHeapSize)
21:41
Remove a NEVER() from a branch that is now reachable during OOM faults. (check-in: 18bdcb05 user: drh tags: trunk)
20:50
Optimizations to the sqlite3BtreeMovetoUnpacked() routine in storage engine making it about 17.8% faster, which in turn makes SQLite over 1.2% faster overall. (check-in: 032e8993 user: drh tags: trunk)
20:14
Return an SQLITE_CORRUPT error if the content size field of a table record extends off the end of a page. (Closed-Leaf check-in: b48c4e40 user: drh tags: btree-optimization)
17:38
Uses shifts rather than division for arithmetic on the cell indices, since those indices are always non-negative. (check-in: 5bf2a3fe user: drh tags: btree-optimization)
16:52
Optimize the skipping of the payload size field when doing a binary search for a rowid. (check-in: 55e5bfa2 user: drh tags: btree-optimization)
16:23
Arrange for sqlite3BtreeMovetoUnpacked() to always leave the cursor cell parse cache invalidated. This fixes issues with previous check-ins on this branch and also runs faster. (check-in: a7467560 user: drh tags: btree-optimization)
15:01
More optimizations to sqlite3BtreeMovetoUnpacked(). But there are failures in TH3. Committing this intermediate state to facilitate bisecting. (check-in: f80497be user: drh tags: btree-optimization)
14:10
More improvements to sqlite3BtreeMovetoUnpacked() performance. (check-in: 88680698 user: drh tags: btree-optimization)
09:37
Correct line-endings in the new header file. (check-in: 94219b9f user: mistachkin tags: winHdr)
09:36
Initial work on isolating usage of the Windows header file. (check-in: 0d42c6b8 user: mistachkin tags: winHdr)
02:38
Performance improvements in sqlite3BtreeMovetoUnpacked(). (check-in: d0fb7ace user: drh tags: btree-optimization)
2013-11-24
23:18
Better support for UTF-8 paths on Cygwin. (Closed-Leaf check-in: 484162b6 user: mistachkin tags: cygUtf8)
01:14
Add the --scratch parameter to speedtest1. Improved error messages when misconfiguring memory parameters in speedtest1. (check-in: 8f3c767a user: drh tags: trunk)
00:46
The MEMSYS5 algorithm does not have to return the block with the lowest address. Any block of the appropriate size will do. Use the first block found on the freelist for the appropriate size for a performance improvement. (check-in: 12e612e8 user: drh tags: trunk)
2013-11-23
22:45
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. (Closed-Leaf check-in: 8191b512 user: drh tags: memsys5-performance)
21:30
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. (Closed-Leaf check-in: 7d2cdfad user: drh tags: memsys5-performance)
21:29
Add newlines at the end of some error messages in speedtest1. (check-in: 6b98f0af user: drh tags: trunk)
11:45
Report errors from sqlite3_exec() and sqlite3_config() in speedtest1. Fix a bug in the main testing logic that was found by these error reports. (check-in: 659f1a98 user: drh tags: trunk)
04:32
Fix the order of parameters to SQLITE_CONFIG_PAGECACHE in the speedtest1.exe program. (check-in: dbe85ef6 user: drh tags: trunk)
04:22
Adjust MSVC makefile to avoid using forward slashes in file names. (check-in: facf6dea user: mistachkin tags: trunk)
04:16
Add the "speedtest1.exe" test program. (check-in: fb6f0c6d user: drh tags: trunk)
00:27
Add experimental sqlite3_config option to control the native Win32 heap size. (check-in: f09f11e9 user: mistachkin tags: winHeapSize)
2013-11-22
21:32
Fix harmless compiler warning. (check-in: f336c18f user: mistachkin tags: trunk)
00:49
Minor correction to the batch build tool for MSVC. (check-in: 22144c9d user: mistachkin tags: trunk)
2013-11-21
23:37
Fix a harmless clang warning in the command-line shell. (check-in: 3d47a556 user: drh tags: trunk)
22:02
Slight change to the --timer output on wordcount for better display on windows: Avoid showing the full pathname of the executable. (check-in: b9e047b9 user: drh tags: trunk)
21:59
Changes some offset and amount parameters from "int" to "u32" to avoid harmless signed/unsigned comparison warnings. (check-in: 4e8c5d07 user: drh tags: trunk)
21:40
Modify wordcount so that timer information appears on standard error instead of standard output. Rename the run-wordcount.bash script to run-wordcount.sh and simplify it so that it stands a better chance of running on non-GNU systems. (check-in: 586c11ed user: drh tags: trunk)
21:23
Do not reuse factored constants that might have had their encodings changed. (check-in: 487f2036 user: drh tags: trunk)
20:48
Fix the code generator to honor turning off constant expression factoring. (check-in: 88262266 user: drh tags: trunk)
19:27
Add the --timer option to the wordcount test program. (check-in: a89fdf87 user: drh tags: trunk)
19:05
Remove a test from sqlite3VdbeMemFromBtree() which was unnecessary, and after the recent OP_Column refactoring, unreachable. (check-in: 23667f3b user: drh tags: trunk)
17:24
Make sure the OP_Next and OP_NextIfOpen opcodes are numbered close together for efficiency in switch() statements. OP_Prev and OP_PrevIfOpen too. (check-in: d4ccf0f5 user: drh tags: trunk)
16:08
When one or more arguments to a function are constants, try to factor out just those arguments into initialization code. (check-in: 50d350ab user: drh tags: trunk)
14:44
Remove the obsolete TK_CONST_FUNC token type. (check-in: 9b4217f0 user: drh tags: trunk)
14:33
Add the ability to factor constant functions out of inner loops. But do not factor out non-constant functions, like random(). (check-in: 1b0f779e user: drh tags: trunk)
04:18
Another improvement to OP_Function and an improvement to OP_Move. (check-in: 70b056fb user: drh tags: trunk)
03:43
A simple change to the OP_Function opcode improves overall performance by about 0.5%. (check-in: b890eefd user: drh tags: trunk)
03:12
Performance optimization to the OP_Next and OP_Prev opcodes. (check-in: ecaac28a user: drh tags: trunk)
01:33
Refactor the OP_Column opcode to make it clearer and easier to maintain. Overall, performance tests show about a 1% speed increase with this change. (check-in: 972881c6 user: drh tags: trunk)
01:04
Reduce the size of VdbeCursor again, this time without a performance hit. (Closed-Leaf check-in: 93393993 user: drh tags: OP_Column-refactor)
00:10
Unpack some fields, adding some space back to the VdbeCursor object, in order to help the code to run a little faster. (check-in: f8d5efcd user: drh tags: OP_Column-refactor)
2013-11-20
21:51
Reduce the size of the VdbeCursor object from 144 to 120 bytes. (check-in: 5f9d5068 user: drh tags: OP_Column-refactor)
20:58
Improved comments on the OP_Column changes. Optimize out loading of overflow pages for content with zero length. Add test cases for the latter. (check-in: 0e05679d user: drh tags: OP_Column-refactor)
19:28
Further performance tweaks to OP_Column. (check-in: 0e3f5df6 user: drh tags: OP_Column-refactor)
17:25
Refactoring the OP_Column opcode for improved performance and maintainability. (check-in: 7c914e39 user: drh tags: OP_Column-refactor)
02:53
Simplifications to the VdbeCursor object. (check-in: 5562cd34 user: drh tags: trunk)
00:59
Performance improvement for the OP_MustBeInt opcode in the VDBE. (check-in: 96a65388 user: drh tags: trunk)
2013-11-19
18:17
Fix a harmless MSVC compiler warning. (check-in: 6cc023bb user: drh tags: trunk)
13:55
Minor performance improvement to sqlite3SerialTypeGet(). (check-in: 17e8524f user: drh tags: trunk)
12:33
Change Noop-comments in where.c into Module-comments, so that they are omitting without SQLITE_ENABLE_MODULE_COMMENTS. (check-in: 3e577f40 user: drh tags: trunk)
02:34
Avoid seeking on the main data table during the first loop of an UPDATE if an index is sufficient to check the WHERE clause. (check-in: 57158d9d user: drh tags: trunk)
00:31
Fix an requirement mark in a test script so that it matches the typo-corrected requirement. No changes to code. (check-in: 072412d5 user: drh tags: trunk)
2013-11-18
19:32
Add comments identifing where the skip-scan option is decided in the query planner, to aid in tuning that decision. No changes to code. (check-in: e9df04ce user: drh tags: trunk)
18:48
Fix documentation typos. No changes to code. (check-in: 7caeb09c user: drh tags: trunk)
11:20
Fix harmless compiler warnings from clang scan-build. (check-in: 8d002740 user: drh tags: trunk)
08:41
Fix a problem with the shell tool EXPLAIN indentation code and VDBE sub-programs. (check-in: 9c8d6856 user: dan tags: trunk)
03:11
Enable the ONEPASS optimization for DELETE, for both rowid and WITHOUT ROWID tables. (check-in: 44a07afd user: drh tags: trunk)
2013-11-17
02:42
Make sure one-pass DELETE for WITHOUT ROWID tables correctly positions the PRIMARY KEY cursor. Make the same fix for UPDATE. (Closed-Leaf check-in: 6bd5750b user: drh tags: optimize-delete)
2013-11-16
23:16
Fix a couple of minor problems with the new delete logic. (check-in: a11243f8 user: drh tags: optimize-delete)
23:03
Fix an OOM-recovery problem in the DELETE code generator. (check-in: dc7be158 user: drh tags: optimize-delete)
22:48
Combine the rowid and WITHOUT ROWID paths for DELETE into a single path. (check-in: c4734b88 user: drh tags: optimize-delete)
20:45
The one-pass optimization is now working for DELETE on WITHOUT ROWID tables. (check-in: e4d220a3 user: drh tags: optimize-delete)
20:13
Enhance the DELETE logic so that it can make use of WHERE_ONEPASS_DESIRED for rowid tables. (check-in: 8f479a72 user: drh tags: optimize-delete)
15:35
Fully constraint the ORDER BY on the top-10 line of the --summary output from the wordcount test program. Add the run-wordcount.bash script for running wordcount in various configurations. (check-in: 7edf39eb user: drh tags: trunk)
14:03
Avoid unnecessary OP_IfNull checks when doing a range query where there is a constraint on the lower bound of the range. (check-in: de08a7e7 user: drh tags: trunk)
13:55
Simplification and performance improvement to the logic that factors constant expressions ouf of inner loops. (check-in: ee9353fd user: drh tags: trunk)
12:56
Fix testcase misc7-16 so that it works with the new UNIQUE constraint error message format. (check-in: c7f2ed9f user: drh tags: trunk)
2013-11-15
20:06
Add ALWAYS and NEVER macros to currently unreachable but important branches in sqlite3ExprCompare(). (Closed-Leaf check-in: cee835fe user: drh tags: expr-codegen-enhancement)
19:00
Merge the operator comment fixes from trunk. (check-in: 9f14f55c user: drh tags: expr-codegen-enhancement)
18:58
Fix comments on the OP_Divide and OP_Remainder operators, especially the "Synopsis:" comment, so that they agree with the actual implementation. (check-in: cc17f1f0 user: drh tags: trunk)
18:15
Changes to make the new constant expression factoring logic more general and more testable. (check-in: d10fb49a user: drh tags: expr-codegen-enhancement)
16:48
Add test cases for INSERT INTO ... DEFAULT VALUES on tables with numeric constants in CHECK constraints. (check-in: 79ec485b user: drh tags: expr-codegen-enhancement)
15:52
Improvements to the Expr comparison routine to make it more general. Improvements to unary-minus code generation so that it can make use of a global constant register with a zero value. (check-in: 835be656 user: drh tags: expr-codegen-enhancement)
13:12
Add the --query option to the wordcount test program. (check-in: 5960d11e user: drh tags: trunk)
12:41
Simplify the range scan code generate while also avoiding an unnecessary OP_Affinity opcode. (check-in: 372686bf user: drh tags: expr-codegen-enhancement)
03:30
Merge EXPLAIN fixes from trunk. (check-in: cd579727 user: drh tags: expr-codegen-enhancement)
03:21
Fix a typo in the "synopsis" for the OP_Lt opcode that causes an incorrect comment to be added to EXPLAIN output. (check-in: d99a30a2 user: drh tags: trunk)
03:16
Another adjustment to the EXPLAIN indentation logic, in order to deal with the sorter loop on a CREATE INDEX statement. (check-in: cbe85cc2 user: drh tags: trunk)
01:10
Rework the logic that factors constant expressions out of inner loops, making it both simpler and faster. (check-in: 8dc5c76c user: drh tags: expr-codegen-enhancement)
2013-11-14
23:59
Adjust the command-line shell EXPLAIN indentation logic to handle the second loop of an UPDATE that reads out a RowSet. (check-in: ea141a9b user: drh tags: trunk)
19:34
Remove an unused local variable. (check-in: 10d59226 user: drh tags: trunk)
19:18
Merge the skip-scan optimization into the sessions branch. (check-in: 7596d1bf user: drh tags: sessions)
15:35
An experimental virtual tables for showing the content of internal schema objects. (Leaf check-in: d1fbc6ca user: drh tags: schema2-vtab)
00:09
Simplification to the progress callback check. One branch removed. (check-in: 24ef1654 user: drh tags: trunk)
2013-11-13
23:48
Make sure the progress callback is invoked prior to an SQLITE_ROW return if it is overdue to be called. (check-in: 21f59b04 user: drh tags: trunk)
20:46
Merge the skip-scan enhancement into trunk. (check-in: b0bb975c user: drh tags: trunk)
19:01
Import the "PRAGMA vdbe_eqp" enhancement and the enhanced EXPLAIN formatting the shell from trunk. Fix a bug in skip-scan and add a test case to prevent a regression. (Closed-Leaf check-in: f668616a user: drh tags: skip-scan)
18:35
In the shell tool, if an "EXPLAIN" command is executed in ".explain on" mode, attempt to automatically indent the bodies of loops in the output VDBE program. (check-in: e7d34ec6 user: dan tags: trunk)
17:58
Add the "PRAGMA vdbe_eqp" command, only available with SQLITE_DEBUG. Simplify some of the other debugging logic. (check-in: 8ce33f4c user: drh tags: trunk)
17:24
Add VDBE comments to the beginning and end of skip-scan loops. (check-in: 0c85d93b user: drh tags: skip-scan)
16:58
Improve the way that skip-scan loops are constructued. Add test cases. Improved the scoring of skip-scan loops. (check-in: 5e75ab93 user: drh tags: skip-scan)
15:32
Add test cases for skip-scan. Enhance "do_test" so that if the expected result is of the form "/*..*/" or "~/*..*/" it treats the expected result as a glob pattern rather than as a regular expression. Fix a bug in ANALYZE result loading associated with WITHOUT ROWID tables. (check-in: d3e6e9b2 user: drh tags: skip-scan)
12:27
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. (check-in: 27dd5993 user: drh tags: skip-scan)
08:55
Avoid an unnecessary OP_IfNull while doing an indexed search. (check-in: 51960009 user: drh tags: trunk)
2013-11-12
21:37
Adjust the SQLITE_MALLOCSIZE defines, primarily to make sure _msize gets used with MSVC when appropriate. (check-in: 4e7e805e user: mistachkin tags: trunk)
21:10
Fix harmless compiler warning. (check-in: ddacd101 user: mistachkin tags: trunk)
20:18
Minor enhancements to the auxiliary information added to EXPLAIN output with SQLITE_EXPLAIN_ENABLE_COMMENTS. (check-in: 0d1328e3 user: drh tags: trunk)
18:37
Break out the structure and macro definitions of where.c into a separate header file whereInt.h for easier editing and debugging. (check-in: c4446712 user: drh tags: trunk)
17:46
When possible, have FTS use 32-bit operations to read varints from the database. (check-in: aa7ba302 user: dan tags: trunk)
15:39
Import recent bug fixes from trunk. (check-in: 20eeee4c user: drh tags: sessions)
15:33
A better (simpler) fix to the count(*) problem addressed in the previous check-in. (check-in: 0f924c6e user: drh tags: trunk)
14:55
Make sure the count(*) optimization works correctly on WITHOUT ROWID tables. (check-in: 91174779 user: drh tags: trunk)
12:30
Update test command [explain_i] to handle the opcodes used by virtual tables (VNext, VFilter etc.). (check-in: 1b215ee3 user: dan tags: trunk)
12:17
Fix for [4065ac8595]: Do not order CROSS or LEFT joins, even if the right-hand-side is a virtual table. (check-in: e2684ece user: dan tags: trunk)
01:11
Fix an error message in the spellfix extension so that it conforms to the style of error messages in the core. (check-in: b896ae3d user: drh tags: trunk)
2013-11-11
23:26
Add a comment to the sqlite3_index_info structure indicating that the new field is only available in SQLite 3.8.2 or later. (check-in: 239648f8 user: drh tags: trunk)
23:02
Fix two test cases (due to changes in the formatting of constraint errors) so that all tests now pass. (check-in: 129e2b69 user: drh tags: sessions)
22:55
Merge in the WITHOUT ROWID changes. A few tests are failing now. They will be fixed in a follow-on check-in. (check-in: 5addd123 user: drh tags: sessions)
19:56
Fix typos in compile and run-time tests of the sqlite library version number in rtree.c. (check-in: f58d5701 user: dan tags: trunk)
19:01
Add a way for virtual tables to return the expected number of rows for a scan (not just the overall cost) to SQLite. Have the rtree module make use of this. (check-in: 5a3cfd74 user: dan tags: trunk)
16:55
Remove unreachable code, replacing it in most cases with assert() or NEVER() macros. (check-in: 924d63b2 user: drh tags: trunk)
03:37
Fix issue with several memory allocation tests due to KeyInfo allocations now being shared. (check-in: 569fedd6 user: mistachkin tags: trunk)
03:24
Convert several ALWAYS() macros in vdbe.c into assert() statements. (check-in: acc40ff6 user: drh tags: trunk)
02:46
Fix several harmless compiler warnings. (check-in: e6ff492f user: mistachkin tags: trunk)
01:42
Modify a HeapValidate assert in the Win32 native allocator. (check-in: aaed7d1d user: mistachkin tags: trunk)
00:43
Fix a problem in OP_IdxDelete as used by REPLACE conflict resolution that comes up due to recent enhancements that reduce the work required for UNIQUE NOT NULL indices. (check-in: 61d7d475 user: drh tags: trunk)
2013-11-10
00:03
Fix typo in comment and remove superfluous blank line. No changes to code. (check-in: 023233f1 user: mistachkin tags: trunk)
2013-11-09
23:55
Fix compilation errors with some compilers that do not reference recent Windows SDK header files. (check-in: a5805976 user: mistachkin tags: trunk)
23:44
Fix memory type mismatch when compiled with MEMDEBUG. (check-in: 2c32bd6d user: mistachkin tags: trunk)
22:08
Add the sqlite3_win32_compact_heap() function for cleaning up memory allocations on Win32 system. Also cleanup the winGetTempname() function. Changes to the Win32 VFS only. (check-in: d06d9fdb user: drh tags: trunk)
21:19
Updates to documentation on sqlite3_last_insert_rowid(). No changes to code. (check-in: a4c5804e user: drh tags: trunk)
21:11
Use the UNICODE_STRING_MAX_CHARS constant from WinNT.h. (Closed-Leaf check-in: 3fefe4dd user: mistachkin tags: win32heap)
21:10
Furhter cleanup of the winGetTempname function. (check-in: 674de36b user: mistachkin tags: win32heap)
19:47
Updates to requirements marks. No changes to code. (check-in: 8a036628 user: drh tags: trunk)
18:15
Throw an error if AUTOINCREMENT appears in a WITHOUT ROWID table. Updates to API documentation to discuss WITHOUT ROWID. (check-in: b1abb2b0 user: drh tags: trunk)
2013-11-08
20:10
Add more assert() statements and fix compilation issues when the Win32 native heap is not enabled. (check-in: fbf8c382 user: mistachkin tags: win32heap)
19:51
Disable use of HeapCompact on Windows CE as it is not available on all versions. (check-in: e9694b87 user: mistachkin tags: win32heap)
18:52
Adjust the winMemInit return code handling used when resetting the Win32 native heap. (check-in: 37853665 user: mistachkin tags: win32heap)
18:37
Minor corrections to logging for sqlite3_win32_compact_heap(). (check-in: 71347d02 user: mistachkin tags: win32heap)
18:13
Enhancements to the Win32 native heap integration. (check-in: c54dc967 user: mistachkin tags: win32heap)
17:13
Fix harmless compiler warnings. (check-in: 0077c077 user: drh tags: trunk)
17:03
Merge the Cygwin directory separator fix. Also fix a C++-ism in the multiplexor code so that it will compile on MSVC. (check-in: 830629d3 user: drh tags: trunk)
16:54
Performance improvement: Avoid unnecessary seeks on REPLACE INTO for a WITHOUT ROWID table. (check-in: fd11afa5 user: drh tags: trunk)
15:19
Performance improvements: Avoid unnecessary seeks when doing a single-row UPDATE on a WITHOUT ROWID table. (check-in: 6f187a0f user: drh tags: trunk)
12:14
Merge change to drop the mutex on the multiplexor before entering the xRead VFS call, in order to enhance parallelizability. (check-in: 3c566e41 user: drh tags: trunk)
01:09
Optimize out a NotExists/NotFound opcode that occurs in UPDATE processing after constraint checks if there is no possiblity that the constraint checking code might have moved the cursor. (check-in: 74e3ee2e user: drh tags: trunk)
00:16
On the --summary output of wordcount, add the a PRAGMA integrity_check and a 64-bit checksum of the entire table. (check-in: 1d1d13b8 user: drh tags: trunk)
2013-11-07
23:23
Add many new options to the wordcount test program: --delete, --pagesize, --cachesize, --commit, --nosync, and --journal. (check-in: e938112d user: drh tags: trunk)
22:11
Fix temporary directory separator handling for Cygwin. (Closed-Leaf check-in: 9d870d5f user: mistachkin tags: cygDirSep)
21:32
Fix a compiler warning introduced by the previous check-in. (check-in: 404bd98f user: drh tags: trunk)
21:25
Enable the WHERE_ONEPASS_DESIRED optimization for UPDATE operations on WITHOUT ROWID tables. (check-in: 21530798 user: drh tags: trunk)
19:43
Add the --stats and --summary options to the wordcount.c test program. (check-in: 8aa21e67 user: drh tags: trunk)
18:40
Increase the version number to 3.8.2. (check-in: 9ad5b74c user: drh tags: trunk)
18:37
Add the "wordcount.c" test program. (check-in: f02ee546 user: drh tags: trunk)
16:08
Add support for WITHOUT ROWID tables. This change also includes (1) standardization of the error message returned from run-time constraint errors, (2) improved EXPLAIN comments, (3) the SQLITE_ENABLE_EXPLAIN_COMMENTS option, (4) the SQLITE_ENABLE_MODULE_COMMENTS option, and (5) a bug fix (see [573cc27427]) in the handling of REPLACE on the rowid when secondary indices use FAIL or IGNORE. (check-in: c80e229d user: drh tags: trunk)
14:09
Make sure cached KeyInfo objects are only valid for a single database connection. Clear all cached KeyInfo objects on any collating sequence change. (Closed-Leaf check-in: 55eea178 user: drh tags: omit-rowid)
2013-11-06
19:59
Reference count the KeyInfo object. Cache a copy of an appropriate KeyInfo for each index in the Index object, and reuse that one copy as much as possible. (check-in: defd5205 user: drh tags: omit-rowid)
16:28
Have the OP_NoConflict opcode set the VdbeCursor.seekResult variable. This speeds up subsequent OP_Insert and OP_IdxInsert opcodes. (check-in: 47455500 user: dan tags: omit-rowid)
14:52
Use ansi escape codes to use different colored text for opcode names in the output of [explain_i]: Red for opcodes that insert or delete b-tree elements, blue for opcodes that move cursors and green for the ResultRow opcode. (check-in: 4be2b64b user: dan tags: omit-rowid)
14:36
Allocate extra stack space for UnpackedRecord objects, reducing the need to malloc for them as often, and thereby get a performance improvement. (check-in: a725a75f user: drh tags: omit-rowid)
14:05
Minor optimization to the OP_Halt opcode. (check-in: d70c7881 user: drh tags: omit-rowid)
12:56
Improved ORDER BY optimization for WITHOUT ROWID tables. (check-in: 8f1709ff user: drh tags: omit-rowid)
12:05
Disable the OR optimization for WITHOUT ROWID tables, since it relies on the use of rowids. (check-in: 6055dad2 user: drh tags: omit-rowid)
11:46
Remove an incorrect test case from conflict2.test. (check-in: 427612ef user: drh tags: omit-rowid)
02:36
Remove an unused variable. (check-in: e9c1e419 user: drh tags: omit-rowid)
2013-11-05
22:39
Make sure the query planner knows that the PRIMARY KEY index of a WITHOUT ROWID table is always a covering index. (check-in: 03e7019e user: drh tags: omit-rowid)
19:41
Fix conflict handling for the case when the rowid uses REPLACE but other unique constraints use FAIL or IGNORE. (check-in: 573cc274 user: drh tags: omit-rowid)
17:30
Fix a bug in secondary index initialization when the secondary index is a superset of the PRIMARY KEY for a WITHOUT ROWID table. (check-in: 52a3d885 user: drh tags: omit-rowid)
16:56
Remove an "explain" command from test script without_rowid1.test that was accidentally committed. (check-in: 4b41d989 user: dan tags: omit-rowid)
16:39
Unless the destination table is completely empty, disable the xfer optimization for WITHOUT ROWID tables. (check-in: 3877c9f5 user: dan tags: omit-rowid)
15:02
Updates to the backcompat.test test script so that it works with really old (3.6.*) versions. (check-in: ace7e7b6 user: dan tags: omit-rowid)
14:19
Add tests for updates of without-rowid tables that use non-BINARY collation sequences for the primary key columns. And a minor bugfix to the same. (check-in: 99b1fa4b user: dan tags: omit-rowid)
13:33
Standardize the error messages generated by constraint failures to a format of "$TYPE constraint failed: $DETAIL". This involves many changes to the expected output of test cases. (check-in: 54b22192 user: drh tags: omit-rowid)
01:59
Add the conflict2.test script. Fix issues discovered by this script. (check-in: 294ed337 user: drh tags: omit-rowid)
2013-11-04
22:04
Add the index7.test script for testing partial indices with WITHOUT ROWID tables. Fix bugs in ANALYZE located by that script. (check-in: 79befe3a user: drh tags: omit-rowid)
21:44
Bug fixes in the INSERT constraint checker. Refactor the Rowid handling logic for ANALYZE with STAT3/4. (check-in: 1ea43c0f user: drh tags: omit-rowid)
18:34
Add another test case file for WITHOUT ROWID and fix the bugs that the new test file uncovered. (check-in: bc2a06eb user: drh tags: omit-rowid)
17:00
Fix a problem with processing INTEGER PRIMARY KEY on a WITHOUT ROWID table. (check-in: 89098e6d user: drh tags: omit-rowid)
15:23
Correctly handle changing counting when inserting and deleting on WITHOUT ROWID tables. Add more FOREIGN KEY test cases. (check-in: d072bcd0 user: drh tags: omit-rowid)
13:56
Correctly handle self-referential foreign keys on WITHOUT ROWID tables. (check-in: af128862 user: drh tags: omit-rowid)
08:56
Fix a bug preventing FTS from correctly processing bracket tokens that are immediately preceded by characters that are neither whitespace or token characters. (check-in: 49be646c user: dan tags: trunk)
2013-11-03
02:27
Improved comments on foreign key logic. (check-in: 1315d910 user: drh tags: omit-rowid)
2013-11-02
22:29
Improved Synopsis on register comparison operators. Fix a bug on the constraint check generator. (check-in: a7a18b65 user: drh tags: omit-rowid)
22:09
Many new test cases added, that mostly work. Currently 18 errors in without_rowid3.test. Also there is a hack marked by a /*FIXME*/ comment on at fkey.c:547 that needs fixing. (check-in: 39e32187 user: drh tags: omit-rowid)
19:34
Change the "idx" name of the primary key index for WITHOUT ROWID tables in sqlite_statN statistics tables to be the name of the table rather than the fabricated index name (ex: sqlite_autoindex_xyz_1). This makes it consistent with sqlite_master table. (check-in: 4ee4d310 user: drh tags: omit-rowid)
18:46
Update the ANALYZE logic so that it works with WITHOUT ROWID tables. (check-in: 9075770e user: drh tags: omit-rowid)
14:37
Store the root page of the PRIMARY KEY index for a WITHOUT ROWID table in the sqlite_master entry for the main table and omit the sqlite_master entry for the PRIMARY KEY. (check-in: b7544bb2 user: drh tags: omit-rowid)
11:43
Import the sqlite3_analyzer fixes from trunk. (check-in: ac711459 user: drh tags: omit-rowid)
11:34
A pair of sqlite3_analyzer bug fixes: (1) quote strings in the SQL at the end of the output. (2) Fix test_stat.c so that it no longer misses some overflow pages on internal index pages. (check-in: 42a11e74 user: drh tags: trunk)
2013-11-01
22:02
Size KeyInfo objects so that IdxInserts always compare the correct number of fields. (check-in: 302a8139 user: drh tags: omit-rowid)
20:30
Fix sqlite3_analyzer so that it works with WITHOUT ROWID tables. Fix index generation for secondary indices that include fields from the PRIMARY KEY. (check-in: f9769d70 user: drh tags: omit-rowid)
18:14
Additional UPDATE test cases for WITHOUT ROWID. (check-in: 65384ae0 user: drh tags: omit-rowid)
17:59
Fix an invalid cast operation in the WITHOUT ROWID parsing logic. (check-in: 845153be user: drh tags: omit-rowid)
17:21
Merge all changes from trunk, and disable a pair of corruption tests that are no longer valid since sqlite_master.rootpage can now be NULL for tables. (check-in: dd5d57b9 user: drh tags: omit-rowid)
17:08
Change the interface to sqlite3GenerateConstraintChecks() for improved lucidity and to fix issues in dealing with UPDATEs for WITHOUT ROWID tables. Make sure iDataCur and iIdxCur are initialized when processing DELETEs of a VIEW. UPDATE processing distinguishes between changes to ROWID and PRIMARY KEY. (check-in: c525ac56 user: drh tags: omit-rowid)
14:03
Improved VDBE comments on the constraint checker. Fix a missing write lock in the UPDATE logic. (check-in: 3bed599e user: drh tags: omit-rowid)
12:42
Some UPDATE statements now working in WITHOUT ROWID tables. (check-in: 5c0eaea6 user: drh tags: omit-rowid)
01:45
A couple of bug fixes. (check-in: cdf00248 user: drh tags: omit-rowid)
2013-10-31
20:34
Fix the Synopsis on OP_Concat. Added test_addop_breakpoint() during SQLITE_DEBUG. Enhanced sqlite3VdbeChangeToNoop() to omit the instruction if it is the most recent added. Continue to fix problems with UPDATE and WITHOUT ROWID. (check-in: 9b6d9e10 user: drh tags: omit-rowid)
18:49
Fix a problem in os_unix.c causing compilation failure if SQLITE_DEBUG and SQLITE_MAX_MMAP_SIZE=0 are both defined. (check-in: 090db8c8 user: dan tags: trunk)
17:38
Fix issues with quering from an auxiliary index that must refer back to the PRIMARY KEY index of a WITHOUT ROWID table. (check-in: cff1f55c user: drh tags: omit-rowid)
15:37
Improved comments and variable names in infrastructure routines of UPDATE, DELETE, and INSERT. (check-in: ad90e762 user: drh tags: omit-rowid)
12:13
Moving UPDATE towards the iDataCur/iIdxCur representation. Still not working for WITHOUT ROWID, though. (check-in: deacbd21 user: drh tags: omit-rowid)
11:15
Refactor the INSERT, DELETE, and UPDATE code generators to distinguish between the "data cursor" and the "first index cursor", which are no longer consecutive in the case of a WITHOUT ROWID table. (check-in: 1adfca60 user: drh tags: omit-rowid)
06:39
Update comments in the MSVC batch build tool. (check-in: 0414bb73 user: mistachkin tags: trunk)
06:13
Enable some more tests on Windows. (check-in: 72389c29 user: mistachkin tags: trunk)
06:11
Fix harmless compiler warnings. (check-in: 1a0a8865 user: mistachkin tags: trunk)
2013-10-30
20:22
Continue working to get UPDATE operational for WITHOUT ROWID tables. Fix PRAGMA integrity_check so that it works on WITHOUT ROWID tables. (check-in: 0d4fea74 user: drh tags: omit-rowid)
15:52
Make sure KeyInfo objects on multi-column indices of WITHOUT ROWID tables have the correct nField and nXField values. Also, add the SQLITE_ENABLE_MODULE_COMMENT compile-time option and the VdbeModuleComment() macro and use it to label entry and exit points of some key routines. (check-in: 6d9af606 user: drh tags: omit-rowid)
13:46
In the P4 column of the EXPLAIN listing, abbreviate "keyinfo" as just "k" and "BINARY" as just "B". (check-in: 72d45eb7 user: drh tags: omit-rowid)
12:43
Enhance the timer in the shell to show wall-clock time in addition to user and kernel CPU time. (check-in: 908e2c21 user: drh tags: trunk)
12:30
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). (Leaf check-in: 5530cdc4 user: dan tags: shell-wall-clock)
03:25
Add the "Esri Spatially-Enabled Database" file format to the magic.txt file. (check-in: 8530a18f user: drh tags: trunk)
02:37
Merge EXPLAIN enhancements from trunk. (check-in: 2fcac056 user: drh tags: omit-rowid)
02:28
Add the SQLITE_ENABLE_EXPLAIN_COMMENTS compile-time option to enable extra commentary in the EXPLAIN output. Formerly, this was only available with SQLITE_DEBUG. (check-in: e1a89b56 user: drh tags: trunk)
00:25
Enhanced display of register ranges in the auxiliary comments added to EXPLAIN. (check-in: d6b0c392 user: drh tags: trunk)
2013-10-29
20:47
Import the automatic comment generating changes from trunk. (check-in: 8bb51da1 user: drh tags: omit-rowid)
20:40
Automatically generated comments on many VDBE opcodes when in SQLITE_DEBUG mode. Comments derive from the "Synopsis:" field added to each opcode definition in vdbe.c. (check-in: 5f310c6a user: drh tags: trunk)
16:14
Improved comments on the constraint checking logic. (check-in: 141a38a7 user: drh tags: omit-rowid)
2013-10-28
22:47
Merge all trunk changes since 3.8.1 into the sessions branch. (check-in: aa72ea8a user: drh tags: sessions)
22:39
Merge recent fixes from trunk. (check-in: 9f8191d1 user: drh tags: omit-rowid)
22:33
Formatting improvements to the WHERE-clause constraint display in the wheretrace debugging logic. (check-in: 3a9e3ed9 user: drh tags: trunk)
20:38
Add regression tests for ticket [c620261b5b5]. (check-in: 05a35b09 user: drh tags: trunk)
20:15
Do not use transitive WHERE-clause constraints on LEFT JOINs. Fix for ticket [c620261b5b5dc]. (check-in: 9aac4e58 user: drh tags: trunk)
19:59
More wheretrace debugging support: Show a listing of all WHERE clause terms (on wheretrace bit 0x100) and include important flags such as TERM_VIRTUAL, WO_EQUIV, and EP_FromJoin. (check-in: 92ccd705 user: drh tags: trunk)
19:03
Bug fix and enhancements to the improved wheretrace logic that shows the constraint expressions. (check-in: 10f125f5 user: drh tags: trunk)
14:34
Improved "wheretrace" capabilities: Show the constraint expression if the wheretrace flag has the 0x100 bit set and if compiled with SQLITE_ENABLE_TREE_EXPLAIN. (check-in: 710a18ac user: drh tags: trunk)
2013-10-26
15:40
Work on the UPDATE and INSERT logic. This is an incremental check-in so that can switch over to trunk to work on an unrelated issue there. (check-in: 086ec2a1 user: drh tags: omit-rowid)
13:36
Replace the OP_IsUnique opcode with OP_NoConflict. This code simplification might be useful to move onto trunk even if this branch is never merged. (check-in: e6650e16 user: drh tags: omit-rowid)
00:58
Minor refactoring of variable names and fixes to comments in insert.c. (check-in: ae61a343 user: drh tags: omit-rowid)
2013-10-25
19:17
Progress toward getting UPDATE to work in WITHOUT ROWID tables. (check-in: e557b7d8 user: drh tags: omit-rowid)
14:46
Basic DELETE operations now working on WITHOUT ROWID tables. (check-in: 9eafafa3 user: drh tags: omit-rowid)
2013-10-24
19:48
Update the interface to the sqlite3GenerateRowDelete() utility so that it is able to handle WITHOUT ROWID tables. The implementation still needs to be completed. (check-in: 85daf517 user: drh tags: omit-rowid)
15:20
Add the ".open" command to the command-line shell. (check-in: 21eccb91 user: drh tags: trunk)
14:16
Delete PRIMARY KEY index entries last. Only construct the unique prefix of an index key when deleting entries from an index. (check-in: 0e56ba69 user: drh tags: omit-rowid)
11:55
Remove an obsolete comment from the VDBE. No code changes. (check-in: 53bb070c user: drh tags: omit-rowid)
00:18
Correctly handle queries that use secondary indices of WITHOUT ROWID tables. (check-in: d8bc8595 user: drh tags: omit-rowid)
2013-10-23
23:37
Change the sqlite3OpenTable() utility to open the PRIMARY KEY index when reading a WITHOUT ROWID table. (check-in: 247f3899 user: drh tags: omit-rowid)
22:23
Construct secondary indices on WITHOUT ROWID tables. (check-in: 2c028ddc user: drh tags: omit-rowid)
17:39
Report an error when trying to resolve column name "rowid" in a WITHOUT ROWID table. (check-in: 36bcc9cb user: drh tags: omit-rowid)
16:03
Get VACUUM and the xfer optimization working with WITHOUT ROWID. (check-in: 579815ff user: drh tags: omit-rowid)
13:30
Some inserts and queries working for multi-column primary keys and WITHOUT ROWID. (check-in: b21d831b user: drh tags: omit-rowid)
01:57
Some simple inserts and queries working on WITHOUT ROWID tables. (check-in: 3f8016de user: drh tags: omit-rowid)
00:32
Build internal data structures appropriately for WITHOUT ROWID tables. (check-in: 35a36060 user: drh tags: omit-rowid)
2013-10-22
18:01
The Index object now has nKeyCol and nColumn. nColumn is the total number of columns and nKeyCol is the number of key columns. Currently these always differ by one. Refactor aiColumn[] to be of type i16 instead of int. (check-in: a106ce86 user: drh tags: omit-rowid)
14:28
Add a procedure to handle the messy details of allocating an Index object from the heap. (check-in: 45efc94f user: drh tags: omit-rowid)
10:23
Extra backwards-compatibility tests verify that UNIQUE and PRIMARY KEY indices are created in the correct order. Other backwards-compatibility tests already cover this, but it does not hurt to double up. (check-in: 5ca0ea2e user: drh tags: omit-rowid)
01:18
Previous refactor is not going to be helpful because implied indices must be created in the same order that they appear in the CREATE TABLE statement for backwards compatibility. This is a much smaller change to clean up a few loose ends. (check-in: 824b549f user: drh tags: omit-rowid)
2013-10-21
23:55
Minor refactoring of the PRIMARY KEY parsing logic to facilitate enhancements. (Closed-Leaf check-in: 4e69dd5f user: drh tags: omit-rowid)
23:17
Improve support for the SQLITE_OMIT_FLAG_PRAGMAS compile-time option. (check-in: f1d8c3b0 user: mistachkin tags: trunk)
13:15
Drop the mutex on the multiplexor before entering the xRead VFS call. (Closed-Leaf check-in: a00d2ed4 user: drh tags: multiplex-parallel-read)
02:14
Simplification of the syntax: Merely append "WITHOUT rowid" to the end of the table definition. (check-in: 131cc6e1 user: drh tags: omit-rowid)
2013-10-19
23:31
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. (check-in: 0248ec5e user: drh tags: omit-rowid)
16:51
Improved header comment with better instructions on the vfslog.c extension. (check-in: 4bd592c8 user: drh tags: trunk)
15:07
Fix a bug causing an "malformed database schema error" error if a temp table with the same name as an existing table that has at least one temp trigger attached to it is created. (check-in: 56dca4a6 user: dan tags: trunk)
2013-10-18
20:03
Add the SQLITE_FCNTL_TRACE file control and generate it for OP_Trace when compiled with SQLITE_USE_FCNTL_TRACE. Update vfslog.c to make use of the new file control. Also update vfslog.c to log UNLOCK events before the fact, rather than afterwards. (check-in: e801f35a user: drh tags: trunk)
17:42
Further enhance the vfslog extension to record the number of freelist pages and the first freelist page in CHNGCTR-READ and CHNGCTR-WRITE records. (check-in: 08157524 user: drh tags: trunk)
14:37
In the vfslog extension for FILECONTROL records, show the pragma name for SQLITE_FCNTL_PRAGMAs and the requested size for SQLITE_FCNTL_SIZE_HINT. (check-in: f0629695 user: drh tags: trunk)
2013-10-17
12:57
Version 3.8.1 (check-in: c78be6d7 user: drh tags: trunk, release, version-3.8.1)
2013-10-16
23:58
Fix a typo in a requirements mark comment. No changes to code. (check-in: e5a439cf user: drh tags: trunk)
14:32
Merge the latest trunk changes. (check-in: 58065468 user: drh tags: sessions)
11:39
Clear a valgrind error by zeroing the first 4 bytes of the temp-space allocation used by the b-tree module. (check-in: 8651aba1 user: dan tags: trunk)
11:31
Fix memory and resource leaks for WinCE and Cygwin, and a compiler warning on windows with SQLITE_THREADSAFE=0. (check-in: 9905cea9 user: drh tags: trunk)
09:49
Fix memory/resource leaks for WinCE and Cygwin. (Closed-Leaf check-in: 2470d1bb user: mistachkin tags: wince-fixes)
2013-10-15
19:06
Add the "languageid" hidden column to fts4aux. (check-in: 891df358 user: dan tags: trunk)
15:35
Changes to test code to make sure no server threads are left running after server1.test finishes. (check-in: 1086e00b user: dan tags: trunk)
14:29
Fix an 8-byte alignment problem on the "crash test" harness (test code, not in the core) that causes problems on Sparc. (check-in: bcbc6503 user: drh tags: trunk)
14:10
Merge the latest trunk changes into the sessions branch. This merge should fix the build for WinRT. (check-in: e111e4ed user: drh tags: sessions)
11:58
Fix harmless macro redefinition warnings in the totype extension. (check-in: c9c1f8d6 user: drh tags: trunk)
10:43
Fix harmless macro redefinition warnings in the totype extension. (Closed-Leaf check-in: a38adeb7 user: mistachkin tags: noWarnings)
2013-10-14
22:35
Fix harmless compiler warning in the totype extension. Include all standard whitespace characters in totypeIsspace. Minor adjustments to style and comments. (check-in: 73238f65 user: mistachkin tags: trunk)
21:14
Move the tointeger() and toreal() functions out of core and make them into a run-time loadable extension. (check-in: 9f66dd7e user: drh tags: trunk)
20:30
Fix a crash in FTS incremental phrase processing that can occur if the second or subsequent token is much more common in the dataset than the first. (check-in: 0bf438fc user: dan tags: trunk)
19:35
Add implementations for the toInteger() and toReal() SQL functions. (check-in: a0f7cbc0 user: drh tags: trunk)
15:41
Fix for building with SQLITE_OMIT_FOREIGN_KEY. (check-in: b8b5f6c8 user: dan tags: trunk)
14:30
Update the foreign_key_check pragma so that when a parent table is undefined it is treated as an empty table. (check-in: 208b259a user: drh tags: trunk)
14:21
Corrects to comments on the STAT4 implementation. (check-in: e06f74d3 user: drh tags: trunk)
13:21
Make subroutines sampleCopy() and valueFromExpr() have file scope. (check-in: 1660efbe user: drh tags: trunk)
10:46
Add a new application_id for GeoPackage version 1.0. (check-in: 98ddfe45 user: drh tags: trunk)
2013-10-12
23:39
Merge updates from trunk. (Closed-Leaf check-in: a88b5be0 user: mistachkin tags: toTypeFuncs)
20:22
Restore the index_list pragma back to its former operation. Create a new PRAGMA stats used to access the table and index widths and heights. (check-in: f0cf8c85 user: drh tags: trunk)
19:06
In "PRAGMA foreign_key_check", treat missing parent tables as empty (instead of as errors). (Closed-Leaf check-in: 8c13a7fd user: dan tags: fkc-missing-parent-tables)
15:12
Fix handling of "DROP TABLE" commands when "PRAGMA defer_foreign_keys=1" is set. (check-in: 27001356 user: dan tags: trunk)
13:16
Add tests that demonstrate that PRAGMA defer_foreign_keys will reset to off at the conclusion of the next transaction. (check-in: 67e28a11 user: drh tags: trunk)
09:32
Changes to the new initial row of PRAGMA index_list results. (Closed-Leaf check-in: 0c4dd9ff user: mistachkin tags: indexList)
02:33
Fix harmless compiler warning. (check-in: 4b130f88 user: mistachkin tags: trunk)
02:31
Permit the creation of VSIX packages for Win32. (check-in: 035d03e9 user: mistachkin tags: trunk)
00:56
Fix Unicode character encoding issues on Windows in the fts4unicode test file. (check-in: c9310c9a user: mistachkin tags: trunk)
2013-10-11
23:37
Identify requirements text in the SQLITE_CONFIG_ documentation. Fix a typo (a duplicated word) in part of that documentation. Add some requirements marks for DETACH to the test scripts. No code changes. (check-in: 1be0a3ad user: drh tags: trunk)
23:02
The split amalgamation option should be disabled by default. (check-in: 7c24d22f user: mistachkin tags: trunk)
23:01
Enhance debugging support for the split amalgamation files when compiling with MSVC. (check-in: 8ff17c55 user: mistachkin tags: trunk)
23:01
Fix a harmless compiler warning in lemon.c. (check-in: 62959c0c user: drh tags: trunk)
22:19
Add -no-undefined option when linking the shared libraries. (check-in: 977d2b12 user: mistachkin tags: trunk)
22:17
Fix test numbering. (check-in: cef39f69 user: mistachkin tags: trunk)
20:14
Add requirements marks. No code changes. (check-in: 5e0d43ab user: drh tags: trunk)
16:35
Additional test cases and requirements marks for the unlikely(), likelihood() and instr() functions. (check-in: 5f01cd36 user: drh tags: trunk)
15:05
Fix various harmless compiler warnings. Change the "warnings.sh" script to work with STAT4 instead of STAT3. (check-in: 7df06684 user: drh tags: trunk)
13:27
Make sure the sqlite3.h file occurs at the very top of the sqlite3.c amalgamation. (check-in: 03593817 user: drh tags: trunk)
05:51
Fix compilation issue for WinRT. (check-in: 7a2006ca user: mistachkin tags: trunk)
2013-10-10
20:13
Synchronize with the trunk. (check-in: 136445ba user: drh tags: sessions)
17:33
Add a rule to the main.mk makefile for building showdb. (check-in: fc5552da user: drh tags: trunk)
15:04
Enhancements to the vfslog.c module to show all change-counter changes and to show the hostname and pid of the process that creates each log file. (check-in: af7abebe user: drh tags: trunk)
13:41
Another fix to the hash signature algorithm in vfslog.c. (check-in: 34212aa8 user: drh tags: trunk)
13:38
Fix the hash signature algorithm in vfslog.c. Add a utility program to show the hash signatures for every page of a database file. (check-in: eaf4de13 user: drh tags: trunk)
13:04
Add ext/misc/vfslog.c, a VFS shim for unix that keeps a log of method calls made by SQLite. (check-in: 24a827b8 user: dan tags: trunk)
12:38
Estimate row sizes for tables and indices and use those estimates during query planning. Enhance the index_info pragma to show the estimated row sizes and to show the estimated row size for the main table as well. Allow an alternative row size estimate to be specified in the sqlite_stat1 table. (check-in: d27b88b8 user: drh tags: trunk)
2013-10-09
19:07
Make sure the correct printf format is used for type tRowcnt regardless of whether 32-bit or 64-bit row counts are specified at compile-time. (Closed-Leaf check-in: e97d7d30 user: drh tags: row-size-est)
2013-10-08
23:16
Move a conditional inside of an #ifdef in order to make all branches reachable regardless of compile-time options used. (check-in: f7cc30d4 user: drh tags: row-size-est)
22:25
Fix test cases for the new information in PRAGMA index_list. (check-in: dd03be10 user: drh tags: row-size-est)
20:42
Rollback some of the previous changes in the branch such that the estimated row sizes are now only used as a tie-breaker for index scans. (check-in: 65553ff3 user: drh tags: row-size-est)
20:01
Use #ifdefs to omit unused code in the columnType() routine depending on compile-time options. (check-in: 3fd5e332 user: drh tags: row-size-est)
18:40
Further refinement of the idea of multiplying run-time cost estimates by the estimated row size. (check-in: 18bd6ba9 user: drh tags: row-size-est)
2013-10-07
21:49
Fix compilation issue with MSVC. (check-in: 36d64dc3 user: mistachkin tags: trunk)
17:32
Multiply all cursor step cost estimates by the estimated size of the row in bytes, in order to get the query planner ot make use of estimated row sizes. This check-in uses magic numbers in a few places (for example, estimates of the size of output rows) and needs lots of refinement. Consider this a proof-of-concept only. (check-in: cb34cfe5 user: drh tags: row-size-est)
16:53
Try to remember statistics from ANALYZE using LogEst instead of u64. (Leaf check-in: 8e78557a user: drh tags: log-stats)
10:48
Merge bug fixes from trunk. (check-in: 1d7b2dc0 user: drh tags: row-size-est)
00:36
Restore the hexrekey pragma which was accidently deleted during the pragma refactoring. Make sure the hexkey and hexrekey pragmas do not overflow buffers with a over-length key. (check-in: 0aca31e1 user: drh tags: trunk)
2013-10-06
22:52
Remove an incorrect debugging assert() that was accidently added during the STAT4 enhancement. (check-in: 2bb7f74b user: drh tags: trunk)
22:12
Accept the sz=N parameter on table-only lines of sqlite_stat1. (check-in: e9e932aa user: drh tags: row-size-est)
2013-10-05
20:18
Fix an issue in the test8.c test module that arises because of the change to PRAGMA index_list(). Remove an unused local variable. (check-in: 029430c5 user: drh tags: row-size-est)
19:18
Completely remove the iScanRatio field. The PRAGMA index_list(TABLE) command shows the estimated row size in the forth column. It also generates a row for the table with an index name of NULL. The query planner still does not take row size estimates into account - that is the next step. (check-in: 8b4aa0c7 user: drh tags: row-size-est)
18:32
Improvements to the LogEst command-line tool used to convert between ordinary numbers and the LogEst representation. (check-in: 5252aeb6 user: drh tags: row-size-est)
18:16
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. (check-in: 66c4a251 user: drh tags: row-size-est)
02:56
In the index_list pragma, make sure the "r" column is the same on output as it was on input in the sqlite_stat1 table. (Closed-Leaf check-in: de78250a user: drh tags: index-scan-rate)
2013-10-04
20:39
Merge trunk changes. (check-in: c6ac80ed user: drh tags: index-scan-rate)
18:29
Further refinements of the index scanning speed logic. (check-in: e5d9371d user: drh tags: index-scan-rate)
18:17
If an "INSERT INTO ... SELECT" can use the xfer optimization, pass the OPFLAG_BULKCSR hint to btree cursors used to update indices. This results in a tighter key packing. (check-in: 087af29e user: dan tags: trunk)
15:58
Fix test cases so that they work when the query planner uses index size estimates to determine whether or not to try an covering index scan. (check-in: 2f394de8 user: drh tags: index-scan-rate)
15:30
Improved estimates of the relative speed of index scans based on declared datatypes of columns in the table. Add "r" column to PRAGMA index_info, showing the estimated relative scan rate. (check-in: 07462bb6 user: drh tags: index-scan-rate)
02:36
Progress toward using the iScanRatio information on indices. Many tests are still failing. (check-in: 6c352edb user: drh tags: index-scan-rate)
00:00
Make sure the count(*) optimization works correctly even when partial indices are present. Ticket [a5c8ed66cae]. (check-in: 9f2f4c0a user: drh tags: trunk)
2013-10-03
20:41
Have FTS take advantage of "docid<?" constraints when they are present. Extend the FTS "incremental doclist" optimization so that it is used for tokens within multi-token phrases. (check-in: baf8ce59 user: dan tags: trunk)
20:28
Merge latest trunk changes. (Closed-Leaf check-in: 24aa20da user: dan tags: fts4-docid-range-constraints)
19:27
Allow FTS4 multi-token phrases to use a combination of in-memory and incrementally loaded doclists. This allows phrases to (partially) benefit from incremental doclists without disabling the deferred token optimization. (check-in: f6819c5f user: dan tags: fts4-docid-range-constraints)
19:21
Experimental branch allowing different postulated scan rates for each index. (check-in: d59d97b0 user: drh tags: index-scan-rate)
15:39
The sqlite3FixInit() routine cannot fail. So change the return type from "int" to "void". (check-in: 500c5932 user: drh tags: trunk)
14:08
Rework the PRAGMA implementation to only call sqlite3ReadSchema() from a single place, based on a flag in the pragma table, rather than separately from each case which needs the schema. (check-in: 8338232a user: drh tags: trunk)
12:29
Return an error if an attempt is made to create a trigger with an SQL variable embedded within it. If such a variable reference is found within a trigger definition loaded from the sqlite_master table, silently replace it with a NULL. (check-in: f35f6ae3 user: dan tags: trunk)
11:27
Remove unnecessary memset() calls from test code. (check-in: eec3187b user: drh tags: trunk)
2013-10-02
20:46
In the lemon parser generator, change all hashes to unsigned to avoid potential problems with signed integer overflow. (check-in: 8d399a03 user: drh tags: trunk)
08:04
Add a test to check that the new multi-token phrase optimization is actually helping. (check-in: bc3a2ed5 user: dan tags: fts4-docid-range-constraints)
2013-10-01
20:29
Bring some file format comments in btreeInt.h up to date. (check-in: 012d54d0 user: drh tags: trunk)
20:10
Merge trunk changes with this branch. (check-in: 65d9c6fa user: dan tags: fts4-docid-range-constraints)
20:02
Allow multi-token phrases to load doclists from the database incrementally. This allows queries that feature such phrases to benefit from the "docid<?" optimization. (check-in: ea543f08 user: dan tags: fts4-docid-range-constraints)
19:36
Fix comments in the fast_vacuum.c demonstration program. (check-in: e0db7b38 user: drh tags: trunk)
19:02
Add the "fast_vacuum.c" demonstration program to the tool/ subdirectgory. (check-in: 2b60320d user: drh tags: trunk)
15:30
Change the ".dump" command in the command-line shell so that it COMMITs if there are database corruption errors but invokes ROLLBACK on any other kind of error. (check-in: 47323463 user: drh tags: trunk)
2013-09-30
19:33
Fix a minor typo in a comment in where.c. (check-in: 9c9fa151 user: drh tags: trunk)
19:05
Add some timing tests to the amatch test script. (check-in: ad71c72b user: drh tags: trunk)
18:16
Merge trunk changes with this branch. (check-in: e294a9c7 user: dan tags: fts4-docid-range-constraints)
18:14
Fix a performance problem in the FTS4 auxiliary functions triggered by an OR clause in the full-text query. (check-in: fa0f2f0e user: dan tags: trunk)
17:37
Fix memory leaks in the amatch extension. Add a few simple test cases. (check-in: 60413473 user: drh tags: trunk)
11:42
Have fts4 full-text queries consider "docid<?" and similar constraints. (check-in: 6622424a user: dan tags: fts4-docid-range-constraints)
11:01
Update and modernize an obsolete comment associated with VACUUM. No changes to code. (check-in: 94c914e3 user: drh tags: trunk)
2013-09-29
04:56
Fix typo in comment. No changes to code. (check-in: 0b7bd468 user: mistachkin tags: trunk)
2013-09-28
16:43
Add new test file fts3defer3.test. (check-in: a6cd14ef user: dan tags: trunk)
13:28
In the nextchar.c extension, allow the second argument to the next_char() function to be a subquery. (check-in: 59b9fa22 user: drh tags: trunk)
12:40
Updates to the sqlite3_analyzer utility: Change the names of some labels, especially change "Fragmentation" to "Non-sequential pages". Revise the computation of non-sequential pages so that it ignores itercalated non-leaf pages (overflow and index pages). (check-in: 3e5c7771 user: drh tags: trunk)
2013-09-26
15:21
Obtain the required shared-cache write-lock when executing "DELETE FROM tbl" statements. Fix for [1e1321ee98]. (check-in: 1f8f4fdf user: dan tags: trunk)
11:04
Fix a faulty assert() in sqlite3BtreeBeginTrans() that may fail in shared-cache mode. (check-in: 1e1321ee user: dan tags: trunk)
2013-09-24
19:07
Merge updates from trunk. (check-in: 435ce3b3 user: mistachkin tags: toTypeFuncs)
2013-09-18
11:16
Test that the unicode61 tokenchars= and separators= options work with the fts3tokenize virtual table. (check-in: ed240514 user: dan tags: trunk)
2013-09-17
23:36
Clear the current time value on prepared statements when the prepared statement is reset. (check-in: cebd6fc5 user: drh tags: trunk)
2013-09-16
20:46
Readability improvements to the Win32 RC file. (check-in: e6459062 user: mistachkin tags: trunk)
19:27
Minor consistency fixes to the Win32 RC file. (check-in: 619c5211 user: mistachkin tags: trunk)
12:57
The date and time functions use the exact same notion of "now" for every invocation within the same call to sqlite3_step(). (check-in: daf6ba41 user: drh tags: trunk)
2013-09-13
23:27
Fix Windows SDK compiler warning. (check-in: d5fc3f1d user: mistachkin tags: trunk)
23:26
Fix test issues for Windows portability. (check-in: 650b3282 user: mistachkin tags: trunk)
22:38
VSIX tooling changes to support Visual Studio 2013. (check-in: d56fac40 user: mistachkin tags: trunk)
21:03
Fix the "const" qualifiers on the pragma name table. (check-in: b74e6be8 user: drh tags: trunk)
21:01
Add the soft_heap_limit pragma. (check-in: c326356f user: drh tags: trunk)
19:08
VSIX tooling changes to support Visual Studio 2013. (Leaf check-in: e8ac4a12 user: mistachkin tags: branch-3.8.0)
19:00
Tweak the new PRAGMA name parser to achieve full branch test coverage. (check-in: c82e05c4 user: drh tags: trunk)
18:15
Remove one unreachable branch and add asserts() to dupedExprStructSize(). New asserts verify that removed branch is unused and that constants that are ORed together in the output do not overlap. (check-in: 86ad358b user: drh tags: trunk)
17:47
Adjust the query planner to take into account WHERE clause terms that do not drive indices. Add the unlikely() and likelihood() functions used to give hints to the query planner about the selectivity of WHERE clause terms. (check-in: bc446449 user: drh tags: trunk)
16:56
Enhance the pragma lookup table generator script to output a comment that gives the number of pragmas. (check-in: ca052050 user: drh tags: trunk)
16:36
Change the PRAGMA parser to use a binary search for the pragma name. Also: Minor performance enhancement to sqlite3DbFree() and to the token dequoter. (check-in: 870c030b user: drh tags: trunk)
12:10
Add tests for the fts4 unicode61 tokenchars and separators options. (check-in: 9ce6f40d user: dan tags: trunk)
2013-09-12
23:42
Refactor the ExprSetIrreducible() macro into ExprSetVVAProperty(*,EP_NoReduce). This is a naming change only. The logic is the same. (Closed-Leaf check-in: 695aee46 user: drh tags: unlikely-func)
23:12
Fix typo in a macro name: "GlogUpperToLower" should be "GlobUpperToLower" (check-in: 73634ca4 user: drh tags: trunk)
17:29
Merge in the Expr.flags expansion to 32-bits. Use an extra bit to help optimize the sqlite3ExprSkipCollate() routine. (check-in: 4c84d1b4 user: drh tags: unlikely-func)
16:50
Increase the number of bits available in Expr.flags. Other tweaks aimed at making expression processing more robust. (Closed-Leaf check-in: 579a5125 user: drh tags: expr-tuning)
02:09
For error log messages generated by the Win32 native allocator, make sure the correct format specifier is used for the value returned by GetLastError(). (check-in: 75a8a8c1 user: mistachkin tags: trunk)
01:47
Fix a couple more harmless compiler warnings. (check-in: 59708674 user: mistachkin tags: trunk)
01:33
Remove two obsolete fields from the sqlite3 object. (check-in: 117fa5fb user: drh tags: trunk)
00:54
Fix harmless compiler warning. (check-in: 2b510614 user: mistachkin tags: trunk)
00:40
Merge updates from trunk. (Closed-Leaf check-in: fca799f0 user: mistachkin tags: vsix2013)
2013-09-11
17:39
Improvements to likelihood processing so that commuting an unindexed term in the WHERE clause does not change the query plan. (check-in: 6e6bded0 user: drh tags: unlikely-func)
14:57
Add test cases to cover TPC-H Q8. (check-in: eb5cef83 user: drh tags: trunk)
14:34
Additional unlikely() test cases. Logic tweaks to support test coverage. (check-in: 5d00cce7 user: drh tags: unlikely-func)
11:38
Change the name of the two-argument unlikely() function to likelihood(). Add test cases. (check-in: 29a359b8 user: drh tags: unlikely-func)
03:53
Tweaks to the index selection logic. (check-in: 52d52688 user: drh tags: unlikely-func)
2013-09-10
01:53
Merge trunk fixes into the unlikely-func branch. (check-in: a51d7515 user: drh tags: unlikely-func)
01:41
Deterministically initialize the PRNG used as a tie-breaker in the ANALYZE command, so that the analysis is always the same given the same database. This simplifies testing. (check-in: 48ed8b56 user: drh tags: trunk)
2013-09-09
19:37
Make sure that the transitive constraint optimization does not cause WHERE clause terms to be disabled prematurely. We are unable to find a test case that fails because of this, but it seems prudent to make this preventative change nevertheless. (check-in: d6e361d7 user: drh tags: trunk)
2013-09-07
00:29
Continuing refinements of the logic to take WHERE clause terms not used for indexing into account when computing the number of output rows from each table. (check-in: b65dc534 user: drh tags: unlikely-func)
2013-09-06
22:27
Merge updates from trunk. (check-in: 8922be1a user: mistachkin tags: toTypeFuncs)
21:41
Add the ability to generate assembly listing files using the MSVC makefile. (check-in: 6caa2cd1 user: mistachkin tags: toTypeFuncs)
20:30
When converting from a BLOB value in the tointeger() and toreal() SQL functions, make sure that endianness of the machine does not matter. (check-in: 94c4cdc5 user: mistachkin tags: toTypeFuncs)
17:45
Enhance the plan solver to take into account the number of output rows when computing the set of paths to retain for the next cycle. (check-in: 1a46a724 user: drh tags: unlikely-func)
15:23
Initial implementation of the unlikely() SQL function used as a hint to the query planner. (check-in: 036fc37a user: drh tags: unlikely-func)
13:10
Combine the FuncDef.iPrefEnc and FuncDef.flags fields into a single new FuncDef.funcFlags field. (check-in: 97b10e66 user: drh tags: trunk)
00:40
Make sure the destination WhereLoop is left in a sane state when an OOM fault occurs inside of whereLoopXfer(). (check-in: a99a53b8 user: drh tags: trunk)
2013-09-05
18:40
When preparing an UPDATE statement, avoid generating VDBE code for those foreign key related actions and constraint checks that may be seen to be unnecessary by considering the subset of table columns potentially modified by the UPDATE. (check-in: e940b5de user: dan tags: trunk)
2013-09-04
18:14
Rearrange the order of conditions in an "if" statement to facilitate testing. (check-in: 8462fb43 user: drh tags: trunk)
16:38
Add tests to improve coverage when SQLITE_ENABLE_STAT3 is defined. (check-in: f929e9b4 user: dan tags: trunk)
16:08
Fix a bug in the command-line shell for ".mode insert" on UTF16 databases with BLOB values. (check-in: d8fdc782 user: drh tags: trunk)
15:15
The sqlite3Stat4ProbeSetValue() routine should always return results using the database encoding. (check-in: eb216632 user: drh tags: trunk)
04:04
Fix out-of-order variable declaration. Fix harmless compiler warning. (check-in: 8df95bb0 user: mistachkin tags: trunk)
02:07
Conditionally exclude code from analyze.c that is not used by STAT3. (check-in: a48948a1 user: drh tags: trunk)
00:58
Additional test cases for the tointeger() and toreal() SQL functions when converting from a BLOB. (check-in: e1814452 user: mistachkin tags: toTypeFuncs)
2013-09-03
19:26
Harden the STAT4 logic in where.c against OOM faults. (check-in: 91d2cfbc user: drh tags: trunk)
17:11
Version 3.8.0.2 (check-in: 7dd4968f user: drh tags: release, version-3.8.0.2, branch-3.8.0)
14:49
Merge in all the latest trunk changes, including the win32-longpath VFS and the fix for the segfault in the omit-left-join optimization. (check-in: cdd3838b user: drh tags: sessions)
14:43
Fix another problem in stat4 sample selection. (check-in: d59f5809 user: dan tags: trunk)
14:33
Make sure the omit-noop-left-join optimization is not applied if columns of the LEFT JOIN are used in the ORDER BY clause. Ticket [be84e357c035]. Increase version number to 3.8.0.2. (check-in: cce54186 user: drh tags: branch-3.8.0)
14:03
Make sure the omit-noop-left-join optimization is not applied if columns of the LEFT JOIN are used in the ORDER BY clause. Ticket [be84e357c035] (check-in: 0303d6bc user: drh tags: trunk)
2013-09-02
23:40
Add the experimental SQLITE_DEFAULT_INDEX_SHAPE=1 compile-time option that makes a much more pessimistic guess at the effectiveness of unanalyzed indices. (Leaf check-in: d8daaba7 user: drh tags: index-shape-1)
20:22
Simplify branch coverage testing by interchanging the order of two tests in the whereLoopInsert() function. (check-in: f7079b53 user: drh tags: trunk)
18:58
Further stat4 related tests. (check-in: 0a702c4b user: dan tags: trunk)
11:52
Add tests to check if ANALYZE is choosing common non-periodic samples for the stat4 table. (check-in: 17584299 user: dan tags: trunk)
07:16
Fix a problem with using stat4 data to estimate the number of rows scanned by a range constraint on the second or subsequent column of any index where an affinity transformation must be applied to the constraint argument. (check-in: c21f58d8 user: dan tags: trunk)
2013-09-01
23:36
Merge updates from trunk. (check-in: 2982725e user: mistachkin tags: toTypeFuncs)
2013-08-31
21:41
Handle BLOBs specially, treating them as binary, in the tointeger() and toreal() SQL functions. (check-in: c4c53acb user: mistachkin tags: toTypeFuncs)
18:36
Cleanup of the windows VFS, including added support for Cygwin, fixes for compiler warnings under unusual configurations, and improved diagnostic error messages. (check-in: c94933f1 user: drh tags: trunk)
18:06
Revise the amalgamation tool to allow 'duplicate' include files to be retained manually while still preserving the existing line numbers. (Closed-Leaf check-in: aa482846 user: mistachkin tags: cygwinTempPath)
17:21
Fix a problem causing SQLite not to use stat4 or stat3 data to analyze constraints of the form "column = expr COLLATE collation" (those with an explicit COLLATE on the non-column side of the comparison operator). (check-in: 1e86d81d user: dan tags: trunk)
17:01
Enhancements to the Win32 API definition macros. (check-in: b1811baa user: mistachkin tags: cygwinTempPath)
14:56
Reenable a test accidentally disabled when the stat4 branch was merged. (check-in: d9fadc8f user: dan tags: trunk)
05:46
Avoid commenting out #include statements when building the amalgamation source code file. (check-in: 2fca6d78 user: mistachkin tags: cygwinTempPath)
05:13
Fix harmless MSVC compiler warning with MEMDEBUG defined. (check-in: b48cfd2d user: mistachkin tags: cygwinTempPath)
02:48
Improve the consistency of the diagnostic messages on Windows. (check-in: c6f174a0 user: mistachkin tags: cygwinTempPath)
2013-08-30
21:52
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. (check-in: a411df72 user: mistachkin tags: cygwinTempPath)
20:19
Fix compiler warnings in analyze.c. (check-in: 5bbd2ccb user: dan tags: trunk)
19:59
Fix comment typo in analyze.c. No changes to code. (check-in: dbc31750 user: mistachkin tags: trunk)
17:50
Fix comment typos in the where.c module. No code changes. (check-in: 1e0b77cf user: drh tags: trunk)
17:35
If the cost of two whereLoop objects is the same in every way except that one has fewer expected output rows than the other, then choose the one with fewer output rows. (check-in: 79e458ef user: drh tags: trunk)
14:24
Add the SQLITE_MINIMUM_FILE_DESCRIPTOR compile-time option, for control over exactly which low-numbered file descriptors SQLite will use. (check-in: ba519053 user: drh tags: trunk)
13:29
Add a test for fts4 unicode61 option remove_diacritics=0. (check-in: 6bf7ae6f user: dan tags: trunk)
06:20
Improvements to the robust_open() logic in the unix VFS so that if an attempt is made to open a repository on file descriptors 0, 1, or 2, and blocking that file descriptor by opening it on /dev/null fails, then the open will fail. (check-in: d9c018f8 user: drh tags: trunk)
2013-08-29
23:36
Make the unix VFS defensive against the error of having a database file open on file descriptors 1 or 2, as an error message might easily be written onto those file descriptors and thus overwrite and corrupt the database. (check-in: 30d38cc4 user: drh tags: trunk)
23:34
Change the unix VFS so that it refuses to open a database file using a file descriptor less than 3. (Closed-Leaf check-in: 66dddda0 user: drh tags: overwrite-avoidance)
21:26
Never leave an open file descriptor pointing into the middle of the database file if the file descriptor number is 2 or less. (check-in: 3426673e user: drh tags: overwrite-avoidance)
17:35
Version 3.8.0.1 (check-in: 352362bc user: drh tags: release, version-3.8.0.1, branch-3.8.0)
15:08
Merge from trunk: (1) Recent bug fixes (2) STAT4 support (3) win32-longpath support. (check-in: e7ebc8f7 user: drh tags: sessions)
14:56
Restore fix [f15591f802], which was accidentally clobbered by the stat4 merge. (check-in: d4b6ad33 user: dan tags: trunk)
13:47
Update sqlite3.pc.in to use @PACKAGE_VERSION@ instead of @RELEASE@. Cherrypick of [2460dfd8825d25]. (check-in: c5857808 user: drh tags: branch-3.8.0)
13:27
Increase the version number to 3.8.0.1. (check-in: 125b04de user: drh tags: branch-3.8.0)
13:23
Fix an off-by-one error that causes a quoted empty string at the end of a CRNL-terminated line of CSV input to be misread by the shell. Cherrypick of [b5617e4fdadc4c]. (check-in: 43aa7d23 user: drh tags: branch-3.8.0)
13:21
In the query optimizer, when converting BETWEEN and LIKE/GLOB expressions into simpler forms for processing, be sure to transfer the LEFT JOIN markings. Fix for ticket [bc878246eafe0f52c]. Cherrypick of [caab361ebe]. (check-in: cb667449 user: drh tags: branch-3.8.0)
13:15
Cherrypick of [c1152bdcbb] and fix for [9f2eb3abac]: Have the whereShortCut() planner ignore indexes with more than four columns. (check-in: c3f75941 user: drh tags: branch-3.8.0)
10:46
Candidate fix for [9f2eb3abac]: Have the whereShortCut() planner ignore indexes with more than four columns. (check-in: c1152bdc user: dan tags: trunk)
02:27
Disable several toreal() tests that require high floating point precision when it is unavailable. (check-in: b724219b user: mistachkin tags: toTypeFuncs)
01:17
Prevent the implementation of the toreal() SQL function from being 'optimized' by MSVC. (check-in: 047bd1c2 user: mistachkin tags: toTypeFuncs)
01:11
Merge updates from trunk. (check-in: 375dfe28 user: mistachkin tags: toTypeFuncs)
01:09
Small enhancements to unit testing infrastructure. (check-in: 9229aeb3 user: mistachkin tags: trunk)
01:03
Enable finer control of optimizations when compiling with the MSVC makefile. Also, several modularity enhancements to the MSVC makefile. (check-in: 6c709338 user: mistachkin tags: trunk)
01:01
Fix boundary case for the toreal() SQL function. (check-in: abe82c63 user: mistachkin tags: toTypeFuncs)
2013-08-28
19:01
Re-enable test file wild001.test. (check-in: 4f182ddc user: dan tags: trunk)
18:56
Merge updates from trunk. (check-in: ffc6e682 user: mistachkin tags: toTypeFuncs)
18:18
Add the win32-longpath VFS allowing windows filenames up to 32K characters in length. Remove unused code when -DSQLITE_MAX_MMAP_SIZE=0. Fix some compiler warnings on windows. (check-in: 12d0a885 user: drh tags: trunk)
18:06
Update list of supported Tcl shells to include 8.6. Remove stray OS2 references. (Closed-Leaf check-in: ecd52ccf user: mistachkin tags: mmapDisabled)
17:59
Fix a couple comments. (check-in: 945cb89e user: mistachkin tags: mmapDisabled)
16:27
In the query optimizer, when converting BETWEEN and LIKE/GLOB expressions into simpler forms for processing, be sure to transfer the LEFT JOIN markings. Fix for ticket [bc878246eafe0f52c]. (check-in: caab361e user: drh tags: trunk)
13:46
Increase the version number to 3.8.1 due to the addition of STAT4 support. (check-in: 41c089e2 user: drh tags: trunk)
13:33
Fix an off-by-one error that causes a quoted empty string at the end of a CRNL-terminated line of CSV input to be misread by the shell. (check-in: b5617e4f user: drh tags: trunk)
11:57
Add a test case for empty quoted field in CSV import in the shell. (check-in: 3df56e84 user: drh tags: trunk)
11:43
Label a certain branch as NEVER() only for non-STAT3/4 builds. (check-in: b5ccf6e9 user: drh tags: trunk)
07:42
In the win32longpath test, move the journal mode change down where it was intended to be. (check-in: 5cead293 user: mistachkin tags: mmapDisabled)
05:49
Support database file names longer than 260 characters using the new 'win32-longpath' VFS variant. (check-in: 37e85e44 user: mistachkin tags: mmapDisabled)
02:37
Make names of private functions in the Win32 VFS consistent. Fix comment typo in Win32 mutex implementation. (check-in: c3b82c5b user: mistachkin tags: mmapDisabled)
02:26
Remove hard-coding of the directory separator in the Win32 VFS. Fixes to OSTRACE macros. (check-in: fc98092f user: mistachkin tags: mmapDisabled)
01:54
Fix several harmless compiler warnings. Fix a couple compiler issues with the shell. (check-in: 8917e9f9 user: mistachkin tags: mmapDisabled)
2013-08-27
23:15
Adjust ANALYZE for improved test coverage. Use the SQLITE_ENABLE_STAT3_OR_STAT4 macro (created in sqliteInt.h) to conditionally include code, instead of a boolean specifying both macros separately. (check-in: 67a9a392 user: drh tags: trunk)
20:16
Reduce the amount of code run and memory used for ANALYZE in the common case where neither STAT3 and STAT4 are enabled. (check-in: 9d1424c9 user: drh tags: trunk)
15:41
Update sqlite3.pc.in to use @PACKAGE_VERSION@ instead of @RELEASE@. (check-in: 2460dfd8 user: dan tags: trunk)
14:14
In the ANALYZE command implementation make statInit() a 2-value function since the 3rd parameter was always the same constant. (check-in: 959bb5ac user: drh tags: trunk)
2013-08-26
23:18
Preparation for further Windows path name handling changes. (check-in: ec99224b user: mistachkin tags: mmapDisabled)
23:18
Merge the STAT4 capability into trunk. (check-in: a32af0ab user: drh tags: trunk)
20:45
Change MAX_PATH related defines to use character lengths where WCHARs are used. (check-in: 0a497083 user: mistachkin tags: mmapDisabled)
19:36
Merge updates from trunk. (check-in: 9d686009 user: mistachkin tags: mmapDisabled)
14:30
Fix for builds with both SQLITE_OMIT_WAL and SQLITE_MAX_MMAP_SIZE=0 defined. (check-in: edd5dbdc user: dan tags: trunk)
04:50
Version 3.8.0 (check-in: f64cd21e user: drh tags: trunk, release, version-3.8.0)
2013-08-24
23:55
Several modifications to the use of the MAX_PATH macro on Windows to improve consistency. (check-in: bda4c47d user: mistachkin tags: mmapDisabled)
01:12
Fix a couple compilation issues on Unix. (check-in: 25b029d8 user: mistachkin tags: mmapDisabled)
00:59
Unify the result of PRAGMA mmap_size when mmap support is disabled. (check-in: 032c3159 user: mistachkin tags: mmapDisabled)
2013-08-23
17:54
Merge recent trunk changes. (check-in: 6cc54de8 user: dan tags: sessions)
17:43
Add the sqlite3session_table_filter API to the sessions extension. (check-in: b7e4dd88 user: dan tags: sessions)
17:33
Adjust #ifdefs to get SQLITE_OMIT_AUTOMATIC_INDEX and SQLITE_OMIT_PAGER_PRAGMAS to build. (check-in: ed310201 user: drh tags: trunk)
16:47
Fix a requirements comment in a test case. No changes to the testcase itself nor to any code. (check-in: 3ad1f998 user: drh tags: trunk)
12:04
Modify script mkautoconfamal.sh to use the download.html naming convention for the tar.gz it creates. (check-in: 375b4e3d user: dan tags: trunk)
2013-08-22
15:07
Merge in minor bug fixes and performance tweaks from trunk leading up to the version 3.8.0 release. (check-in: 831492dc user: drh tags: sessions)
02:56
Defer the creation of automatic indices until the index is actually used. (check-in: 0775501a user: drh tags: trunk)
2013-08-21
23:42
Simplify the btreeGetPage() routine so that it uses a single flag parameter in place of two boolean parameters. (check-in: 617e23ec user: drh tags: trunk)
22:54
Minor performance tweaks to the pager. (check-in: 9ae1f9ce user: drh tags: trunk)
22:09
Refactor the sqlite3_randomness() implementation for improved performance. (check-in: 4144dffb user: drh tags: trunk)
21:12
Simplification to the StrAccum object and the sqlite3StrAccumAppend() method that also results in slightly better performance. (check-in: 700dbbea user: drh tags: trunk)
20:04
Minor fixes for test cases. No code changes. (check-in: ef2a6a37 user: dan tags: trunk)
19:59
Fix typo in test. (check-in: f9859fe9 user: mistachkin tags: trunk)
19:13
Update sqlite3MemCompare() to try common cases first, for a modest speed improvement. (check-in: b25bac79 user: drh tags: trunk)
17:35
If a virtual table xSync() returns an error message, copy it into a buffer allocated by sqlite3DbMalloc() before transfering it to Vdbe.zErrMsg. (check-in: 854ba304 user: dan tags: trunk)
15:52
Performance enhancement in btreeParseCellPtr(). (check-in: a17190a2 user: drh tags: trunk)
15:45
Fix an FTS4 problem introduced by [361084e1eb]. (check-in: 5f35c8cb user: dan tags: trunk)
12:04
Candidate fix for [d666d600a6]. (check-in: 781592f3 user: dan tags: trunk)
07:25
Fix a minor problem in progress.test. No code changes. (check-in: a95ae93b user: dan tags: trunk)
2013-08-20
20:25
Fix a couple of test scripts to work with DEFAULT_AUTOVACUUM and OMIT_VIRTUALTABLE. (check-in: 356c6c59 user: dan tags: trunk)
17:14
Fix an invalid assert() in where.c. Also a crash that can occur in the EXPLAIN QUERY PLAN code under obscure circumstances. (check-in: ef192abb user: dan tags: trunk)
17:00
Ignore IS NOT NULL and NOT NULL constraints on NOT NULL columns. (check-in: e476408e user: drh tags: trunk)
16:08
Test script changes to support testing sqlite3_interrupt(). (check-in: 0cede9f8 user: dan tags: trunk)
13:02
Merge performance enhancements and compiler warning fixes from trunk. (check-in: 3e403328 user: drh tags: sessions)
09:26
Add test cases for tointeger() and toreal() functions. Fixes for several tests. (check-in: 5e1e9fd5 user: mistachkin tags: toTypeFuncs)
03:13
Performance optimizations in the VDBE and especially to the OP_Next and related opcodes and in the sqlite3BtreeNext() and sqlite3BtreePrevious() routines. This is a cherrypick of [6f99b54aedeb], [d2efea1682a7], and [d78c5d89de4b]. (check-in: 7f72fc4f user: drh tags: trunk)
02:07
Fix compiler warnings and boundary cases for the tointeger() and toreal() functions. (check-in: 4438b986 user: drh tags: toTypeFuncs)
00:42
Performance optimizations in the VDBE and especially to the OP_Next and related opcodes. (check-in: d78c5d89 user: drh tags: toTypeFuncs)
2013-08-19
23:18
Performance improvement to SQL function calls in the VDBE. (check-in: d2efea16 user: drh tags: toTypeFuncs)
22:22
Additional performance improvements in sqlite3BtreeNext() and sqlite3BtreePrevious(). (check-in: 6f99b54a user: drh tags: toTypeFuncs)
21:15
Add tointeger() and toreal() SQL functions. (check-in: af497072 user: mistachkin tags: toTypeFuncs)
20:04
Performance improvement in sqlite3BtreeNext() and sqlite3BtreePrevious() for the common case of a valid cursor. (check-in: dc65ad8c user: drh tags: trunk)
19:29
Initialize a variable in fts3_write.c on the grounds that the argument required to show that it does not require initialization with is complicated. Add an assert() to where.c to silence a clang scan-build warning. (check-in: d6c4d48a user: dan tags: trunk)
18:37
Fix test script pragma2.test so that it works with ENABLE_MEMORY_MANAGEMENT. (check-in: 6acf7281 user: dan tags: trunk)
18:17
Add some extra assert() statements to silence a few clang warnings. (check-in: 1c63e951 user: dan tags: trunk)
14:23
Remove unused variables from the command-line shell sources. (check-in: 753a402e user: drh tags: trunk)
14:19
Fix a potential reference off the end of an array in the query planner. (check-in: f15591f8 user: drh tags: trunk)
12:49
Merge in all the latest updates and enhancements from trunk. (check-in: 67587a33 user: drh tags: sessions)
11:15
Fixes for harmless compiler warnings. (check-in: a0d9ca4f user: drh tags: trunk)
2013-08-17
18:57
Adjustments to #ifdefs in analyze.c to all a clean compile with no extra code with both ENABLE_STAT3 and ENABLE_STAT4 and with neither. (Closed-Leaf check-in: f86b75b6 user: drh tags: sqlite_stat4)
16:37
Add the cache_spill pragma. Change the fullfsync and checkpoint_fullfsync pragmas to apply to all attached databases. (check-in: 65a85a15 user: drh tags: trunk)
15:42
The fullfsync, checkpoint_fullfsync, and cache_spill pragmas apply to all files of a database connection, including those opened by future ATTACH statements. (Closed-Leaf check-in: d07c4331 user: drh tags: cache_spill)
00:25
Test cases for the cache_spill pragma. (check-in: b85c9ec5 user: drh tags: cache_spill)
2013-08-16
20:42
Add the cache_spill pragma. (check-in: cdb181c0 user: drh tags: cache_spill)
17:46
Add a test for the problem fixed by [91733bc485]. (check-in: 5c591104 user: dan tags: sqlite_stat4)
17:18
In sqlite3Stat4ProbeSetValue() change a local variable name iVar to iBindVar to avoid confusion with iVal, and fix a place where the name was actually confused. (check-in: 91733bc4 user: drh tags: sqlite_stat4)
14:51
Merge the fork that resulted from a check-in race. (check-in: b7fe4f36 user: drh tags: sqlite_stat4)
14:49
Fix valueFromExpr() so that it returns SQLITE_NOMEM following an OOM when changing text encodings. Also fix some asserts to accommodate OOM errors. (check-in: dc1ccd09 user: drh tags: sqlite_stat4)
14:48
Fixes for test code that was not working with utf16 databases. Run the analyze*.test scripts as part of the 'utf16' permutation test. (check-in: fe99494d user: dan tags: sqlite_stat4)
14:23
Add extra tests. No code changes. (check-in: 949127d5 user: dan tags: sqlite_stat4)
14:09
Avoid buffer overreads and false OOM error reports that could be caused by corrupted sample records in the sqlite_stat4 table. (check-in: 9f85b6a5 user: dan tags: sqlite_stat4)
13:34
Fix a potential segfault following an OOM while running ANALYZE. (check-in: 01187978 user: drh tags: sqlite_stat4)
12:26
Merge recent trunk changes into the STAT4 branch. (check-in: c69b512a user: drh tags: sqlite_stat4)
2013-08-15
22:40
Make sure that GROUP BY terms select input column names in preference to output column names, in compliance with the SQL standard. Ticket [1c69be2dafc28]. (check-in: f2d175f9 user: drh tags: trunk)
20:24
Bare identifiers in ORDER BY clauses bind more tightly to output column name, but identifiers in expressions bind more tightly to input column names. This is a compromise between SQL92 and SQL99 behavior and is what PostgreSQL and MS-SQL do. Ticket [f617ea3125e9c]. (check-in: c78b357c user: drh tags: trunk)
20:05
Make it easy to attach a debugger the test fixture process prior to any tests being run. (check-in: 53cd9ebf user: mistachkin tags: trunk)
19:56
Fix a crash that can occur if the sqlite_stat3 or sqlite_stat4 table is corrupt. (check-in: d51df8a8 user: dan tags: sqlite_stat4)
18:43
Fix a crash that can occur following an OOM fault. (check-in: 9f80b268 user: dan tags: sqlite_stat4)
16:18
Change some assert() statements in vdbe.c to ensure that a memory cell used to store a VdbeCursor object is not also used for some other purpose. (check-in: 71070c9f user: dan tags: sqlite_stat4)
16:15
Make sure the ANALYZE command allocates enough VDBE registers. (check-in: 46fec9b1 user: drh tags: sqlite_stat4)
14:39
Add tests for sqlite_stat4 sample selection. And a fix for the same. (check-in: 1fb4d9d6 user: dan tags: sqlite_stat4)
14:27
Clarification and typo fixes in comments related to name resolution. No changes to code. (check-in: f30abdf9 user: drh tags: trunk)
08:06
Make it easy to attach a debugger the test fixture process prior to any tests being run. (Closed-Leaf check-in: c23acba1 user: mistachkin tags: dbgTestFixture)
2013-08-14
19:54
Change the way ANALYZE works to use a single cursor when scanning indices. (check-in: bdce612b user: dan tags: sqlite_stat4)
00:20
Fix a few more minor comment typos. No changes to code. (check-in: 9e999081 user: mistachkin tags: trunk)
2013-08-13
22:33
Fix an outdated comment and a comment typo. No changes to code. (check-in: ac336959 user: mistachkin tags: trunk)
2013-08-12
20:14
If ENABLE_STAT3 is defined but ENABLE_STAT4 is not, have ANALYZE create and populate the sqlite_stat3 table instead of sqlite_stat4. (check-in: cca8bf43 user: dan tags: sqlite_stat4)
17:31
If there is data in both the sqlite_stat4 and sqlite_stat3 tables for a single index, ignore the sqlite_stat3 records. (check-in: 2a417367 user: dan tags: sqlite_stat4)
17:00
Handle a NULL input to decodeIntArray() that can result from a prior OOM. (check-in: fa1588ad user: drh tags: sqlite_stat4)
16:34
Re-enable reading from the sqlite_stat3 table (as well as sqlite_stat4). (check-in: 6d45078e user: dan tags: sqlite_stat4)
11:21
Fix a bug in calculating the average number of entries for keys not present in the sqlite_stat4 table. (check-in: ec3ffb17 user: dan tags: sqlite_stat4)
09:29
Fix minor problems caused by adding the rowid to the records in stat4. (check-in: 088d1ff9 user: dan tags: sqlite_stat4)
2013-08-10
19:08
Add the rowid field to the end of sample records stored in the sqlite_stat4 table. (check-in: 3a5e8ab7 user: dan tags: sqlite_stat4)
2013-08-09
19:04
Fix a couple of typos in a comment in analyze.c. No code changes. (check-in: 5bcccb93 user: dan tags: sqlite_stat4)
14:07
Update the header comment on analyze.c to describe the sqlite_stat4 table format. (check-in: 4d97809d user: drh tags: sqlite_stat4)
2013-08-08
19:38
Fix problems in estimating the number of rows visited by a range query using sqlite_stat4 data when the column subject to the range query is not the leftmost of the index. (check-in: 9228aaf5 user: dan tags: sqlite_stat4)
16:17
Use a binary search instead of a linear scan when comparing a sample key against data from the sqlite_stat4 table. (check-in: e50dc305 user: dan tags: sqlite_stat4)
14:38
If the SQLITE_EXTRA_INIT function is defined, make sure it is called only once by the effective sqlite3_initialize() call. (check-in: e2b597ca user: drh tags: trunk)
12:21
Fix a segfault in "ALTER TABLE t1 ADD COLUMN b DEFAULT (-+1)". Also an assert() failure that could occur if SQLITE_ENABLE_STAT4 were not defined. (check-in: 9fec3e38 user: dan tags: sqlite_stat4)
11:48
Fix a bug in using stat4 data to estimate the number of rows selected by a range constraint. (check-in: f783938e user: dan tags: sqlite_stat4)
2013-08-07
23:15
If the SQLITE_ALLOW_URI_AUTHORITY compile-time option is set, then allow non-localhost authorities on URI filenames and pass them through as a UNC to the underlying VFS. (check-in: 3adb6c1b user: drh tags: trunk)
19:46
Replace variable Index.avgEq (average number of rows in keys for which there is no sample in sqlite_stat4) with vector Index.aAvgEq. (check-in: 7b70b419 user: dan tags: sqlite_stat4)
18:42
Merge latest trunk changes with this branch. (check-in: 08f74c45 user: dan tags: sqlite_stat4)
18:07
Merge in the latest changes from trunk. (Closed-Leaf check-in: c78b0d30 user: drh tags: uri-enhancement)
16:38
Fix typos in a comment in analyze.c. No code changes. (check-in: 812ed0c5 user: dan tags: sqlite_stat4)
16:15
Change the way samples for the sqlite_stat4 table are collected. (check-in: 13ed5ac1 user: dan tags: sqlite_stat4)
16:04
Fix the ".dump" command on the command-line shell so that it works for "sqlite_stat4" in addition to "sqlite_stat1". (check-in: 1e80c4b1 user: drh tags: sqlite_stat4)
15:57
Remove the unused sqlite3Utf8to16() utility function. (check-in: 9159b43e user: drh tags: sqlite_stat4)
15:52
When estimating the number of rows scanned using data from the sqlite_stat4 table, avoid allocating UnpackedRecord and KeyInfo structures until they are definitely required. (check-in: 353950a5 user: dan tags: sqlite_stat4)
14:18
Add a guard #ifndef to test_intarray.h to prevent harm if it is #included more than once. Add a comment on the closing #endif of the guards on sqlite3.h and test_multiplex.h. (check-in: 0ad83ceb user: drh tags: trunk)
01:18
Fix typos and add clarification to comments in where.c. No code changes. (check-in: f8d8790e user: drh tags: trunk)
2013-08-06
20:15
Fixes for builds without SQLITE_ENABLE_STAT4. (check-in: 84999e27 user: dan tags: sqlite_stat4)
20:01
When possible, use the multi-column samples in sqlite_stat4 to estimate the number of index rows scanned by a query plan. (check-in: 2973f5ca user: dan tags: sqlite_stat4)
19:18
Fix a test case related to partial indices so that it works even if STAT3 is disabled. (check-in: 153c6450 user: drh tags: trunk)
18:35
Adjust #ifdefs in test_autoext.c so that it compiles with SQLITE_OMIT_LOAD_EXTENSION. Fix compiler warnings in two other test modules. No changes to the core. (check-in: 89930ea3 user: drh tags: trunk)
18:21
Update the configure script to use the latest version number (3.8.0). (check-in: 52e8ec5e user: drh tags: trunk)
17:24
Add a testcase() macro to verify OOM coverage. (check-in: d43dcbc4 user: drh tags: trunk)
16:56
Remove unreachable branches in expr.c, replacing them with assert() and testcase() statements. (check-in: 9103c27c user: drh tags: trunk)
14:52
Merge in the latest changes from trunk. (check-in: 69d5bed0 user: drh tags: sessions)
14:36
For the ".import" command of the command-line shell, start a transaction if there is not one active already. (check-in: 5dcc2d91 user: drh tags: trunk)
14:01
Clean up the input reader in the command-line shell for improved legibility and performance. (check-in: 2b1743d6 user: drh tags: trunk)
07:45
More than double the speed of the resolveP2Values() routine in vdbeaux.c by moving from an extended if-else on every opcode to a switch. Opcodes are reordered in mkopcodesh.awk to put the switched opcodes close together, for additional performance and to reduce code footprint. (check-in: 924f7e4d user: drh tags: trunk)
2013-08-05
22:05
Performance optimization: Avoid calling convertCompoundSelecctToSubquery() on queries that do not use the UNION, EXCEPT, or INTERSECT operators. (check-in: c589b2fe user: drh tags: trunk)
21:54
For the vtshim module, always zero out the xChildDestroy function pointer after calling it. (check-in: 240f7252 user: mistachkin tags: trunk)
19:11
Factor all KeyInfo object allocations into a single function: sqlite3KeyInfoAlloc(). Always allocate enough space so that sqlite3VdbeRecordCompare() can avoid checking boundaries and hence run faster. (check-in: 7301bedd user: drh tags: trunk)
19:04
Modify the vdbe code generated by ANALYZE to use fewer memory cells and cursor slots. (check-in: 4a51cf28 user: dan tags: sqlite_stat4)
18:00
Use N separate cursors when scanning an index with N columns to collect sqlite_stat4 data. This fixes a problem with collecting incorrect nEq values from multi-column indexes. (check-in: 3a71afe6 user: dan tags: sqlite_stat4)
15:32
Improve performance of sqlite3VdbeRecordCompare() by using an approximation that might give false negatives and only running the more expensive exact subexpression if the approximation fails. (check-in: 28979dcd user: drh tags: trunk)
12:31
Add a missing '#include "tcl.h"' to test_rtree.c. (check-in: 4b8b426f user: drh tags: trunk)
05:34
Fix a couple of problems in code related to sqlite_stat4. (check-in: badd24d9 user: dan tags: sqlite_stat4)
2013-08-03
20:24
Begin adding experimental sqlite_stat4 table. This commit is buggy. (check-in: 2beea303 user: dan tags: sqlite_stat4)
2013-08-02
23:40
Updates to requirements marks. No code changes. (check-in: 21302076 user: drh tags: trunk)
20:44
Merge in the latest trunk changes, including partial indexes, the MAX_PATH fix in os_win.c, and the sqlite3_cancel_auto_extension() API. (check-in: 7e1acb39 user: drh tags: sessions)
20:11
Add NEVER() and ALWAYS() macros on some unreachable yet prudent branches. (check-in: c5c0a8ab user: drh tags: trunk)
16:41
Add support for partial indices. (check-in: 478113f1 user: drh tags: trunk)
14:18
Silently ignore database name qualifiers in CHECK constraints and in partial index WHERE clauses. (Closed-Leaf check-in: 2e8c845e user: drh tags: partial-indices)
13:31
Fix typos in documentation for SQLITE_DBSTATUS_DEFERRED_FKS . No changes to code. (check-in: f3efbfcd user: drh tags: trunk)
2013-08-01
22:27
Fix the CREATE INDEX statement so that trying to create a TEMP index on a non-TEMP table throws an error rather than segfaulting. (check-in: e3c8935f user: drh tags: trunk)
22:26
Fix an incorrect expected result in a test case in corruptG.test. (check-in: 6913831a user: drh tags: trunk)
20:26
Fix a potential buffer overread in sqlite3VdbeRecordCompare() when a serial_type specifies a field that starts in bounds but is much too large for the allocated buffer. Mostly harmless. The overread is unlikely to go more than one or two bytes past the end of the buffer. (check-in: e436b2f4 user: drh tags: trunk)
19:17
Make sure signed integer overflow does not cause a segfault while attempting to read a corrupt database where the header size varint on a record is larger than the maximum 32-bit signed integer. (check-in: c3baca99 user: drh tags: trunk)
17:43
Add test case for the problem fixed by [127a5b776d]. (check-in: 65816718 user: dan tags: trunk)
17:21
An improved method for avoiding the use of the STAT3 samples to compute the estimated number of outputs when the left-most index is equality constrained. This check-in undoes the previous fix and applies a new one. (check-in: 127a5b77 user: drh tags: trunk)
16:52
Avoid using left-most column STAT3 samples if the left-most column has an equality constrain and there are inequality constraints on the second column. (check-in: 31b4e63b user: drh tags: trunk)
16:02
Fix bug in the logic that determines the end of a CREATE INDEX statement. Added a VACUUM test case that exposed the bug. (check-in: 2e3df0bc user: drh tags: partial-indices)
15:09
More test cases and corresponding bug fixes. (check-in: 0c8cfdfa user: drh tags: partial-indices)
13:04
Fill out an initial implementation of the sqlite3ExprImpliesExpr() function. (check-in: 8e07aa2a user: drh tags: partial-indices)
12:21
Refactor internal function name sqlite3VdbeGetValue() to sqlite3VdbeGetBoundValue(). (check-in: 81834c30 user: drh tags: partial-indices)
04:39
Fix the ANALYZE command to work with partial indices. (check-in: 60353124 user: drh tags: partial-indices)
03:36
Test cases and bug fixes for the partial index logic. (check-in: 6b73ae7c user: drh tags: partial-indices)
01:14
Add the logic to keep partial indices up to date through DML statements and when new partial indices are created. This new logic is untested except to verify that it does not interfere with full indices. (check-in: fb9044d1 user: drh tags: partial-indices)
2013-07-31
23:28
Limit the number of memset() calls used when determining a temporary file name on Windows. Also, fix a harmless compiler warning. (check-in: 136fc293 user: mistachkin tags: trunk)
23:22
Add logic to the query planner to only use partial indices if the WHERE clause constrains the search to rows covered by the partial index. This is just infrastructure. The key routine, sqlite3ExprImpliesExpr(), is currently a no-op so that partial indices will never be used. (check-in: 8ca3eac1 user: drh tags: partial-indices)
22:39
Slight modifications to path name translation handling for Cygwin. (check-in: 33ba1f4c user: mistachkin tags: trunk)
22:27
Use a new error code to represent a failure to get the configured temporary directory on Windows. (check-in: c93d891b user: mistachkin tags: trunk)
19:55
The MAX_PATH constant in windows is measured in characters, so multiple by 3 to get the number of bytes assuming worst-case UTF8 pathnames. (check-in: bb06e157 user: drh tags: trunk)
19:05
Resolve names in CREATE INDEX WHERE clauses and detect errors. Disallow expressions that contain variables, subqueries, or functions. The expression is still not used for anything, however. still unused. (check-in: f2aa7842 user: drh tags: partial-indices)
18:12
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. (check-in: 6794b2dc user: drh tags: partial-indices)
2013-07-30
15:10
Reduce the size of the stack required by the codeOneLoopStart() function in where.c. (check-in: eb6d4278 user: drh tags: trunk)
2013-07-29
19:03
For the MSVC makefile, recompile vdbe.lo and parse.lo first. (check-in: 9e819f0f user: mistachkin tags: trunk)
15:54
Comment and preprocessor macro cleanup. (check-in: c0809b5e user: drh tags: trunk)
13:51
In main.mk, always recompile vdbe.o and parse.o first, since changes to either parse.y or vdbe.c will cause all files to be recompiled and if there are syntax errors in vdbe.c or parse.y we want to hit them early in the compile process. (check-in: a94a66d1 user: drh tags: trunk)
2013-07-25
17:07
In the command-line shell, work around the fact that popen() and pclose() are not defined in stdio.h. in C89 and later. (check-in: 8bcbb33f user: drh tags: trunk)
16:41
Fix a typo in main.c: SQLITE_DEAULT_AUTOMATIC_INDEX -> SQLITE_DEFAULT_AUTOMATIC_INDEX (check-in: cc78e21c user: dan tags: trunk)
16:27
Enhance the progress handler so that it keeps track of the number of VDBE cycles across sqlite3_step() calls and issues callbacks when the cumulative instruction count reaches threshold. (check-in: 4698a82e user: drh tags: trunk)
2013-07-24
14:54
Another attempt at generalizing the URI parsing so that it works with a wider variety of file URIs and yet remains backwards compatible. (check-in: de05eb75 user: drh tags: uri-enhancement)
2013-07-23
22:28
Get the new URI logic working for Windows. (Closed-Leaf check-in: 0165789f user: drh tags: uri-enhancement)
20:54
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. (check-in: 74c12dee user: drh tags: uri-enhancement)
2013-07-20
00:39
Merge updates from trunk. (check-in: dd4b77c8 user: mistachkin tags: toTypeFuncs)
00:34
Add 'queryplantest' target to the MSVC makefile. (check-in: ad0551e0 user: mistachkin tags: trunk)
2013-07-19
23:58
Fixes to test numbering. (check-in: f755b4b2 user: mistachkin tags: trunk)
2013-07-18
20:28
Remove unused "codec" code from the command-line shell. (check-in: 37abfe0c user: drh tags: trunk)
18:45
Improved documentation for sqlite3_set_auxdata(). Ticket [406d3b2ef91c]. (check-in: 62465ecb user: drh tags: trunk)
18:29
Ensure that all auxiliary data registered by calls to sqlite3_set_auxdata() is destroyed when the VM is halted. (check-in: 153deac8 user: dan tags: trunk)
18:28
Fix a typo in the previous commit. (Closed-Leaf check-in: cd9096e6 user: dan tags: typo)
17:12
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. (check-in: 71effa59 user: dan tags: typo)
14:50
Fix a 8-byte alignment problem in the query planner that might cause problems on sparc when compiled with -m32. (check-in: 5dcffa67 user: drh tags: trunk)
14:16
Documentation changes to warn that sqlite3_set_auxdata() might call the destructor even before it returns. Also fix the regexp extension to deal with that case. Ticket [406d3b2ef91c]. (check-in: 7acc8cd3 user: drh tags: trunk)
2013-07-17
21:08
Fix copy/paste errors in comments in the transitive_closure virtual table. No changes to code. (check-in: b1b0de29 user: drh tags: trunk)