Commit Graph

8984 Commits

Author SHA1 Message Date
drh de823bedef In vdbesort.c, change the names of PmaReader variables "pIter" to "pReadr".
Other related comment changes.  The generated object code should be the same.

FossilOrigin-Name: 99efb235a08784020535a770d7e7d96d9ccee12d
2014-05-20 11:03:53 +00:00
drh db2f91907d Merge recent changes from trunk.
FossilOrigin-Name: 6eefdad946da6a5f4052ac51d327777890fa3f18
2014-05-19 23:17:33 +00:00
mistachkin 77a90ce811 Work around compilation issue with MSVC.
FossilOrigin-Name: 9623a29c11e3a90513016ea3306c085d2bf91b62
2014-05-16 23:15:50 +00:00
drh 5f4a479048 Rearrange some conditionals and add #if statements to make the code more
testable.

FossilOrigin-Name: 17afd77057f8695733a9a60225646c1d8813b1a0
2014-05-16 20:24:51 +00:00
drh 190d695967 Add a pair of sqlite3FaultSim(100) calls to vdbesort.c to facilitate testing
of obscure and hard to reach error conditions.

FossilOrigin-Name: cceac14fd83ddd8f868c1767cdc66635607cb159
2014-05-16 17:31:42 +00:00
drh d25c69ef39 Merge all recent changes from trunk, and especially the new sqlite3FaultSim()
interface.

FossilOrigin-Name: 43fcbd9116401f30781fdcbe55d1674d6b96311b
2014-05-16 14:27:05 +00:00
drh c007f61bb0 Repurpose the SQLITE_TESTCTRL_FAULT_INSTALL test-control to register a
callback to be invoked by sqlite3FaultSim().  That test-control has been
unused since 2008-06-20 and was never used in any official release.

FossilOrigin-Name: 0d43a7ad9abe821e33e0bf83a997aa4461b1e3f2
2014-05-16 14:17:01 +00:00
drh 8f0dab37cb Use #ifdef logic to avoid an always-true branch when
SQLITE_MAX_WORKER_THREADS=0

FossilOrigin-Name: 88cfe6d7de5f19f484304d0db585eac5de6c00ae
2014-05-16 12:18:08 +00:00
drh 6cc3759383 Use #ifdef to omit code that is not used when SQLITE_MAX_WORKER_THREADS is zero.
FossilOrigin-Name: 2e8d287d4f41d395a488bf65b20e956b0e311177
2014-05-15 16:56:56 +00:00
mistachkin 0f710546e7 In mutex_w32.c, make inclusion of the Windows header file dependent on SQLITE_OS_WIN, not SQLITE_MUTEX_W32.
FossilOrigin-Name: 93ffbcc0b1d207950851dbb16a8c101afb949d5f
2014-05-12 15:37:03 +00:00
drh b0f935e4da In the sorter, only use large memory allocations if scratch memory has not
been configured.  Add #ifdefs to disable unused code when 
SQLITE_MAX_WORKER_THREADS is zero.  Other sorter changes in support
of testability.

FossilOrigin-Name: d7e2b0d9cb099eda3341bc934bedff9facfe88bd
2014-05-12 15:30:00 +00:00
dan ae289fccbf Merge the latest trunk changes into the threads branch.
FossilOrigin-Name: 9ac8f1e7115bc50663235adedeb0d3e1234c5740
2014-05-09 15:00:32 +00:00
dan dcb1a840ff Add new static mutex SQLITE_MUTEX_STATIC_APP3.
FossilOrigin-Name: ee0ab09c80a648e9202757fc04122952375e7c8c
2014-05-09 11:15:57 +00:00
mistachkin df24cf81a6 Fix static variable declaration issue on Windows.
FossilOrigin-Name: a41d29691307067523c8637b486941c5f7c33775
2014-05-08 22:01:08 +00:00
drh 9ee8810be2 Remove a superfluous variable initialization.
FossilOrigin-Name: 68766f837491cb89c2103f2627eb9e23ab326a68
2014-05-07 20:33:17 +00:00
drh 8009c9b439 A better fix for the group_concat() problem.
FossilOrigin-Name: 1c086deebd0eb442918972e4b9185a5a0db3b8c3
2014-05-07 20:24:00 +00:00
drh 86a1119133 Ensure that the sqlite3StrAccumAppend() routine is never called with a NULL
second argument.  Doing so is harmless when N==0, but it causes an assert()
to fail that was placed to quiet static analyzers.

FossilOrigin-Name: f03fbf3700d9d4a654e3aa2e5caa810a8416bed9
2014-05-07 18:21:56 +00:00
drh eacc050f30 Make sure the group_concat() function returns an empty string, not a NULL,
if it has at least one input row.  Fix for ticket [55746f9e65f8587].

FossilOrigin-Name: 0deac8737545a020d344be96fff16660a7977ab8
2014-05-07 17:19:31 +00:00
drh 731dc0cb0e Add the SQLITE_IOCAP_IMMUTABLE bit as a possible return value from
the xDeviceCharacteristics method in the VFS.  Add the "nolock" and
"immutable" query parameters to URI filenames.

FossilOrigin-Name: 1a0d7d3d9dd54b783e3a805961287dd01f94770c
2014-05-07 15:46:04 +00:00
drh 6451c2b04e Fix nolock and immutable so that they work even if READONLY is requested.
FossilOrigin-Name: e193aced2942e7405d0f45f90d4954b5663b4ba5
2014-05-07 15:32:03 +00:00
drh 62e603a904 Add test cases and documentation for the nolock and immutable query
parameters.

FossilOrigin-Name: 19d56cbaca222b32e2e354063149cccd89441d73
2014-05-07 15:09:24 +00:00
dan dfea45330e Re-implement the core of the multi-threaded sorter tests in sort4.test using C. Run each test in sort4.test ten times, or repeat all tests for 300 seconds as part of the "multithread" permutation test.
FossilOrigin-Name: 208b2b04d4d282bec4424ea7160a123ba549d118
2014-05-06 15:38:07 +00:00
drh 1a8a0d3f1a Attempt to fix the build on beagleboard.
FossilOrigin-Name: 3ac75725a66730566105ad184a988a8f80f51055
2014-05-05 20:21:52 +00:00
mistachkin 0e56c52e1d Merge updates from trunk.
FossilOrigin-Name: a3cfd81339267c87db511cedf35ec209ee1f1a72
2014-05-05 17:45:44 +00:00
mistachkin fdf9f045b7 Fix several header file comments. No changes to code.
FossilOrigin-Name: dd6eb5d1eb4d50023a008fac116497ede29600c1
2014-05-05 17:43:28 +00:00
dan 0d3a4085e5 Fix a race condition in the sorter code.
FossilOrigin-Name: 2d2edfe58db101d42a96772b856e6e55b401aab6
2014-05-05 15:58:40 +00:00
dan d94d4ee7bd Add tests so that the "coverage-sorter" test permutation covers all branches in vdbesort.c. Fix a few minor problems in the same file.
FossilOrigin-Name: bde28b702dabd02269e333535cc41481351c5efc
2014-05-05 09:08:54 +00:00
dan f7f425d600 Add an extra fault-injection test to sortfault.test. Remove an unreachable branch from vdbesort.c.
FossilOrigin-Name: a33a366ba8a0da81ddd895d552a348441ef8529a
2014-05-03 20:43:13 +00:00
dan e18e90ebaf Fix a race condition in the sorter.
FossilOrigin-Name: 32ccf3ae18531682dfd039fa8df6ad9a907ac455
2014-05-03 19:33:00 +00:00
dan 0d51def29e Fix a problem in the sorter causing it to return spurious SQLITE_NOMEM errors when configured to use memsys3 or memsys5.
FossilOrigin-Name: 3a66c4e1bf311d38668dfcdcd77867feff6db7bd
2014-05-03 14:28:14 +00:00
drh 2fc7bc08bd Get SQLITE_MUTEX_STATIC_APP1 and _APP2 working for the debugMutex
implementation.

FossilOrigin-Name: f49ba1c926c63ee1c4609930138389fca182c845
2014-05-03 13:53:37 +00:00
drh 7bd3c89114 Add two new static mutexes, SQLITE_MUTEX_STATIC_APP1 and _APP2, for use by
the application program.  First intended use is in test programs for the
memory allocation logic where one does not want to allocating a _FAST
or _RECURSIVE mutex since that would involve using the memory allocation
system under test.

FossilOrigin-Name: 13686035dd1cf67ad9c6d282ab13c3259e7273d1
2014-05-03 12:00:01 +00:00
drh a09c8855b7 Add the SQLITE_DEFAULT_WORKER_THREADS compile-time option.
Fix a NULL-pointer dereference that can occur following OOM.

FossilOrigin-Name: e0dea89b3e9f295f80210fcca007681bf1b08692
2014-05-03 11:22:09 +00:00
mistachkin b91ca38514 Merge updates from trunk.
FossilOrigin-Name: 598a3875ce98015e9a38db54bd0cb6290424c3d8
2014-05-02 21:42:31 +00:00
mistachkin 4a11505be9 Merge updates from trunk.
FossilOrigin-Name: c4d1d8a0db48f523d1624f2468261c171152c0f7
2014-05-02 21:38:02 +00:00
mistachkin e500747cfe Fix typo in Windows makefile. Make sure the WaitForSingleObjectEx system call is always available.
FossilOrigin-Name: d7ed529fa2aa5cb13edaabca2acaad06dffef569
2014-05-02 19:12:37 +00:00
drh 84de690b4f Do not run the vdbeRecordCompareDebug() assert if pKeyInfo->db is NULL since
in that case there would be no way to check for a memory allocation failure.

FossilOrigin-Name: 63ed2d6acb82be8a74dbf6a61388be6da6113985
2014-05-02 18:46:52 +00:00
dan 2ae56f50ce Merge orderby-planning with this branch.
FossilOrigin-Name: d9549de31741239ece060e448b592ce8fc5b8042
2014-05-02 18:05:38 +00:00
drh 79211e194d Simplify assert() statements used to verify correct operation of
record comparison routines.

FossilOrigin-Name: 3300d62dcbe74842cf86ca436959fe4e77a89f84
2014-05-02 17:33:16 +00:00
dan a7bf23c6b5 Fix some broken asserts in btree.c and vdbeaux.c that may fail following an OOM error.
FossilOrigin-Name: e15f47064bef431c0afd8bf93eb4e160c23ad562
2014-05-02 17:12:41 +00:00
drh c7f6c148d9 Failure to extend a temp file for use with mmap() in vdbesort.c is benign.
FossilOrigin-Name: d4d396387d373bd1e82eda2c7c2e7ca35ec099c4
2014-05-02 16:22:55 +00:00
dan 012e133772 Remove a faulty assert() from vdbesort.c.
FossilOrigin-Name: d95d68aa1d14b750888d50068380cc107f9070df
2014-05-02 16:03:57 +00:00
drh 7a0fd192cc Fix a faulty assert() statement.
FossilOrigin-Name: 9196ce407379ca3b151b601b98848771e5cb4e8f
2014-05-02 15:25:24 +00:00
drh fb0d6e56d6 Merge latest trunk enhancements and fixes into the orderby-planning branch.
FossilOrigin-Name: 84862d3a095629d20c8e7b8a16f4dc26cd41ab6d
2014-05-02 13:09:06 +00:00
drh e724d3d26a Add a comment explaining why WhereLoop cost adjustments are omitted for
skip-scan loops.

FossilOrigin-Name: 3bc43594aaeee9225c0590677fcce480bedcb37b
2014-05-02 00:09:40 +00:00
dan 3852413246 Fix an obscure problem to do with temp register allocation that could occur if more than one simple SELECT within a compound SELECT uses a partial sort.
FossilOrigin-Name: 427409ae106cdab7892a6b50fe30c5f52de5addc
2014-05-01 20:26:48 +00:00
drh c5f246eb37 Add #ifdefs for test coverage. Add a testcase().
FossilOrigin-Name: be2702ce35c713b33c9b7689643b45fb0de6af2a
2014-05-01 20:24:21 +00:00
drh 57fe136b23 Take out the special handling of nolock=true in os_win.c and add it to
pager.c, so that it works for all VFSes.  Add the pPager->noLock boolean
for clarity.

FossilOrigin-Name: 725c1c14be331bce9bf074960dbfa7b6d4c1ba87
2014-05-01 01:49:22 +00:00
drh 48cdabcb1a Avoid unnecessary xUnlock operations on temp file.
FossilOrigin-Name: 1829c38c3233c8cb194fae6d560d35a8916b1348
2014-05-01 01:20:05 +00:00
drh d1ae96d39e Add the immutable=TRUE query parameter and SQLITE_IOCAP_IMMUTABLE, either
of which prevents locking of the database and omits tests for existance
of journal files.

FossilOrigin-Name: 71f152c85d79ebd9ca48bc9c4c71fc4debaf2437
2014-05-01 01:13:08 +00:00