dan
6f68f1640d
Use SQLITE_FCNTL_SYNC instead of SQLITE_FCNTL_SYNC_OMITTED. Add documentation in for FCNTL_SYNC and FCNTL_COMMIT_PHASETWO.
...
FossilOrigin-Name: 46231af985a1a872d1dc3418591cbaacb0b7c249
2013-12-10 17:34:53 +00:00
dan
d22d7b4daa
Merge changes from the trunk.
...
FossilOrigin-Name: 3ee736a39d1fc175a297c5fdd0d2e1c5a9b5b18e
2013-12-10 16:35:42 +00:00
dan
a01abc302d
Fix handling of errors returned by the SQLITE_FCNTL_OMIT_SYNCED file-control.
...
FossilOrigin-Name: d9a5f44f4a27336d41e60b6c3791bd018fbbff6f
2013-12-10 16:27:59 +00:00
dan
999cd08aae
Modify the way some internal file-controls are invoked. In order to support multi-file transactions in the zipvfs extension.
...
FossilOrigin-Name: 32fb1784af4594161d954343e3787db702000a4d
2013-12-09 20:42:03 +00:00
drh
c65faab2e1
Minor performance optimizations in pager.c.
...
FossilOrigin-Name: ba9eef5f5293633d1479e1d877bf338edb2a9471
2013-12-09 19:25:28 +00:00
drh
1e98310a14
Interchange two conditions in an "if" statment in sqlite3PagerAcquire() for
...
very slight (0.06%) overall performance increase.
FossilOrigin-Name: fbcc1a3ebb016225c3580181c908a2904cc184a5
2013-12-08 19:54:52 +00:00
drh
a9c19f935c
Back out the new device capability. The determination of whether or not a
...
file has moved is now done strictly using a file-control.
FossilOrigin-Name: 9c59f5af7ac4908583fab85d37241f200c40f02d
2013-12-07 16:45:05 +00:00
drh
b959a017b6
Actually look at i-node numbers to determine whether or not the database
...
file has moved.
FossilOrigin-Name: 2b1884dc14f9a04a04eebb3245fbe0daaff399eb
2013-12-07 12:29:22 +00:00
drh
3fee8a63c8
Only error out on a database file move when attempting to start a write
...
transaction. Assume read transactions are still safe. And make the error
SQLITE_READONLY_DBMOVED instead of SQLITE_IOERR_NODB.
FossilOrigin-Name: 28348f2ada98c616241a51aecb70b63e87e6ddbb
2013-12-06 17:23:38 +00:00
drh
1b1f30bb5e
Add code to detect if the database file is moved or deleted out from under
...
SQLite and return an SQLITE_IOERR_NODB.
FossilOrigin-Name: 8759a8e4d83b163e315eff316cf163f6ea42f2bb
2013-12-06 15:37:35 +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
9d1ab0794e
Minor performance tweaks to the pager.
...
FossilOrigin-Name: 9ae1f9ce7ea6beaeddc3711080b3796e05acc4f8
2013-08-21 22:54:55 +00:00
drh
40c3941cfa
Add the cache_spill pragma.
...
FossilOrigin-Name: cdb181c04fa99c6c29f23eb68ccb5475e7f6bf9c
2013-08-16 20:42:20 +00:00
dan
789efdb966
Drop any existing mapping of the database file when exiting the pager "error state", as it may at this point be too large for the database file. Do not invoke file-control MMAP_LIMIT if the database file handle does not support xFetch and xUnfetch (on the grounds that xUnfetch(0) calls to invalidate the mapping cannot be made).
...
FossilOrigin-Name: 0ae7e75b215b0d75920769da9146c54ce2ad3ce0
2013-07-06 17:57:39 +00:00
drh
ee0231ef52
Updates to the Codec interface to support codecs on attached databases and
...
to allow rekeying in the middle of a transaction. These changes are only
applicable if SQLite is compiled with SQLITE_HAS_CODEC.
FossilOrigin-Name: d5b084e9d8cfe9c0c339aca076d472bb50aa764c
2013-05-29 17:48:28 +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
dan
3719f5f600
Avoid unnecessary calls to FCNTL_SIZE_HINT. Return an error to the user if the file-control invoked by "PRAGMA mmap_size" returns a value other than SQLITE_OK or SQLITE_NOTFOUND.
...
FossilOrigin-Name: 40cfde8b4a59a09e52e62f9f029f8d3b32eb15fa
2013-05-23 10:13:18 +00:00
dan
32c12fe2bb
Minor fixes for compilation with SQLITE_OMIT_WAL defined.
...
FossilOrigin-Name: b81e87e72b976e7157a53a50abc5422e2a6c4c39
2013-05-02 17:37:31 +00:00
dan
8e4714b303
Avoid unnecessarily reseting the pager cache after committing a transaction that takes advantage of the SQLITE_IOCAP_ATOMIC related optimization.
...
FossilOrigin-Name: c47144e98c0a0f9e09780c945de10c57b6a495ea
2013-04-26 18:36:58 +00:00
drh
0f2340132f
Disable memory-mapped I/O when the codec is enabled.
...
FossilOrigin-Name: 340cca3079cd7aac2f51071435666e9e00ed8bd5
2013-04-16 14:52:47 +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
d040e76442
Add new primary error codes SQLITE_NOTICE and SQLITE_WARNING for use with
...
sqlite3_log(). Add new extended error codes SQLITE_NOTICE_RECOVER_WAL and
SQLITE_NOTICE_RECOVER_ROLLBACK to use with sqlite3_log() messages that occur
on each recovery.
FossilOrigin-Name: be7d2c5482c41baf000d7fb5dccc31b974e91064
2013-04-10 23:48:37 +00:00
drh
ab755ac81a
Change the rollback journal so that it invokes sqlite3_log() make a record
...
of a recovery, just as the WAL journal does.
FossilOrigin-Name: 7cd3f6cd3a39ed1c4bbf9e3508824150632c5bd9
2013-04-09 18:36:36 +00:00
drh
188d488409
Disable the use of memory-mapped I/O if the SQLITE_DISABLE_MMAP macro is
...
defined. Automatically define this macro for OpenBSD and QNX. Other
systems are likely to be added to the disabled list over time.
FossilOrigin-Name: 8a4314a398c6c6efb25e6993c826b7e60d9bb1f9
2013-04-08 20:47:49 +00:00
drh
34f7490311
Change the mmap_limit pragma to report the new limit, or to report the
...
existing limit if called with no arguments. Report the default mmap_limit
as part of PRAGMA compile_options. Set the default mmmap_limit to 0 for
all systems other than linux, mac, windows, and solaris.
FossilOrigin-Name: 2d9f1327fe79e40435ce1e2594d7cd9a5aea0ef2
2013-04-03 13:09:18 +00:00
dan
d409792838
Change an assert in pager.c to acknowledge that it is possible for sqlite3PagerRollback() to return SQLITE_CORRUPT.
...
FossilOrigin-Name: d641d3d20d80fdb86d91de31fcf2eb5ca3c5c715
2013-04-02 18:31:29 +00:00
drh
6d81449fc6
Reorder two conditions to make coverage testing easier.
...
FossilOrigin-Name: 793ba4e996426522eeaa86589a9e974fa1fc1522
2013-04-02 01:45:10 +00:00
drh
092d993cb7
Remove an unreachable condition from pager.c.
...
FossilOrigin-Name: 3628e86bf131cb205f08a4b299d84007cd6b25c3
2013-04-02 00:41:18 +00:00
drh
98d2038fc2
Always send the SQLITE_FCNTL_MMAP_LIMIT pragma to the VFS, even if the limit
...
is zero and even if the VFS does not support xFetch().
FossilOrigin-Name: 01ffdabbad30f1c157f2b33b1e85ee4d6c4632dd
2013-04-02 00:15:23 +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
drh
c86e51358b
Change the name of the Pager.pFree field to Pager.pMmapFreelist.
...
FossilOrigin-Name: 611bd824c24a60d298f28705de323fa2e813a308
2013-03-26 14:36:11 +00:00
drh
41f89cc676
Previous check-in accidently left mmap turned off by default. This checkin
...
fixes that. Unfortunately, shared.test is now segfaulting. All other
veryquick tests appear to work, however.
FossilOrigin-Name: a850c7319c20b5757983443df05cf2aa4250053b
2013-03-26 01:07:50 +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
dan
df737fe6f5
Change the signature of the xUnfetch method to "int (*xUnfetch)(sqlite3_file*, sqlite3_int64 iOfst, void *p)".
...
FossilOrigin-Name: 115b830509e8f0aa9d5965c1e9cd4f2ed9d01938
2013-03-25 17:00:24 +00:00
dan
11ac84635b
Do not return SQLITE_IOERR when the user attempts to open a small file that is not a database with mmap enabled. Instead return SQLITE_NOTADB.
...
FossilOrigin-Name: bbcaab3e80d0ff776d8567094b137d1483b3377b
2013-03-25 14:31:39 +00:00
dan
a1afc7425a
Fix a case in the pager where an xFetch() reference was being leaked following an OOM error.
...
FossilOrigin-Name: 5885ba6ce768658ec25b60747430d147b315b55c
2013-03-25 13:50:49 +00:00
dan
f23da96636
Replace the sqlite3_io_methods.xMremap interface with sqlite3_io_methods.xFetch and xUnfetch.
...
FossilOrigin-Name: 1431be95579160fb70408d43e17fc23c7b69ab4a
2013-03-23 21:00:41 +00:00
dan
9d56c6df9a
Fix a case where a checkpoint operation could write to an invalid part of a memory mapped region.
...
FossilOrigin-Name: 8dbe89d05ce91428c69003f0da79d883fa23e2b5
2013-03-23 14:20:42 +00:00
dan
99bd10979a
Allow the database file to be memory mapped in wal mode.
...
FossilOrigin-Name: d190ddabc386bc9654b99e33fb81b2f6e67b54d6
2013-03-22 18:20:14 +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
b26e6c14fe
Fix cases where xRead() was being used to read from a memory mapped part of the database file.
...
FossilOrigin-Name: 5c9e9df27b9f2c46cd55388a858d4e78ee564975
2013-03-21 20:39:55 +00:00
dan
7c49427fc2
Avoid calling xRead() on a part of the database file that is memory mapped.
...
FossilOrigin-Name: c8eac290a7240d69494bd0dad5ed1fdc2505f703
2013-03-21 20:00:07 +00:00
dan
eb97b29345
When possible, use memory mapping when appending new pages to a database file.
...
FossilOrigin-Name: 14135da3cdbafd699563a29608f32347cda28338
2013-03-20 14:26:59 +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
a72014faf5
When possible, use memcpy() to and from the mapped region instead of xWrite() and xRead().
...
FossilOrigin-Name: f8ca5622d99bedca957caa9ad311d798f63b3ce9
2013-03-16 20:19:21 +00:00
dan
7af6547a5a
Fix a dropped error code in pager.c.
...
FossilOrigin-Name: 022fdc986b33701abfd39621072ac3d9f9f7d43e
2013-03-15 19:13:42 +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
e3664fb03c
Add extended error code SQLITE_READONLY_ROLLBACK. Returned if a read-only connection cannot read the database because doing so would require it to roll back a hot-journal.
...
FossilOrigin-Name: 39247b14a52b0c0222fe5a848bf0aef0854058c4
2013-03-05 15:09:25 +00:00