]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge latest trunk changes into this branch.
authordan <dan@noemail.net>
Wed, 29 Nov 2017 16:16:29 +0000 (16:16 +0000)
committerdan <dan@noemail.net>
Wed, 29 Nov 2017 16:16:29 +0000 (16:16 +0000)
FossilOrigin-Name: 373fa21bffd37053bb1a741d3ace2f003a5639bf373c20ea7bb24a31080888b3

12 files changed:
1  2 
Makefile.in
Makefile.msc
main.mk
manifest
manifest.uuid
src/main.c
src/sqlite.h.in
src/sqliteInt.h
src/test_tclsh.c
src/vdbeaux.c
src/where.c
test/permutations.test

diff --cc Makefile.in
index 2f7f6ac1eb40d7fbc59f4ad57a768c069bc87cd5,4883c1ac6b67ec5808d73e5a9db0b2df1f2893fb..009ab2e06118b58951d07f2b2ec74b4922a92d18
@@@ -1183,9 -1190,22 +1192,25 @@@ sqlite3_analyzer.c: sqlite3.c $(TOP)/sr
  sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
        $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
  
 +sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
 +      $(LTLINK)       $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS)
 +
+ CHECKER_DEPS =\
+   $(TOP)/tool/mkccode.tcl \
+   sqlite3.c \
+   $(TOP)/src/tclsqlite.c \
+   $(TOP)/ext/repair/sqlite3_checker.tcl \
+   $(TOP)/ext/repair/checkindex.c \
+   $(TOP)/ext/repair/checkfreelist.c \
+   $(TOP)/ext/misc/btreeinfo.c \
+   $(TOP)/ext/repair/sqlite3_checker.c.in
+ sqlite3_checker.c:    $(CHECKER_DEPS)
+       $(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
+ sqlite3_checker$(TEXE):       sqlite3_checker.c
+       $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS)
  dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
        $(LTLINK) -DDBDUMP_STANDALONE -o $@ \
             $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
diff --cc Makefile.msc
index 53aba69db04e47779dbcc5b9819fd06f263a4e92,b16f08adeee118f9dcba46b7a9039e9a3ccce647..b7b23f65f27e3f7f35a3f66224086b231dbcdca2
@@@ -2197,9 -2198,23 +2200,26 @@@ sqlite3_analyzer.exe: sqlite3_analyzer.
        $(LTLINK) $(NO_WARN) -DBUILD_sqlite -I$(TCLINCDIR) sqlite3_analyzer.c \
                /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
  
 +sqlite3_expert.exe: $(SQLITE3C) $(TOP)\ext\expert\sqlite3expert.h $(TOP)\ext\expert\sqlite3expert.c $(TOP)\ext\expert\expert.c
 +      $(LTLINK) $(NO_WARN)    $(TOP)\ext\expert\sqlite3expert.c $(TOP)\ext\expert\expert.c $(SQLITE3C) $(TLIBS)
 +
+ CHECKER_DEPS =\
+   $(TOP)/tool/mkccode.tcl \
+   sqlite3.c \
+   $(TOP)/src/tclsqlite.c \
+   $(TOP)/ext/repair/sqlite3_checker.tcl \
+   $(TOP)/ext/repair/checkindex.c \
+   $(TOP)/ext/repair/checkfreelist.c \
+   $(TOP)/ext/misc/btreeinfo.c \
+   $(TOP)/ext/repair/sqlite3_checker.c.in
+ sqlite3_checker.c:    $(CHECKER_DEPS)
+       $(TCLSH_CMD) $(TOP)\tool\mkccode.tcl $(TOP)\ext\repair\sqlite3_checker.c.in > $@
+ sqlite3_checker.exe:  sqlite3_checker.c $(LIBRESOBJS)
+       $(LTLINK) $(NO_WARN) -DBUILD_sqlite -I$(TCLINCDIR) sqlite3_checker.c \
+               /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
  dbdump.exe:   $(TOP)\ext\misc\dbdump.c $(SQLITE3C) $(SQLITE3H)
        $(LTLINK) $(NO_WARN) -DDBDUMP_STANDALONE $(TOP)\ext\misc\dbdump.c $(SQLITE3C) \
                /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS)
diff --cc main.mk
index b1bdf7a21c32935976957d9dade6eb479b00531c,d8660fc17b8390d52a409bb00d7c4e96ec3b23f8..70249f1793302a1bbb8d8faf69fec14e09d6719e
+++ b/main.mk
@@@ -787,9 -787,22 +789,25 @@@ sqlite3_analyzer.c: sqlite3.c $(TOP)/sr
  sqlite3_analyzer$(EXE): sqlite3_analyzer.c
        $(TCCX) $(TCL_FLAGS) sqlite3_analyzer.c -o $@ $(LIBTCL) $(THREADLIB) 
  
 +sqlite3_expert$(EXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
 +      $(TCCX) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert$(EXE) $(THREADLIB)
 +
+ CHECKER_DEPS =\
+   $(TOP)/tool/mkccode.tcl \
+   sqlite3.c \
+   $(TOP)/src/tclsqlite.c \
+   $(TOP)/ext/repair/sqlite3_checker.tcl \
+   $(TOP)/ext/repair/checkindex.c \
+   $(TOP)/ext/repair/checkfreelist.c \
+   $(TOP)/ext/misc/btreeinfo.c \
+   $(TOP)/ext/repair/sqlite3_checker.c.in
+ sqlite3_checker.c:    $(CHECKER_DEPS)
+       tclsh $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
+ sqlite3_checker$(TEXE):       sqlite3_checker.c
+       $(TCCX) $(TCL_FLAGS) sqlite3_checker.c -o $@ $(LIBTCL) $(THREADLIB)
  dbdump$(EXE): $(TOP)/ext/misc/dbdump.c sqlite3.o
        $(TCCX) -DDBDUMP_STANDALONE -o dbdump$(EXE) \
              $(TOP)/ext/misc/dbdump.c sqlite3.o $(THREADLIB)
diff --cc manifest
index b371ad7c2276d151e720502293393cb521097805,3a1692e2eab41946008b93765b8ea4e9642f25b7..7eea3c245393d1ace757136edf2aa9399b46da57
+++ b/manifest
@@@ -1,10 -1,10 +1,10 @@@
- C Fix\smain.mk\sto\sname\sthe\swin32\sexecutable\s"sqlite3_expert.exe",\snot\n"sqlite3_expert".
- D 2017-10-13T16:24:32.830
- F Makefile.in 51259a193f348a96b0ebc60ad84cfe83fdeecdd1d0ecb24f0e278a35ac1449da
 -C Fix\san\sassertion\sfault\sfound\sby\sOSSFuzz.
 -D 2017-11-28T20:43:40.167
 -F Makefile.in 6a879cbf01e37f9eac131414955f71774b566502d9a57ded1b8585b507503cb8
++C Merge\slatest\strunk\schanges\sinto\sthis\sbranch.
++D 2017-11-29T16:16:29.774
++F Makefile.in ceb40bfcb30ebba8e1202b34c56ff7e13e112f9809e2381d99be32c2726058f5
  F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
- F Makefile.msc e3fd2bfdf18211892e3f09db7e2841753fe61cc0747a0b0e87d77406840c3f6e
 -F Makefile.msc e5d7606238f55816da99f719969598df5b091aa2e9a6935c9412fcae8f53fc44
++F Makefile.msc f1aae0644cac286c1fcf5d7acbf6451c1e1d02e31131aa7c7c4536472771351f
  F README.md f5c87359573c4d255425e588a56554b50fdcc2afba4e017a2e02a43701456afd
- F VERSION f81232df28e2d3ff049feefad5fbd5489cc33697f6bd2ecf61af7f0dde3b83d0
+ F VERSION 0c10cdfed866fdd2d80434f64f042c3330f1daaed12e54287beb104f04b3faaf
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
  F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
  F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
@@@ -388,7 -394,7 +400,7 @@@ F ext/userauth/userauth.c 3410be31283ab
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk 88c1647059bb48a7314285794b2090e7c931d665d526fa4d88952f5040bee9b3
 -F main.mk fbe15be384ec172be0cc30efc91cda61ca16bd5d833e8b812cf653ccb0c74977
++F main.mk 8e24a3cae9a58e1620a21b492b7272c92ec0ab00e388088df77de2223c002169
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -426,10 -433,10 +439,10 @@@ F src/hash.c a12580e143f10301ed5166ea49
  F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4
  F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da
  F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
- F src/insert.c 1f33ef4ca0553b60fff03aa171370f8709a3e945acfcc68ccafc92752d872f40
+ F src/insert.c cb67cc56ef2ddd13e6944b2c0dd08a920bcd9503230adef8b9928d338097c722
  F src/legacy.c 134ab3e3fae00a0f67a5187981d6935b24b337bcf0f4b3e5c9fa5763da95bf4e
  F src/loadext.c 20865b183bb8a3723d59cf1efffc3c50217eb452c1021d077b908c94da26b0b2
- F src/main.c 0cedb7a0a9157ec48795f5d3a7a41facbd2a280b8be58b4997ba492159f79089
 -F src/main.c 6a0cc1c7b8ab92374effecdd7b92792b3273a255c70575b7d67bd9a4315e6d3a
++F src/main.c d156d8fd43d268dea567298172a9c490b3a6a097e0b063e9b977f5e5ad78dc8c
  F src/malloc.c a02c9e69bc76bee0f639416b947a946412890b606301454727feadcb313536d6
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
@@@ -448,28 -455,28 +461,28 @@@ F src/os.c 22d31db3ca5a96a408fbf1ceeaae
  F src/os.h 48388821692e87da174ea198bf96b1b2d9d83be5dfc908f673ee21fafbe0d432
  F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
  F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
- F src/os_unix.c 3984fc069df59e26f000e30609611cecdb4e93293e6ee52313a473a7e874af1b
- F src/os_win.c 6892c3ff23b7886577e47f13d827ca220c0831bae3ce00eea8c258352692f8c6
+ F src/os_unix.c e87cef0bb894b94d96ee3af210be669549d111c580817d14818101b992640767
+ F src/os_win.c 7f36120492e4a23c48d1dd685edf29ae459c6d555660c61f1323cea3e5a1191d
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c 62f88892d3a2c68cff6e8f96c81c5dfe5178eace887880c36364aabe4d8d6422
+ F src/pager.c 07cf850241667874fcce9d7d924c814305e499b26c804322e2261247b5921903
  F src/pager.h 581698f2177e8bd4008fe4760898ce20b6133d1df22139b9101b5155f900df7a
- F src/parse.y 52ef3cecd0934e9da4a45b585883a03243ad615d338ad94f44501a05891dcdfa
- F src/pcache.c 4bada070456980c3c1f16d58ec2e64e389ad77b935e3d77e0c96e7bbd397289c
+ F src/parse.y d79001da275bfe344b409006b85e81e486a0f6afc3762fdf0944f000f4aa0111
+ F src/pcache.c 7ae91a4557a43d77d449accbfdc68846e6516f8e2eda46e8bbe4536fb669b201
  F src/pcache.h 072f94d29281cffd99e46c1539849f248c4b56ae7684c1f36626797fee375170
  F src/pcache1.c 716975564c15eb6679e97f734cec1bfd6c16ac3d4010f05f1f8e509fc7d19880
 -F src/pragma.c d04725ac25387d9638919e197fb009f378e13af7bf899516979e54b3164e3602
 +F src/pragma.c bea56df3ae0637768c0da4fbbb8f2492f780980d95000034a105ff291bf7ca69
  F src/pragma.h bb83728944b42f6d409c77f5838a8edbdb0fe83046c5496ffc9602b40340a324
- F src/prepare.c 9a141a1b02dca53beaa9771699d390aafcac01f5d1f1c0ae6e23ded8dcdb709a
- F src/printf.c 40aee47ae9be4bd3dbdc8968bd07fddc027be8edec8daddf24d3391d36698a1c
+ F src/prepare.c 7cf451f903ad92a14e22de415a13e7a7d30f1bd23b3d21eeb0dc7264723244c5
+ F src/printf.c 9506b4b96e59c0467047155f09015750cb2878aeda3d39e5610c1192ddc3c41c
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
- F src/resolve.c 4324a94573b1e29286f8121e4881db59eaedc014afeb274c8d3e07ed282e0e20
+ F src/resolve.c bbee7e31d369a18a2f4836644769882e9c5d40ef4a3af911db06410b65cb3730
  F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
- F src/select.c 42aca61e739c405ddd8a1b702977a7743c7d52a94885f7c5596bd7e73e6bff18
- F src/shell.c.in 423944f4ad73a7e73d9c06e645e19ac1aa5f45c22069936e3a008b28a5df8003
- F src/sqlite.h.in c442fca3fbabbc44b811218118fada3b63419a75974b50b82e9fd2fd5a49fda1
+ F src/select.c 17e220191860a64a18c084141e1a8b7309e166a6f2d42c02021af27ea080d157
+ F src/shell.c.in c441d7ddfbb8120cd8a7cde838ca5c9167311a7e400b1077c3ae6090aa420be8
 -F src/sqlite.h.in 8fd97993d48b50b9bade38c52f12d175942c9497c960905610c7b03a3e4b5818
++F src/sqlite.h.in e9e275be6c05a3d5a3e6107c72c4fd8b0aaa6573b65e414373964ecd047fb19f
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
- F src/sqlite3ext.h a1fd3aa82f967da436164e0728a7d6841651fd0c6e27b9044e0eb9f6c8462e47
- F src/sqliteInt.h f7e05ec1473135a55e18627c842d438a5d4e3c43ddd440ddd10300fd48a16574
+ F src/sqlite3ext.h c02d628cca67f3889c689d82d25c3eb45e2c155db08e4c6089b5840d64687d34
 -F src/sqliteInt.h 4c910d9c0d88a90e8639a4f83ef05f701ccfe731cf593e757444074f01df4964
++F src/sqliteInt.h b7eee7a14dc4cd8e8d073bd24d43c894880fd94ff39ad6e9ac87f88a85a7888d
  F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
  F src/status.c 9737ed017279a9e0c5da748701c3c7bf1e8ae0dae459aad20dd64fcff97a7e35
  F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
@@@ -516,6 -524,7 +530,7 @@@ F src/test_server.c a2615049954cbb9cfb4
  F src/test_sqllog.c 11e6ce7575f489155c604ac4b439f2ac1d3d5aef
  F src/test_superlock.c 4839644b9201da822f181c5bc406c0b2385f672e
  F src/test_syscall.c 1073306ba2e9bfc886771871a13d3de281ed3939
 -F src/test_tclsh.c 74fcfb7f3b0ff1f871e62263dd84ffba46a8e9d477439115e0fb2035e4bf69e1
++F src/test_tclsh.c 58052fe48efe8f579834f4648d239569f2efc6285f5019ebdf0040f58d16238d
  F src/test_tclvar.c 33ff42149494a39c5fbb0df3d25d6fafb2f668888e41c0688d07273dcb268dfc
  F src/test_thread.c 911d15fb14e19c0c542bdc8aabf981c2f10a4858
  F src/test_vfs.c f0186261a24de2671d080bcd8050732f0cb64f6e
@@@ -535,20 -544,20 +550,20 @@@ F src/vdbe.c 3393b508d9ad084ffce232a7c5
  F src/vdbe.h d50cadf12bcf9fb99117ef392ce1ea283aa429270481426b6e8b0280c101fd97
  F src/vdbeInt.h 1fe00770144c12c4913128f35262d11527ef3284561baaab59b947a41c08d0d9
  F src/vdbeapi.c 9c670ca0dcc1cd86373aa353b747b26fe531ca5cd4331690c611d1f03842e2a1
- F src/vdbeaux.c 2b10f70d6479f990e66d0e7bbd3c58b85cd8388c1dba5b89698b7a42c185d0f2
- F src/vdbeblob.c 635a79b60340a6a14a622ea8dcb081f0a66b1ac3836870c587f232eec08c0286
- F src/vdbemem.c 5c1533bf756918b4e46b2ed2bb82c29c7c651e1e37bbd0a0d8731a68787598ff
 -F src/vdbeaux.c b02a1f842c0e916285643b8475b7189f10b76f9e7edb5e2353a913c7980f90b5
++F src/vdbeaux.c cf474d29372a30d0db84b0a9a74ab07117c9b831e1585a0fa335e2b445f4a95f
+ F src/vdbeblob.c f5c70f973ea3a9e915d1693278a5f890dc78594300cf4d54e64f2b0917c94191
+ F src/vdbemem.c 6e6082377183b8fd8d6f2bce45250b4c2e89bfeb534a094cd8612dae8aaa2fda
  F src/vdbesort.c 731a09e5cb9e96b70c394c1b7cf3860fbe84acca7682e178615eb941a3a0ef2f
  F src/vdbetrace.c 48e11ebe040c6b41d146abed2602e3d00d621d7ebe4eb29b0a0f1617fd3c2f6c
  F src/vtab.c 0e4885495172e1bdf54b12cce23b395ac74ef5729031f15e1bc1e3e6b360ed1a
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c 839db09792fead5052bb35e533fa485e134913d547d05b5f42e537b73e63f07a
+ F src/wal.c 5a3f464edd64596f601683ed321d12e6fd93c5fb9afdfb3653d6ffd0fee9c48f
  F src/wal.h 8de5d2d3de0956d6f6cb48c83a4012d5f227b8fe940f3a349a4b7e85ebcb492a
- F src/walker.c 3ccfa8637f95355bff61144e01a615b8ef26f79c312880848da73f03367da1e6
- F src/where.c dd3be478fc6089a1012d2ae5bb5d774f235e34bdb2ed391bc97e06b9367b9f1d
+ F src/walker.c da987a20d40145c0a03c07d8fefcb2ed363becc7680d0500d9c79915591f5b1f
 -F src/where.c 9752b68e03e2044f0faa4708fabb0189769067b660bffa931e1fd65736269659
++F src/where.c a338038b90028c60901ef4115080220eec431fbdbd17a12c1f1b50b71146301e
  F src/whereInt.h 82c04c5075308abbac59180c8bad5ecb45b07453981f60a53f3c7dee21e1e971
- F src/wherecode.c e8c2ece5843ea56e6c90277d421f2d628f3f7b7c976642369cc519f008e1d2b1
- F src/whereexpr.c afcac9cccfc0fdaccbdda94034a398947b6dc47dbf821c1b496261722832a6a4
+ F src/wherecode.c 611fcabd05592ed2febd7d182f9621425b0466c5232d70e0981c842d429356d5
+ F src/whereexpr.c 427ea8e96ec24f2a7814c67b8024ad664a9c7656264c4566c34743cb23186e46
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
  F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d
@@@ -1104,8 -1114,8 +1120,8 @@@ F test/parser1.test 391b9bf9a229547a129
  F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
  F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
  F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
- F test/permutations.test 00588034d2817b91a637551da8f657e1bb9ce8049dd655017168fc7903c2a05c
- F test/pragma.test c31b5e98998c160a4c85b1e04f590655c67f2daa7f73854640cd120610e3ac15
 -F test/permutations.test 490e3333b9b1aefb7ebc6e9ab2ae0e382b7dd8713ccc4a2786b0f75467c2ab6b
++F test/permutations.test 8ada8c1dee071e0fc275bc8bc2db7de537d625cad949d2200664b99a0a89eac5
+ F test/pragma.test 7c8cfc328a1717a95663cf8edb06c52ddfeaf97bb0aee69ae7457132e8d39e7d
  F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
  F test/pragma3.test 14c12bc5352b1e100e0b6b44f371053a81ccf8ed
  F test/pragma4.test 3046501bee2f652dc2a4f9c87781e2741361d6864439c8381aba6c3b774b335c
@@@ -1662,8 -1679,7 +1685,7 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P 4c68ad7da48c941eb1ca0210a85d95467f3f3640bdc55a02686166471806ca4e
- R 549f733ecdac0d819a10aad7a58032a8
- T +closed 5981969cad5afebb8f8098489d0419cc9ead560a0f22a484230f1886011cd57c
 -P b81a31495bd27c1d96f7df653da3502054240cb5acf66b860da7f0f9b422a524
 -R 419b1183c51a17454670ae5c0f948f4f
++P e38571d518ff399d1033b33843dae60bc61181cdf692dcd8e2e14746bf0d1e61 75d699877fa7d06d30285ecf008fbedfdf68cc7965bb328c96f5a931d1f13f04
++R 26cc16e97094ad5748375397be24ecfc
  U dan
- Z b4137401f555133414b7d9121a7d2894
 -Z af229f4b2717b4f314275fdbf907e896
++Z 08144a4a155e0a56cb23cd6a4ba9351b
diff --cc manifest.uuid
index 2f5abff8203f7ce1972d43b44e9355fd3f186e71,3f2f6eee607714b19dba6ccabb390fe5515714da..95cda588250e56b90bd72c2c7c5a62d8c8870026
@@@ -1,1 -1,1 +1,1 @@@
- e38571d518ff399d1033b33843dae60bc61181cdf692dcd8e2e14746bf0d1e61
 -75d699877fa7d06d30285ecf008fbedfdf68cc7965bb328c96f5a931d1f13f04
++373fa21bffd37053bb1a741d3ace2f003a5639bf373c20ea7bb24a31080888b3
diff --cc src/main.c
Simple merge
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
Simple merge
index 0000000000000000000000000000000000000000,976f7cb248c8fef9dcc6e347d832e00ec54c7cd4..97f7f5d7a10be742a682267782c2861a78bbb397
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,198 +1,201 @@@
+ /*
+ ** 2017-10-13
+ **
+ ** 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 contains extensions to the the "tclsqlite.c" module used for
+ ** testing.  Basically, all of the other "test_*.c" modules are linked
+ ** into the enhanced tclsh used for testing (and named "testfixture" or
+ ** "testfixture.exe") using logic encoded by this file.
+ **
+ ** The code in this file used to be found in tclsqlite3.c, contained within
+ ** #if SQLITE_TEST ... #endif.  It is factored out into this separate module
+ ** in an effort to keep the tclsqlite.c file pure.
+ */
+ #include "sqlite3.h"
+ #if defined(INCLUDE_SQLITE_TCL_H)
+ # include "sqlite_tcl.h"
+ #else
+ # include "tcl.h"
+ # ifndef SQLITE_TCLAPI
+ #  define SQLITE_TCLAPI
+ # endif
+ #endif
+ /* Needed for the setrlimit() system call on unix */
+ #if defined(unix)
+ #include <sys/resource.h>
+ #endif
+ /* Forward declaration */
+ static int SQLITE_TCLAPI load_testfixture_extensions(
+   ClientData cd,
+   Tcl_Interp *interp,
+   int objc,
+   Tcl_Obj *CONST objv[]
+ );
+ /*
+ ** This routine is the primary export of this file.
+ **
+ ** Configure the interpreter passed as the first argument to have access
+ ** to the commands and linked variables that make up:
+ **
+ **   * the [sqlite3] extension itself,
+ **
+ **   * If SQLITE_TCLMD5 or SQLITE_TEST is defined, the Md5 commands, and
+ **
+ **   * If SQLITE_TEST is set, the various test interfaces used by the Tcl
+ **     test suite.
+ */
+ const char *sqlite3TestInit(Tcl_Interp *interp){
+   extern int Sqlite3_Init(Tcl_Interp*);
+   extern int Sqliteconfig_Init(Tcl_Interp*);
+   extern int Sqlitetest1_Init(Tcl_Interp*);
+   extern int Sqlitetest2_Init(Tcl_Interp*);
+   extern int Sqlitetest3_Init(Tcl_Interp*);
+   extern int Sqlitetest4_Init(Tcl_Interp*);
+   extern int Sqlitetest5_Init(Tcl_Interp*);
+   extern int Sqlitetest6_Init(Tcl_Interp*);
+   extern int Sqlitetest7_Init(Tcl_Interp*);
+   extern int Sqlitetest8_Init(Tcl_Interp*);
+   extern int Sqlitetest9_Init(Tcl_Interp*);
+   extern int Sqlitetestasync_Init(Tcl_Interp*);
+   extern int Sqlitetest_autoext_Init(Tcl_Interp*);
+   extern int Sqlitetest_blob_Init(Tcl_Interp*);
+   extern int Sqlitetest_demovfs_Init(Tcl_Interp *);
+   extern int Sqlitetest_func_Init(Tcl_Interp*);
+   extern int Sqlitetest_hexio_Init(Tcl_Interp*);
+   extern int Sqlitetest_init_Init(Tcl_Interp*);
+   extern int Sqlitetest_malloc_Init(Tcl_Interp*);
+   extern int Sqlitetest_mutex_Init(Tcl_Interp*);
+   extern int Sqlitetestschema_Init(Tcl_Interp*);
+   extern int Sqlitetestsse_Init(Tcl_Interp*);
+   extern int Sqlitetesttclvar_Init(Tcl_Interp*);
+   extern int Sqlitetestfs_Init(Tcl_Interp*);
+   extern int SqlitetestThread_Init(Tcl_Interp*);
+   extern int SqlitetestOnefile_Init();
+   extern int SqlitetestOsinst_Init(Tcl_Interp*);
+   extern int Sqlitetestbackup_Init(Tcl_Interp*);
+   extern int Sqlitetestintarray_Init(Tcl_Interp*);
+   extern int Sqlitetestvfs_Init(Tcl_Interp *);
+   extern int Sqlitetestrtree_Init(Tcl_Interp*);
+   extern int Sqlitequota_Init(Tcl_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 Md5_Init(Tcl_Interp*);
+   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
+ #ifdef SQLITE_ENABLE_ZIPVFS
+   extern int Zipvfs_Init(Tcl_Interp*);
+ #endif
++  extern int TestExpert_Init(Tcl_Interp*);
++
+   Tcl_CmdInfo cmdInfo;
+   /* Since the primary use case for this binary is testing of SQLite,
+   ** be sure to generate core files if we crash */
+ #if defined(unix)
+   { struct rlimit x;
+     getrlimit(RLIMIT_CORE, &x);
+     x.rlim_cur = x.rlim_max;
+     setrlimit(RLIMIT_CORE, &x);
+   }
+ #endif /* unix */
+   if( Tcl_GetCommandInfo(interp, "sqlite3", &cmdInfo)==0 ){
+     Sqlite3_Init(interp);
+   }
+ #ifdef SQLITE_ENABLE_ZIPVFS
+   Zipvfs_Init(interp);
+ #endif
+   Md5_Init(interp);
+   Sqliteconfig_Init(interp);
+   Sqlitetest1_Init(interp);
+   Sqlitetest2_Init(interp);
+   Sqlitetest3_Init(interp);
+   Sqlitetest4_Init(interp);
+   Sqlitetest5_Init(interp);
+   Sqlitetest6_Init(interp);
+   Sqlitetest7_Init(interp);
+   Sqlitetest8_Init(interp);
+   Sqlitetest9_Init(interp);
+   Sqlitetestasync_Init(interp);
+   Sqlitetest_autoext_Init(interp);
+   Sqlitetest_blob_Init(interp);
+   Sqlitetest_demovfs_Init(interp);
+   Sqlitetest_func_Init(interp);
+   Sqlitetest_hexio_Init(interp);
+   Sqlitetest_init_Init(interp);
+   Sqlitetest_malloc_Init(interp);
+   Sqlitetest_mutex_Init(interp);
+   Sqlitetestschema_Init(interp);
+   Sqlitetesttclvar_Init(interp);
+   Sqlitetestfs_Init(interp);
+   SqlitetestThread_Init(interp);
+   SqlitetestOnefile_Init();
+   SqlitetestOsinst_Init(interp);
+   Sqlitetestbackup_Init(interp);
+   Sqlitetestintarray_Init(interp);
+   Sqlitetestvfs_Init(interp);
+   Sqlitetestrtree_Init(interp);
+   Sqlitequota_Init(interp);
+   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);
+ #endif
++  TestExpert_Init(interp);
+   Tcl_CreateObjCommand(
+       interp, "load_testfixture_extensions", load_testfixture_extensions,0,0
+   );
+   return 0;
+ }
+ /* tclcmd:   load_testfixture_extensions
+ */
+ static int SQLITE_TCLAPI load_testfixture_extensions(
+   ClientData cd,
+   Tcl_Interp *interp,
+   int objc,
+   Tcl_Obj *CONST objv[]
+ ){
+   Tcl_Interp *slave;
+   if( objc!=2 ){
+     Tcl_WrongNumArgs(interp, 1, objv, "SLAVE");
+     return TCL_ERROR;
+   }
+   slave = Tcl_GetSlave(interp, Tcl_GetString(objv[1]));
+   if( !slave ){
+     return TCL_ERROR;
+   }
+   (void)sqlite3TestInit(slave);
+   return TCL_OK;
+ }
diff --cc src/vdbeaux.c
Simple merge
diff --cc src/where.c
Simple merge
Simple merge