]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge recent enhancements from trunk. Default page size is 4096. Writes
authordrh <drh@noemail.net>
Fri, 4 Mar 2016 16:42:43 +0000 (16:42 +0000)
committerdrh <drh@noemail.net>
Fri, 4 Mar 2016 16:42:43 +0000 (16:42 +0000)
to statement journals are avoided.

FossilOrigin-Name: 456df3365e2df60e34762f2024bb551538b3f72b

16 files changed:
1  2 
Makefile.in
Makefile.msc
main.mk
manifest
manifest.uuid
src/fkey.c
src/insert.c
src/main.c
src/shell.c
src/sqlite.h.in
src/sqliteInt.h
src/tclsqlite.c
src/test_config.c
src/vdbeInt.h
src/vdbemem.c
test/permutations.test

diff --cc Makefile.in
Simple merge
diff --cc Makefile.msc
index 8289068002cbdc7ce1c26ca178e2a3e86f5cd5d6,59ce3c2ec26b05dc8b0fbbcb2b59f491f06a1163..d6db4880db5f73601c4e59b2c6aa5d4c148c7e01
@@@ -1942,9 -1926,11 +1955,11 @@@ sqlite3rbu.lo:        $(TOP)\ext\rbu\sqlite3rb
  TESTFIXTURE_FLAGS = -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1
  TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE=""
  TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_CORE $(NO_WARN)
+ TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERIES_CONSTRAINT_VERIFY=1
+ TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_DEFAULT_PAGE_SIZE=1024
  
  TESTFIXTURE_SRC0 = $(TESTEXT) $(TESTSRC2)
 -TESTFIXTURE_SRC1 = $(TESTEXT) $(SQLITE3C)
 +TESTFIXTURE_SRC1 = $(TESTEXT) $(TESTSRC3) $(SQLITE3C)
  !IF $(USE_AMALGAMATION)==0
  TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC0)
  !ELSE
diff --cc main.mk
Simple merge
diff --cc manifest
index fa91c62a2beb2257e0b77c1057f5bc16e4fc82a5,5e68a8f7a248c7831fc4eafb99107ba5d0c60468..b62147b7cf81cf1518fcffd5dd4e6f2dd95673ed
+++ b/manifest
@@@ -1,8 -1,8 +1,8 @@@
- C Disable\sthe\sRESTRICT\sforeign\skey\saction\sif\s"PRAGMA\sdefer_foreign_keys"\sis\sset.
- D 2016-02-25T19:52:11.580
- F Makefile.in 5cbf3f753328d1bcd3a6117785b4874d99612f8f
 -C Defer\sopening\sand\swriting\sstatement\sjournals\suntil\sthe\ssize\sreaches\sa\nthreshold\s(currently\s64KiB).
 -D 2016-03-04T14:43:44.681
 -F Makefile.in ead489fe5d3313b8a2a8d5f3710173a4b50dd2e0
++C Merge\srecent\senhancements\sfrom\strunk.\s\sDefault\spage\ssize\sis\s4096.\s\sWrites\nto\sstatement\sjournals\sare\savoided.
++D 2016-03-04T16:42:43.133
++F Makefile.in 055473c5b509b37ae18d4c3ed39af4b124476f0d
  F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
- F Makefile.msc cf5496f4c4e256a79bae1804da61703647b26398
 -F Makefile.msc d68db8ddac21ea2576ea5b446f12cf9ebe897a03
++F Makefile.msc ea016bfc6d772cb81c2ba2722460937f04ae07f9
  F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7
  F VERSION c6b1f51809551d60ad001e6d87cf3ab2c7f54b6f
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@@ -293,7 -273,7 +293,7 @@@ F ext/userauth/userauth.c 5fa3bdb492f48
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk 347535e93b4a3b65c2b73002fefc931308cd034b
 -F main.mk d9982cb6a42b1c9da7d61cebae973cd6b034de61
++F main.mk b61722224cf37810ee3160a5c3f927e1a90cc25b
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -321,20 -301,20 +321,20 @@@ F src/complete.c a3634ab1e687055cd002e1
  F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198
  F src/date.c 0b73e681c11fca867fec554750c07fe0d4e417c1
  F src/dbstat.c c845548d4346e606e2f2b7d2e714ace2b8a7dd1b
 -F src/delete.c 48802aa3ee6339f576d074336d3ae1b5f40e240f
 +F src/delete.c eeac28b3d3d88e3541bdf93e91ea7492a7b67842
- F src/expr.c 9adb58153f6e943b703d43e9a1f67f77b5a75721
+ F src/expr.c c4dad2cd6cec00387b75fef4551aff655430dcd2
  F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
- F src/fkey.c a842533c411b9aef63a2814bbdc24f8a21e14cd8
 -F src/fkey.c 5cb42d9a59e2a590776fd3fc8ff6f61d40df3c6e
++F src/fkey.c 5da47ff524e2f687997a74737ce598f043e1342a
  F src/func.c 552d300265aed09eea21f68ac742a440550c0062
  F src/global.c ded7b97efd16efda5062b65e857198e46c40e652
  F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5
  F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094
  F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
- F src/insert.c d53917351d0542ce2be88888dca6b0b076e46aaa
- F src/journal.c fe3a3e2559ce3ce9d371afd30fbabbc074174575
 -F src/insert.c 723d5d708cdb61bdd47c00b9f07c75be45aefc09
++F src/insert.c 8f4e9fcbd8e95e85f15647ba8b413b18d556ec2b
+ F src/journal.c 673cbdde5676eb0c55848f561575d45b609c820d
  F src/legacy.c 75d3023be8f0d2b99d60f905090341a03358c58e
  F src/loadext.c 9e2a41adcaff16ebc1ebff1f336cbf33de55396f
- F src/main.c 254cb296471997935fade3aeefb4618941a330ea
 -F src/main.c 32c45647866429f34d7a13a717172a8e7d0a1056
++F src/main.c 56edbba4bd69e5f650bd75ae45f1a7d081e1e892
  F src/malloc.c 1443d1ad95d67c21d77af7ae3f44678252f0efec
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c 6919bcf12f221868ea066eec27e579fed95ce98b
@@@ -369,17 -349,17 +369,17 @@@ F src/printf.c 63e6fb12bbe702dd664dc370
  F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
  F src/resolve.c b8f7174e5f8c33c44ded3a25a973d0bb89228c20
  F src/rowset.c 9fe4b3ad7cc00944386bb600233d8f523de07a6e
- F src/select.c dbc73a63bee99bf7cfac6052477ffc21e899bb08
- F src/shell.c 529ff15fbafe9f698e0cb8f9f16d0ce5106fd6e9
- F src/sqlite.h.in ba31c7deaa59bc9a282239d9e39d918c6a2b346d
+ F src/select.c 137b31daa84d57d67847bf621bb54f3353e2077b
 -F src/shell.c 5e0ab1e708dc294330ccd8230536e1801f60822e
 -F src/sqlite.h.in 57d2a02b14c9ec4f7cb294153eaf62294dc5aa68
++F src/shell.c cd3f82fdc5c895b817a375b7ab8319cb41f447ce
++F src/sqlite.h.in a51577ed847b75fff9c10b7ea35e37e8154cee71
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d
- F src/sqliteInt.h 73f110a751b8e24e2e0c6020d761c16ad23acaff
- F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46
 -F src/sqliteInt.h 8a4810fa90b17eb08acab43649b877e894ea1e98
++F src/sqliteInt.h b0e28df3739ef7113eb1297db0766abf74635c90
+ F src/sqliteLimit.h 7b28cf72cbd52f178bfc97ea266445e351f2cd24
  F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba
  F src/table.c 5226df15ab9179b9ed558d89575ea0ce37b03fc9
- F src/tclsqlite.c 89b27573473e94257d9a2d296bc6c0626c9314d0
- F src/test1.c 8b17b1ff53aad71e7f9318a2fda247beddeaa601
 -F src/tclsqlite.c 54dca4eaf3a9cb0a4b845ef54ffa99225c30a52e
++F src/tclsqlite.c 23a5c328898b86177b21718834d2b7b4f7bc083c
+ F src/test1.c f14a6f9e2cff6cba4d83e2b0c52857f61886cead
  F src/test2.c 5586f43fcd9a1be0830793cf9d354082c261b25b
  F src/test3.c a8887dabbbee3059af338f20d290084a63ed1b0f
  F src/test4.c d168f83cc78d02e8d35567bb5630e40dcd85ac1e
@@@ -391,9 -371,10 +391,10 @@@ F src/test9.c bea1e8cf52aa93695487baded
  F src/test_async.c 21e11293a2f72080eda70e1124e9102044531cd8
  F src/test_autoext.c dea8a01a7153b9adc97bd26161e4226329546e12
  F src/test_backup.c 2e6e6a081870150f20c526a2e9d0d29cda47d803
+ F src/test_bestindex.c cd36324f05404df5f1a82608a321b91932a549ea
  F src/test_blob.c b2551a9b5573232db5f66f292307c37067937239
  F src/test_btree.c 2e9978eca99a9a4bfa8cae949efb00886860a64f
- F src/test_config.c 1e51263265c5b78adca10fa204d1e6f164387a20
 -F src/test_config.c 0dee90328e3dedf8ba002ee94b6a7e7ea7726fe4
++F src/test_config.c a0e8eeb86a7d9393f3bbf7315932c1cccd0e8010
  F src/test_demovfs.c 0de72c2c89551629f58486fde5734b7d90758852
  F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc
  F src/test_fs.c f10f840ca4f8c72e4837908bd8347ac4bcab074b
@@@ -428,22 -409,22 +429,22 @@@ F src/test_windirent.h b12055cab6227f7b
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
  F src/tokenize.c 3d338cdd00d916ce8a05c397001d64ed58e6fe1c
- F src/treeview.c c525282442111b3f61eb176784567cd6654db5dc
+ F src/treeview.c e4b41a37530a191579d3c53142cc44ee2eb99373
  F src/trigger.c e14840ee0c3e549e758ec9bf3e4146e166002280
 -F src/update.c a7eeeaffad59c6506f01303a071dac11de8269ca
 +F src/update.c c0016d277a418360456ff6af29363effbd4272f7
  F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
- F src/util.c 38c06684c922694809ccb988a13562c16890a3d5
+ F src/util.c a64585a74aef6feb16dfe4e090b5de01e26eba3b
  F src/vacuum.c feb1eabb20987983d9350cad98299b21fa811f52
 -F src/vdbe.c 87ae3a5657fefed7875f3eb30e7ababd48013d71
 -F src/vdbe.h c743791f723049db94f009e3e30958952bc2d512
 -F src/vdbeInt.h 49a74fe5ece206d2d8666ba9afaf1abeda5f123b
 -F src/vdbeapi.c 95b1f8e527240a18a9aea41a655b013bf07a7009
 -F src/vdbeaux.c 2c15cf88de4df97428318c8cfac0dea873dae451
 -F src/vdbeblob.c 3b570b730109e8f653d9d2081649f6e7015113db
 -F src/vdbemem.c 9b0cb32cc267ef026515f15a3594d5ff91fe4dfc
 +F src/vdbe.c 9ccb138cb7ac6c1bcda23dfaf52eff1f7761dfe5
 +F src/vdbe.h 594aef1a7dcfc2944e2f266f148140c3427fd0f0
- F src/vdbeInt.h 177eca5abb111140d06a149d8c3ae40f9f2eb4fc
++F src/vdbeInt.h a205ce1ece3ab90be78a374e93cb5402fccdf865
 +F src/vdbeapi.c ba85b78fe08dc4a9ce747e62c89a2b4a4547e74c
 +F src/vdbeaux.c 325dcf1b944e6d339a5c5210b7b8c5724a8496fb
 +F src/vdbeblob.c c9f2f494b911c6fa34efd9803f0a10807da80f77
- F src/vdbemem.c c2a7c2ece87b40f1e1345c07412f2143c05eee85
++F src/vdbemem.c 0bcc4af472ebd36e57603d733a6501573a82b526
  F src/vdbesort.c 307460bfa4de4d1c3901fcd42089159131e34062
  F src/vdbetrace.c f75c5455d8cf389ef86a8bfdfd3177e0e3692484
- F src/vtab.c 943c23b355f0a8f859f9583e7315d64bebdb0899
+ F src/vtab.c fd69fd398e23e57ea4ea377d8a44b6998fc569c7
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
  F src/wal.c 10deb6b43887662691e5f53d10b3c171c401169b
  F src/wal.h 2f7c831cf3b071fa548bf2d5cac640846a7ff19c
@@@ -796,8 -778,8 +798,8 @@@ F test/fuzzerfault.test 8792cd77fd5bce7
  F test/genesis.tcl 1e2e2e8e5cc4058549a154ff1892fe5c9de19f98
  F test/hexlit.test d7b0a5f41123df1e43985b91b8b2e70f95282d21
  F test/hidden.test 23c1393a79e846d68fd902d72c85d5e5dcf98711
 -F test/hook.test 162d7cef7a2d2b04839fe14402934e6a1b79442f
 +F test/hook.test 40523db3aa76d62bda71c26f824fa0eabc420f0e
- F test/icu.test 70df4faca133254c042d02ae342c0a141f2663f4
+ F test/icu.test 73956798bace8982909c00476b216714a6d0559a
  F test/ieee754.test 806fc0ce7f305f57e3331eaceeddcfec9339e607
  F test/imposter1.test c3f1db2d3db2c24611a6596a3fc0ffc14f1466c8
  F test/in.test 61a24ae38d4b64ec69f06ccdf022992f68a98176
@@@ -965,7 -947,7 +967,7 @@@ F test/parser1.test 222b5cbf3e2e659fec1
  F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
  F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
  F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
- F test/permutations.test 74a48d89ce0d9ca8ad45a8f9f4bf66fa8bee0e34
 -F test/permutations.test 64abe58d53cde4adcfb881e37aa5ea1b2a980e58
++F test/permutations.test 1281140205caa8c2a957aa099a25a36fd3ab2f44
  F test/pragma.test 507ac7ef2ea5682241ea0ef041799ca70bb5e0bf
  F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
  F test/pragma3.test 6f849ccffeee7e496d2f2b5e74152306c0b8757c
@@@ -1097,11 -1078,11 +1099,11 @@@ F test/tabfunc01.test f977868fa8bb7beb4
  F test/table.test b708f3e5fa2542fa51dfab21fc07b36ea445cb2f
  F test/tableapi.test 2674633fa95d80da917571ebdd759a14d9819126
  F test/tableopts.test dba698ba97251017b7c80d738c198d39ab747930
 -F test/tclsqlite.test 7fb866443c7deceed22b63948ccd6f76b52ad054
 +F test/tclsqlite.test 7179b4e0bf236ddf0bfa6bfaefa76fbe0a23c28a
- F test/tempdb.test 19d0f66e2e3eeffd68661a11c83ba5e6ace9128c
+ F test/tempdb.test bd92eba8f20e16a9136e434e20b280794de3cdb6
  F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30
  F test/temptrigger.test 8ec228b0db5d7ebc4ee9b458fc28cb9e7873f5e1
 -F test/tester.tcl 750365ff97047ded5f2d6e28df82a998f7c66ae0
 +F test/tester.tcl 9310df7ac540d4e97d8fa4a9605a639801ede65f
  F test/thread001.test 9f22fd3525a307ff42a326b6bc7b0465be1745a5
  F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58
  F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7
@@@ -1439,10 -1421,10 +1442,10 @@@ F tool/speedtest8.c 2902c46588c40b55661
  F tool/speedtest8inst1.c 7ce07da76b5e745783e703a834417d725b7d45fd
  F tool/split-sqlite3c.tcl d9be87f1c340285a3e081eb19b4a247981ed290c
  F tool/sqldiff.c 5a26205111e6fa856d9b1535b1637744dcdb930b
- F tool/srcck1.c 4c39bdfa9a92edd20233ee720df84dbeb2417602
+ F tool/srcck1.c 4f65e1a6748e42f24c0ea629dddc934d821c729a
  F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43
  F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d
 -F tool/symbols.sh fec58532668296d7c7dc48be9c87f75ccdb5814f
 +F tool/symbols.sh c5a617b8c61a0926747a56c65f5671ef8ac0e148
  F tool/tostr.tcl 96022f35ada2194f6f8ccf6fd95809e90ed277c4
  F tool/varint.c 5d94cb5003db9dbbcbcc5df08d66f16071aee003
  F tool/vdbe-compress.tcl 5926c71f9c12d2ab73ef35c29376e756eb68361c
@@@ -1450,7 -1432,29 +1453,28 @@@ F tool/vdbe_profile.tcl 246d0da094856d7
  F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
  F tool/warnings.sh a98af506df552f3b3c0d904f94e4cdc4e1a6d598
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P b86590043e17705ada90562cf30f69b3e3ef65a4 82470d1c3a41221c78bcdd402b2219c4c21c43af
- R ed4175ea9b6a35a3a633e24a66e7650f
- U dan
- Z 25048b6cbead70238ee6379efe484cce
+ F vsixtest/App.xaml b76d3b48860e7454775c47ea38ffea9c4abe3e85
+ F vsixtest/App.xaml.cpp c465147f50871165c60ca16955219f6c5812d6d8
+ F vsixtest/App.xaml.h 4a9768e2983d05600ad1e1c2f1b00a132967da9f
+ F vsixtest/Assets/LockScreenLogo.scale-200.png e820c9a3deb909197081b0bf3216c06e13905f0a
+ F vsixtest/Assets/SplashScreen.scale-200.png cab70988ca71bebec7bfeb3b6dbafe17b9ab0b4a
+ F vsixtest/Assets/Square150x150Logo.scale-200.png e17b40817db7a239fc239d83efcc951fb824e3ff
+ F vsixtest/Assets/Square44x44Logo.scale-200.png 2f166237094dea94d952d10b9eeae81806844f1c
+ F vsixtest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png 5f6a6d391b95a3061ccca6e6fdd6955ede63b4ed
+ F vsixtest/Assets/StoreLogo.png 0828b7257db74a4ecd5eeb6b7b4971f0fdc4d9d1
+ F vsixtest/Assets/Wide310x150Logo.scale-200.png 04ddefe5bc5f43ae12a7433f6f236ddab101ac42
+ F vsixtest/MainPage.xaml 34f49897e3ca533a7e74506ba0759b66eebce151
+ F vsixtest/MainPage.xaml.cpp 7f31fc6de751b64676c0924c97a5485d950a91d7
+ F vsixtest/MainPage.xaml.h cc05cca10d50a003f6c6e4448b701cdd07f52f29
+ F vsixtest/Package.appxmanifest 6b6db1eb7df3a315c5d681059754d5f0e0c47a93
+ F vsixtest/pch.cpp cb823cfac36f1a39a7eb0acbd7e9a0b0de8f23af
+ F vsixtest/pch.h 9cab7980f2ac4baa40807d8b5e52af32a21cf78c
+ F vsixtest/vsixtest.sln 77cadbe4e96c1fe1bf51cd77de9e9b0a12ada547
+ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
+ F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
+ F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
+ F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
 -P 2682e8e413fadbca0673f242769af17bfd291559 5b2fe5219ab9ad15969e3374894a75979b65cb3c
 -R bcfeac6deb0b24b3190e8b427e406c58
 -T +closed 5b2fe5219ab9ad15969e3374894a75979b65cb3c
++P 8fea1166016c659ece83e0045bc348f478a9ba6a cb9302cca423de41305719a49208daa392ec09da
++R dd40074d0cb69f94c136cb2921dcb114
+ U drh
 -Z 04f483c25715ded0ed1694d083bfc434
++Z 1bfaeec3e683dbb2e879f4e9437ca024
diff --cc manifest.uuid
index e3bf0b26096b4c858d3792b8c889102dd85ec7b1,68d02d516aa0006f10c37e94ce3811489b352ee7..a33810a4c55804551a764e7fc8aa8bfedb2af4f3
@@@ -1,1 -1,1 +1,1 @@@
- 8fea1166016c659ece83e0045bc348f478a9ba6a
 -cb9302cca423de41305719a49208daa392ec09da
++456df3365e2df60e34762f2024bb551538b3f72b
diff --cc src/fkey.c
index 97eba1ddd7273bbf95cb30c546b0d13a34690526,9a1a85fec05e618a735a83e00e9c548ccca5fbe8..4f2740ec30dab4a8067230dc19ba075c62918dc3
@@@ -1162,10 -1162,11 +1162,14 @@@ static Trigger *fkActionTrigger
    int iAction = (pChanges!=0);    /* 1 for UPDATE, 0 for DELETE */
  
    action = pFKey->aAction[iAction];
+   if( action==OE_Restrict && (db->flags & SQLITE_DeferFKs) ){
+     return 0;
+   }
    pTrigger = pFKey->apTrigger[iAction];
 +  if( (db->flags & SQLITE_DeferFKs) && action==OE_Restrict ){
 +    return 0;
 +  }
  
    if( action!=OE_None && !pTrigger ){
      char const *zFrom;            /* Name of child table */
diff --cc src/insert.c
Simple merge
diff --cc src/main.c
Simple merge
diff --cc src/shell.c
index 1cf9eb447f55ef5a3b29ffffedc67ead3e9eb134,789a464d09125038ee0fdd12ebeeff1273e3263c..2ce2f292dc3104ae8925cf0e20d3ad4cfb6943b7
@@@ -1972,12 -1996,9 +2013,12 @@@ static char zHelp[] 
    "                         LIKE pattern TABLE.\n"
    ".separator COL ?ROW?   Change the column separator and optionally the row\n"
    "                         separator for both the output mode and .import\n"
 +#if defined(SQLITE_ENABLE_SESSION)
 +  ".session CMD ...       Create or control sessions\n"
 +#endif
    ".shell CMD ARGS...     Run CMD ARGS... in a system shell\n"
    ".show                  Show the current values for various settings\n"
-   ".stats on|off          Turn stats on or off\n"
+   ".stats ?on|off?        Show stats or turn stats on or off\n"
    ".system CMD ARGS...    Run CMD ARGS... in a system shell\n"
    ".tables ?TABLE?        List names of tables\n"
    "                         If TABLE specified, only list tables matching\n"
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/tclsqlite.c
index e555cd6de02efc350ffffe7f046acec31f622c10,4e19f92644c0b6e0b8ac66ab8e2179fa321bbb1e..164664a6ea29d4e3c165d8ac202072fa406ba905
@@@ -3918,11 -3772,9 +3918,12 @@@ static void init_all(Tcl_Interp *interp
      extern int Sqlitemultiplex_Init(Tcl_Interp*);
      extern int SqliteSuperlock_Init(Tcl_Interp*);
      extern int SqlitetestSyscall_Init(Tcl_Interp*);
 +#if defined(SQLITE_ENABLE_SESSION) && defined(SQLITE_ENABLE_PREUPDATE_HOOK)
 +    extern int TestSession_Init(Tcl_Interp*);
 +#endif
      extern int Fts5tcl_Init(Tcl_Interp *);
      extern int SqliteRbu_Init(Tcl_Interp*);
+     extern int Sqlitetesttcl_Init(Tcl_Interp*);
  #if defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4)
      extern int Sqlitetestfts3_Init(Tcl_Interp *interp);
  #endif
      Sqlitemultiplex_Init(interp);
      SqliteSuperlock_Init(interp);
      SqlitetestSyscall_Init(interp);
 +#if defined(SQLITE_ENABLE_SESSION) && defined(SQLITE_ENABLE_PREUPDATE_HOOK)
 +    TestSession_Init(interp);
 +#endif
      Fts5tcl_Init(interp);
      SqliteRbu_Init(interp);
+     Sqlitetesttcl_Init(interp);
  
  #if defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4)
      Sqlitetestfts3_Init(interp);
Simple merge
diff --cc src/vdbeInt.h
Simple merge
diff --cc src/vdbemem.c
Simple merge
index f6c0399d85c58786f73dbe1288129c5eac13291f,6c02af8fbe6cba1258513996164a06dcdc680d5a..a3fef7f14f788752082394314d5828917ec12092
@@@ -86,12 -86,12 +86,15 @@@ proc test_set {args} 
  #
  set alltests [list]
  foreach f [glob $testdir/*.test] { lappend alltests [file tail $f] }
- foreach f [glob -nocomplain $testdir/../ext/rtree/*.test] { 
+ foreach f [glob -nocomplain       \
+     $testdir/../ext/rtree/*.test  \
+     $testdir/../ext/fts5/test/*.test   \
+ ] { 
    lappend alltests $f 
  }
 +foreach f [glob -nocomplain $testdir/../ext/session/*.test] { 
 +  lappend alltests $f 
 +}
  
  if {$::tcl_platform(platform)!="unix"} {
    set alltests [test_set $alltests -exclude crash.test crash2.test]