]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge recent performance enhancements and the CAST operator enhancements
authordrh <drh@noemail.net>
Tue, 26 Aug 2014 02:02:40 +0000 (02:02 +0000)
committerdrh <drh@noemail.net>
Tue, 26 Aug 2014 02:02:40 +0000 (02:02 +0000)
into the apple-osx branch.

FossilOrigin-Name: 5c273111058fcb3a1707ea0f3c7ac4b04525aeb0

13 files changed:
1  2 
manifest
manifest.uuid
src/btree.c
src/legacy.c
src/main.c
src/os_win.c
src/pager.c
src/prepare.c
src/sqliteInt.h
src/vdbe.c
src/vdbeapi.c
src/vdbeaux.c
test/memsubsys1.test

diff --cc manifest
index 91444f52b75b54e1ac2adcdbcd6af86d767f08d8,a75c4cd6f732dab803c4316a1680715c9ae7eaf8..42f40670a5d57509c4a56708adfe17496c87c1e4
+++ b/manifest
@@@ -1,7 -1,7 +1,7 @@@
- C Merge\sthe\s3.8.6\schanges\sinto\sthe\sapple-osx\sbranch.
- D 2014-08-15T16:10:41.678
 -C Add\san\sassert()\sand\sfive\stestcase()\smacros\sto\sthe\sOP_Cast\sopcode\simplementation\nto\shelp\sverify\sthat\sit\sis\sfully\stested.
 -D 2014-08-25T22:37:19.150
++C Merge\srecent\sperformance\senhancements\sand\sthe\sCAST\soperator\senhancements\ninto\sthe\sapple-osx\sbranch.
++D 2014-08-26T02:02:40.589
  F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 -F Makefile.in 5eb79e334a5de69c87740edd56af6527dd219308
 +F Makefile.in c1a047f376270fb6f201ca44640b43e690bc3db0
  F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
  F Makefile.msc 5b04e657cf08a9ac7fc47d876c5c8be962c47d6b
  F Makefile.vxworks 034289efa9d591b04b1a73598623119c306cbba0
@@@ -167,33 -165,33 +168,33 @@@ F src/alter.c b00900877f766f116f9e16116
  F src/analyze.c f98a351908da29f7b44741cfeb9eb20dda648ba0
  F src/attach.c 3801129015ef59d76bf23c95ef9b0069d18a0c52
  F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
- F src/backup.c a729e63cf5cd1829507cb7b8e89f99b95141bb53
+ F src/backup.c a31809c65623cc41849b94d368917f8bb66e6a7e
  F src/bitvec.c 19a4ba637bd85f8f63fc8c9bae5ade9fb05ec1cb
- F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7
- F src/btree.c 7d780ca1211169b7b705a54f666d9c58a75d8e2f
- F src/btree.h 4245a349bfe09611d7ff887dbc3a80cee8b7955a
+ F src/btmutex.c ec9d3f1295dafeb278c3830211cc5584132468f4
 -F src/btree.c 4737cb5bdb2eb8989cb292f6ff921f7ff45f0c46
++F src/btree.c 85855eafcbabe0d75081153d1d72a0724c1f7c61
+ F src/btree.h a79aa6a71e7f1055f01052b7f821bd1c2dce95c8
  F src/btreeInt.h cf180d86b2e9e418f638d65baa425c4c69c0e0e3
- F src/build.c 5abf794fe8a605f2005b422e98a3cedad9b9ef5b
- F src/callback.c fcff28cf0df2403dd2f313bb8d1b8f31f6f3cd64
+ F src/build.c 058e3aadb1376521ff291735237edf4c10f438fb
+ F src/callback.c b97d0695ffcf6a8710ee445ffe56ee387d4d8a6f
  F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
  F src/ctime.c 0231df905e2c4abba4483ee18ffc05adc321df2a
  F src/date.c 593c744b2623971e45affd0bde347631bdfa4625
- F src/delete.c bcf8f72126cea80fc3d5bc5494cf19b3f8935aaf
- F src/expr.c f749009cf4a8534efb5e0d5cd7c9fb1fb0f2836c
+ F src/delete.c 5adcd322c6b08fc25d215d780ca62cebce66304d
+ F src/expr.c 358634f4ddeeb4e69643cb6db5819104a7834c60
  F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
- F src/fkey.c 8545f3b36da47473e10800ea4fb0810fd4062514
+ F src/fkey.c 8d81a780ad78d16ec9082585758a8f1d6bf02ca3
 -F src/func.c bbb724b74ed96ca42675a7274646a71dd52bcda7
 +F src/func.c 7a252bf7a52b4229462d2d89639d0f4f134dca40
  F src/global.c 1e4bd956dc2f608f87d2a929abc4a20db65f30e4
- F src/hash.c d139319967164f139c8d1bb8a11b14db9c4ba3cd
- F src/hash.h 8890a25af81fb85a9ad7790d32eedab4b994da22
+ F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5
+ F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094
  F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
- F src/insert.c 991e4964e9295da3993e2c0f81c7faf642371848
+ F src/insert.c d1a104e67b33314d4cc5c1356147446086ab9fc8
  F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
- F src/legacy.c 3d9ac010a3170531ac459511f1b65822d39265c9
 -F src/legacy.c 87c92f4a08e2f70220e3b22a9c3b2482d36a134a
++F src/legacy.c 4d9ad7daba0d8a20fa3ecf5e54fe7ff53e2e0a49
  F src/lempar.c cdf0a000315332fc9b50b62f3b5e22e080a0952b
- F src/loadext.c 867c7b330b740c6c917af9956b13b81d0a048303
- F src/main.c 57c02d6532a29609de214e753380444bf0625f32
- F src/malloc.c 0203ebce9152c6a0e5de520140b8ba65187350be
+ F src/loadext.c 31c2122b7dd05a179049bbf163fd4839f181cbab
 -F src/main.c 900dd06e41d22795cbb23ab0240397f1e2901bf7
++F src/main.c 56070be69f574e9d6b9c45cab9dcf905849f8e69
+ F src/malloc.c 954de5f998c23237e04474a3f2159bf483bba65a
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c c0c990fcaddff810ea277b4fb5d9138603dd5d4b
  F src/mem2.c dce31758da87ec2cfa52ba4c5df1aed6e07d8e8f
@@@ -204,39 -202,38 +205,39 @@@ F src/mutex.c 84a073c9a23a8d7bdd2ea8325
  F src/mutex.h 5bc526e19dccc412b7ff04642f6fdad3fdfdabea
  F src/mutex_noop.c f3f09fd7a2eb4287cfc799753ffc30380e7b71a1
  F src/mutex_unix.c 1b10d5413dfc794364a8adf3eb3a192926b43fa3
- F src/mutex_w32.c c50939b72368f1cfbddb58520372081a50558548
- F src/notify.c 976dd0f6171d4588e89e874fcc765e92914b6d30
+ F src/mutex_w32.c 06bfff9a3a83b53389a51a967643db3967032e1e
+ F src/notify.c 9711a7575036f0d3040ba61bc6e217f13a9888e7
 -F src/os.c 1b147e4cf7cc39e618115c14a086aed44bc91ace
 +F src/os.c 25df79baf4bec87f75a2c4e995d63361b66b918a
  F src/os.h 60d419395e32a8029fa380a80a3da2e9030f635e
  F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
  F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
 -F src/os_unix.c bd7df3094a60915c148517504c76df4fca24e542
 -F src/os_win.c d067fce558a5032e6e6afe62899e5397bf63cf3e
 +F src/os_unix.c cd50269688fd37b3ce0fe204b61e9be8ec2cfcc0
- F src/os_win.c 90d3fb97df7f5d5f52fae323337f7a3f1bee6c06
- F src/os_win.h 057344a6720b4c8405d9bd98f58cb37a6ee46c25
- F src/pager.c d878c40eb8c75e9ae79b00cc80ad9710679f9a31
++F src/os_win.c 85795ec876dd2782b4bc68313d31a574fdf26986
+ F src/os_win.h 09e751b20bbc107ffbd46e13555dc73576d88e21
 -F src/pager.c 53cc5e9d73afb74add79f49755c8ee240fbdbef7
 -F src/pager.h ffd5607f7b3e4590b415b007a4382f693334d428
++F src/pager.c cf19f9200a96a18d81fbb5659805b1179c3e6cc0
 +F src/pager.h 8feb18f845951ab37e1f65a319b2da24185173ac
  F src/parse.y 22d6a074e5f5a7258947a1dc55a9bf946b765dd0
- F src/pcache.c d8eafac28290d4bb80332005435db44991d07fc2
+ F src/pcache.c da602c5447051705cab41604bf3276815eb569d0
  F src/pcache.h a5e4f5d9f5d592051d91212c5949517971ae6222
- F src/pcache1.c 102e6f5a2fbc646154463eb856d1fd716867b64c
+ F src/pcache1.c c5af6403a55178c9d1c09e4f77b0f9c88822762c
 -F src/pragma.c d10ef67c4de79f78188b965b4b7988aff1d66f2e
 -F src/prepare.c 3842c1dfc0b053458e3adcf9f6efc48e03e3fe3d
 +F src/pragma.c 0fc087e3b26808051805e147022d6e19603b9453
- F src/prepare.c 954f80160f120ca715ffa5db5549c3262abb335e
- F src/printf.c af06f66927919730f03479fed6ae9854f73419f4
++F src/prepare.c 8b6e247b5f574e35170ba6fa43b2f649b3add9a1
+ F src/printf.c 00986c86ddfffefc2fd3c73667ff51b3b9709c74
  F src/random.c d10c1f85b6709ca97278428fd5db5bbb9c74eece
  F src/resolve.c 0ea356d32a5e884add23d1b9b4e8736681dd5697
  F src/rowset.c a9c9aae3234b44a6d7c6f5a3cadf90dce1e627be
 -F src/select.c ea48e891406ccdf748f3eb02893e056d134a0fea
 +F src/select.c 13588d2cb2b7193525185f1a040b85b5d50fc71d
- F src/shell.c 75bb7bd2c80bb44861598f322a417c4bafe98fd7
+ F src/shell.c 728d2226594d356bf4fbdbdfd08538fd78fd06f3
 -F src/sqlite.h.in ed9d35990c61f0388ca6405706455c4095310553
 +F src/sqlite.h.in bcae3b0cca0756a57e467500346cc6f2fa81d6c1
  F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
 +F src/sqlite3_private.h a81a9c5f97c095cc3e86914a05f8fabe0011f4a1
  F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc
- F src/sqliteInt.h e8916c78a36b88c6f00abd6783e5c76c622ac625
 -F src/sqliteInt.h d8a9be2aa123a78c90ad4aba09b23e7dd3f8cc9f
++F src/sqliteInt.h de747e3ec920064dd8f5cbf377c5bbbc01d3ab05
  F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
  F src/status.c 7ac05a5c7017d0b9f0b4bcd701228b784f987158
  F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
- F src/tclsqlite.c e87c99e28a145943666b51b212dacae35fcea0bd
+ F src/tclsqlite.c 7d100e2e7aad614bb3d7026a41a0e3827dbaaebc
 -F src/test1.c 14409a611e9c27c6c522c610bbff5561f05c1558
 +F src/test1.c c0fb8033b1a2cf1de32bf02ed73bd7f99bbf162e
  F src/test2.c 98049e51a17dc62606a99a9eb95ee477f9996712
  F src/test3.c 1c0e5d6f080b8e33c1ce8b3078e7013fdbcd560c
  F src/test4.c 9b32d22f5f150abe23c1830e2057c4037c45b3df
@@@ -282,27 -279,27 +283,27 @@@ F src/test_vfs.c f84075a388527892ff1849
  F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
  F src/tokenize.c ae45399d6252b4d736af43bee1576ce7bff86aec
- F src/trigger.c 66f3470b03b52b395e839155786966e3e037fddb
+ F src/trigger.c 4bddd12803275aa98f1c7ce0118fceb02b2167f6
  F src/update.c ea336ce7b8b3fc5e316ba8f082e6445babf81059
- F src/utf.c a0314e637768a030e6e84a957d0c4f6ba910cc05
- F src/util.c 3076bdd51cdbf60a6e2e57fada745be37133c73e
+ F src/utf.c 77abb5e6d27f3d236e50f7c8fff1d00e15262359
+ F src/util.c 068dcd26354a3898ccc64ad5c4bdb95a7a15d33a
  F src/vacuum.c 3728d74919d4fb1356f9e9a13e27773db60b7179
- F src/vdbe.c 91552c6f9799ad8dbb67686c5a1ff882b4899f31
 -F src/vdbe.c 2f8fbc520cac2f5bacc43de2aeed6a4880c9cb57
++F src/vdbe.c 4a9e8ed75a6654f9a02744497ce08697e3524f9d
  F src/vdbe.h c63fad052c9e7388d551e556e119c0bcf6bebdf8
- F src/vdbeInt.h f5513f2b5ac1e2c5128996c7ea23add256a301df
- F src/vdbeapi.c 4606079c86aa9732b89b0ab6e16b6b776474a1cd
- F src/vdbeaux.c 41a7b823f4537c07a12669fcae2094eeabcc253f
- F src/vdbeblob.c 9205ce9d3b064d9600f8418a897fc88b5687d9ac
- F src/vdbemem.c d90a1e8acf8b63dc9d14cbbea12bfec6cec31394
+ F src/vdbeInt.h df58400454823954cfb241e5858f07f37fc1fd78
 -F src/vdbeapi.c cda974083d7597f807640d344ffcf76d872201ce
 -F src/vdbeaux.c dba006f67c9fd1b1d07ee7fb0fb38aa1905161d1
++F src/vdbeapi.c 785377415e1244b24071ec5746b4735fd1214400
++F src/vdbeaux.c bfde24b04e1edd98f40b0b0a79e9cd05dfcf1189
+ F src/vdbeblob.c 848238dc73e93e48432991bb5651bf87d865eca4
+ F src/vdbemem.c 4e08ea087aea367dae7c45129b75487e0056e819
  F src/vdbesort.c f7f5563bf7d4695ca8f3203f3bf9de96d04ed0b3
  F src/vdbetrace.c 6f52bc0c51e144b7efdcfb2a8f771167a8816767
- F src/vtab.c 21b932841e51ebd7d075e2d0ad1415dce8d2d5fd
+ F src/vtab.c 019dbfd0406a7447c990e1f7bd1dfcdb8895697f
 -F src/wal.c 264df50a1b33124130b23180ded2e2c5663c652a
 -F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
 +F src/wal.c 785b8a1fdd5600f2265b57691708329cae9acbad
 +F src/wal.h 6b3a67ecd7172dcc9f18fc9cd4d76dc4c2166e68
  F src/walker.c 11edb74d587bc87b33ca96a5173e3ec1b8389e45
- F src/where.c ab20f9c24a422ee8900831b343c3d1e5e7aca87b
+ F src/where.c 4e2770a1914b8ce30f3e44ad954b720eca3b5efd
  F src/whereInt.h 923820bee9726033a501a08d2fc69b9c1ee4feb3
 -F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
 +F test/8_3_names.test 05034aadccd2253ffe6cbefb06662b8aa4600f77
  F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
  F test/aggnested.test 45c0201e28045ad38a530b5a144b73cd4aa2cfd6
  F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87
@@@ -702,12 -698,12 +703,12 @@@ F test/mallocI.test a88c2b9627c8506bf47
  F test/mallocJ.test b5d1839da331d96223e5f458856f8ffe1366f62e
  F test/mallocK.test 3cff7c0f64735f6883bacdd294e45a6ed5714817
  F test/mallocL.test 252ddc7eb4fbf75364eab17b938816085ff1fc17
 -F test/malloc_common.tcl 3663f9001ce3e29bbaa9677ffe15cd468e3ec7e3
 -F test/manydb.test 28385ae2087967aa05c38624cec7d96ec74feb3e
 +F test/malloc_common.tcl c34d5b7f337336a7f2e30a197f1cf2646dbe8e76
 +F test/manydb.test 3cd8e52ab3112cb8365afeedd6e8231977920577
  F test/mem5.test c6460fba403c5703141348cd90de1c294188c68f
 -F test/memdb.test fcb5297b321b562084fc79d64d5a12a1cd2b639b
 +F test/memdb.test da09b7f354f3dc0b74d992f5451ae03ebfb36920
  F test/memleak.test 10b9c6c57e19fc68c32941495e9ba1c50123f6e2
- F test/memsubsys1.test 04b6c76f91070bbb7cb8713cd51882d6e49f7530
 -F test/memsubsys1.test bf270964ab83bc2da5927960f78304a866fb9a9d
++F test/memsubsys1.test 1a527f89bfbb3d402934ad1ec0858142f3814097
  F test/memsubsys2.test 3a1c1a9de48e5726faa85108b02459fae8cb9ee9
  F test/minmax.test 42fbad0e81afaa6e0de41c960329f2b2c3526efd
  F test/minmax2.test b44bae787fc7b227597b01b0ca5575c7cb54d3bc
@@@ -850,10 -847,10 +852,10 @@@ F test/speed4.test abc0ad3399dcf9703abe
  F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa
  F test/speed4p.test 0e51908951677de5a969b723e03a27a1c45db38b
  F test/speedtest1.c d29c8048beb7ea9254191f3fde9414709166a920
- F test/spellfix.test 61309f5efbec53603b3f86457d34a504f80abafe
+ F test/spellfix.test 24f676831acddd2f4056a598fd731a72c6311f49
  F test/sqllimits1.test b1aae27cc98eceb845e7f7adf918561256e31298
 -F test/stat.test 76fd746b85459e812a0193410fb599f0531f22de
 -F test/stmt.test 25d64e3dbf9a3ce89558667d7f39d966fe2a71b9
 +F test/stat.test 1e5faf39649a0bb368770f780f926847520ea3f4
 +F test/stmt.test 78a6764439cfa5abdcbf98d4d084739e81eeec4f
  F test/subquery.test 666fdecceac258f5fd84bed09a64e49d9f37edd9
  F test/subquery2.test 91e1e364072aeff431d1f9689b15147e421d88c7
  F test/subselect.test d24fd8757daf97dafd2e889c73ea4c4272dcf4e4
@@@ -1191,7 -1188,7 +1193,7 @@@ F tool/vdbe_profile.tcl 67746953071a9f8
  F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
  F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P 08058df3af18d28c3fbd306527734f507c06f156 9491ba7d738528f168657adb43a198238abde19e
- R 25b75c2b2deb7dc6064c599b41cbb415
 -P 1ad70ec550c004160d9c0c57e6c416812cdead5e
 -R b751a4133861a7b502aa405ba96eea49
++P b91fcb3b1b6d383e023bd0818a2075018fd33b98 af364cce9da0961593ef876b646197f82df08ad5
++R ff2e9252ac4253564e17f67ec3659ed3
  U drh
- Z 9f710fff5c282a7578b97b13a967f77e
 -Z 0bd8a75e39f468a6e4b9b4599a579487
++Z 4280c7da513bf52dc30f227e2f1e37f3
diff --cc manifest.uuid
index ee2f18c66c79ffc73afaba670feb0d4a7ecf6acd,c36f309914dde001766de24ef7b98aa7ce57cfb0..000d0cc8b1d0c9d80c3a6212d2610ac2501a8e04
@@@ -1,1 -1,1 +1,1 @@@
- b91fcb3b1b6d383e023bd0818a2075018fd33b98
 -af364cce9da0961593ef876b646197f82df08ad5
++5c273111058fcb3a1707ea0f3c7ac4b04525aeb0
diff --cc src/btree.c
Simple merge
diff --cc src/legacy.c
index 73bf07ed70cc09ad0be50a99585f2406e41608a0,b8cb90d707c90769437f3ca6aa0567ed81923ada..b92f384e825c458215da90e059acd70a94079ef2
@@@ -45,11 -42,9 +45,11 @@@ int sqlite3_exec
  
    if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
    if( zSql==0 ) zSql = "";
 -
 +#ifdef SQLITE_ENABLE_SQLRR
 +  SRRecExec(db, zSql);
 +#endif  
    sqlite3_mutex_enter(db->mutex);
-   sqlite3Error(db, SQLITE_OK, 0);
+   sqlite3Error(db, SQLITE_OK);
    while( rc==SQLITE_OK && zSql[0] ){
      int nCol;
      char **azVals = 0;
diff --cc src/main.c
index c0985a16e9d9e518003b2e3e0ce0d9accf68b851,219a8bec9270bb12283e0dab30e8f608618beae8..8e2e39a7bce3132aea1176448fb7a9a5938faf79
@@@ -3188,9 -3057,8 +3187,9 @@@ int sqlite3_file_control(sqlite3 *db, c
      }
      sqlite3BtreeLeave(pBtree);
    }
-   sqlite3Error(db, rc, 0);
++  sqlite3Error(db, rc);
    sqlite3_mutex_leave(db->mutex);
 -  return rc;   
 +  return rc;
  }
  
  /*
diff --cc src/os_win.c
Simple merge
diff --cc src/pager.c
Simple merge
diff --cc src/prepare.c
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbeapi.c
Simple merge
diff --cc src/vdbeaux.c
Simple merge
index 500264d6f16da8787d0a3acad1d10127bc899f7a,8cc7c2afc1e7cabae979d575b98b262b9e235711..6deb05e7433ac2f95620d198a76dc07d97f771d2
@@@ -121,14 -119,18 +121,20 @@@ sqlite3_initializ
  reset_highwater_marks
  build_test_db memsubsys1-3.1 {PRAGMA page_size=1024}
  #show_memstats
 -do_test memsubsys1-3.1.3 {
 -  set pg_used [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 2]
 -} 0
 -do_test memsubsys1-3.1.4 {
 -  set overflow [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_OVERFLOW 0] 2]
 -  # Note:  The measured PAGECACHE_OVERFLOW is amount malloc() returns, not what
 -  # was requested.  System malloc() implementations might (arbitrarily) return
 -  # slightly different oversize buffers, which can result in slightly different
 -  # PAGECACHE_OVERFLOW sizes between consecutive runs.  So we cannot do an
 -  # exact comparison.  Simply verify that the amount is within 5%.
 -  expr {$overflow>=$max_pagecache*0.95 && $overflow<=$max_pagecache*1.05}
 -} 1
 +if !$::sqlite_options(enable_purgeable_pcache) {
 +  do_test memsubsys1-3.1.3 {
 +    set pg_used [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 2]
 +  } 0
 +  do_test memsubsys1-3.1.4 {
 +    set overflow [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_OVERFLOW 0] 2]
-   } $max_pagecache
++    # Note: The measured PAGECACHE_OVERFLOW is amount malloc() returns, not what
++    # was requested.  System malloc() implementations might (arbitrarily) return
++    # slightly different oversize buffers, which can result in different
++    # PAGECACHE_OVERFLOW sizes between consecutive runs.  So we cannot do an
++    # exact comparison.  Simply verify that the amount is within 5%.
++    expr {$overflow>=$max_pagecache*0.95 && $overflow<=$max_pagecache*1.05}
++  } 1
 +}
  do_test memsubsys1-3.1.5 {
    set s_used [lindex [sqlite3_status SQLITE_STATUS_SCRATCH_USED 0] 2]
  } 0