SQLite

Timeline
Login

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

638 check-ins using file test/memsubsys1.test version bf270964ab

2016-08-10
03:35
Try to make pcache1TruncateUnsafe() run faster for the case where iLimit is very close to iMaxKey. (Leaf check-in: 9ab53605d5 user: drh tags: debug)
02:54
Remove all timers and other debugging logs except for the one timer on pcache1TruncateUnsafe(). (check-in: 5980e625db user: drh tags: debug)
2016-08-09
11:44
Add another timer on pcache1TruncateUnsafe(). (check-in: 42ce53f648 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: 7d0af4b53c user: dan tags: debug)
01:21
Refocus the timer on the pager_end_transaction() routine. (check-in: 9d4eb6e475 user: drh tags: debug)
2016-08-04
14:08
Add extra logging calls to this branch. (check-in: 491f1ef36e 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: 92b9fead35 user: drh tags: debug)
2016-07-29
16:32
Turn memory status off by default. (check-in: ea3c7162dc user: drh tags: debug)
14:31
Enhance a debugging log message to better identify a mutex. (check-in: e60cb6d885 user: dan tags: debug)
14:23
Use __sync_synchronous(), when available, instead of a mutex when a memory barrier is needed. (check-in: 7d4562e9d5 user: drh tags: debug)
14:10
Add calls to sqlite3_log() when sqlite3_mutex_enter() takes more than 100,000 CPU cycles. (check-in: 33c7ef7aca 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: 613c1ceaf4 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: 46bd9533c0 user: drh tags: btree-balance-bias)
2014-12-31
20:19
Fix a floating-point round-off error problem in the percentile.test module. (check-in: 456948ea64 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: 9d4fe11641 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: b09a139c9e 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: f489bc3116 user: drh tags: trunk)
18:25
Add a missing sqlite3_close() call to threadtest3.c. (check-in: a65a44f3ff user: dan tags: trunk)
18:10
Only run walthread5 once when running all tests in threadtest3. (check-in: ca2e4a5b22 user: drh tags: trunk)
18:08
Do run pragma3.test as part of the mmap permutation. As it works as of [cf48eb608a]. (check-in: 11057e2645 user: dan tags: trunk)
15:14
Change the width of output lines in releasetest.tcl from 70 to 79 characters. (check-in: a468d96700 user: drh tags: trunk)
14:27
Merge the fix to PRAGMA data_version and testing improvements from trunk. (check-in: 86e39123c1 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: cf48eb608a user: drh tags: trunk)
09:52
Do not run pragma3.test as part of the mmap permutation. (check-in: 9410101196 user: dan tags: trunk)
2014-12-30
20:40
Add the "mptester" tests to releasetest.tcl. (check-in: 93094a68d3 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: c7f84717d6 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: 98cb56e240 user: drh tags: trunk)
18:07
Fix problems with the "inmemory_journal" permutation. (check-in: 79693f0412 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: 776648412c user: dan tags: trunk)
13:04
Make SQLITE_CONFIG_PCACHE_HDRSZ accurate (not an over-estimate) on 32-bit systems. (check-in: 340b347758 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: d904d29354 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: b28ce75f2d user: drh tags: trunk)
2014-12-29
19:54
Fix the --dryrun option in releasetest.tcl. (check-in: 0f9e549643 user: drh tags: trunk)
12:02
Fix some recently added tests so that they work with SQLITE_DEFAULT_AUTOVACUUM=1. (check-in: ef0626ab20 user: dan tags: trunk)
11:50
Reinstate an assert() by adding an "|| CORRUPT_DB" term. (check-in: 95ce20348d user: drh tags: trunk)
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: 4eda1c7460 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: 0dfef67570 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: 3286424b4d 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: 6396f80462 user: drh tags: trunk)
18:11
Fix a failing assert() in balance_nonroot(). (check-in: e2e323145f user: dan tags: trunk)
17:17
When building the amalgamation with SQLITE_ENABLE_IOTRACE defined, do not mark symbol sqlite3IoTrace as static. (check-in: 5b7ca013b7 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: 1deb00ec75 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: a010c404b5 user: mistachkin tags: releasetest-refactor)
21:03
Fix typo in library object file name. (check-in: f49566a79d 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: 3f7dbdb5df 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: 2295e9e0a2 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: cb128067fa user: drh tags: releasetest-refactor)
20:22
Draft of changes necessary to make releasetest work on Windows via MinGW. (check-in: af166c5c64 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: 1bb26695ff user: drh tags: trunk)
19:52
Add the "checksymbols" target to Makefile.in (check-in: 5bd73dba5e 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: 7c85e83115 user: drh tags: releasetest-refactor)
2014-12-22
22:02
Fix a typo in an evidence mark on a test script. No changes to code. (check-in: a08b0c7512 user: drh tags: trunk)
18:48
Merge the PRAGMA data_version redefinition and other fixes from trunk. (check-in: 315243e49d 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: 7a97826f33 user: drh tags: trunk)
2014-12-21
11:56
Fixes to the README.md file. No changes to code. (check-in: ef4b734d1f 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: b9330b887c user: mistachkin tags: trunk)
21:14
Minor fixes and enhancements to the SQLITE_ENABLE_API_ARMOR functionality. (check-in: cb3e4219ac 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: d4f82af0a4 user: drh tags: sessions)
14:50
Add the "PRAGMA data_version" command for checking to see if a database has been modified. (check-in: de50f25ce3 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: 44ee538374 user: drh tags: data_version_pragma)
2014-12-19
22:20
Merge updates from trunk. (check-in: 555fb71f6c user: mistachkin tags: asciiMode)
20:27
Adding test cases for the "PRAGMA data_version" command. (check-in: c5fb7d6a10 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: 43db1f44bc 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: da27a09d1d user: drh tags: trunk)
2014-12-17
15:03
Experimental opimizations to speed up FK constraint CASCADE and SET NULL action processing. (check-in: 8c5dd6cc25 user: dan tags: trunk)
14:38
Fix some comments in fkey.c. Add tests to fkey8.test. (Closed-Leaf check-in: 210cb2a6aa 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: 35a20a5f22 user: dan tags: experimental-fk-actions)
12:46
Fix the e_walauto.test script so that it works on windows. (check-in: 7d092ebb67 user: drh tags: trunk)
01:05
Merge threading fixes from trunk into the sessions branch. (check-in: 9817a2864e user: drh tags: sessions)
00:20
Enhanced "stress2" testing in the threadtest3.c test program. (check-in: ae43539e62 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: 5b1b697040 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: 5648af96d8 user: dan tags: threadtest3)
16:27
Add new test file e_walauto.test. (check-in: 62ef45140c user: dan tags: trunk)
08:46
Fix errors in threadtest3 tests caused by earlier tests neglecting to close database handles. (check-in: 1d44f1b1a9 user: dan tags: trunk)
2014-12-13
17:41
Further enhancements to threadtest3 stress tests. (check-in: ba772cff60 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: d7bb7ea4ab user: drh tags: trunk)
16:39
Add extra tests to threadtest3. (check-in: f6bf86f907 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: d8d3e6d04c 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: 03c443eaf2 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: 6bef7ede2b user: drh tags: threadtest4)
00:26
Merge the cell overflow page number cache thread race fix from trunk. (check-in: cefad47ec2 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: b7489f9451 user: drh tags: threadtest4)
2014-12-11
19:29
Add the threadtest4.c test program. Not yet working. (check-in: ec3a74469c user: drh tags: threadtest4)
16:38
Fix a race condition to do with very large index keys in shared-cache mode. (check-in: fc157dd7f1 user: dan tags: trunk)
15:27
Fix a typo in the documentation for sqlite3_threadsafe(). (check-in: 258e747bb7 user: drh tags: trunk)
04:49
Update a comment. (check-in: e0e102a0bd user: mistachkin tags: asciiMode)
03:29
Rename a structure member to improve code clarity. (check-in: d48eda16ef user: mistachkin tags: asciiMode)
03:25
Remove an unused structure member. (check-in: d8404340cb user: mistachkin tags: asciiMode)
03:20
Further simplify shell mode changes. (check-in: cf9c6e7eea user: mistachkin tags: asciiMode)
03:12
Simplify and cleanup the implementation of the new ASCII mode for the shell. (check-in: 66a28f7aba user: mistachkin tags: asciiMode)
02:28
Merge updates from trunk. (check-in: 5b5d3e4d0d user: mistachkin tags: asciiMode)
2014-12-10
20:57
Fix a typo causing a test error in e_walhook.test. (check-in: d9f916ba09 user: dan tags: trunk)
20:29
Add new test file e_walhook.test. (check-in: 2eb6d3e4fb user: dan tags: trunk)
17:34
Revise mutex handling by the sqlite3_win32_reset_heap() function. (check-in: eacb3b7baa user: mistachkin tags: trunk)
04:58
Fix typos in the documentation for sqlite3_table_column_metadata(). No changes to code. (check-in: 3528f8dd39 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: cf9be419a1 user: drh tags: trunk)
20:13
Add extra tests to e_walckpt.test. (check-in: 84f9581019 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: 1ba8911c18 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: 4f7549ff92 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: 75a803e694 user: drh tags: trunk)
14:54
Merge the KeyInfo cache mutex fix from trunk. (check-in: f0940c73bd 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: b05340fe3c user: drh tags: trunk)
04:26
Fix harmless compiler warning. (check-in: e97b7a8b4d user: mistachkin tags: trunk)
01:34
Version 3.8.7.4 (Leaf check-in: f66f7a17b7 user: drh tags: release, branch-3.8.7, version-3.8.7.4)
2014-12-08
20:29
Add extra tests to e_walckpt.test. (check-in: d6832aa24c user: dan tags: trunk)
20:23
Add missing mutex calls around a call to sqlite3SchemaGet() within sqlite3_open(). (check-in: 266b3441c6 user: dan tags: branch-3.8.7)
20:20
Add missing mutex calls around a call to sqlite3SchemaGet() within sqlite3_open(). (check-in: 4541589954 user: dan tags: trunk)
18:08
Add a missing mutex around calls to clear the KeyInfo cache when closing a database connection. (check-in: 7047ce32a2 user: drh tags: trunk)
18:02
Increase the version number to 3.8.7.4. (check-in: 33c900279f 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: 3ddc7e4c77 user: drh tags: branch-3.8.7)
07:50
Update this branch with latest trunk changes. (check-in: 69a312ad3f user: dan tags: ota-update)
07:28
Update comments in sqlite3ota.h to remove the "must have PRIMARY KEY" restriction. (check-in: 088a41eb8c user: dan tags: ota-update)
07:22
Extra tests for the ota_rowid column. (check-in: 46069393b3 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: ba59a7e2ba 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: 6aeece19a2 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: dd1dd4451f user: drh tags: trunk)
2014-12-05
22:29
Version 3.8.7.3 (check-in: 647e77e853 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: 42d44adc13 user: drh tags: trunk)
21:04
Fix a buffer overread that might occur in analyze.c if SQLITE_ENABLE_STAT4 was defined. (check-in: c1ae1268b9 user: dan tags: trunk)
20:46
Add new test file e_walckpt.test. Still some tests to come. (check-in: e4db3db3a6 user: dan tags: trunk)
20:43
Fix a buffer overread that might occur in analyze.c if SQLITE_ENABLE_STAT4 was defined. (check-in: 194c90db63 user: dan tags: branch-3.8.7)
20:05
Merge the fix for the shared-cache KeyInfo cache bug from trunk. (check-in: 5a73da6a30 user: drh tags: sessions)
19:50
Make sure the WhereTerm objects are fully zeroed when they are allocated. (check-in: fdb667335c 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: 7ed3346e8c 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: 48529508cf user: drh tags: branch-3.8.7)
14:54
Increase the version number to 3.8.7.3. (check-in: 9f7560bc45 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: b7905b8c5f 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: adca7688de 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: 68b23c3d41 user: drh tags: collseq-checking)
14:34
Improved comment on the sharedB.test test script. (Closed-Leaf check-in: 71f589e3f8 user: drh tags: fix-stale-keyinfo-cache)
14:07
Test case demonstrating the problem described by ticket [e4a18565a36884b00edf]. (check-in: ffea3e905a 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: 651ed97de1 user: drh tags: fix-stale-keyinfo-cache)
00:41
Import from trunk the fix the "test" target on the autoconf and MSVC makefiles and some minor compiler warning fixes. (check-in: c9f20eb2fb user: drh tags: sessions)
00:32
Fix compiler warnings. (check-in: e9955c0e14 user: drh tags: trunk)
00:17
Fix the autoconf and MSVC makefiles, which have been broken for nearly a month. :-( (check-in: 520c2b838d user: drh tags: trunk)
2014-12-04
23:35
Incorporate the SQLITE_CHECKPOINT_TRUNCATE enhancement and a couple of obscure bug fixes from trunk. (check-in: 34ffa3b3c0 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: 0d3aef97eb 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: 1461d543ac 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: 5a80957b04 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: 6f6fcbe473 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: 1e2bc484f8 user: drh tags: trunk)
14:01
Fix comment typos reported on the mailing list. No changes to code. (check-in: 93a71c9f05 user: drh tags: trunk)
04:50
Add an implementation mark and fix a comment describing the OP_Checkpoint opcode. (check-in: 7475b90c55 user: drh tags: trunk)
2014-12-03
19:25
Add evidence marks and assert()s used as evidence for checkpoint requirements. (check-in: b2da8afc76 user: drh tags: trunk)
19:08
Fix over-length comment lines in sqlite.h.in. No changes to code. (check-in: cbd357fd8c user: drh tags: trunk)
18:32
Simplify the sqlite3_wal_checkpoint() documentation. Add some source code evidence marks. (check-in: 026c44ff2c user: drh tags: trunk)
16:30
Futher tweaks to the sqlite3_wal_checkpoint_v2() documentation. (check-in: 7d284d047b 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: 1e212d9899 user: drh tags: trunk)
2014-12-02
20:51
Add support for SQLITE_CHECKPOINT_TRUNCATE. (check-in: edda2b9e7a user: drh tags: trunk)
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: 6ee08769f0 user: dan tags: checkpoint-truncate)
19:04
Add the SQLITE_CHECKPOINT_TRUNCATE option. (check-in: 8e20a43419 user: dan tags: checkpoint-truncate)
16:31
Merge all recent fixes and enhancements from trunk into sessions. (check-in: 2617d93713 user: drh tags: sessions)
16:16
Convert two unreachable branches into assert() statements. (check-in: 61b31e7714 user: drh tags: trunk)
13:46
Work around overzealous NULL pointer checking in memcpy() and memset() for some systems. (check-in: 0d04f380e1 user: drh tags: trunk)
2014-11-28
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: 24fa2e9832 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: b59397b1f1 user: drh tags: trunk)
2014-11-27
18:09
Update ota so that the hidden columns of virtual tables may be written. (check-in: ccee999649 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: f095cde579 user: dan tags: trunk)
04:23
More test cases for the balancer. (check-in: 358ea818f7 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: f242394e07 user: drh tags: trunk)
2014-11-25
18:59
Fix an integer overflow bug in vdbesort.c. (check-in: 6238271925 user: dan tags: trunk)
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: 1e1221fc48 user: drh tags: trunk)
19:52
Fix an error in the comments from the previous check-in. (check-in: 9660ce5418 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: 221659945c 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: e1f893c606 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: eea4793349 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: 600cefdd4d user: dan tags: ota-update)
2014-11-21
14:37
Merge latest trunk changes with this branch. (check-in: 7ef44c5b5b user: dan tags: ota-update)
11:22
Changes to comments in sqlite3ota.h. (check-in: 14139542b6 user: dan tags: ota-update)
10:46
Add support for updating virtual tables via ota. (check-in: 4dfcfe5439 user: dan tags: ota-update)
2014-11-20
23:21
Fix a typo in a requirements mark on the abs() SQL function. (check-in: b1e6c02f8b user: drh tags: trunk)
23:11
Fix a benign test error on PRAGMA collation_list introduced by a recent checkin. (check-in: 332cc9591d user: drh tags: trunk)
23:03
Updates to requirements tags on the mutex documentation. (check-in: fcf8b7e4c6 user: drh tags: trunk)
19:22
Add requirements marks on the built-in collating functions. (check-in: 4b608b62ac user: drh tags: trunk)
19:19
Add the "ota_delta()" feature for delta-compressed updates. (check-in: c64dcd1788 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: 55066a1171 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: ef9fbc08b0 user: drh tags: trunk)
15:11
Updates to support zipvfs in pass-through mode. (check-in: 556c3de53a 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: 2d7c8da5f1 user: drh tags: trunk)
02:18
Add some requirements marks to the record formatting logic. Comment changes only - the code is unaltered. (check-in: 9a9627e178 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: 6d00bcca6e user: drh tags: trunk)
14:31
Completely remove an assert() that had previously been commented out. (check-in: 89b3c1c455 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: 9ed97a85fe 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: 4461bf045d 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: c52f7971e9 user: drh tags: trunk)
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: f09055f3c4 user: drh tags: sessions)
20:57
Version 3.8.7.2. (check-in: 2ab564bf96 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: 296b0c7397 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: 2896f2640a 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: abccda769a user: drh tags: trunk)
12:28
Increment the version number to 3.8.7.2 (check-in: 945a9e687f user: drh tags: branch-3.8.7)
02:44
Add an ALWAYS() to an always-true conditional in the WAL rollback logic. (check-in: c5eae8a60d 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: 57c4aa988c 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: 2f2ecb9948 user: dan tags: branch-3.8.7)
19:42
Avoid calling sqlite3BtreeKeysize() on a b-tree cursor in SKIPNEXT or SKIPPREV state. (check-in: 54e7d3fcb1 user: dan tags: trunk)
19:25
Improved comments on the BtCursor.skipNext field. No changes to code. (check-in: e956e7db05 user: drh tags: branch-3.8.7)
18:35
Add tests for WITHOUT ROWID tables with composite primary keys. (check-in: 712d413d29 user: dan tags: ota-update)
17:57
Changes so that sqlite3_ckpt_open() works with zipvfs databases. (check-in: acbed3380d 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: 34fc4a082c 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: 42588207ff 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: eba171e980 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: 447b33b34a user: dan tags: ota-update)
2014-11-15
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: 00fe095057 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: 93642a65ef 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: 98457a57d6 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: 55e453aadb 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: ef03a20335 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: 169b550549 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: 402780a9c8 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: eaf3aae014 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: dd03a2802f user: dan tags: trunk)
14:12
Fix the %c format character in sqlite3VXPrintf() so that it correctly handles precisions larger than 70. (check-in: 839a6df9f9 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: e1017745e1 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: d4b2d5d066 user: drh tags: branch-3.8.7)
19:07
Remove some calls to the 'breakpoint' test command. (check-in: 1412fcc480 user: mistachkin tags: trunk)
16:11
Add tests for sqlite3_blob_bytes(). (check-in: a066a3832a user: dan tags: trunk)
14:59
Permit read operations to continue after a ROLLBACK as long as the schema does not change. (check-in: b5df5ac052 user: drh tags: trunk)
12:20
Add new test file e_blobclose.test, containing tests for sqlite3_blob_close(). (check-in: 5a1eac2419 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: fa6e6a9ae2 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: 8289c3e9b4 user: drh tags: trunk)
17:53
Add test file e_blobwrite.test, containing tests for the sqlite3_blob_write() interface. (check-in: 1df77e5f1b user: dan tags: trunk)
16:49
Add the eval() SQL function extension in ext/misc/eval.c. (check-in: 27cf665b95 user: drh tags: trunk)
14:42
Shorten over-length source code lines in shell.c. (check-in: 7f3819f642 user: drh tags: trunk)
2014-11-07
14:41
Add new test file e_blobopen.test, containing tests for sqlite3_blob_open(). (check-in: ecbccd0e59 user: dan tags: trunk)
14:37
Fix another harmless comment typo. (check-in: b45bc80bb1 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: 5700508535 user: drh tags: trunk)
13:24
Fix harmless typos in comments. (check-in: 94c564da4c user: drh tags: trunk)
11:39
Fix typo in sqlite3.h reported on the mailing list. (check-in: 402703212a user: drh tags: trunk)
01:43
Update documentation on sqlite3_config() and add corresponding evidence marks. (check-in: 360c8ca11c 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: 20c7614add 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: ee922682bb 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: d1c51c8455 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: eacbbd8849 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: 64ad5761a8 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: f968400066 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: 272fddc14c user: drh tags: trunk)
21:21
Fix harmless compiler warnings in the new balance_nonroot() routine. (check-in: 83a1e5db92 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: 2d36be5d9a 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: 42705fd7d8 user: drh tags: trunk)
14:19
Add a test case to check that the previous commit is effective. (check-in: 948d6e5d07 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: c106b75536 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: 7974c0ed10 user: dan tags: trunk)
2014-11-04
21:38
Improved output formatting for the showstat4 tool. (check-in: 7df82c46da user: drh tags: trunk)
19:52
Skip tests that require WAL mode when it is not enabled. (Closed-Leaf check-in: 6fc4ead26d user: mistachkin tags: winMmapNoWal)
19:37
For the Win32 VFS, allow memory mapped files to work when compiled without WAL support. (check-in: 1fc7e2f3d3 user: mistachkin tags: winMmapNoWal)
17:23
Add various requirements evidence marks for sqlite3_config() options. (check-in: d423349d2c 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: 391c9b85ab user: drh tags: trunk)
13:41
Improved documentation and addition of source-code evidence marks for the sqlite3_config() interface. (check-in: 681031a436 user: drh tags: trunk)
12:11
Add the SQLITE_CONFIG_PCACHE_HDRSZ option for sqlite3_config(). (check-in: 6eb03e62a3 user: drh tags: trunk)
2014-11-03
18:03
Updates to the sqlite3_stmt_scanstatus() documentation. No changes to code. (check-in: d97c324eb1 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: ab3b0fc576 user: dan tags: trunk)
16:39
Fix a typo preventing this from building with SQLITE_ENABLE_STMT_SCANSTATUS defined. (Closed-Leaf check-in: 4c5714ab3d user: dan tags: scanstatus)
16:35
Refactor the interface to make it more easily extensible. (check-in: 7955342da4 user: drh tags: scanstatus)
15:33
Add further tests. Fixes so that compilation without ENABLE_STMT_SCANSTATUS works. (check-in: a2303c7192 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: a518bc3318 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: 3dda3c9374 user: drh tags: trunk)
11:25
Remove unused variable from struct WhereInfo. Add some explanatory comments to new code. (check-in: f5313e0c68 user: dan tags: scanstatus)
2014-11-01
21:00
Minor performance enhancements to SQLITE_ENABLE_STMT_SCANSTATUS code. (check-in: f13d6ba8a7 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: 9ea37422a8 user: dan tags: scanstatus)
18:32
Add requirements marks and make minor tweaks to documentation. (check-in: 49188b2bb5 user: drh tags: trunk)
18:08
Minor fixes and documentation improvements for sqlite3_stmt_scanstatus(). (check-in: 8d8cc9608d user: dan tags: scanstatus)
2014-10-31
20:11
Add the experimental sqlite3_stmt_scanstatus() API. (check-in: 6a9bab34ae user: dan tags: scanstatus)
14:53
Merge recent trunk enhancements, and in particular the improvements to the b-tree balancing logic, into the sessions branch. (check-in: 28b044a512 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: 67f0d469da 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: a07078b600 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: 2e838db82e user: drh tags: trunk)
10:31
Add the "varint.c" utility program in the tool directory. (check-in: ea5d56be5f user: drh tags: trunk)
02:51
Remove an unnecessary branch from balance_nonroot(). (check-in: 9fc7c88e3f 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: 69c3924fe8 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: 67adb44838 user: drh tags: trunk)
20:48
Tweaks to comments in btree.c. Minor code changes to enhance testability. (check-in: c7d9aa3a1c 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: 08a27440f1 user: drh tags: trunk)
13:59
Version 3.8.7.1 (check-in: 3b7b72c468 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: 83afe23e55 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: cc33e846c8 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: 837368adfe 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: 304ea6ba6f 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: a8f9bd1e89 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: 24780f8ddc 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: f84af4adcc 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: 96e9917c35 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: 41cdd0c422 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: 8523670d50 user: dan tags: trunk)
16:19
Fix a faulty assert() in the DELETE code generator. (check-in: 95f8ebdbf8 user: drh tags: trunk)
15:58
Trivial simplification to the automatic index logic. (check-in: 23073a0539 user: drh tags: trunk)
12:35
Bump the version number to 3.8.8 (check-in: 1a7e711ed1 user: drh tags: trunk)
00:56
Correct the documentation on the maximum size of a scratch allocation. (check-in: 30f86eb3f9 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: 7857d27caa user: mistachkin tags: trunk)
20:14
Remove a small amount of unnecessary #ifdeffery from random.c. (check-in: 2b9340c868 user: drh tags: trunk)
19:58
Fix compilation issue with MSVC due to a misplaced variable declaration. (check-in: 9588b345d0 user: mistachkin tags: trunk)
19:42
Fix harmless compiler warning in an assert statement. (check-in: d33a1ff3aa user: mistachkin tags: trunk)
19:39
Fix a typo in the macro name of an #ifdef (check-in: 9646a136e6 user: drh tags: trunk)
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: ffb9d8144b user: drh tags: trunk)
18:21
Fix an unused variable in btree.c:allocateSpace(). (check-in: 637246165a user: drh tags: trunk)
14:26
Optimizations aimed at reducing the number of memcpy() operations required by balance_nonroot(). (check-in: face33bea1 user: dan tags: trunk)
11:25
Add test file e_wal.test. (check-in: fc6920b548 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: 1f80f8c136 user: dan tags: defrag-opt)
07:01
Merge trunk with this branch. (check-in: a13df3013b user: dan tags: defrag-opt)
2014-10-25
20:36
Further modifications to new code to better handle corrupt databases. (check-in: 1a8cf0a043 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: 0f08924fe0 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: b9ad601eab 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: ecc3544e71 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: d95d0313c4 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: 19736dd9fb user: dan tags: defrag-opt)
16:40
Fix some minor formatting and code organization issues. (check-in: eab8706dc4 user: dan tags: defrag-opt)
15:26
Honor a high likelihood() on range constraints. (check-in: 401235edf4 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: 03d0498d0f user: drh tags: trunk)
12:37
Fix two problems. Tests now passing. (Closed-Leaf check-in: 1c220b806d 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: c297a84bc6 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: c6a5b67ae1 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: 9762ad0639 user: drh tags: trunk)
2014-10-22
20:07
Disable the use of strchrnul() unless specifically enabled by compile-time options. (check-in: e580470db7 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: ca3b00c44e user: drh tags: trunk)
18:42
Merge latest trunk with this branch. (check-in: 854a54c6c2 user: dan tags: defrag-opt)
16:25
The _beginthreadex() / _endthreadex() functions should only be used when compiling with MSVC. (Closed-Leaf check-in: 1a5a5da331 user: mistachkin tags: msvcThreads)
15:33
Add tests to check error handling in OTA. (check-in: ec7321ae48 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: 3c933bf95f user: drh tags: trunk)
11:30
Sync the database file in sqlite3_ckpt_close(), even if the checkpoint has not finished. (check-in: e2729d623c user: dan tags: ota-update)
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: 3e922208b6 user: drh tags: trunk)
19:35
Test that sqlite3ota_open() works with URI paths. Fix some other issues. (check-in: 6fd09854fe 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: a27861c28c user: drh tags: trunk)
18:09
Add tests for another application writing the database while an ota update is ongoing. (check-in: 2402baa002 user: dan tags: ota-update)
16:01
Add WHERETRACE debugging output to the whereLoopAdjustCost() routine. (check-in: ec1e942f08 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: f4b22a2620 user: drh tags: trunk)
2014-10-20
16:34
Merge version-3.8.7 changes with this branch. (check-in: d380a6482a user: dan tags: ota-update)
16:24
Have the ota extension perform an incremental checkpoint after generating the wal file. (check-in: 0bf1301aac 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: 19fe4a0a47 user: drh tags: trunk)
11:53
Merge all version 3.8.7 updates from trunk. (check-in: f4de9e07be user: drh tags: sessions)
11:24
Version 3.8.7 (check-in: e4ab094f8a 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: 06c576c152 user: mistachkin tags: trunk)
18:34
Changes to work around Win32 and MSVCRT APIs that are not present on Windows CE 200x. (check-in: 1418c006e3 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: 640345d880 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: 236704a9d1 user: dan tags: sessions)
19:37
Merge latest trunk changes with this branch. (check-in: 1b2824f1d1 user: dan tags: sessions)
15:28
Update releasetest.tcl so that x86-64 runs a superset of the x86 tests. (check-in: 3c1e70f4d5 user: dan tags: trunk)
14:45
Fix a problem causing lock5.test to fail in mmap-mode. (check-in: b3e7b446bd 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: 9386bfca12 user: drh tags: trunk)
11:31
Rearrange an expression in vdbemem.c to avoid a (harmless) reference to a possibly unitialized variable. (check-in: 4a7b3fa049 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: eab8233063 user: drh tags: trunk)
17:27
Fix some code duplication issues on this branch. Add minor optimizations to the new code. (check-in: 58d7793bd5 user: dan tags: defrag-opt)
13:41
Merge recent trunk micro-optimizations and the DESC index GROUP BY ORDER BY bug fix into the sessions branch. (check-in: 83d4114f2a user: drh tags: sessions)
2014-10-13
23:39
Optimize a database corruption test inside of the OP_Column opcode. (check-in: 005e5b388a 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: 4b3b65ee5e user: drh tags: trunk)
18:09
Merge trunk changes into this branch. (check-in: d5b7c5a88d user: dan tags: defrag-opt)
18:03
Further work on balance_nonroot(). (check-in: 6594f9b420 user: dan tags: defrag-opt)
17:42
Three small optimizations to vdbeaux.c. (check-in: 04892f8ba6 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: c2799aece1 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: 20062f4942 user: drh tags: trunk)
12:30
Use OP_SorterColumns in aggregate queries. Remove OPFLAG_CLEARCACHE. (Closed-Leaf check-in: 134e65c07f 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: b9c695e885 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: 91384a7d72 user: drh tags: trunk)
2014-10-11
23:31
Performance optimization and very slight size reduction for OP_Column. (check-in: 869c30e45c user: drh tags: trunk)
20:00
Attempt to further reduce memcpy() in balance_nonroot(). (check-in: fec849dcca 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: 66de15580d 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: 5d29a033b0 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: 7a32fdfd4b user: drh tags: trunk)
01:22
Remove an unnecessary conditional from the EXPLAIN QUERY PLAN logic. (check-in: c5dc83ebde 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: 2a9573962b user: dan tags: experimental)
19:15
Restrict the scope of the explainIndexRange() function in where.c. (check-in: c301245200 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: 8541dfb3bb user: dan tags: trunk)
18:09
Changes to enable compiling using VC6. (check-in: 9ee5686ab3 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: cf291cbe9f 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: d479e32be2 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: daa8314fba user: drh tags: trunk)
15:47
Simplify the code used to generate the text for EXPLAIN QUERY PLAN. (check-in: beea1efc3a 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: 68e1b4de70 user: drh tags: trunk)
13:08
Cause the command-line shell to return non-zero if the final SQL statement is incomplete. (check-in: 177fff3b98 user: drh tags: trunk)
12:56
Merge all recent trunk changes. (check-in: abfef25472 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: 29304499ea 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: 49dfee7cd1 user: dan tags: trunk)
14:10
Add a test case for the memory leak fixed by the previous check-in. (check-in: bae36d5446 user: drh tags: trunk)
14:00
Fix a memory leak associated with the FTS4 matchinfo() function. (check-in: fb8da82411 user: drh tags: trunk)
2014-10-08
19:33
Remove an always-true branch in whereRangeScanEst(). Replace it with an assert(). (check-in: 42e48fd3a6 user: drh tags: trunk)
15:53
Fix up test cases to account for the new SQLITE_LIMIT_WORKER_THREADS limit. (check-in: 6483d426c4 user: drh tags: trunk)
14:28
Set the connection-specific lastRowid value before calling any SQL function. (check-in: dff0f6422e 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: e4b43967fd user: drh tags: trunk)
11:11
Remove some temporary code in mallocA.test that was accidentally checked in. (check-in: dedd15f7cd user: dan tags: trunk)
02:53
Fix the STAT4 range scan estimates for DESC indexes. (check-in: e3fe840052 user: drh tags: trunk)
00:08
More intuitive labels on ".wheretrace" output. (check-in: adcb3fed48 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: f672a380e2 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: e405b9e4a9 user: drh tags: trunk)
16:59
Restrict the scope of the valueToText() routine. (check-in: 13c962b33d user: drh tags: trunk)
15:46
Enhance (and fix) the MEMTYPE tags associated with heap memory allocations when SQLITE_MEMDEBUG is used. (check-in: ca5b789e33 user: drh tags: trunk)
2014-10-06
18:33
Remove unreachable branches in decodeIntArray() when compiling without STAT3 or STAT4. (check-in: 80e1baa5c2 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: 3aff9a9cac user: dan tags: trunk)
12:41
Fix a harmless compiler warning inside an assert() in FTS4. (check-in: 418f3c9ad2 user: drh tags: trunk)
2014-10-04
19:31
Tweaks to documentation on sqlite3_open() and sqlite3_bind(). No code changes. (check-in: b8f7f19dc0 user: drh tags: trunk)
11:59
Updates to documentation and requirements marks. No code changes. (check-in: 0f8102d71a user: drh tags: trunk)
10:22
Add a test to show that the change on this branch is effective. (Closed-Leaf check-in: fc619be057 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: efd87ba142 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: f9c053b23e 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: e6f7f97dbc 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: d2fc322728 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: 440705b98a 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: ffe7573636 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: 07c89940c4 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: c3c15d20c6 user: dan tags: trunk)
01:52
Merge the latest enhancements from trunk. (check-in: 2695772c98 user: drh tags: sessions)
2014-09-30
21:24
Draw the TreeView debugging graphs using unicode box-drawing characters. (Closed-Leaf check-in: 0efc6859d1 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: 5ce05757aa 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: b6b289182f user: drh tags: trunk)
17:03
Further enhancements to the "wheretrace" debugging output. (check-in: 670993eb81 user: drh tags: trunk)
14:14
Enhanced debug output for OR-logic in the query loop optimizer. (check-in: 2e375eae47 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: 92e0b4bd4d 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: 4ff51325d6 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: 5e5d6e8680 user: drh tags: faster-OP_Column)
15:42
Fix the header comment in sqlite3VdbeDeletePriorOpcode(). No changes to code. (check-in: 7fb1626866 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: 414f0d6a64 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: 1f44bfdc23 user: drh tags: sessions)
19:51
Merge recent trunk changes (performance enhancements) into the sessions branch. (check-in: 497367cb57 user: drh tags: sessions)
18:18
Fix a segfault in the sessions module that could follow an OOM. (check-in: 09985fa6b6 user: dan tags: sessions)
16:33
Fix a segfault in the streaming API functions triggered by a very long table name. (check-in: d2642543ee user: dan tags: sessions)
12:26
Improve sessions module documentation and comments. Fix some other code issues. (check-in: bfc8bd80f8 user: dan tags: sessions)
05:00
Reduce the amount of memcpy() required by defragmentPage(). (check-in: 3edab9957c 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: d026f0c944 user: mistachkin tags: trunk)
10:52
Fix a problem with concatenating patchsets containing DELETE and INSERT operations on the same row. (check-in: 4d8537eafb 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: 8391351583 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: e93aecc090 user: drh tags: trunk)
2014-09-25
20:43
Add streaming version of sqlite3changeset_concat(). (check-in: 88eb6656bd user: dan tags: sessions)
17:42
Minor code reformatting and comment change, to improve clarity. No logic changes. (check-in: baeb72a356 user: drh tags: trunk)
14:54
Add streaming version of sqlite3changeset_invert() to sessions module. (check-in: 8ded6a4679 user: dan tags: sessions)
13:17
Simplifications to the SQL function and aggregate calling procedures. (check-in: 3467049a17 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: 1330c72e17 user: drh tags: trunk)
11:08
Still more performance enhancements to the LIKE and GLOB operators. (check-in: 6c8924cacc user: drh tags: trunk)
03:51
More performance optimization for the LIKE and GLOB operators. (check-in: 5ab1023d6c user: drh tags: trunk)
02:44
Change that might allow SQLite to build and work using the EBCDIC character set. (check-in: ef30e0352b user: drh tags: trunk)
00:56
Size reduction and performance improvement in the LIKE and GLOB operators. (check-in: b2c89ef49c 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: 99323552c0 user: drh tags: trunk)
18:31
Small performance and size optimization for btreeUnlockIfUnused(). (check-in: 13c746f85d user: drh tags: trunk)
17:13
Add streaming version of sqlite3changeset_apply(). Tests and fixes for the same and sqlite3changeset_start_str(). (check-in: b917fc1468 user: dan tags: sessions)
13:20
Do not allow parameters in a DEFAULT clause of a CREATE TABLE statement. Ticket [78c0c8c3c9f7c1]. (check-in: 1ad2bc1ed4 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: c705cf856d 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: f21d217583 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: 5dd41cdbfe user: drh tags: trunk)
00:59
Add the MemPage.noPayload boolean and use it to help cellSizePtr() and btreeParseCellPtr() run faster. (check-in: 8e3375313e user: drh tags: trunk)
2014-09-23
23:12
Remove an unused C-preprocessor macro. No functional changes to the code. (check-in: f480582cca 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: 4147f6671e user: drh tags: trunk)
21:25
Simplify the CellInfo structure for a size reduction and performance improvement. (check-in: bf59df66b3 user: drh tags: trunk)
20:39
Begin adding 'streaming' APIs to sessions module. This is a work in progress. (check-in: 3c7d3d950b 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: d2962a5f38 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: ae9a42b268 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: 7609744014 user: drh tags: trunk)
19:51
Size reduction and substantial performance increase for cellSizePtr(). (check-in: bc8bbf3207 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: 41de1643bf user: drh tags: trunk)
03:22
Disable shared memory operations using the unix-nolock VFS. (check-in: 10a6e51049 user: drh tags: trunk)
2014-09-21
22:49
Merge all recent trunk changes into the sessions branch. (check-in: 6406b77f2c 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: d5880abd63 user: drh tags: trunk)
20:31
Add test cases for ticket [d11a6e908f]. (Closed-Leaf check-in: 9683e001ed user: drh tags: select-trace)
17:51
Add the "showauth" extension in ext/misc. (check-in: 28d52c1c38 user: drh tags: select-trace)
00:27
Improved ".selecttrace" output. (check-in: c0b61f7092 user: drh tags: select-trace)
2014-09-20
20:38
Candidate fix for [d11a6e908f]. (check-in: 89398880bc 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: f1ba68f131 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: cbe0cf9ddf 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: 59e2c9df02 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: 0fac2c045f user: drh tags: sqliteIntMacros)
00:02
Revise macro usage in 'sqliteInt.h'. (check-in: 35db3e2f35 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: 544664cadf 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: 3b21cf2b28 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: e996ca32cb 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: 3f3ca76aea 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: 3ab20ba14f 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: 3db78d6100 user: drh tags: trunk)
18:08
Add further tests to ota5.test. Add "ota.test", for running all ota tests. (check-in: 95ffdaa542 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: 6199760d13 user: drh tags: trunk)
16:13
Small size reduction and performance increase for releaseMemArray(). (check-in: 24cd32d681 user: drh tags: trunk)
16:02
Updates to comments. No code changes. (check-in: 9b42c3da6b 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: 36b613ccf0 user: drh tags: trunk)
15:06
Add extra tests for the ota extension. (check-in: 1e468fe1e4 user: dan tags: ota-update)
04:42
Add the sqlite3VdbeMemClearAndResize() function. Fix a sorting-index prefilter problem. (check-in: 987a7a2119 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: 72727b68cd 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: 5b9b898779 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: 9c09ac353d user: drh tags: trunk)
18:55
Correct typos in comments. No changes to code. (check-in: 5587993211 user: mistachkin tags: trunk)
17:57
Update the ota extension to support SQLITE_ENABLE_8_3_NAMES builds. (check-in: 718da6de87 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: 4c8c89d7e6 user: drh tags: trunk)
16:38
Use quotes instead of angle-brackets to include sqlite3.h from sqlite3ota.h. (check-in: fce9c6ccf1 user: dan tags: ota-update)
16:28
Performance improvement for affinity transformations on comparison operators. (check-in: d7afdcbac2 user: drh tags: trunk)
15:57
Remove some c++isms from sqlite3ota.c. (check-in: 0da1862b1b 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: 3c6e1cbb4b 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: e3943fa7bb 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: 4ef4c9a7c8 user: drh tags: trunk)
11:31
Merge latest trunk changes with this branch. (check-in: 67ea2979d5 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: 7da98ca242 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: 3bd7c1b2fa user: dan tags: trunk)
02:20
Fix harmless warnings on 32-bit MSVC builds. (check-in: 5192f964b2 user: drh tags: trunk)
01:50
Make sure of the strchrnul() library function on platforms where it is available. (check-in: ef1aa10b7f 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: 1de558bcb1 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: 163bfae858 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: 14052a7d08 user: drh tags: micro-optimizations)
19:05
Fix an unintialized variable problem in sqlite3ota.c. (check-in: 0126860751 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: fdddb477c8 user: drh tags: micro-optimizations)
15:20
Add tests and fixes for "PRAGMA ota_mode". (check-in: 39df35c4ac user: dan tags: ota-update)
14:52
Improved interface to the Mem object handling. Small size reduction and performance increase. (check-in: 4e43784432 user: drh tags: micro-optimizations)
2014-09-16
21:54
Continuing cleanup of memory register memory allocation handling. (check-in: 2598aedc5d 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: 78fb8838d8 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: decaccc37c user: dan tags: ota-update)
18:22
Simplification of the OP_Column logic for the case of rows with overflow. (check-in: f73678038d 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: a10a6bba49 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: 8239c35aed 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: 0be3019ed7 user: drh tags: micro-optimizations)
13:30
Changes to sqlite3VdbeRecordUnpack() to make it slightly smaller and faster. (check-in: 8fb90da77c user: drh tags: trunk)
03:24
Performance improvement to the sqlite3MemCompare() routine by factoring out sqlite3BlobCompare(). (check-in: 20ed2321b0 user: drh tags: trunk)
2014-09-15
19:34
Remove the experimental sqlite3_transaction_save() and restore() APIs. (check-in: 48d201cd8b user: dan tags: ota-update)
16:57
Merge latest trunk fixes into this branch. (check-in: 5efafef51d user: dan tags: ota-update)
16:53
Fix tool/showwal.c so that it handles WAL files that contain 64KiB pages. (check-in: 4060efb646 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: dedaa6fb3d user: dan tags: trunk)
15:34
Merge latest trunk changes with this branch. (check-in: 55b8011d5b 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: 79f2418429 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: 69a6456077 user: drh tags: trunk)
14:54
Ensure the correct collation sequences are used when sorting data in sqlite3ota.c. (check-in: 473a72d700 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: 0bdf1a086b 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: cca376bff3 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: 4ff0eb96bc user: drh tags: trunk)
10:44
Add OP_Affinity opcodes to the VMs generated by sqlite3_index_writer(). (check-in: b9b38cb8e2 user: dan tags: ota-update)
2014-09-12
20:30
Small performance improvement to the dirty list handling in the pager. (check-in: b332a84d51 user: drh tags: trunk)
17:41
Simplify the way the column cache is managed around OP_Move instructions. (check-in: 320556233e user: drh tags: trunk)
04:28
Fix a problem with parser memory allocation on 32-bit systems. (check-in: 2f69a1fa6a 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: 34292b084e 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: 7e4978c003 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: 65884d4f81 user: drh tags: trunk)
17:14
Clean up some #includes in the extension API implementation. (Closed-Leaf check-in: b149ef5c63 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: cda33c1ef3 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: 842c6da8f1 user: drh tags: user-auth)
15:25
All interfaces working and tested. (check-in: 96ea5c0b3c user: drh tags: user-auth)
14:56
Get the sqlite3_user_delete() interface working. (check-in: 974a9c6558 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: 52d440c7e1 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: 70121e7cf8 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: 596e728b0e user: drh tags: user-auth)
00:27
Reorder parameters on the sqlite3_user_*() interfaces for consistency. Add the first TCL test cases. (check-in: 2f6d8f32ee 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: 4eaaa7fa87 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: a0455f9deb user: drh tags: user-auth)
17:34
Further ideas on user authentication. Not yet working code. (check-in: c8171ecd0d 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: 6ab76c5fed user: drh tags: 64-bit-lengths)
18:41
Add new interfaces to the loadable extension mechanism. (check-in: 18d80cbc59 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: 94954850cf user: drh tags: 64-bit-lengths)
14:47
Non-working preliminary implementation attempts on user authentication. (check-in: 8440f093ba user: drh tags: user-auth)
2014-09-08
17:50
Add support for update statements to sqlite3ota.c. (check-in: e109b27e4d user: dan tags: ota-update)
15:04
Merge support for large files on Android from trunk. (check-in: c2885c6bb2 user: drh tags: sessions)
2014-09-06
20:19
Add support for delete operations to the ota extension. (check-in: f988234ba5 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: ad7063aa1a user: dan tags: trunk)
16:52
Merge latest trunk changes with this branch. (Closed-Leaf check-in: 9dca7ce557 user: dan tags: android-large-filles)
16:49
Fixes to os_unix.c to support database (and other) files larger than 2GiB. (check-in: e7fae33c07 user: dan tags: android-large-filles)
16:39
Fix typos in comments. No code changes. (check-in: e62aab5e92 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: 4d4fb197dc 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: 27e3ca3e0f user: drh tags: trunk)
02:00
Fix a couple of typos in comments. No changes to code. (check-in: a758465e3c 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: 73954f93c4 user: drh tags: trunk)
2014-09-05
19:52
Switch back to using a single database connection in sqlite3ota.c. (check-in: 3c2f4a0781 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: 98387f0569 user: dan tags: ota-update)
05:58
Fix harmless compiler warning. (check-in: 7331190677 user: mistachkin tags: trunk)
2014-09-04
19:05
Avoid ever running a checkpoint in ota mode. (check-in: 9ae4444725 user: dan tags: ota-update)
18:05
Fix showwal.c so that it works with 64KiB pages. (check-in: fc4f7c1152 user: dan tags: ota-update)
11:03
Avoid calling sqlite3OsFetch() on a file-handle for which the xFetch method is NULL. (check-in: 071f7f2dec 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: 209f672e58 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: ffa1524ef2 user: dan tags: ota-update)
2014-09-02
19:59
Add an experimental extension for applying bulk updates to databases. (check-in: 2954ab5010 user: dan tags: ota-update)
15:49
Merge the latest trunk changes, including the multi-threaded sorter, into the sessions branch. (check-in: d4cce2c71e 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: 9779c7a9eb 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: 4cae93f8ae 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: be0a037244 user: mistachkin tags: trunk)
18:21
Tweak the documentation for SQLITE_LIMIT_WORKER_THREADS. No changes to executable code. (check-in: 672e7387b1 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: b1c0f0bc1b user: drh tags: trunk)
13:37
Attempt to make the xDelete method of the unix VFS more robust on VxWorks. (check-in: b0f6b91f36 user: drh tags: trunk)
13:29
Micro-optimizations in sqlite3BtreeNext() and sqlite3BtreePrevious(). (check-in: 839c7996ee user: drh tags: trunk)
01:16
Fix harmless compiler warnings for MSVC. (check-in: 3ef3246120 user: mistachkin tags: trunk)
01:15
Merge updates from trunk. (check-in: 51f33cf129 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: f61db04be4 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: 33fa041049 user: drh tags: threads)
18:06
Fix the speedtest1.c test program to set the worker thread count using the threads pragma. (check-in: 2ab4b5adc6 user: drh tags: threads)
16:20
Add SQLITE_LIMIT_WORKER_THREADS for controlling the maximum number of worker threads. (check-in: 1b598c68f3 user: drh tags: threads)
14:40
Merge recent performance enhancements from trunk onto the threads branch. (check-in: 35c44a3c73 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: 2a74129a21 user: drh tags: trunk)
12:29
Contains a fault. Was: Avoid an unnecessary OP_Move operation for expression subqueries. (Closed-Leaf check-in: 462f42af52 user: drh tags: mistake)
11:24
Add the sqlite3VdbeChangeDest() routine that can be used to eliminate OP_Move opcodes. (Closed-Leaf check-in: 8c57bcc327 user: drh tags: experimental)
2014-08-28
19:38
Improved WHERETRACE messages for the estimated output row reductions from range scans. (check-in: fdd478bb11 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: a9daf3ac44 user: drh tags: trunk)
17:20
Add a testcase() macro to help verfity the row estimation logic. (Closed-Leaf check-in: 6ba609522e 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: 052d89b554 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: c931ca2b77 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: bdb6e4978d user: drh tags: trunk)
17:53
Add a VDBE synopsis comment for clarification. (check-in: 029a6dc744 user: mistachkin tags: trunk)
17:48
Add a missing ticket number to a comment in index7.test. (check-in: d8b1c43361 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: fcebca166f 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: 6c1ee3e388 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: 1624916c6e user: drh tags: trunk)
00:50
Performance enhancement in sqlite3VdbeMemNulTerminate(). (check-in: f94cacc393 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: f1f94a971e user: drh tags: trunk)
02:15
Merge recent performance enhancements and the CAST operator enhancements into the sessions branch. (check-in: 08ae974ac8 user: drh tags: sessions)
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: e3305d4b4e user: drh tags: threads)
22:43
Merge the CAST operator enhancements from trunk. (check-in: 6c8f86e4e0 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: af364cce9d user: drh tags: trunk)
21:11
Minor changes to the CAST logic to make it more testable. (check-in: 1ad70ec550 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: 42505e5a81 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: 91d8a8d0b7 user: drh tags: trunk)
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: e06dc6f0c3 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: 29c5e8a7c9 user: drh tags: threads)
13:27
Merge the recent performance enhancements implemented on trunk into the threads branch. (check-in: dfdc900f5d user: drh tags: threads)
11:33
Remove the pager_lookup() function since it is redundant with sqlite3PagerLookup(). (check-in: 54164ce47c 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: 3ca5846da7 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: 0c7e1b875a user: drh tags: trunk)
01:32
Patch the sqlite3PagerWrite() method in the Pager to run a bit faster. (check-in: c63311e2f3 user: drh tags: trunk)
2014-08-23
23:15
Faster implementation of pcache1Fetch() (check-in: 0371cc3bb0 user: drh tags: trunk)
20:25
Faster implementation of the sqlite3ApiExit() routine. (check-in: bd41d394d4 user: drh tags: trunk)
19:42
Another memory allocator performance optimization. (check-in: 6da6f46d0c 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: 45abd5c0ba 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: f83daa16f6 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: 802148f311 user: drh tags: trunk)
17:41
Improved performance in the type handling of arithmetic operators in the VDBE. (check-in: 0c0a603950 user: drh tags: trunk)
17:21
Performance optimization in the applyAffinity() logic inside the VDBE. (check-in: 25f2246be4 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: ce123b5c59 user: drh tags: trunk)
22:26
Factor the saveAllCursors() routine of btree.c into two separate routines, for a noticable performance improvement. (check-in: 3eb0843903 user: drh tags: trunk)
21:58
Performance enhancements in the b-tree mutex logic. (check-in: 8914530644 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: 6bcf1af6a4 user: drh tags: trunk)
19:12
Revise #ifdef ordering to prefer the ANSI version of GetVersionEx, when available. (Closed-Leaf check-in: 9fe0f0754c user: mistachkin tags: winrt)
18:48
Performance enhancement in sqlite3PutVarint(). (check-in: a929be5519 user: drh tags: trunk)
18:00
Split the sqlite3Error() routine into sqlite3Error() and sqlite3ErrorWithMsg(), for a slight size reduction and performance increase. (check-in: cf561d1f0b user: drh tags: trunk)
15:40
Performance improvement in the printf() logic by avoiding unnecessary stack pointer movement. (check-in: f7f2160db0 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: ebc10e46c1 user: drh tags: trunk)
14:56
Handle the 4-byte integer case in the stackless routine. (Closed-Leaf check-in: 3f55484e81 user: drh tags: experimental)
14:34
Get the sqlite3VdbeSerialGet() routine to run faster by avoiding the use of local variables. (check-in: 8267d82174 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: 750bb0a096 user: drh tags: trunk)
11:11
Enhance the spellfix extension with the ability to specify a rowid when inserting new rows. (check-in: 369c480cda user: drh tags: trunk)
2014-08-21
20:26
Simplify the interface to the symbol table, saving 600 bytes of code space. (check-in: 14b0f561fe user: drh tags: trunk)
19:11
For sqlite3_win32_is_nt(), assume WinRT is NT-based. (check-in: 2f59e71fbf 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: 0b9e2c3269 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: 7029b3404d user: drh tags: trunk)
2014-08-20
23:42
Increase the version number to 3.8.7 (check-in: 91594aae07 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: bc985caa78 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: 49f44d355f user: drh tags: trunk)
17:56
Reimplement the freeSpace() routine in btree.c so that it runs faster. (check-in: fe4fd014b4 user: drh tags: trunk)
14:37
Refactor local variable names in the freeSpace() routine of btree.c for improved understandability. (check-in: 7e63089a19 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: 121308fa86 user: drh tags: trunk)
13:25
Add SQLITE_API macros in front of interface routines in the test_intarray.c extension. (check-in: eea0661798 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: fe51d3aa0c user: drh tags: btree-speedup)
11:56
Further size reduction and performance improvement in btree.c:allocateSpace(). (check-in: 1cb1cd6493 user: drh tags: btree-speedup)
10:42
Fix a typo in the showdb usage message. (check-in: 6c66beae97 user: dan tags: trunk)
00:54
Minor performance improvement and size reduction for the btree-page space allocator. (check-in: 73637d12e3 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: d280157da0 user: drh tags: trunk)