drh
079a307259
First attempt at getting block-sort to work. This is an incremental check-in.
...
There are many problems still to be worked out.
FossilOrigin-Name: 59742dd4c5259883850044d0938248b009ebd045
2014-03-19 14:10:55 +00:00
drh
18c7e40ca3
Fix a harmless compiler warning that crops up with SQLITE_MAX_MMAP_SIZE=0.
...
FossilOrigin-Name: 1277932b7e8bb36c7070ffafbf110a8e128c267b
2014-03-14 11:46:10 +00:00
drh
926345e027
Remove a stray C99-style comment.
...
FossilOrigin-Name: f500e87d6ec6fa43c13f4e94edf32789f36e4233
2014-03-11 23:44:10 +00:00
drh
036dbec01c
Combine the various boolean fields of the BtCursor object into a single
...
bit-vector. This allows setting or clearing more than one boolean at a
time and makes the overflow-pgno-cache branch faster than trunk on
speedtest1.
FossilOrigin-Name: 968fec44d7fde3adbd3e9603e4282351f0d4bda1
2014-03-11 23:40:44 +00:00
dan
5a500afd57
Enable the b-tree cursor objects overflow page-number cache, which is normally enabled only for incr-blob cursors, for all cursors.
...
FossilOrigin-Name: da59198505990a4fe832be7932117c7e014955b7
2014-03-11 20:33:04 +00:00
drh
b6e8fd105c
Fix some incorrect comments and typos in comments. Add testcase() macros
...
to some of the new record comparison code.
FossilOrigin-Name: b83cfe899d84fe9d61540e9984321ca30401638c
2014-03-06 01:56:33 +00:00
dan
a4660bd695
Ensure that BtreeMovetoUnpacked() does not try to invoke xRecordCompare when it is set to NULL.
...
FossilOrigin-Name: 2879234b7c373be422af3fe180cae9840943e29a
2014-03-04 16:05:25 +00:00
drh
13a747e5e4
Fix a couple of harmless compiler warnings.
...
FossilOrigin-Name: fcf480cc630976b619aabd5f7fb7b09601a178fb
2014-03-03 21:46:55 +00:00
dan
3833e934d3
Remove the vdbeRecordCompareLargeHeader function. Fix some other details.
...
FossilOrigin-Name: 3861e853105cb8da344c7eebd2e455622b26395e
2014-03-01 19:44:56 +00:00
dan
3b9330f83c
Further changes to sqlite3VdbeRecordCompare().
...
FossilOrigin-Name: 570893740067a7caa952f259fa078cdf67017d71
2014-02-27 20:44:18 +00:00
dan
1fed5dab0d
Attempt to speed up sqlite3VdbeRecordCompare() by various means. This code is in an interim state.
...
FossilOrigin-Name: 85206e0bbac29adab52bef795f6d1479f2ae2c0e
2014-02-25 21:01:25 +00:00
drh
fe48599294
Minor simplifications to the "zeroPage()" routine in btree.c.
...
FossilOrigin-Name: cc8f10bcb206c9def69b06f26decf025b8d9119d
2014-02-12 23:52:16 +00:00
drh
e0670b6220
Remove the "rowid cache" that sought to remember the largest rowid for a
...
table and thereby speed up OP_NewRowid. That cache was ineffective.
Removing it results in a performance increase of 0.4%, less memory usage,
and a slightly smaller library size.
FossilOrigin-Name: 56bc5ce8958c8e6250531b4052b905d7ac993db3
2014-02-12 21:31:12 +00:00
drh
e39a732ce2
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: 6c643e45c274e755dc5a1a65673df79261c774be
2014-02-03 14:04:11 +00:00
dan
7df42aba12
Handle a few obscure problems that could manifest if a database corrupted in a certain way was written by a connection in the middle of a SELECT statement on the same db.
...
FossilOrigin-Name: eba8a564e62f84a9620008beead80081fe90a1b7
2014-01-20 18:25:44 +00:00
dan
8ce7184bc2
Add code to handle recursive CTEs.
...
FossilOrigin-Name: a5c2a54a07d35166911abc792008c05dea897742
2014-01-14 20:14:09 +00:00
drh
da8a330a03
Create and use a new pager interface sqlite3PagerUnrefNotNull() that works
...
just like sqlite3PagerUnref() but guarantees that its argument is not a
NULL pointer.
FossilOrigin-Name: e00f37e2333cac5b53e17cf764ab56c4fcd5f617
2013-12-13 19:35:21 +00:00
drh
2a8d2261ed
Simplify the sqlite3BtreeKeyFetch() and sqlite3BtreeDataFetch() interfaces
...
to the storage engine.
FossilOrigin-Name: bf97598592ff60fab2a06d8b31b0201200b91684
2013-12-09 20:43:22 +00:00
drh
a6353a3f64
Performance optimizations for sqlite3VXPrintf().
...
FossilOrigin-Name: 9227ad48e1612b32a3a3e9551c49890f93abc0a7
2013-12-09 19:03:26 +00:00
drh
8f518837f9
Use memmove() rather than a home-made copy loop in insertCell() too.
...
FossilOrigin-Name: a3d796b1673ca68ced247d63c22ddcfb1f9d56ea
2013-12-09 02:32:19 +00:00
drh
9bb7c4ff4f
Use memmove() rather than a home-made copy loop in dropCell() of btree.c,
...
for a size reduction and performance improvement.
FossilOrigin-Name: 78e1706804e88a0dd5dc40bee838a3a504cfa53b
2013-12-09 01:58:11 +00:00
drh
29f2bad6f0
Avoid unnecessary no-op calls from getAndInitPage() to btreeInitPage()
...
in the btree.c logic.
FossilOrigin-Name: 81f5ae13b2e23daee03151d32515387b7f5ba5e5
2013-12-09 01:04:54 +00:00
drh
7599d4aa44
Use putVarint32() instead of putVarint() for a quantity that can never
...
exceed 2GiB - 1.
FossilOrigin-Name: 6996fb34445adedf463b66ed1f339ee1f27ce6e5
2013-12-09 00:47:11 +00:00
drh
28935364ef
If the SQLITE_ENABLE_CURSOR_HINTS macro is defined, then invoke the
...
sqlite3BtreeCursorHint() interface to provide hints to the storage engine
about rows that need not be returned. Hints can be disabled using
SQLITE_TESTCTRL_OPTIMIZATIONS with SQLITE_CursorHints (0x2000). Cursor
hints are not used by the built-in storage engine of SQLite but might
be useful to applications that provide their own storage engine. The
current code is work-in-progrss and contains bugs.
FossilOrigin-Name: 3a9bec524ef2de44028b4058e67dc962082888d3
2013-12-07 20:39:19 +00:00
drh
4e8fe3ff91
Performance optimization to the moveToRoot() subroutine in btree.c.
...
FossilOrigin-Name: b5842a70f8e26456a8f0d39539bc266f097480a4
2013-12-06 23:25:27 +00:00
drh
72b8ef6ce3
Remove some commented-out code from sqlite3BtreeMovetoUnpacked() to try to make
...
it more readable.
FossilOrigin-Name: 2d62d1131f8bbc4e1f8f7aeaf0d91e3237fe3b7c
2013-12-06 22:44:51 +00:00
drh
094b7587fc
Detect a corrupt UnpackedRecord and return SQLITE_CORRUPT prior to calling
...
sqlite3BtreeMovetoUnpacked().
FossilOrigin-Name: 55ec474db8935ef36fae30da5d11f5701c60c088
2013-11-30 12:49:28 +00:00
drh
d16546da78
Remove a NEVER() from a branch that is now reachable during OOM faults.
...
FossilOrigin-Name: 18bdcb05c26860643f53a6b9e85f84109a3ebe5a
2013-11-25 21:41:24 +00:00
drh
9b2fc61d25
Return an SQLITE_CORRUPT error if the content size field of a table record
...
extends off the end of a page.
FossilOrigin-Name: b48c4e402125fb8d2208d358f6e9bbc351f3a49d
2013-11-25 20:14:13 +00:00
drh
ebf10b1fb4
Uses shifts rather than division for arithmetic on the cell indices, since
...
those indices are always non-negative.
FossilOrigin-Name: 5bf2a3feeb2c83671bf3edeb20a549239e6873bf
2013-11-25 17:38:26 +00:00
drh
17566ee243
Optimize the skipping of the payload size field when doing a binary search
...
for a rowid.
FossilOrigin-Name: 55e5bfa231dd52a7cf9ec982967da4963867b9e5
2013-11-25 16:52:59 +00:00
drh
d2022b0118
Arrange for sqlite3BtreeMovetoUnpacked() to always leave the cursor cell
...
parse cache invalidated. This fixes issues with previous check-ins on this
branch and also runs faster.
FossilOrigin-Name: a74675607fe041e37a58a3ec287131de0e5090c3
2013-11-25 16:23:52 +00:00
drh
bb933ef6e7
More optimizations to sqlite3BtreeMovetoUnpacked(). But there are failures
...
in TH3. Committing this intermediate state to facilitate bisecting.
FossilOrigin-Name: f80497be446f84d2000e454e32d717887a7d0cee
2013-11-25 15:01:38 +00:00
drh
d793f44723
More improvements to sqlite3BtreeMovetoUnpacked() performance.
...
FossilOrigin-Name: 88680698231b7141401f7166e3aff8dbc6008030
2013-11-25 14:10:15 +00:00
drh
ec3e6b10f4
Performance improvements in sqlite3BtreeMovetoUnpacked().
...
FossilOrigin-Name: d0fb7acea7cbfe6f2d84782a28bb51675a06576f
2013-11-25 02:38:55 +00:00
drh
501932ca68
Changes some offset and amount parameters from "int" to "u32" to avoid
...
harmless signed/unsigned comparison warnings.
FossilOrigin-Name: 4e8c5d0795cb7c603182bfa70f3855d654f0997e
2013-11-21 21:59:53 +00:00
drh
b41392241e
Allocate extra stack space for UnpackedRecord objects, reducing the need
...
to malloc for them as often, and thereby get a performance improvement.
FossilOrigin-Name: a725a75f870d7d9b21946fbcc71a956492986ab0
2013-11-06 14:36:08 +00:00
dan
14285b7067
Clear a valgrind error by zeroing the first 4 bytes of the temp-space allocation used by the b-tree module.
...
FossilOrigin-Name: 8651aba1865a8f82d21d3345f33fbd239fd9a042
2013-10-16 11:39:07 +00:00
drh
793eb043ce
Remove an incorrect debugging assert() that was accidently added during the
...
STAT4 enhancement.
FossilOrigin-Name: 2bb7f74bbd467b74581699d16b06758f9c9457dc
2013-10-06 22:52:51 +00:00
dan
56c517aa5f
Fix a faulty assert() in sqlite3BtreeBeginTrans() that may fail in shared-cache mode.
...
FossilOrigin-Name: 1e1321ee985370c2b7e5bd64286bb4d7704b5a30
2013-09-26 11:04:33 +00:00
drh
2f53b90665
Merge the STAT4 capability into trunk.
...
FossilOrigin-Name: a32af0abe5fa6d570604fa3534e8230d5b6042fc
2013-08-26 23:18:06 +00:00
drh
b00fc3b14e
Simplify the btreeGetPage() routine so that it uses a single flag parameter
...
in place of two boolean parameters.
FossilOrigin-Name: 617e23ec283d3147fc3fd29c474ccedf4915cdc7
2013-08-21 23:42:32 +00:00
drh
b49bc86a1a
Simplification to the StrAccum object and the sqlite3StrAccumAppend()
...
method that also results in slightly better performance.
FossilOrigin-Name: 700dbbea8647e0fdaee6d0aba3d3dd8ebfbac04a
2013-08-21 21:12:10 +00:00
drh
13c77bf86b
Performance enhancement in btreeParseCellPtr().
...
FossilOrigin-Name: a17190a2296e8cd5e59524ff5914fc5ea3560697
2013-08-21 15:52:22 +00:00
drh
9b47ee3f09
Performance optimizations in the VDBE and especially to the OP_Next and
...
related opcodes and in the sqlite3BtreeNext() and sqlite3BtreePrevious()
routines. This is a cherrypick of [6f99b54aedeb], [d2efea1682a7], and
[d78c5d89de4b].
FossilOrigin-Name: 7f72fc4f47445a2c01910b268335873de9f75059
2013-08-20 03:13:51 +00:00
drh
f66f26a311
Performance improvement in sqlite3BtreeNext() and sqlite3BtreePrevious()
...
for the common case of a valid cursor.
FossilOrigin-Name: dc65ad8c4c67b21e3b042b8df6580d02b634a90b
2013-08-19 20:04:10 +00:00
drh
40c3941cfa
Add the cache_spill pragma.
...
FossilOrigin-Name: cdb181c04fa99c6c29f23eb68ccb5475e7f6bf9c
2013-08-16 20:42:20 +00:00
dan
f52bb8d385
Begin adding experimental sqlite_stat4 table. This commit is buggy.
...
FossilOrigin-Name: 2beea303a1d609cd2ff252412c50b966b9e5e8f1
2013-08-03 20:24:58 +00:00
dan
c0537fe59b
Allow read transactions to be freely opened and closed by SQL statements run from within the implementation of user-functions if the user-function is called by a SELECT statement that does not access any database tables (e.g. "SELECT user_function();").
...
FossilOrigin-Name: f308c4851726b4b75636f714466f2314f56e3ec0
2013-06-28 19:41:43 +00:00
drh
1713afb025
Refactor the Vdbe.noIO field as Vdbe.bIsReader. The meaning is inverted.
...
FossilOrigin-Name: 59f98c5c241e5a61cd5b6d0e69b55a6b44c5cafc
2013-06-28 01:24:57 +00:00