SQLite

Timeline
Login

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

100 ancestors of a7be554f4b8534fc

2015-06-23
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
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)
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)
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
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
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)
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)
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)
2015-06-09
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
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)
18:30
Code simplifications in select.c and where.c. (check-in: 4f20ac90 user: drh tags: view-optimization)
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)
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-02
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)
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)
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)
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)
18:13
Corrections to comments in expr.c. No code changes. (check-in: f925389e user: drh tags: trunk)
11:10
Typo fixes and additional background information in README.md. (check-in: 9b8e5823 user: drh tags: trunk)
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)
2015-05-29
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: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
15:14
Added comments and testcase() macros to error cases in the btree search. (check-in: 7da7dc71 user: drh tags: trunk)
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: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)