- C If\sthe\sSQLITE_TRACE_SIZE_LIMIT\scompile-time\sparameter\sis\sset\sto\sa\spositive\ninteger\sthen\slimit\sthe\sexpansion\sof\sstrings\sand\sblobs\sin\strace\soutput\sto\napproximately\sthat\smany\sbytes.
- D 2013-04-02T13:56:53.795
-C Release\sresources\sprior\sto\sbailing\sout\sof\sthe\sbtreeCreateTable()\sroutine\nfollowing\san\sOOM\serror.
-D 2013-04-03T21:23:28.794
++C Try\sto\suse\smmap()\sto\sspeed\saccess\sto\sthe\sdatabase\sfile\son\swindows,\slinux,\nand\smac.
++D 2013-04-04T00:40:17.148
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
-F Makefile.in df3e48659d80e1b7765785d8d66c86b320f72cc7
+F Makefile.in aafa71d66bab7e87fb2f348152340645f79f0244
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
-F Makefile.msc 0c1abc21c8deefc88e8a32ad6a07e5f96e158761
-F Makefile.vxworks b18ad88e9a8c6a001f5cf4a389116a4f1a7ab45f
+F Makefile.msc 9ab787d472c9cb8bad29c2c4aeba15b06fba7bc4
+F Makefile.vxworks db21ed42a01d5740e656b16f92cb5d8d5e5dd315
F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
-F VERSION 6d4f66eaebabc42ef8c2a4d2d0caf4ce7ee81137
+F VERSION 05604ccde96fe1b37f922eddbdcb5654308261db
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
F addopcodes.awk 17dc593f791f874d2c23a0f9360850ded0286531
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
F src/analyze.c d5f895810e8ff9737c9ec7b76abc3dcff5860335
F src/attach.c 1816f5a9eea8d2010fc2b22b44f0f63eb3a62704
F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
- F src/backup.c b2cac9f7993f3f9588827b824b1501d0c820fa68
+ F src/backup.c b266767351ae2d847716c56fcb2a1fea7c761c03
F src/bitvec.c 19a4ba637bd85f8f63fc8c9bae5ade9fb05ec1cb
F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7
- F src/btree.c 62ba5954765efc711c873a20a53f60d9fc2843ba
- F src/btree.h 3ad7964d6c5b1c7bff569aab6adfa075f8bf06cd
-F src/btree.c 58c4d68415ca7b13a501b682a9c0ad1e287bcacb
++F src/btree.c 5f2c4fe72f663bba837c5d01a732799c1d1c93f8
+ F src/btree.h d9490cd37aaeb530a41b07f06e1262950b1be916
F src/btreeInt.h eecc84f02375b2bb7a44abbcbbe3747dde73edb2
F src/build.c 083da8466fd7e481cb8bd5264398f537507f6176
F src/callback.c d7e46f40c3cf53c43550b7da7a1d0479910b62cc
F src/mutex_unix.c c3a4e00f96ba068a8dbef34084465979aaf369cc
F src/mutex_w32.c 32a9b3841e2d757355f0012b860b1bc5e01eafa0
F src/notify.c 976dd0f6171d4588e89e874fcc765e92914b6d30
- F src/os.c e1acdc09ff3ac2412945cca9766e2dcf4675f31c
- F src/os.h 027491c77d2404c0a678bb3fb06286f331eb9b57
+ F src/os.c 809d0707cec693e1b9b376ab229271ad74c3d35d
+ F src/os.h ae08bcc5f6ec6b339f4a2adf3931bb88cc14c3e4
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
- F src/os_unix.c 21a36fa0b3753609b6606b30d9338d4bb6b24696
- F src/os_win.c 9fe5356f943425ab8431237bd3a4297044928b70
- F src/pager.c 3e9a15939684b0af441325f05335331b15979c9d
- F src/pager.h 1109a06578ec5574dc2c74cf8d9f69daf36fe3e0
+ F src/os_unix.c f0ecce40d92469d5cc737ae883e776eb3e5c0af5
-F src/os_win.c 1d0ccc1880b626ac2b6868284f6338c90687e8d8
++F src/os_win.c 3265df8c762e0b8caf8d02b3352fa8c22e91ae6b
+ F src/pager.c 2e68df46d4086027cb6b527d47a6dedbf1a6b7ec
+ F src/pager.h 5cb78b8e1adfd5451e600be7719f5a99d87ac3b1
F src/parse.y 5d5e12772845805fdfeb889163516b84fbb9ae95
F src/pcache.c f8043b433a57aba85384a531e3937a804432a346
- F src/pcache.h 1b5dcc3dc8103d03e625b177023ee67764fa6b7c
+ F src/pcache.h a5e4f5d9f5d592051d91212c5949517971ae6222
F src/pcache1.c 9fd22671c270b35131ef480bbc00392b8b5f8ab9
- F src/pragma.c 9f0ee3d74a7f33eeeff40a4b014fc3abf8182ce2
+ F src/pragma.c 682e97f3e3b77fd6c9b569eabfbf4a14c987aca3
F src/prepare.c 310eaff1ee5f3c700b3545afb095cfe9346efc3a
F src/printf.c 4a9f882f1c1787a8b494a2987765acf9d97ac21f
F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
F src/vdbeblob.c 32f2a4899d67f69634ea4dd93e3f651936d732cb
F src/vdbemem.c 833005f1cbbf447289f1973dba2a0c2228c7b8ab
F src/vdbesort.c 4fad64071ae120c25f39dcac572d716b9cadeb7f
-F src/vdbetrace.c 8bd5da325fc90f28464335e4cc4ad1407fe30835
+F src/vdbetrace.c a22263ab47f6ba4fcd176515cec1e732866b25f0
F src/vtab.c b05e5f1f4902461ba9f5fc49bb7eb7c3a0741a83
- F src/wal.c f5c7b5027d0ed0e9bc9afeb4a3a8dfea762ec7d2
- F src/wal.h 29c197540b19044e6cd73487017e5e47a1d3dac6
+ F src/wal.c 94b5fed2df988fb12f5bf17256e2840e56957a85
+ F src/wal.h a4d3da523d55a226a0b28e9058ef88d0a8051887
F src/walker.c 3d75ba73de15e0f8cd0737643badbeb0e002f07b
-F src/where.c 9a16c0b84bbeb054d11fda96e9e037ae310bd54e
+F src/where.c 4ad2329c439a30ddb915a780f6f80bdffafe3a64
F test/8_3_names.test 631ea964a3edb091cf73c3b540f6bcfdb36ce823
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
F test/aggnested.test 45c0201e28045ad38a530b5a144b73cd4aa2cfd6
F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91
F test/misc7.test dd82ec9250b89178b96cd28b2aca70639d21e5b3
F test/misuse.test ba4fb5d1a6101d1c171ea38b3c613d0661c83054
-F test/mmap2.test c0cbb978eda8d06d755ba8d9e59ec06ebf60c5cb
+ F test/mmap1.test df5105f08e6000e57b4de7e748f8c2ae3fed75da
++F test/mmap2.test 62dbb5d718e66d654d232116c5a2d96e26a071a5
F test/multiplex.test e08cc7177bd6d85990ee1d71100bb6c684c02256
F test/multiplex2.test 580ca5817c7edbe4cc68fa150609c9473393003a
F test/multiplex3.test d228f59eac91839a977eac19f21d053f03e4d101
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
- P 5687e5ee7bafa00d2b353c3eda1e5dfb219cb185
- R b688b887865b3d8981922c40426941a0
-P f97d7274f48e3bb98ed17eae11abb55064134874
-R 133fe42d87ba7d3deff6d35af20e1f64
++P e5b710849dd66673ba0e0d935b103cb29abfcc4b b2a72be9bab77f050bef75477a278a6294d3e854
++R 60af9b4d9e73e7757090b3abb77cbb41
U drh
- Z 66f86621cb15eccea274cb5b5e71ec26
-Z 8d00d860d2c818ad1f98631f4c1a926a
++Z d05e425b384f57133414b300483bca27
--- /dev/null
-if {[test_syscall defaultvfs] != "unix"} {
+ # 2013 March 20
+ #
+ # The author disclaims copyright to this source code. In place of
+ # a legal notice, here is a blessing:
+ #
+ # May you do good and not evil.
+ # May you find forgiveness for yourself and forgive others.
+ # May you share freely, never taking more than you give.
+ #
+ #***********************************************************************
+ #
+ # This file tests the effect of the mmap() or mremap() system calls
+ # returning an error on the library.
+ #
+ # If either mmap() or mremap() fails, SQLite should log an error
+ # message, then continue accessing the database using read() and
+ # write() exclusively.
+ #
+
+ set testdir [file dirname $argv0]
+ source $testdir/tester.tcl
+ set testprefix mmap2
+
-
++if {$::tcl_platform(platform)!="unix" || [test_syscall defaultvfs] != "unix"} {
+ finish_test
+ return
+ }
+
+ db close
+ sqlite3_shutdown
+ test_sqlite3_log xLog
+ proc xLog {error_code msg} {
+ if {[string match os_unix.c* $msg]} {
+ lappend ::log $msg
+ }
+ }
+
+ foreach syscall {mmap mremap} {
+ test_syscall uninstall
+ if {[catch {test_syscall install $syscall}]} continue
+
+ for {set i 1} {$i < 20} {incr i} {
+ reset_db
+
+ test_syscall fault $i 1
+ test_syscall errno $syscall ENOMEM
+ set ::log ""
+
+ do_execsql_test 1.$syscall.$i.1 {
+ CREATE TABLE t1(a, b, UNIQUE(a, b));
+ INSERT INTO t1 VALUES(randomblob(1000), randomblob(1000));
+ INSERT INTO t1 SELECT randomblob(1000), randomblob(1000) FROM t1;
+ INSERT INTO t1 SELECT randomblob(1000), randomblob(1000) FROM t1;
+ INSERT INTO t1 SELECT randomblob(1000), randomblob(1000) FROM t1;
+ INSERT INTO t1 SELECT randomblob(1000), randomblob(1000) FROM t1;
+ INSERT INTO t1 SELECT randomblob(1000), randomblob(1000) FROM t1;
+ INSERT INTO t1 SELECT randomblob(1000), randomblob(1000) FROM t1;
+ }
+
+ set nFail [test_syscall fault 0 0]
+
+ do_execsql_test 1.$syscall.$i.2 {
+ SELECT count(*) FROM t1;
+ PRAGMA integrity_check;
+ } {64 ok}
+
+ do_test 1.$syscall.$i.3 {
+ expr {$nFail==0 || $nFail==1}
+ } {1}
+
+ do_test 1.$syscall.$i.4.nFail=$nFail {
+ regexp ".*${syscall}.*" $::log
+ } [expr $nFail>0]
+ }
+ }
+
+ db close
+ test_syscall uninstall
+ sqlite3_shutdown
+ test_sqlite3_log
+ sqlite3_initialize
+ finish_test