1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-15 11:41:13 +03:00
Commit Graph

1354 Commits

Author SHA1 Message Date
drh
fa3be90471 Simplifications to btree.c and vdbeaux.c in support of structural coverage
testing. (CVS 6853)

FossilOrigin-Name: fc2a40a9db23285da16f40f5131613907fb80f02
2009-07-07 02:44:07 +00:00
danielk1977
3509a65827 Make the sqlite3BtreeMoveto function static, since it is only used from within btree.c. Remove unused function lockBtreeWithRetry from btree.c. (CVS 6850)
FossilOrigin-Name: 30d5ec62ab6a85ee60ee4128e20959842f8c7ad1
2009-07-06 18:56:13 +00:00
danielk1977
3e8add919a Remove unreachable code from function btreeCursor() in btree.c. (CVS 6848)
FossilOrigin-Name: c76a366ed4dc63604ff695b3ee9c183e430a367e
2009-07-04 17:16:00 +00:00
danielk1977
1bc9ee9835 Remove a redundant branch from btree.c. (CVS 6847)
FossilOrigin-Name: 133357d2f070ba303deddff59beead1ec8d10521
2009-07-04 15:41:02 +00:00
danielk1977
e0d9e6f623 Simplify the way the read-uncommitted flag is handled to facilitate test coverage. (CVS 6841)
FossilOrigin-Name: e2112d6160a82ccd4b6a1c798d2064d0f1b086eb
2009-07-03 16:25:06 +00:00
danielk1977
94b30733f7 When a b-tree transaction is committed when there are open cursors, downgrade shared-cache write-locks to read-locks instead of relinquishing all locks. Fix for #3942. (CVS 6837)
FossilOrigin-Name: 611e704fdf90a3d3932ca1cbab4be7e282bf1ddf
2009-07-02 17:21:57 +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
325ccfa90e Fix for compilation with OMIT_AUTOVACUUM defined. Ticket #3940. (CVS 6835)
FossilOrigin-Name: 8f0591ae98c2125a4922933496f4412aee8ab86e
2009-07-02 05:23:25 +00:00
danielk1977
96d48e963a Cause incremental-blob read/write operations lock shared-cache tables in the same way as normal SQL read/writes. Add complex assert statements to make sure tehe correct shared-cache locks are held when accessing the database. Eliminate some redundant checks from btree.c. (CVS 6830)
FossilOrigin-Name: f17ef37897da9bcaf20b5acdce6840522c0a0b16
2009-06-29 06:00:37 +00:00
shane
36840fdddb Removed a few compiler warnings under MSVC. (CVS 6825)
FossilOrigin-Name: f01a9fc375d77c67602a9f6be6a674beb516233f
2009-06-26 16:32:13 +00:00
danielk1977
46aa38f2c0 Fix a problem with a return code being ignored in insertCell(). (CVS 6816)
FossilOrigin-Name: bb5f1c01435dcc1ea056f0d149f750fa7812f652
2009-06-25 16:11:05 +00:00
danielk1977
c1761e887b Replace an "if" condition that is always true in btree.c with an assert(). (CVS 6814)
FossilOrigin-Name: daadbd9a8f0e35dd16c715cf2e9f99f52afa30dd
2009-06-25 09:40:03 +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
danielk1977
1c3d2bf9cf Remove a condition from balance_nonroot() that is always true. (CVS 6806)
FossilOrigin-Name: c5dc80e6bdd18a5ada728c8d5c9403ac233f1c9a
2009-06-23 16:40:17 +00:00
danielk1977
cd581a7eff Call balance_shallower() from balance_nonroot() instead of from balance(). This simplifies coverage testing a bit. (CVS 6805)
FossilOrigin-Name: da9893e23caf89090c8b6563cb5f88d7dbf7c260
2009-06-23 15:43:39 +00:00
danielk1977
54109bb206 Fix a failing assert in btree.c. The same bug was causing a spurious SQLITE_CORRUPT return when compiled without SQLITE_DEBUG. (CVS 6800)
FossilOrigin-Name: 47ec8749470af7cab9f3ef15effce1a7ba79a654
2009-06-23 11:22:29 +00:00
danielk1977
b980d2219f Remove a condition that is always true from btree.c. (CVS 6798)
FossilOrigin-Name: 3ec8b37a89fdb2436d312439715414fae2cd20a8
2009-06-22 18:03:51 +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
fa9601a9a6 Move codec management from database connections into the pager so that it
will work together with shared cache. (CVS 6782)

FossilOrigin-Name: ed08b53cd64c4ff2c94ef4e48441c5236041c9ca
2009-06-18 17:22:39 +00:00
drh
b33e1b99b0 Reduce the minimum usable page space to 480 byte from 500 bytes. (CVS 6780)
FossilOrigin-Name: db4fb835363c9c7e38c891e01188a6e2db88472d
2009-06-18 11:29:20 +00:00
drh
042d6a1f0f Fix a potential segfault following database corruption. Problem
made visible by check-in (6772). (CVS 6775)

FossilOrigin-Name: 69eb0ff817cff6266c53b79047bcff5e5d54b618
2009-06-17 13:57:16 +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
11a8a8660c Fix a bug affecting secure-delete mode introduced by (6768). (CVS 6773)
FossilOrigin-Name: a433ca821c134caeac0fa16416eb95c647416b95
2009-06-17 11:49:52 +00:00
danielk1977
e576521d96 Fix for #3918. Also, fix the TRACE macros in balance_nonroot(). (CVS 6772)
FossilOrigin-Name: 368e44ec2e648b04f3b817f82586ccd864e60c89
2009-06-17 11:13:28 +00:00
danielk1977
4dbaa89005 Changes to balance_nonroot() and BtreeDelete() to simplify delete operations and reduce stack/heap usage while balancing b-tree structures. (CVS 6768)
FossilOrigin-Name: 092b276e7d89bbfa3d8637a90ee5d458935a12a9
2009-06-16 16:50:22 +00:00
danielk1977
cb55799952 Remove a duplicate assert from btree.c. Ticket #3915. (CVS 6765)
FossilOrigin-Name: d89542cd8b2efaea7c6be6cd7787d183c55ae36a
2009-06-16 04:31:49 +00:00
shane
8509570763 Fix compiler warnings with MSVC build. (CVS 6761)
FossilOrigin-Name: e1e6430752449a34671b6c89326b03ac36ea6d9a
2009-06-15 16:27:08 +00:00
drh
eac74428c1 Detect database corruption and abort balance_nonroot() before the
corruption causes problems. (CVS 6758)

FossilOrigin-Name: 3448b39dcd580880a9326414e7e4952c4fbc313d
2009-06-14 12:47:11 +00:00
danielk1977
e56b60ecb8 Minor tweak to balance_quick() to save a few instructions. (CVS 6743)
FossilOrigin-Name: 9ace995910c8b0b9e95dc20fd70be487199e37af
2009-06-10 09:11:06 +00:00
shane
75ac1de0ad Fix compiler warnings with MSVC build. (CVS 6741)
FossilOrigin-Name: 0bd84e7387802c58c820369ff27ef54adbdf2e96
2009-06-09 18:58:52 +00:00
drh
3b2a3fa42e Enable cell overflow checking in sqlite3BtreeInitPage() using the
compile-time option SQLITE_ENABLE_OVERSIZE_CELL_CHECK.  Change the tests
so that they recognize different error messages depending on the setting
of this macro. (CVS 6735)

FossilOrigin-Name: 56bff6eb2fc5f0afbd96afc986671ec744bd40e1
2009-06-09 13:42:24 +00:00
danielk1977
80929b3de9 Avoid calling fillInCell() to create an internal node intkey cell from balance_nonroot(). A single putVarint() does the same thing more quickly. (CVS 6734)
FossilOrigin-Name: 2e5d42aeb40c3c6eea373a9ae3fbdf4e8087cd58
2009-06-09 11:34:10 +00:00
drh
f061be9c6f Only do the cell overread checks in sqlite3BtreeInitPage if
SQLITE_OVERREAD_CHECK is defined at compile-time. (CVS 6733)

FossilOrigin-Name: 49f544ebae8dc3cf7cf6189536c56ebb7d258a86
2009-06-09 10:37:03 +00:00
danielk1977
6067a9bbfe Do not clear the MemPage.nFree variable when insertCell() adds an overflow cell to a page. Not doing this means balance_quick() can avoid a call to sqlite3BtreeInitPage(). (CVS 6732)
FossilOrigin-Name: 8f1c1f61f7bc5270212725cf0a056872df983f49
2009-06-09 09:41:00 +00:00
danielk1977
a50d9aa784 Change the btree balance code so that it does not call balance_nonroot() recursively. (CVS 6729)
FossilOrigin-Name: 7863db904d6fc36417c923e3d135eb2c145b9013
2009-06-08 14:49:45 +00:00
drh
acfc72bea4 Detect when database corruption causes an attemp to set the pointer map
value for a pointer map page and report the corruption. (CVS 6722)

FossilOrigin-Name: 3ae4880bee3a0312c61cdd36f4fa50286cc2ef48
2009-06-05 18:44:15 +00:00
drh
35cd643cc7 Take care that a corrupt variable-length integer does not cause 32-bit
integer overflow when parsing a record format, nor cause excessively large
memory allocations. (CVS 6719)

FossilOrigin-Name: 38b20327a80996c7044b88be32161ac4ac0ec3a9
2009-06-05 14:17:21 +00:00
drh
1662b5a6f9 Earlier detection of freelist corruption in the page allocation routines. (CVS 6718)
FossilOrigin-Name: e557c8e5846f9c4eaaeb3bd07614ac101bb0b3d0
2009-06-04 19:06:09 +00:00
drh
d46b6c23d3 Fix an assertion fault in balance_quick() that occurs when an interior
btree node has zero cells due to database corruption.  Also update the
corrupt7.test result vectors for a couple of cases where the error report
on database corruption changed due to earlier detection. (CVS 6717)

FossilOrigin-Name: 1335e4440f5a3d24ce9ce187e0e23fc9b166ca98
2009-06-04 17:02:51 +00:00
drh
c85240dbf6 If the root page of a btree is empty and is also not a leaf page and the
page is not page 1, then report database corruption. (CVS 6716)

FossilOrigin-Name: 52b02ca5f3e5fdf2f3e02e9d8e016028d0842818
2009-06-04 16:14:33 +00:00
danielk1977
6f235cc5de Reduce the stack usage of balance_quick(). (CVS 6715)
FossilOrigin-Name: e7ad68e93b19b59cb16205c4b48fd9d6492dbb02
2009-06-04 14:46:08 +00:00
drh
c5e47ac238 Fix two instances where a malformed header in a database file (in other words
a corrupt database file) can lead to an assertion fault. (CVS 6712)

FossilOrigin-Name: 4e92c7f20afa51849128aa1d784ab885b517a73d
2009-06-04 00:11:56 +00:00
drh
69e931e7bb Change the pcache1.c implementation so that the "header" occurs at the end
of page buffer, not at the beginning.  This insures that the 20 bytes
immediately following the page buffer are mapped if a read of the page
buffer overruns due to a malformed cell. (CVS 6711)

FossilOrigin-Name: c54de1f54080de7e134d7b562498abb5337a0a46
2009-06-03 21:04:35 +00:00
danielk1977
93c829c110 Add corruptD.test, a container for testing the "cell overflow" problem. Also shuffle a small amount of code in BtreeInitPage() to check that the page header pointer to the start of the cell offset array is set to a sane value. (CVS 6710)
FossilOrigin-Name: 7fa5d3cb0fa05f7d901bcc139c2c037ce5944caa
2009-06-03 17:26:17 +00:00
danielk1977
0d19f7ac57 Define a set of constants to use as the "index" argument to sqlite3BtreeGetMeta and UpdateMeta. This makes some parts of the code easier to follow. (CVS 6709)
FossilOrigin-Name: 6dbf4eca00f845baa7200aba421d0bc158ba96aa
2009-06-03 11:25:07 +00:00
danielk1977
4b0aa4cf3e Workaround the need for internal API sqlite3BtreeCursorDb(). It was only being used for an assert() statement, which can be done differently. (CVS 6683)
FossilOrigin-Name: 5904af6e6df3effdaaa30e7cf96ee316fc09b28d
2009-05-28 11:05:57 +00:00
shane
60a4b53823 Changes to silence compiler warnings under MSVC. (CVS 6613)
FossilOrigin-Name: df599237e1ca8b4f361477a712cf761aa1fac3df
2009-05-06 18:57:09 +00:00
danielk1977
11c327aabe Avoid parsing cells that fit entirely on the b-tree page when searching a b-tree index. (CVS 6601)
FossilOrigin-Name: 77a8239548722f702ead9d7c60df0d68180948fb
2009-05-04 19:01:26 +00:00
danielk1977
de630353d8 Speed up INSERT operations that add data to UNIQUE or PRIMARY KEY indexes by rationalizing duplicate seek operations. (CVS 6599)
FossilOrigin-Name: cac4f3d812f0a02ca5c1fa78d366f694403929a8
2009-05-04 11:42:29 +00:00
danielk1977
3f632d5bd2 When a cursor points at the last entry of an intkey btree after an insert, leave it there (instead of moving it to the tree root node). This speeds up statements of the form "INSERT INTO ... SELECT ..." that use auto-generated rowids. (CVS 6592)
FossilOrigin-Name: 9950c0a79c82eb7d8495b0b1a8fe117d566e2387
2009-05-02 10:03:09 +00:00