1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-12 23:22:53 +03:00
Commit Graph

87 Commits

Author SHA1 Message Date
drh
ad0961b31b Keep track of the optimal number of reserved bytes (by looking at reserve
byte requests in calls to sqlite3BtreeSetPageSize()) and then change the
reserve byte count to the optimal when doing a VACUUM or when using the
backup API.

FossilOrigin-Name: 28c2b726285ea88b334acfd6390a057d2d244838
2015-02-21 00:19:25 +00:00
drh
3da9c04712 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.

FossilOrigin-Name: 7a97826f33460f3b4f3890c9cf97116c3355eeda
2014-12-22 18:41:21 +00:00
drh
d816e00d13 Improved comments on the BtCursor.skipNext field. No changes to code.
FossilOrigin-Name: e956e7db057d1112badf5e0671cea95201385b44
2014-11-17 19:25:15 +00:00
drh
92787cf042 Add a four-byte prefix to the BtShared.pTmpSpace buffer to avoid reading
before the beginning of an allocation.

FossilOrigin-Name: 9386bfca128023583a24303e5f1d832987a49d43
2014-10-15 11:55:51 +00:00
drh
867db83159 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.

FossilOrigin-Name: 83913515830aa850f9e38406f9422d7e88dcab66
2014-09-26 02:41:05 +00:00
drh
3e28ff5cb5 Add the MemPage.noPayload boolean and use it to help
cellSizePtr() and btreeParseCellPtr() run faster.

FossilOrigin-Name: 8e3375313ebbf26b68561f3ed31d2a488222e5d0
2014-09-24 00:59:08 +00:00
drh
ab1cc58b70 Simplify the CellInfo structure for a size reduction and performance
improvement.

FossilOrigin-Name: bf59df66b3613c38cfb13a68091b8328ebb22c78
2014-09-23 21:25:19 +00:00
peter.d.reid
60ec914c74 Fix typos in comments. No code changes.
FossilOrigin-Name: e62aab5e9290503869e1f4d5e0fefd2b4dee0a69
2014-09-06 16:39:46 +00:00
drh
4c417181c2 Fix a compiler warning when SQLITE_DIRECT_OVERFLOW_READ is defined.
Minor performance enhancement and size reduction.

FossilOrigin-Name: 96385dc460545807a5c8fcf6280a971700f84866
2014-03-31 23:57:41 +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
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
e75fb06146 Bring some file format comments in btreeInt.h up to date.
FossilOrigin-Name: 012d54d0d2b40888d08915082592ba75d70891c1
2013-10-01 20:29:30 +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
dan
bc1a3c6ce2 If a rollback mode transaction reduces the size of the database file, avoid actually truncating the file until after the transaction has been committed (but before the db has been unlocked). This means pages that are removed from the database by truncating the file need not be journalled.
FossilOrigin-Name: b73847f17b7ae1298dfc52de6c4c4bc809bc77a3
2013-02-23 16:40:46 +00:00
dan
428c218c90 When reusing pages as part of creating a new index, allocate the leaves from each free-list trunk page in ascending order, instead of trying to maximize localization for each individual allocation. This increases the chance that pages will be written to disk in ascending order by a large CREATE INDEX statement, improving overall performance.
FossilOrigin-Name: d045f8b2d44e388d8c4549ff02d4ca7eff4e2038
2012-08-06 18:50:11 +00:00
dan
1235bb1815 Modify the integrity-check code to reduce the size of the large allocation from 4 bytes to 1 bit for each page in the database file.
FossilOrigin-Name: fa3a498dfe9ed59c30da5eaa0d7cad167fd4e393
2012-04-03 17:43:28 +00:00
drh
2cbd78b70e Reduce the size of the MemPage object by about 32 bytes. Other structure
size optimizations.

FossilOrigin-Name: 21695c3476804477cb378b5a643196380e7e2281
2012-02-02 19:37:18 +00:00
drh
c91663499e Combine various boolean variables in the BtShared structure into a single
boolean vector.  Also make performance improvement simplifications to
sqlite3BtreeMovetoUnpacked().

FossilOrigin-Name: 119493318e0ad4c2858fe1484b0d71669bd81531
2012-01-05 23:32:06 +00:00
drh
b8a45bbdb8 Fix typos in comments. No changes to code.
FossilOrigin-Name: 6827338ecbe43e28da88d919851ebffde9f6d398
2011-12-31 21:51:55 +00:00
drh
3def2357e6 Make sure a corrupt index does not cause a buffer overread in
sqlite3VdbeRecordCompare().

FossilOrigin-Name: 471cf0d8e7857110e525e029c2d535cb518dba6a
2011-11-11 00:27:15 +00:00
drh
fcd71b6010 Suppress many harmless compiler warnings, mostly signed/unsigned comparisons
within asserts or unused parameters in extensions.

FossilOrigin-Name: 3eeb0ff78d04891b5fd1a3d99a9fb8cfbed77a81
2011-04-05 22:08:24 +00:00
drh
e54e051800 Remove the mutex counter and the logic that attempts to verify that btree
mutexes are held continuously.  We are not making that assumption at this
time.

FossilOrigin-Name: 242ce7cff416a87d57d4eb624cb79fa4e2215559
2011-04-05 17:31:56 +00:00
drh
bdaec52c62 Remove the BtreeMutexArray object - use the Vdbe.btreeMask field to accomplish
the same result.  Add a generation counter to btree mutexes in order to assert
that mutexes are never temporarily dropped over a range of instructions in order
to do deadlock avoidance in some subroutine.  Lock all btrees in any Vdbe
program that uses OP_ParseSchema.

FossilOrigin-Name: d81708f7d1eee399bfe76f6b8dac950a85dc2582
2011-04-04 00:14:43 +00:00
drh
4fa7d7c0df Fix typos in comments. No changes to code.
FossilOrigin-Name: 28c5f12e98655d5c6167b13e8a15085eca43dd5b
2011-04-03 02:41:00 +00:00
drh
2e5de2f2b3 Reorder the fields in private structures in an effort to reduce alignment
gaps and thus make the structures smaller, and to put frequently accessed
fields first.  Also update some obsolete comments.  Valgrind shows a very
slight performance improvement.

FossilOrigin-Name: 378a1d13af4a6f4cb2bfa65944b3b0d444b9f21c
2011-01-07 02:50:40 +00:00
drh
d4187c716c Provide hints to the btree layer during the creation of transient tables
when it is possible for those tables to use a hash rather than a binary tree.
No use is current made of those hints, though assert() statement verify
their accuracy.

FossilOrigin-Name: 4fead8e714c7e50a9d246467e62bc846ef6180a0
2010-08-30 22:15:45 +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
b978002743 Tests for (and changes to) the code to switch between WAL and rollback modes.
FossilOrigin-Name: 9f4f933f2c6596064fcfc7fb5add87e8c5b57448
2010-04-21 18:37:57 +00:00
drh
25a80ad0b1 The btree layer now tracks when a database is empty at the start of a
transaction and rolls back to that state.

FossilOrigin-Name: 01ef6c1944507c188a83a434ff00e98ad767f744
2010-03-29 21:13:12 +00:00
drh
dd3cd977cc Experimental changes that cause SQLite to use bytes 28..31 of the database
header to determine the database size, rather than using the actual database
size.  This allows database space to be preallocated.

FossilOrigin-Name: b844ac6fcb72595a71e5c5283ec461309a87ba79
2010-03-27 17:12:36 +00:00
drh
5b47efa662 All the secure-delete setting to be changed at run-time using a pragma.
The SQLITE_SECURE_DELETE compile-time option determines the default setting.

FossilOrigin-Name: f72f8a870a0fc98a9f2b564ffafe7946bbce506e
2010-02-12 18:18:39 +00:00
drh
c81c11f62c Remove the obsolete "$Id:$" RCS identifier strings from the source code.
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
drh
5bbe548195 Minor updates and corrections to comments in btreeInt.h. No changes to code.
FossilOrigin-Name: ad949fa1acb4546fe4f2a448025579cc374dd8dd
2009-10-27 18:06:10 +00:00
drh
ed1f8787aa Fix comment typos in btreeInt.h.
FossilOrigin-Name: 550566a75fc79e3662431ba493af853b522d8850
2009-10-16 13:23:33 +00:00
drh
4c301aaca8 Simplifications to btree.c in support of structural testing. Renamed the
"skip" field of the BtCursor object to "skipNext" to make it easier to
search for places where it is used. (CVS 6896)

FossilOrigin-Name: d3897235d77e48ad09f7edb0a7641458afa0a282
2009-07-15 17:25:45 +00:00
danielk1977
3054866c7c Restore (btree_set_cache_size) to test3.c. This is used on unix for the tcl "crash tests". Make some functions no longer used outside of btree.c static. (CVS 6869)
FossilOrigin-Name: 1d96ce8c76e007ca29e7971a6c72b6387fe0fb93
2009-07-09 05:07:37 +00:00
danielk1977
602b466e99 Cause opening a transaction on a sharable b-tree module automatically obtain a read-lock on page 1. This means there is no way for sqlite3BtreeGetMeta() to fail. (CVS 6836)
FossilOrigin-Name: e3c055f167f895ae45858de9d9d8a264df2f36b6
2009-07-02 07:47:33 +00:00
danielk1977
13bd99fa43 Simplify things by rolling the functionality of balance_shallower() into balance_nonroot(). (CVS 6808)
FossilOrigin-Name: 11750c6aee6aa05b2627ad9dfb2fbcdfe8944168
2009-06-24 05:40:34 +00:00
drh
27731d7c73 Make sure sqlite3BtreeCreateTable() returns an error code if the largest
rootpage field is invalid in auto_vacuum mode.  Update file-format comments
to describe all of the "meta" values. (CVS 6797)

FossilOrigin-Name: bda38f5e86db45234c2dbb0f8d1a81f6ff6d04e4
2009-06-22 12:05:10 +00:00
drh
0d588bbc38 Suppress some -Wextra compiler warnings from GCC. (CVS 6774)
FossilOrigin-Name: 59ec937ce226bbf6c48c5e0466d3bab48873c9ea
2009-06-17 13:09:38 +00:00
danielk1977
be2296501c Make sure struct WhereClause is aligned on an 8-byte boundary. Fix for #3613, #3736. (CVS 6364)
FossilOrigin-Name: 093a0cf4adc8613f744c2ccdef61f0b30a46818c
2009-03-20 14:18:51 +00:00
danielk1977
bd43455c38 Fix some cases where executing SQL from within a user-function callback could cause problems related to statement-transactions. (CVS 6355)
FossilOrigin-Name: a60f4191791dd7bb49d5c95b350a9924845b59a8
2009-03-18 10:33:00 +00:00
drh
7f75122149 Move the rowid cache out of VdbeCursor and into BtCursor. When multiple
BtCursors are open on the same table, set their rowid cache all at the
same time.  Ticket #3731. (CVS 6354)

FossilOrigin-Name: 189785832a7dc9f4a0a2113d850b92b987e0f9bf
2009-03-17 22:33:00 +00:00
danielk1977
404ca07578 Add the sqlite3_unlock_notify() API. (CVS 6348)
FossilOrigin-Name: b649a6cc5bfefddd6a04b1183647d2923e0a0daa
2009-03-16 13:19:36 +00:00
danielk1977
0410302e58 Commit first version of the 'backup' feature. (CVS 6241)
FossilOrigin-Name: 663479b417fc06ba1790a544f28694f8797cee57
2009-02-03 16:51:24 +00:00
danielk1977
bea2a94850 Big change to make pager.c easier to follow. Unused variables removed, comments improved, etc. (CVS 6197)
FossilOrigin-Name: 12f7346c13c180ed73d7a2e3b590be457360254a
2009-01-20 17:06:27 +00:00
danielk1977
45d6882fd9 Revert (6187). (CVS 6188)
FossilOrigin-Name: a353c1ab376b159c4d12532412365318cdbdcc60
2009-01-16 16:23:38 +00:00
danielk1977
443c0597fe This commit is an error. Reverted by (6188). (CVS 6187)
FossilOrigin-Name: aa67fd0cdb4f53a0c6e15c001d37554d15006718
2009-01-16 15:21:05 +00:00
danielk1977
3460d19c85 Fix a problem with savepoint and incremental-vacuum. (CVS 6066)
FossilOrigin-Name: 08352f9ea9d2a1759320efc46e418079000855cb
2008-12-27 15:23:13 +00:00