Commit Graph

6120 Commits

Author SHA1 Message Date
dan 0ac2aa4ed0 Cherrypick [45e581bff7] into the 3.7.2 branch.
FossilOrigin-Name: c593792ce00d0a6379f31cab1bca22f5e159ce18
2011-07-02 13:34:15 +00:00
drh 7afd98dddb Backport check-ins [0900e35348f4b9bf3] and [4fead8e714c7e50] to the 3.7.2
branch.  These check-ins provide hints to the btree layer for when it is
possible to use a hash table rather than a btree to implement an index.
The SQLite BTree layer does not use these hints, but alternative btree layers
might.

FossilOrigin-Name: 7155e6f3282671487f262fd51a7cb139dffdbde6
2011-05-01 22:57:41 +00:00
drh 0b150dd857 Backport check-in [9f9f32882501ac9] to provide EXPLAIN QUERY PLAN output for
the count(*) optimization.  Also backport check-in [a8761a9128de945aa] to
prevent unordered indices from being used on a full table scan.  The first
backport was necessary in order to test the second.

FossilOrigin-Name: 8d924e160703e02958db9c9bc1fd2c600e01e606
2011-04-15 15:18:34 +00:00
drh 05d15a69a7 Back port the unordered-index-hack to the 3.7.2 branch.
FossilOrigin-Name: 803530209f9c8d4dcf8ed51b5a96aee1766ef79f
2011-04-09 03:30:25 +00:00
drh ef66331fe9 Make sure the query planner is able to correctly analyze NULL value
samples in the sqlite_stat2 table.  This is a backport of changes
from check-in [f73a167b434f]

FossilOrigin-Name: 1d6378898aab5208e1fbaf2683a63650b4987c16
2011-04-08 23:05:50 +00:00
drh ecd2c06025 Make sure the left-hand side of the IS NOT NULL operator is a simple column
and not a general expression before applying the IS NOT NULL
optimization.  This is a backport of check-in [543f75a6abe3].

FossilOrigin-Name: e8177e0149280ea775e9aac18307ce2528f72298
2011-04-08 23:04:28 +00:00
drh 5bc564f0d3 Provide hints to the btree layer Next and Previous primitives to let them
know if they can be no-ops if the underlying index is unique.

FossilOrigin-Name: a5aae1743a208e7792497dfebf3e8311140ae595
2011-03-31 18:36:17 +00:00
drh 510eca1d25 Backport the "x IS NULL" query planner enhancement of [2353176811f] to
the 3.7.2 branch.

FossilOrigin-Name: 68daf20d019a0a84764d635a91eaa9faeeabbab4
2011-03-17 01:53:00 +00:00
shaneh 90828dde62 Backport the SQLITE_OMIT_UNIQUE_ENFORCEMENT change from checkin b86999436e on the trunk.
FossilOrigin-Name: 668b91dbff036c6b76a5611cc3ebe455d277ed59
2011-03-12 05:55:38 +00:00
drh cda5b88f18 Backport the OP_Next and OP_Prev for UNIQUE indices patch from
checkin [f000c9b2b7] on the trunk.

FossilOrigin-Name: 2d55234ea3b8a8d6f18683d51f05945394e97275
2011-03-09 22:09:32 +00:00
drh ac92abf2d0 Backport the query planner enhancement of [952f5e8c69904] to the
3.7.2 branch.

FossilOrigin-Name: 440d995661c961257ca15833ab94c7ec7a5892c8
2011-03-04 01:23:26 +00:00
drh d694cc5909 Fix problems in the backport, reducing the number of errors in the TCL tests
to just a few dozen.  Most of the remaining errors seem to be real and
desirable changes of behavior.

FossilOrigin-Name: 9d2b0af266b85f10823e54ca6417e76950c1d531
2011-02-12 05:34:43 +00:00
drh 6477f2a4f8 This is the beginning of an attempt to backport recent query planner
enhancements to version 3.7.2.  The code in this version builds and runs and
seems to give correct answers, but it generates suboptimal query plans and
hence many of the test cases fail.  The test script gives up after 1000 errors.

FossilOrigin-Name: e72cf118cb25e9fed96f8d5cebbc0f637892479a
2011-02-12 01:59:22 +00:00
dan 5f848c3a48 Fixes for the SQLITE_CHECK_PAGES debugging feature.
FossilOrigin-Name: 21a1e5961bba148fda50cc0b7d472ca74f90808a
2010-08-23 18:19:31 +00:00
dan f48c355b33 Fix for ticket [5e10420e8d].
FossilOrigin-Name: 255f1eefa373153942c67b18b22177933657911d
2010-08-23 15:41:24 +00:00
drh 5f77b2e0ea Fix the ptrmapPageno() routine so that it works correctly for an input of 1.
FossilOrigin-Name: 699a9bf28377f43f58c509878cce60cb906dbf48
2010-08-21 15:09:37 +00:00
drh 871919b493 Do not allow a backup to change the page size if a codec is in use.
FossilOrigin-Name: 5523ecd32295c188e3bf5dbd57d92d2879461e32
2010-08-20 15:32:21 +00:00
dan a3e63c4a74 Merge leaf created by accident.
FossilOrigin-Name: 1f680cb37584baa106cee0544d5be63049d55858
2010-08-20 12:33:59 +00:00
drh 96dd6a16af Disable the MEMSYS2 auxiliary routines if MEMSYS2 is changed to an alternative
memory allocator using SQLITE_CONFIG_MALLOC.

FossilOrigin-Name: 541dd3b870f123a5fddf0b710474693566a1d659
2010-08-20 09:53:19 +00:00
drh c8f503a8d3 Fix the sqlite3_release_memory() interface so that it does not attempt
to free SQLITE_CONFIG_PAGECACHE memory.

FossilOrigin-Name: 0426cd62d5ef2bd09570835c78f8fc3bcb7cdd49
2010-08-20 09:14:13 +00:00
dan a1f8da1848 Merge two leaves.
FossilOrigin-Name: b03091fc3592896fcf1ec563ae9682a8e0a05baa
2010-08-19 15:12:54 +00:00
dan a35dafcdea Modify the code for reading hot-journal files so that it can handle journals generated by versions 3.5.7 and earlier.
FossilOrigin-Name: b9170f2903c480bca2bdc986e98aaeadfdb9ad2b
2010-08-19 15:11:34 +00:00
drh 6b47fcacb4 Remove a NEVER from balance_quick() that can occur in WAL mode on
a corrupt database file.

FossilOrigin-Name: b273891ab05a18b68a76c870ea3be9f1a56c40a9
2010-08-19 14:22:42 +00:00
drh e22e03e210 Fix two asserts in the btree logic so that they work correctly even for
maximum-size index entries for 32K and 64K pages.

FossilOrigin-Name: e127192d106bd7e036caacf01bf7725eeaa85dbe
2010-08-18 21:19:03 +00:00
dan 5a9e07eb40 Disable the SQLITE_MAX_PAGE_SIZE compile time option (it is now always set to 65536). Fix some other problems in test files.
FossilOrigin-Name: 56cc883d3af5574c9dafecef8aa96d1d05c01b83
2010-08-18 15:25:17 +00:00
shaneh 1df2db7fd1 Fix some compiler warnings in the MSVC build.
FossilOrigin-Name: 1f5662b7db5d623c8d99c45a8d97a0aa4427593f
2010-08-18 02:28:48 +00:00
drh 89bd82ae9d Remove a NEVER() that is actually reachable.
FossilOrigin-Name: acb171d4cfef2fec8833f761019f5c81f0d138a0
2010-08-17 19:49:14 +00:00
drh 43b18e1e55 Suppress harmless compiler warning.
FossilOrigin-Name: 3f8c068a41b01f59d7f5d56f3bced78587f4d26c
2010-08-17 19:40:08 +00:00
dan c8d735aed3 Return an error when parsing "?NNN" if NNN is so large it cannot be stored as a 32-bit int.
FossilOrigin-Name: fc9014be0f00d046e7ba830a644f9ce93eca5db8
2010-08-17 19:34:13 +00:00
drh 0028486b73 It is no longer possible to reach pagerStress() while in the error state,
so put a NEVER() around the error state test of that routine.

FossilOrigin-Name: d7ed463496c4474cc435d032874a4e55d780e74a
2010-08-17 18:37:12 +00:00
dan a81a2207a3 If an SQLITE_FULL error occurs during rollback or journal finalization, treat it in the same way as SQLITE_IOERR (i.e. require that the pager internals be completely reset before it is next read from or written to).
FossilOrigin-Name: 8ac185236e766becdac7248c1ba3dfa42a9464b1
2010-08-17 18:15:48 +00:00
drh 719e3a7a57 Changes to pager for improved testability.
FossilOrigin-Name: 61c64b3aeb027fcc9c25591d6b9048ac7850ad3d
2010-08-17 17:25:15 +00:00
dan eb8763d7b3 Invoke sqlite3_log() whenever one or more frames are recovered from a WAL file.
FossilOrigin-Name: e05089aaefe02ec59a1923812349471a78075d29
2010-08-17 14:52:22 +00:00
dan fc6a621a96 Fix some non-ANSI C code in test_demovfs.c. Also change the same file so that attempting to delete a file that does not exist does not return an error.
FossilOrigin-Name: 07570ce38051a05d6e8a71e39766850f6719ac07
2010-08-17 05:55:35 +00:00
drh 919fc66ea7 Remove an superfluous branch from pager.c.
FossilOrigin-Name: 4271a95c8236bda4a4f8c02bf3a3560de1d00402
2010-08-16 20:02:09 +00:00
drh 6cef0cf7a9 Fix a typo in a comment in wal.c. No code changes.
FossilOrigin-Name: d854a3d41c68f785c909c159cd9ca2154c64001a
2010-08-16 16:31:43 +00:00
drh 7e9e70b170 Add ALWAYS() macros in wal.c to cover branches that are no longer reachable
following the pager refactoring.

FossilOrigin-Name: 24f24c927c77bb3bb4d26a23dd5d94f964db8033
2010-08-16 14:17:59 +00:00
drh 9b78f79183 Adjustments for better 64K page size handling.
FossilOrigin-Name: faf1974e2de321bfefb68b81d702ae69771933ef
2010-08-14 21:21:24 +00:00
drh 8fb8b53728 Change sqlite3PagerPagecount() to return void, since the return value was
always SQLITE_OK and was never used.

FossilOrigin-Name: 7dd78eb7974ec7c40af3fcf2b125ca5bc0766b5c
2010-08-14 17:12:04 +00:00
drh 5d433ce2ab Minor simplifications to btree.c in support of full-coverage testing.
FossilOrigin-Name: 364df6c7735447cc2187923918a35bf62d82decc
2010-08-14 16:02:52 +00:00
drh e5918c62e9 Tweaks to comments in pager.c. Fix two compiler warnings.
FossilOrigin-Name: 68a49f7fe382e4d36e1259cdeec956c942906ddb
2010-08-14 12:42:45 +00:00
dan 49ad330d67 Do not apply the flattening optimization if the sub-query is DISTINCT. Fix for [e4b8a2ba6e].
FossilOrigin-Name: 497aafd8ed6a636a8bd5fa2cad265a20593ee34f
2010-08-13 16:38:48 +00:00
dan 1879b088bd If an error occurs in PagerSetPagesize(), set the output variable to the unmodified page-size before returning.
FossilOrigin-Name: 02def8f92588b8a45dff3976d1e7f9e3f0359b3b
2010-08-12 16:36:34 +00:00
dan 5653e4da36 Add coverage tests for pager.c.
FossilOrigin-Name: 228c5b16af80c22e97d9d4deb351e0d3f4523f89
2010-08-12 11:25:47 +00:00
drh b2eced5de2 Increase the maximum page size from 32k to 64k.
FossilOrigin-Name: 45362437d491fbe0f033a67b398f8ba68cbf1b3b
2010-08-12 02:41:12 +00:00
dan 22b328b23c Improve coverage of pager.c.
FossilOrigin-Name: 2fa05d01b6b11788a5b73d203fcac9d4a4ba9fd8
2010-08-11 18:56:45 +00:00
dan 78f9b73189 Use sqlite3DbFree() instead of sqlite3_free() to free any error message reported by the parser layer while attempting to parse a CREATE TABLE statement passed to sqlite3_declare_vtab().
FossilOrigin-Name: 7c674aaba52b00a78babc1e1ece7e5b652b65039
2010-08-11 11:59:37 +00:00
drh d56b121d10 Fix memory allocation in proxy locking so that it works with SQLITE_MEMDEBUG.
FossilOrigin-Name: f854cbe06355dd3455b8af4ad6366949c412434e
2010-08-11 06:14:15 +00:00
dan 216eaab282 Merge experimental changes into trunk.
FossilOrigin-Name: aa092ac928dc19bd356d25a1dfd3f432dc145ce6
2010-08-11 06:04:19 +00:00
dan 7e68423894 Fix a bug in pager.c causing it to omit the xSync() call required following a hot-journal rollback.
FossilOrigin-Name: 42ba43ac690dc800fb8b969ae257a79942918342
2010-08-10 15:46:06 +00:00