1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-07 02:42:48 +03:00

1674 Commits

Author SHA1 Message Date
drh
4f7d3a5f06 Refactor names of fields in the sqlite3 object: "activeVdbeCnt" becomes
"nVdbeActive".  Related fields becomes "nVdbeRead", "nVdbeWrite", and
"nVdbeExec".

FossilOrigin-Name: 14f796963474350e7aee8d3757acd3315fe78e4f
2013-06-27 23:54:02 +00:00
drh
f7b5496e8e Many small harmless comment changes. Removal of obsolete comments and
fixing misspelled words.  No changes to code.

FossilOrigin-Name: a0d5cc9315dc6e9ef7dee4c3dfabf4e562d64376
2013-05-28 12:11:54 +00:00
drh
35cbe7f523 Merge together the fork in this branch.
FossilOrigin-Name: 164e3d4da20cc16d2a04d602b5a8229e0db99d9d
2013-05-14 23:13:41 +00:00
drh
85ec3b63d8 Fix an assert() in unlockBtreeIfUnused() so that it checks for the existance
of an untripped cursor, not for the existance of any cursor at all.

FossilOrigin-Name: a6f851d0fe01d8c8d44a2fe0b716ff7a5194c63b
2013-05-14 23:12:06 +00:00
dan
bf0e57a7d0 Avoid deleting a b-tree "has-content" vector belonging to another shared-cache connection from within sqlite3_close().
FossilOrigin-Name: 93462df78247f5634b9f53752cf80056bbfe9aac
2013-05-14 20:36:31 +00:00
drh
9b4c59fa1b Refactoring the mmap interface. The controlling pragma is now "mmap_size"
instead of "mmap_limit".  Also change SQLITE_CONFIG_MMAP_LIMIT and
SQLITE_FCNTL_MMAP_LIMIT to SQLITE_CONFIG_MMAP_SIZE and
SQLITE_FCNTL_MMAP_SIZE, respecctively.  
The default mmap_size is now always 0, meaning that
memory mapped I/O is off by default.  There is a new compile-time option
SQLITE_MAX_MMAP_SIZE that determines a hard upper bound on the mmap_size.
Setting SQLITE_MAX_MMAP_SIZE to zero disables the memory-mapped I/O logic
and causes it to be omitted from the build.  An extra argument is added
to SQLITE_CONFIG_MMAP_SIZE that can optionally lower the SQLITE_MAX_MMAP_SIZE
at start-time. The SQLITE_MAX_MMAP_SIZE is zero for platforms where we 
know that it does not work, meaning that it cannot be turned on by mistake
on those platforms.

FossilOrigin-Name: ea1404a10abd7f68e1f8e0708c8a3199d1f79665
2013-04-15 17:03:42 +00:00
drh
a478b3fa80 Try to use mmap() to speed access to the database file on windows, linux,
and mac.

FossilOrigin-Name: fff2be60779571c8fb89158db976ec3755e9a223
2013-04-04 00:40:17 +00:00
drh
b0a8ea046a Release resources prior to bailing out of the btreeCreateTable() routine
following an OOM error.

FossilOrigin-Name: b2a72be9bab77f050bef75477a278a6294d3e854
2013-04-03 21:23:28 +00:00
drh
370c9f498d Remove an unreachable branch in the direct blob I/O logic of btree.c.
FossilOrigin-Name: f97d7274f48e3bb98ed17eae11abb55064134874
2013-04-03 20:04:04 +00:00
dan
6c96946475 Remove the restriction on using xFetch to load the root pages of tables and indexes. It appears to have been based on a misconception.
FossilOrigin-Name: 5b082efead488a2fccc18171e640e0aa5252d1d0
2013-04-03 11:52:16 +00:00
dan
f7679ad19e When moving a page to make way for the root page of a new table or index in an auto-vacuum database, save the positions of any cursors that may be holding xFetch references to the page being moved.
FossilOrigin-Name: 9d9b1da54a555e8fb6037d63d1952458c12956d2
2013-04-03 11:38:36 +00:00
dan
227a1c482c In btree.c, save the positions of other cursors open on the same table when writing via an incremental blob handle. Otherwise, they may be left holding an out-of-date xFetch page reference.
FossilOrigin-Name: 3f09fba18f7e61e21381ffea13c31b968efd7d77
2013-04-03 11:17:39 +00:00
drh
a1f42c7c32 Add the SQLITE_CONFIG_MMAP_LIMIT configuration option for overriding the
SQLITE_DEFAULT_MMAP_LIMIT compile-time setting.  Enhance "PRAGMA mmap_limit"
so that without a specific database name, it sets the limit on all database
files and changes the default for any future databases that might be added
using ATTACH.

FossilOrigin-Name: 78141d0a16dd1d56b575fccd149de7fa789cb06c
2013-04-01 22:38:06 +00:00
dan
71be5c5c87 Fix a problem in btree.c that could cause a crash following an OOM.
FossilOrigin-Name: b724aa5889f2e09cf0cbef133a672e6486755104
2013-04-01 14:29:33 +00:00
drh
138eeeb1b0 Candidate fix for ticket [6bfb98dfc0c]: Make sure invalid cursors drop all
references to database pages prior to doing any insert or update.

FossilOrigin-Name: 322a5f086d9ee46017f750df81527799a54ae258
2013-03-27 03:15:23 +00:00
dan
0aed84d19f In btree.c, save the positions of any open cursors before moving any pages around to auto-vacuum the database on commit.
FossilOrigin-Name: 30c0a69363931a72d1c34e5be71646932398d172
2013-03-26 14:16:20 +00:00
drh
0d0614bdc6 Memory-mapped I/O is now on by default. The "PRAGMA mmap_limit(N)" can be
used to issue a hint to the VFS to limit mmap space to N bytes.  The VFS
is free to ignore that hint if desired.  However, if "PRAGMA mmap_limit(0)"
is used, xFetch is never called.

FossilOrigin-Name: 1b37c4effdd03aa2ea938a71b4f22ed27391689b
2013-03-25 23:09:28 +00:00
drh
dee6554811 Merge all recent trunk changes into the experimental-mmap branch.
FossilOrigin-Name: a607d63f0b6a3d3785e9385187d3e6b92e14fc70
2013-03-25 19:57:26 +00:00
drh
23f29ec628 Fix a potential NULL-pointer dereference in btreeSwapOutMmap().
FossilOrigin-Name: e81ccdcd87a1387f7ca08d4d7c899311e2180d32
2013-03-22 19:56:27 +00:00
mistachkin
48864df97d Many spelling fixes in comments. No changes to code.
FossilOrigin-Name: 6f6e2d50941e444ebc83604daddcc034137a05b7
2013-03-21 21:20:32 +00:00
dan
5b068f8632 Fix a problem when opening a write-transaction while there exist read-only b-tree cursors in mmap mode.
FossilOrigin-Name: 32e0bbb73609ac3ad096a60f1de3095bc79fb0cc
2013-03-21 15:57:32 +00:00
dan
5d8a137218 Add the sqlite3_io_methods.xMremap() method to the VFS interface. Also "PRAGMA mmap_size".
FossilOrigin-Name: 6183f1bd86ceed76d22d9762f3d7eb33262c62d1
2013-03-19 19:28:06 +00:00
dan
11dcd11913 Allow read-only cursors to use mmap pages even if there is an open write transaction.
FossilOrigin-Name: b387e2f9d24dccac1fd040e309f6fc7ec1cfffba
2013-03-15 18:29:18 +00:00
dan
b2d3de3bf4 Use mmap() to read from the database file in rollback mode. This branch is unix only for now.
FossilOrigin-Name: 6f21d9cbf5d457e63a7282015a89ae785526cf6d
2013-03-14 18:34:37 +00:00
dan
09ff9e1664 Fixes for compiling with SQLITE_OMIT_AUTOVACUUM and/or SQLITE_OMIT_TRIGGER defined.
FossilOrigin-Name: 938b91e8552516772060d4e55e2f79cca4c13e27
2013-03-11 11:49:03 +00:00
dan
e1df4e31ec Fix a bug in the recent incremental-vacuum related changes.
FossilOrigin-Name: 717863fca6d58828bf9321bc8b169e385ad4263f
2013-03-05 11:27:04 +00:00
drh
82e647d7c3 Update comments on the free-page allocator to accurately reflect the
latest implementation.  Add new asserts to the free-page allocator.

FossilOrigin-Name: 9a135e37b696b8544da8dbddf9d1041b8fa6f1c2
2013-03-02 03:25:55 +00:00
dan
9138471141 Fix a case where database corruption may cause an assert() to fail.
FossilOrigin-Name: ba33bb059ed4f4547da2880dbc8bd827c06fae34
2013-02-24 11:50:43 +00:00
dan
e0b605917e Fix a case in the incremental vacuum code where database corruption was going unreported.
FossilOrigin-Name: 4cd30c72629a7f44b18026a70103aa0bb8a3b959
2013-02-23 19:43:47 +00:00
dan
22d2730047 Fix a cut-and-paste bug causing the library to fail to report database corruption in a few cases.
FossilOrigin-Name: f921df59560d536f5b80eef8c995cbe3ff591bae
2013-02-23 19:11:47 +00:00
dan
87ade19eb9 Fix off-by-one bug in [c3939d2491] uncovered by th3.
FossilOrigin-Name: 66f9faa9a969d004486ee38d492fb3eda6cdebab
2013-02-23 17:49:16 +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
f38b65a85d Fix a problem with the previous commit.
FossilOrigin-Name: 720a3ceafc35b81936ed2eb1f07a7187d104f0a0
2013-02-22 20:57:47 +00:00
dan
51f0b6d568 Avoid moving pages more than once in an incremental vacuum operation.
FossilOrigin-Name: c3939d249119b47bd57baa11a5ed7cc6014fc795
2013-02-22 20:16:34 +00:00
drh
32055c2499 Allow the error message from "PRAGMA integrity_check" to be longer than
20,000 bytes.

FossilOrigin-Name: 120c82d56ecb574f46db01679317b8062d8779ed
2012-12-12 14:30:03 +00:00
mistachkin
5f070c7bc8 More warning fixes.
FossilOrigin-Name: 51a6a797e1d61c4361b87cdf3467bfd3ce161cc3
2012-10-18 10:35:19 +00:00
dan
b483eba051 Ensure that when the source of a backup is a database that is zero bytes in size, the final destination database consists of at least one page. Truncating it to zero bytes is equivalent to zeroing the schema cookie and change counter, which can cause problems for existing clients.
FossilOrigin-Name: af5c9ee4a453f71c03f24ad08824ced6c1b97afb
2012-10-13 19:58:11 +00:00
mistachkin
e7c54168fa Work around an optimization issue with the MSVC compiler for ARM.
FossilOrigin-Name: 7d301fdfeec540e4a58f43bff04d219e9f769dc4
2012-10-02 22:54:27 +00:00
drh
a1f3853793 Omit the sqlite3GetReservedNoMutex() routine in build configurations where
it is not used.

FossilOrigin-Name: f193dbb6b96b2f49dd0d6345802c9c006cd99e3c
2012-10-01 12:44:26 +00:00
dan
0094f37e1f Avoid calling sqlite3BtreeEnter() in a corner case where the corresponding database handle mutex (sqlite3.mutex) may not be held. This prevents a potential deadlock or crash that can occur if the backup API, shared-cache mode and SQLITE_HAVE_CODEC are all in use.
FossilOrigin-Name: 89b8c377a6f03d9fa885f3f94c1f0b1eec263dea
2012-09-28 20:23:42 +00:00
mistachkin
70a1b71fb6 Modify the clearCell function to use SQLITE_CORRUPT_BKPT in the one place it was not.
FossilOrigin-Name: 472beb306a4fa7103837d4417aef7d66eef49993
2012-09-28 18:13:35 +00:00
mistachkin
d5578433ff Fix all known instances of 'repeated the' style typos in comments. No changes to code.
FossilOrigin-Name: 9b19b847533f944f289d93dcdba29c0d67bf251c
2012-08-25 10:01:29 +00:00
drh
f2f105d40e Remove tab characters from source code files. Replace them with spaces.
FossilOrigin-Name: 7edd10a960d5ff121e470b0549b0aa9fb7760022
2012-08-20 15:53:54 +00:00
drh
ec73930adc Add an assert() to the btree rebalancer in order to silence a
clang/scan-build warning.

FossilOrigin-Name: 6730579cf5c6c74cb293e7237d896d3a3a36b691
2012-08-14 18:43:39 +00:00
dan
7d6885ae8a When populating an index b-tree as part of a CREATE INDEX or REINDEX statement, distribute cells between up to three siblings in balance_nonroot() instead of four. This produces identical database files, but is slightly faster.
FossilOrigin-Name: b0d31e779ecf01c5a235443c05f488b177ac3045
2012-08-08 14:04:56 +00:00
dan
f64cc49962 When building a b-tree as part of a CREATE INDEX or REINDEX statement, attempt to pack keys into pages as tightly as possible.
FossilOrigin-Name: efea62b96c6a242c8ac2bdad70e50c87aee5e871
2012-08-08 11:55:15 +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
drh
9c67b2aae0 Add the mode=memory option to URI filenames, which when present forces the
database to be an in-memory database.  This enables named in-memory databases.

FossilOrigin-Name: 651520fa84ee0c488bef660bab9865500309d5e9
2012-05-28 13:58:00 +00:00
drh
d4e0bb0e65 Have user interfaces report out the filename of in-memory databases as an
empty string, as it always has.  This simplifies the changes.

FossilOrigin-Name: 595dfdbffefb2598cba89980f885289d1c5f5833
2012-05-27 01:19:04 +00:00
drh
4ab9d254e0 Only allow :memory: databases to share cache if there are created using a
URI filename.  This minimizes the risk of breakages in legacy applications
that have shared-cache enabled but also use :memory: databases which they
expect to keep separate.

FossilOrigin-Name: e3ad61e0308a8442c2bdb7cdb3465576cd39ed4a
2012-05-26 20:08:49 +00:00