From: dan Date: Fri, 31 Mar 2017 11:20:20 +0000 (+0000) Subject: Merge latest trunk into this branch. X-Git-Tag: version-3.22.0~147^2~45 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fbf3bdcdbceacd6cc78b046100468b291d7c21a1;p=thirdparty%2Fsqlite.git Merge latest trunk into this branch. FossilOrigin-Name: cb721d0b36268a7b0ef493fa4d7f6bcbaa9ead8b1990e3c3fae015fa1d545226 --- fbf3bdcdbceacd6cc78b046100468b291d7c21a1 diff --cc main.mk index 9763a69edc,54f223bb56..b22d07d5a2 --- a/main.mk +++ b/main.mk @@@ -722,20 -761,10 +761,24 @@@ sqlite3_analyzer.c: sqlite3.c $(TOP)/sr sqlite3_analyzer$(EXE): sqlite3_analyzer.c $(TCCX) $(TCL_FLAGS) sqlite3_analyzer.c -o $@ $(LIBTCL) $(THREADLIB) +sqlite3_schemalint.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/schemalint.tcl + echo "#define TCLSH 2" > $@ + echo "#define SQLITE_ENABLE_DBSTAT_VTAB 1" >> $@ + cat sqlite3.c $(TOP)/src/tclsqlite.c >> $@ + echo "static const char *tclsh_main_loop(void){" >> $@ + echo "static const char *zMainloop = " >> $@ + tclsh $(TOP)/tool/tostr.tcl $(TOP)/tool/schemalint.tcl >> $@ + echo "; return zMainloop; }" >> $@ + +sqlite3_schemalint$(EXE): $(TESTSRC) sqlite3_schemalint.c + $(TCCX) $(TCL_FLAGS) $(TESTFIXTURE_FLAGS) \ + sqlite3_schemalint.c $(TESTSRC) \ + -o sqlite3_schemalint$(EXE) $(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) + # Rules to build the 'testfixture' application. # TESTFIXTURE_FLAGS = -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1 diff --cc manifest index b8f39b0c2a,eee647a65b..90f504d2aa --- a/manifest +++ b/manifest @@@ -1,10 -1,10 +1,10 @@@ - C Update\sshell6.test\sto\saccount\sfor\sthe\sfact\sthat\stests\sare\snow\srun\sin\sa\nseparate\sdirectory. - D 2017-03-31T08:00:03.133 - F Makefile.in f53429fb2f313c099283659d0df6f20f932c861f -C Declare\sthe\sLemon-generated\sparser\sobject\sas\sitself.\s\s(Duh) -D 2017-03-30T17:13:37.978 ++C Merge\slatest\strunk\sinto\sthis\sbranch. ++D 2017-03-31T11:20:20.468 + F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 - F Makefile.msc df0bf9ff7f8b3f4dd9fb4cc43f92fe58f6ec5c66 - F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7 - F VERSION c6b1f51809551d60ad001e6d87cf3ab2c7f54b6f + F Makefile.msc a4c0613a18663bda56d8cf76079ab6590a7c3602e54befb4bbdef76bcaa38b6a + F README.md 2b15fae33852f2f53996774c21fb41e1d94181c4401a0e43ac93e11f2cc901b9 + F VERSION 0a0e02e16b44ea735b40118fc844311b2ab0d35b25fbeda5120aee62f973f663 F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 @@@ -30,13 -30,13 +30,13 @@@ F autoconf/tea/win/rules.vc c511f222b80 F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977 F config.h.in 6376abec766e9a0785178b1823b5a587e9f1ccbc F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55 - F configure c01a159fdf7ea0171ad01ce2937283f2c7972bde x - F configure.ac 89e4e02a83d8a1528011f8395621b8c3186b4089 + F configure cea63449647267beb335e899fd8a79778912ffa55d6b179730267b8ef84aa1aa x + F configure.ac 605173e829ab64514ed89f9b53d0da1739d7b0a0 F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad - F doc/lemon.html c30255bea0fd87a81f082d17a72c9dffbc3f6dd9 + F doc/lemon.html b5a3c07d33ecb8e019ce8f7660fe2dbbad9d7977 F doc/pager-invariants.txt 27fed9a70ddad2088750c4a2b493b63853da2710 F doc/vfs-shm.txt e101f27ea02a8387ce46a05be2b1a902a021d37a - F ext/README.txt 913a7bd3f4837ab14d7e063304181787658b14e1 -F ext/README.md fd5f78013b0a2bc6f0067afb19e6ad040e89a10179b4f6f03eee58fac5f169bd ++F ext/README.md fd5f78013b0a2bc6f0067afb19e6ad040e89a10179b4f6f03eee58fac5f169bd w ext/README.txt F ext/async/README.txt e12275968f6fde133a80e04387d0e839b0c51f91 F ext/async/sqlite3async.c 0f3070cc3f5ede78f2b9361fb3b629ce200d7d74 F ext/async/sqlite3async.h f489b080af7e72aec0e1ee6f1d98ab6cf2e4dcef @@@ -275,7 -325,7 +325,7 @@@ F ext/userauth/userauth.c 3410be31283ab F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60 - F main.mk e3b21467eb50c2dff9bf4003a02aea753bfe7e35 -F main.mk 9abb506e717887d57f754bae139b85c1a06d6f2ac25b589f3e792e310567f278 ++F main.mk e6f8f6895b75e4615a284b546933ca88fd56f3b85b560f4fb0da731abaa14f80 F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83 F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271 F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504 @@@ -287,38 -337,39 +337,39 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7 F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786 F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a - F src/alter.c 1bb0709b3048e24217b80ec6bd78a3e99a47c01b - F src/analyze.c ab57b6763dd4c6170a20673d14882c033affd188 - F src/attach.c 771153bd1f4ab0b97a44a13dde2c7e5e1efeba22 - F src/auth.c b56c78ebe40a2110fd361379f7e8162d23f92240 - F src/backup.c f60f0aa55d25d853ffde53d0b0370a7bb7ee41ce - F src/bitvec.c 3ee4c8b2c94ed3a7377256e18199e6ff5cf33f63 - F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73 - F src/btree.c 6eee126fe9d1f57118de9be2be840a4c6e691828 - F src/btree.h a5008b9afe56e8e54ade6c436a910f112defcca9 - F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5 - F src/build.c 213cbf84e99dd834e6ea46615633656d7ef79321 + F src/alter.c 3b23977620ce9662ac54443f65b87ba996e36121 + F src/analyze.c 0d0ccf7520a201d8747ea2f02c92c26e26f801bc161f714f27b9f7630dde0421 + F src/attach.c 8c476f8bd5d2afe11d925f890d30e527e5b0ce43 + F src/auth.c 930b376a9c56998557367e6f7f8aaeac82a2a792 + F src/backup.c faf17e60b43233c214aae6a8179d24503a61e83b + F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33 + F src/btmutex.c 0e9ce2d56159b89b9bc8e197e023ee11e39ff8ca + F src/btree.c 64ff65a01851a34c8145e5bc767df9e57d2f3c1acdc6aba334794b7c40c684e6 + F src/btree.h bf64dfeeddeebdb775a5eba0098bbc00d073290d + F src/btreeInt.h cd55d39d9916270837a88c12e701047cba0729b0 + F src/build.c 43f903c9082040ced2b421543cb0300c2973647d F src/callback.c 2e76147783386374bf01b227f752c81ec872d730 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e - F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198 - F src/date.c 0b73e681c11fca867fec554750c07fe0d4e417c1 - F src/dbstat.c c845548d4346e606e2f2b7d2e714ace2b8a7dd1b - F src/delete.c 48802aa3ee6339f576d074336d3ae1b5f40e240f - F src/expr.c c329d581e5d631153456369684d7d4bcd94c907d - F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb - F src/fkey.c 5cb42d9a59e2a590776fd3fc8ff6f61d40df3c6e - F src/func.c 552d300265aed09eea21f68ac742a440550c0062 - F src/global.c 884d4c7eba9f5fc25c96a23b21520da19b7713e2 - F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5 - F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094 - F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08 - F src/insert.c 723d5d708cdb61bdd47c00b9f07c75be45aefc09 - F src/legacy.c 75d3023be8f0d2b99d60f905090341a03358c58e - F src/loadext.c 9e2a41adcaff16ebc1ebff1f336cbf33de55396f - F src/main.c 787fc7ccd341ae80695fb3954ab95b84b7b3a146 - F src/malloc.c 1443d1ad95d67c21d77af7ae3f44678252f0efec + F src/ctime.c 47d91a25ad8f199a71a5b1b7b169d6dd0d6e98c5719eca801568798743d1161c + F src/date.c ee676e7694dfadbdd2fde1a258a71be8360ba5ae + F src/dbstat.c 19ee7a4e89979d4df8e44cfac7a8f905ec89b77d + F src/delete.c 0d9d5549d42e79ce4d82ff1db1e6c81e36d2f67c + F src/expr.c f12a581f342a6fd85d14c31e4fb84f16b3dd107f54d7728dddb62cebc79d7ce1 + F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 + F src/fkey.c 2e9aabe1aee76273aff8a84ee92c464e095400ae + F src/func.c 9d52522cc8ae7f5cdadfe14594262f1618bc1f86083c4cd6da861b4cf5af6174 + F src/global.c 4a34512d82fc5aa13c802db06bcfff5e1d3de955 + F src/hash.c 63d0ee752a3b92d4695b2b1f5259c4621b2cfebd + F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4 + F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da + F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71 + F src/insert.c d4bb3a135948553d18cf992f76f7ed7b18aa0327f250607b5a6671e55d9947d5 + F src/legacy.c e88ed13c2d531decde75d42c2e35623fb9ce3cb0 + F src/loadext.c a72909474dadce771d3669bf84bf689424f6f87d471fee898589c3ef9b2acfd9 -F src/main.c 158326243c5ddc8b98a1e983fa488650cf76d760 ++F src/main.c 36974edf7461f708b337389c59b30ec91257420c129c1f5ee022bc2c2784d320 + F src/malloc.c 89c98e3619d362dcffa5c1c639b364b65b474751 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 - F src/mem1.c 6919bcf12f221868ea066eec27e579fed95ce98b + F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3 F src/mem3.c 8768ac94694f31ffaf8b4d0ea5dc08af7010a35a F src/mem5.c 9bf955937b07f8c32541c8a9991f33ce3173d944 @@@ -328,115 -379,116 +379,117 @@@ F src/mutex.c 8e45800ee78e0cd1f1f3fe8e3 F src/mutex.h 779d588e3b7756ec3ecf7d78cde1d84aba414f85 F src/mutex_noop.c 9d4309c075ba9cc7249e19412d3d62f7f94839c4 F src/mutex_unix.c 27bb6cc49485ee46711a6580ab7b3f1402211d23 - F src/mutex_w32.c 5e6fe1c298fb5a8a15aaed4161d5759311431c17 + F src/mutex_w32.c a898fa969823b100c0f5fdc57e54c9a1e419ab4d F src/notify.c 9711a7575036f0d3040ba61bc6e217f13a9888e7 - F src/os.c f89e3ca1c2e3d5015b847aec60371c474acbac82 - F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf + F src/os.c add02933b1dce7a39a005b00a2f5364b763e9a24 + F src/os.h 8e976e59eb4ca1c0fca6d35ee803e38951cb0343 F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85 - F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa - F src/os_unix.c f5bac8e74aaefc4ea520e43b4540793c3b8a9e8f - F src/os_win.c f0d7aa603eb6262143d7169a222aea07c4fca91d - F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca - F src/pager.c 38718a019ca762ba4f6795425d5a54db70d1790d - F src/pager.h e1d38a2f14849e219df0f91f8323504d134c8a56 - F src/parse.y 5ea8c81c5c41b27887f41b4a7e1c58470d7d3821 - F src/pcache.c 647bb53a86b7bbcf55ad88089b3ea5a9170b90df - F src/pcache.h 4d0ccaad264d360981ec5e6a2b596d6e85242545 - F src/pcache1.c 72f644dc9e1468c72922eff5904048427b817051 - F src/pragma.c 3ca4a32189ffa5d0b2a908c9d55bd7fcd2717a62 - F src/pragma.h 64c78a648751b9f4f297276c4eb7507b14b4628c - F src/prepare.c 22df6171aec1d86904ed2ad30c2348a5748aa04e - F src/printf.c 63e6fb12bbe702dd664dc3703776c090383a5a26 - F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 - F src/resolve.c b8f7174e5f8c33c44ded3a25a973d0bb89228c20 - F src/rowset.c 9fe4b3ad7cc00944386bb600233d8f523de07a6e - F src/select.c 137b31daa84d57d67847bf621bb54f3353e2077b - F src/shell.c 4aba7844546ffd02b728a9509226a6e3c0462f77 + F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586 + F src/os_unix.c 30e2c43e4955db990e5b5a81e901f8aa74cc8820 + F src/os_win.c 2a6c73eef01c51a048cc4ddccd57f981afbec18a + F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a + F src/pager.c ff1232b3088a39806035ecfac4fffeb22717d80b + F src/pager.h f2a99646c5533ffe11afa43e9e0bea74054e4efa + F src/parse.y 48b03113704ee8bd78ee6996d81de7fbee22e105 + F src/pcache.c 62835bed959e2914edd26afadfecce29ece0e870 + F src/pcache.h 2cedcd8407eb23017d92790b112186886e179490 + F src/pcache1.c 1195a21fe28e223e024f900b2011e80df53793f0356a24caace4188b098540dc -F src/pragma.c 2b244434e76c7075edbcfd9e4d634899af0944ff01183b126d4671f7407c2368 ++F src/pragma.c 157c323aef421d55905b42162ba16bc874c0dce3102c543b4092c202f881f2c6 + F src/pragma.h c9c763958fec92b04125571472c9500b351c5f7f + F src/prepare.c b1140c3d0cf59bc85ace00ce363153041b424b7a + F src/printf.c 8757834f1b54dae512fb25eb1acc8e94a0d15dd2290b58f2563f65973265adb2 + F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 + F src/resolve.c 3e518b962d932a997fae373366880fc028c75706 + F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac + F src/select.c 2496d0cc6368dabe7ad2e4c7f5ed3ad9aa3b4d11cd90f33fa1d1ef72493f43aa -F src/shell.c ceb2b2f1f958ea2c47a7f37972d0f715fbf9dcf6a34a5e98c886b85e3ce6a238 -F src/sqlite.h.in 723107d97f2345a7c103632169dc61366121c4ab65d75a7d83c6dc0e5bbe5ca4 ++F src/shell.c e524688c2544167f835ba43e24309f8707ca60c8ab6eb5c263a12c8618a233b8 +F src/shell_indexes.c 23c4b7f7bb8e9b0a8b912c389a85922939bb0769 - F src/sqlite.h.in 9f0fee10494624d03686fabcc270ce8d12fcb65b ++F src/sqlite.h.in 3db120c750634c0acc1ca291140a4cae75cb41cb0507f53c31b838c040954366 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 - F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d - F src/sqliteInt.h 8c95b3589d084ea68e947aa84abc32f185ed6155 - F src/sqliteLimit.h 7b28cf72cbd52f178bfc97ea266445e351f2cd24 - F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba - F src/table.c 5226df15ab9179b9ed558d89575ea0ce37b03fc9 - F src/tclsqlite.c 54dca4eaf3a9cb0a4b845ef54ffa99225c30a52e - F src/test1.c f14a6f9e2cff6cba4d83e2b0c52857f61886cead - F src/test2.c 5586f43fcd9a1be0830793cf9d354082c261b25b - F src/test3.c a8887dabbbee3059af338f20d290084a63ed1b0f - F src/test4.c d168f83cc78d02e8d35567bb5630e40dcd85ac1e - F src/test5.c 5a34feec76d9b3a86aab30fd4f6cc9c48cbab4c1 - F src/test6.c 41cacf3b0dd180823919bf9e1fbab287c9266723 - F src/test7.c 9c89a4f1ed6bb13af0ed805b8d782bd83fcd57e3 - F src/test8.c fa262391d3edea6490a71bfaa8fed477ccbbac75 - F src/test9.c bea1e8cf52aa93695487badedd6e1886c321ea60 - F src/test_async.c 21e11293a2f72080eda70e1124e9102044531cd8 - F src/test_autoext.c dea8a01a7153b9adc97bd26161e4226329546e12 - F src/test_backup.c 2e6e6a081870150f20c526a2e9d0d29cda47d803 - F src/test_bestindex.c 29af3cc3b963ffe5760c85d142b9b3e5302c1e3d - F src/test_blob.c b2551a9b5573232db5f66f292307c37067937239 - F src/test_btree.c 2e9978eca99a9a4bfa8cae949efb00886860a64f - F src/test_config.c 0dee90328e3dedf8ba002ee94b6a7e7ea7726fe4 - F src/test_demovfs.c 0de72c2c89551629f58486fde5734b7d90758852 - F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc - F src/test_fs.c f10f840ca4f8c72e4837908bd8347ac4bcab074b - F src/test_func.c 37453d346cfcf118774efd5bf6187f7e6a7e3254 - F src/test_hexio.c abfdecb6fa58c354623978efceb088ca18e379cd - F src/test_init.c 66b33120ffe9cd853b5a905ec850d51151337b32 - F src/test_intarray.c 870124b95ec4c645d4eb84f15efb7133528fb1a5 - F src/test_intarray.h 9dc57417fb65bc7835cc18548852cc08cc062202 - F src/test_journal.c 5360fbe1d1e4416ca36290562fd5a2e3f70f32aa + F src/sqlite3ext.h 58fd0676d3111d02e62e5a35992a7d3da5d3f88753acc174f2d37b774fbbdd28 -F src/sqliteInt.h a530e5baf5e559154d5c2e5cc57471bc780a7af4cd0a5d72750b1d850fef1e22 ++F src/sqliteInt.h 22a0a101c51a0fae4156088f7c613b99a73d20ba6153a1400d1ae3011cf1082c + F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b + F src/status.c a9e66593dfb28a9e746cba7153f84d49c1ddc4b1 + F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34 + F src/tclsqlite.c 6c2151b6d8d98e183a04466d40df8889c0574d79 + F src/test1.c 8a98191a1da8e100f77cdb5cc716df67d405028d + F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5 + F src/test3.c d03f5b5da9a2410b7a91c64b0d3306ed28ab6fee + F src/test4.c 18ec393bb4d0ad1de729f0b94da7267270f3d8e6 + F src/test5.c 328aae2c010c57a9829d255dc099d6899311672d + F src/test6.c 004ad42f121f693b8cbe060d1a330678abc61620 + F src/test7.c 5612e9aecf934d6df7bba6ce861fdf5ba5456010 + F src/test8.c 4f4904721167b32f7a4fa8c7b32a07a673d6cc86 + F src/test9.c 12e5ba554d2d1cbe0158f6ab3f7ffcd7a86ee4e5 + F src/test_async.c 195ab49da082053fdb0f949c114b806a49ca770a + F src/test_autoext.c 915d245e736652a219a907909bb6710f0d587871 + F src/test_backup.c bf5da90c9926df0a4b941f2d92825a01bbe090a0 + F src/test_bestindex.c d23f80d334c59662af69191854c76b8d3d0c8c96 + F src/test_blob.c f65ac717da2618691cf9dad094e6da0219dcd208 + F src/test_btree.c 8b2dc8b8848cf3a4db93f11578f075e82252a274 + F src/test_config.c edcba290248dc18736dd814c9b95863c6762e0b35753048d8cbe5bf65f7abfbb + F src/test_delete.c af7eab5702f853fb1c62a5f7665e2234cf1ae17b + F src/test_demovfs.c a0c3bdd45ed044115c2c9f7779e56eafff18741e + F src/test_devsym.c 4e58dec2602d8e139ca08659f62a62450587cb58 + F src/test_fs.c e16cbe68d3b107e00a907c20a9a02629870eb69b + F src/test_func.c a4fdab3363b436c1b12660e9362ce3f3782b7b5e + F src/test_hexio.c 1d4469ca61ab202a1fcec6543f584d2407205e8d + F src/test_init.c 4413c211a94b62157ca4c145b3f27c497f03c664 + F src/test_intarray.c 988fc61cb0ff539f4172c0d95f15287c92516f64 + F src/test_intarray.h f3b7672f5d1056eac563c0d6ea8480a660b1475c + F src/test_journal.c 619f2aa10e0d7a5f87c0f06825bc61dfce1c6b9c7f3ad990fb13de6c3b8874a3 F src/test_loadext.c 337056bae59f80b9eb00ba82088b39d0f4fe6dfd - F src/test_malloc.c 96df9381a1ff1f6d3805ff7231b9baf1386aaabf - F src/test_multiplex.c 6a088d8d9d4aad4bec45dd8878af11b15900702d - F src/test_multiplex.h c08e4e8f8651f0c5e0509b138ff4d5b43ed1f5d3 - F src/test_mutex.c dbdfaff8580071f2212a0deae3325a93a737819c - F src/test_onefile.c 38f7cbe79d5bafe95bde683cc3a53b8ca16daf10 - F src/test_osinst.c 5423dc1d355f594371f27dd292ca54bd320b8196 + F src/test_malloc.c c05f6c40bd6c8bfe5f1718212f81fd5687f91766 + F src/test_multiplex.c e054459f7633f3ff8ce1245da724f9a8be189e4e + F src/test_multiplex.h 5436d03f2d0501d04f3ed50a75819e190495b635 + F src/test_mutex.c 7f4337ba23ee6b1d2ec81c189653608cb069926a + F src/test_onefile.c 416f87a28d6d673352d33fc4b1c7d39db878e50f + F src/test_osinst.c 98ef31ff03d55497829ca0f6c74a9f4e1aa48690 F src/test_pcache.c a5cd24730cb43c5b18629043314548c9169abb00 - F src/test_quota.c 180813f43683be5725458fc1ff13ac455d8e722d + F src/test_quota.c 6cb9297115b551f433a9ad1741817a9831abed99 F src/test_quota.h 2a8ad1952d1d2ca9af0ce0465e56e6c023b5e15d - F src/test_rtree.c 43fff4c5a01576d6d213f27472598801a247890c - F src/test_schema.c 2bdba21b82f601da69793e1f1d11bf481a79b091 + F src/test_rtree.c 671f3fae50ff116ef2e32a3bf1fe21b5615b4b7b + F src/test_schema.c f575932cb6274d12147a77e13ea4b49d52408513 F src/test_server.c a2615049954cbb9cfb4a62e18e2f0616e4dc38fe - F src/test_sqllog.c 0d138a8180a312bf996b37fa66da5c5799d4d57b - F src/test_superlock.c 06797157176eb7085027d9dd278c0d7a105e3ec9 - F src/test_syscall.c 2e21ca7f7dc54a028f1967b63f1e76155c356f9b - F src/test_tclvar.c d86412527da65468ee6fa1b8607c65d0af736bc4 - F src/test_thread.c af391ec03d23486dffbcc250b7e58e073f172af9 - F src/test_vfs.c 3b65d42e18b262805716bd96178c81da8f2d9283 + F src/test_sqllog.c 11e6ce7575f489155c604ac4b439f2ac1d3d5aef + F src/test_superlock.c 4839644b9201da822f181c5bc406c0b2385f672e + F src/test_syscall.c 1073306ba2e9bfc886771871a13d3de281ed3939 + F src/test_tclvar.c df9fe1213c2634687a9ca0b0bec0d2119d359ae3 + F src/test_thread.c 911d15fb14e19c0c542bdc8aabf981c2f10a4858 + F src/test_vfs.c f0186261a24de2671d080bcd8050732f0cb64f6e F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698 - F src/test_windirent.c 8f5fada630348558d5745b334702f301da1ffc61 - F src/test_windirent.h b12055cab6227f7be10f5c19296f67c60cc5e2a5 + F src/test_windirent.c 17f91f5f2aa1bb7328abb49414c363b5d2a9d3ff + F src/test_windirent.h 5d67483a55442e31e1bde0f4a230e6e932ad5906 F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9 F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c - F src/tokenize.c 3d338cdd00d916ce8a05c397001d64ed58e6fe1c - F src/treeview.c e4b41a37530a191579d3c53142cc44ee2eb99373 - F src/trigger.c e14840ee0c3e549e758ec9bf3e4146e166002280 - F src/update.c 56b3db7edff0110360a12b76af97c39ebe3ea8b8 + F src/tokenize.c de2ec4fed5aa9770791be7528a08597a77a36b2ffbbeb0c2cb6951e80357730b + F src/treeview.c 84d0ac737e1231702679f0289180021e19c5cc186ec413e8dcb704a887c76ec8 + F src/trigger.c c9f0810043b265724fdb1bdd466894f984dfc182 + F src/update.c 456d4a4656f8a03c2abc88a51b19172197400e58 F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c - F src/util.c 34ef7be420f82415ec48131404995ddb6ee7502f - 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/vdbesort.c 307460bfa4de4d1c3901fcd42089159131e34062 - F src/vdbetrace.c f75c5455d8cf389ef86a8bfdfd3177e0e3692484 - F src/vtab.c fd69fd398e23e57ea4ea377d8a44b6998fc569c7 + F src/util.c ca8440ede81e155d15cff7c101654f60b55a9ae6 + F src/vacuum.c 1fe4555cd8c9b263afb85b5b4ee3a4a4181ad569 + F src/vdbe.c f1acf5744cef62cbfd0b503d84289f840b6cdc980ac47b0d9632dfdb89cc79eb + F src/vdbe.h caa5346d52bae2a3c8c1dcfa60a7a4dc878a9e3865cb8239da55808b316c8158 + F src/vdbeInt.h 5db089ce18c4feff8820ec6e4cac2d2c82e03d4b1d96f10a6e43832147b8dffe + F src/vdbeapi.c 5b08d82592bcff4470601fe78aaabebd50837860 + F src/vdbeaux.c ecd0468611925d218e1eb4b3f538907904b136f0e15e333291a232b521bfcef1 + F src/vdbeblob.c 359891617358deefc85bef7bcf787fa6b77facb9 + F src/vdbemem.c 3b5a9a5b375458d3e12a50ae1aaa41eeec2175fd + F src/vdbesort.c eda25cb2d1727efca6f7862fea32b8aa33c0face + F src/vdbetrace.c 41963d5376f0349842b5fc4aaaaacd7d9cdc0834 + F src/vtab.c 007513c2ef52472fcdea6a741683d50662e82790 F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 - F src/wal.c 10deb6b43887662691e5f53d10b3c171c401169b - F src/wal.h 2f7c831cf3b071fa548bf2d5cac640846a7ff19c - F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354 - F src/where.c b8566be7e2e195053238874d4f3bc4abf9e36b40 - F src/whereInt.h 93297d56edd137b7ea004490690fb6e2ce028a34 - F src/wherecode.c 863aedf086131743763c1960637fde904eadc442 - F src/whereexpr.c fb87944b1254234e5bba671aaf6dee476241506a + F src/wal.c 40c543f0a2195d1b0dc88ef12142bea690009344 + F src/wal.h 06b2a0b599cc0f53ea97f497cf8c6b758c999f71 + F src/walker.c b71a992b413b3a022572eccf29ef4b4890223791 -F src/where.c e815093e5ee039b6b4eb19b646d22deb1a3a523f ++F src/where.c 30c790ab98b759ac3d7fa564e1321489151fac7d1587525bc5b9698394a41ecf + F src/whereInt.h 2d50c2b74a33be44cb68fdecee30b4d93552f1f4 + F src/wherecode.c 677e95413c472c0b413023b6b69a47f40fce1b04 + F src/whereexpr.c 130cdd1a43af71b19755270fb1224874cf55158c F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd + F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/aggnested.test b35b4cd69fc913f90d39a575e171e1116c3a4bb7 F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87 @@@ -1026,12 -1114,13 +1115,13 @@@ F test/sharedA.test 0cdf1a76dfa00e6beee F test/sharedB.test 16cc7178e20965d75278f410943109b77b2e645e F test/shared_err.test 2f2aee20db294b9924e81f6ccbe60f19e21e8506 F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304 - F test/shell1.test a45b424ec23a4b946848ff9e1af5186c677162ab - F test/shell2.test 12b8bf901b0e3a8ac58cf5c0c63a0a388d4d1862 - F test/shell3.test 5e8545ec72c4413a0e8d4c6be56496e3c257ca29 - F test/shell4.test f43e250139dc5dc5f0f2ec1752c50284a1ede102 - F test/shell5.test c04e9f9f948305706b88377c464c7f08ce7479f9 + F test/shell1.test 50226a3a66bbd42a902e9f7698f768927eb33a56e9cfc55b7c157c38eb3e80ac + F test/shell2.test e242a9912f44f4c23c3d1d802a83e934e84c853b + F test/shell3.test 9b95ba643eaa228376f06a898fb410ee9b6e57c1 + F test/shell4.test 89ad573879a745974ff2df20ff97c5d6ffffbd5d + F test/shell5.test 50a732c1c2158b1cd62cf53975ce1ea7ce6b9dc9 -F test/shell6.test cff624fadf71bdb5e3a9b0f86eaf59a43c0622b1 +F test/shell6.test 05c2488ff2bb11ac300b9170e8f5b6e03d58982c77035cdca5dbf036f0d3c5b7 + F test/shell7.test 07751911b294698e0c5df67bcbd29e7d2f0f2907 F test/shortread1.test bb591ef20f0fd9ed26d0d12e80eee6d7ac8897a3 F test/show_speedtest1_rtree.tcl 32e6c5f073d7426148a6936a0408f4b5b169aba5 F test/shrink.test 1b4330b1fd9e818c04726d45cb28db73087535ce @@@ -1388,38 -1494,42 +1495,43 @@@ F tool/fuzzershell.c dbf6c26eef936ec78c F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4 F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5 F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce - F tool/lemon.c 251f5c3f21b553240cbdd42dd187a51bb2372cd3 - F tool/lempar.c d5114c7d13aa3af1e27ff3d02e4dea6eadec7ddf + F tool/kvtest-speed.sh 4761a9c4b3530907562314d7757995787f7aef8f + F tool/lemon.c 5ccba178a8e8a4b21e1c9232944d23973da38ad7 + F tool/lempar.c db1bdb4821f2d8fbd76e577cf3ab18642c8d08d1 + F tool/libvers.c caafc3b689638a1d88d44bc5f526c2278760d9b9 F tool/loadfts.c c3c64e4d5e90e8ba41159232c2189dba4be7b862 - F tool/logest.c eef612f8adf4d0993dafed0416064cf50d5d33c6 + F tool/logest.c 11346aa019e2e77a00902aa7d0cabd27bd2e8cca + F tool/max-limits.c cbb635fbb37ae4d05f240bfb5b5270bb63c54439 F tool/mkautoconfamal.sh e855df211ecbcc7131dee817110ff386cfb112f7 F tool/mkkeywordhash.c f7f3b342211ac6a14258b9726d5b97cf4f548f22 - F tool/mkmsvcmin.tcl 2f12f7fa8858bbe61cf81820a2da96c79ed1ca8d + F tool/mkmsvcmin.tcl 95b37e202cbed873aa8ffdbb493b9db45927be2b F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c - F tool/mkopcodeh.tcl 385c62d78c38b2d92146dcb5abd319dbbc33506d + F tool/mkopcodeh.tcl a01d2c1d8a6205b03fc635adf3735b4c523befd3 F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e - F tool/mkpragmatab.tcl f0d5bb266d1d388cf86fce5ba01a891e95d72d41 + F tool/mkpragmatab.tcl 2ffe6d5fdc2d3381621d6c77978ba054466e757f F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97 - F tool/mksqlite3c-noext.tcl 87240b09c20042999b41d5fabe091b7111287835 - F tool/mksqlite3c.tcl 9382100c82a0a08e63265780536a6c8efead4b65 - F tool/mksqlite3h.tcl 1d41ab59bffb025121f75b76e183125ce41b3ec8 + F tool/mksqlite3c-noext.tcl fef88397668ae83166735c41af99d79f56afaabb + F tool/mksqlite3c.tcl 06b2e6a0f21cc0a5d70fbbd136b3e0a96470645e + F tool/mksqlite3h.tcl b9836752c3d08f9fab2dfc0017ca9fd5d90ac863 F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b - F tool/mkvsix.tcl 4abcaf3267171b2faadaf9b82a0dfbaa6e98f8b7 + F tool/mkvsix.tcl b9e0777a213c23156b6542842c238479e496ebf5 F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091 F tool/omittest.tcl 34d7ac01fe4fd18e3637f64abe12c40eca0f6b97 + F tool/opcodesum.tcl 740ed206ba8c5040018988129abbf3089a0ccf4a F tool/pagesig.c ff0ca355fd3c2398e933da5e22439bbff89b803b - F tool/replace.tcl 7727c60a04299b65a92f5e1590896fea0f25b9e0 + F tool/replace.tcl 60f91e8dd06ab81f74d213ecbd9c9945f32ac048 F tool/restore_jrnl.tcl 6957a34f8f1f0f8285e07536225ec3b292a9024a F tool/rollback-test.c 9fc98427d1e23e84429d7e6d07d9094fbdec65a5 - F tool/run-speed-test.sh 0ae485af4fe9f826e2b494be8c81f8ca9e222a4a + F tool/run-speed-test.sh f95d19fd669b68c4c38b6b475242841d47c66076 +F tool/schemalint.tcl 49690356702d6cac07e2bb1790eac73862e92926 - F tool/showdb.c 82dca79a999b2701c62417636345e9974151fdad + F tool/showdb.c e6bc9dba233bf1b57ca0a525a2bba762db4e223de84990739db3f09c46151b1e F tool/showjournal.c 5bad7ae8784a43d2b270d953060423b8bd480818 F tool/showlocks.c 9920bcc64f58378ff1118caead34147201f48c68 - F tool/showstat4.c bda40d6e395df7edb6e9ea630784d3d762c35b4b + F tool/showstat4.c b14159aa062f661b394ba37b6b7b94bfb8012ab9 F tool/showwal.c ec79959834f7b21f1e0a2aa52bb7c056d2203977 F tool/soak1.tcl 8d407956e1a45b485a8e072470a3e629a27037fe - F tool/spaceanal.tcl 93c1fdc9733c525b17a2024c7df193daa002e037 + F tool/spaceanal.tcl ab7d9bf68062907282a64b3e12ccbfad47193c5a + F tool/speed-check.sh 9630ba0468b609c52f48309243d4eb6e9c34deda F tool/speedtest.tcl 06c76698485ccf597b9e7dbb1ac70706eb873355 F tool/speedtest16.c ecb6542862151c3e6509bbc00509b234562ae81e F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff @@@ -1459,7 -1569,7 +1571,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 249cd361b840913794b7cd2f2d42777dcd547a60 - R b5c9ea0357d4d69dec4a40a72a5670a9 -P 9e550ccc29f317422dae3a4bb89a78b839330825fecd40a01d1a2acc719cef79 -R 288166ae6bc74f6b9a15fa169ea78182 -U drh -Z 81f3770fca5082b63e34ff795f3d141f ++P 1e3622de8b51fdb219eb1934533a95fe6dc5158f44d358bc2efdcb53a4a9fdab c8000e94cca59dabf83d6cb75b40441aaf793d29880582dc4baa17246449b5fe ++R a9131615092ed98b863a64f66624daea +U dan - Z 84e2a466cf9b475b6898bdfe1581ffe0 ++Z 924aec6608b5903c59e65e7507c45eb8 diff --cc manifest.uuid index 8cfc3a9b80,5037f50129..1b590b1f1f --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 1e3622de8b51fdb219eb1934533a95fe6dc5158f44d358bc2efdcb53a4a9fdab -c8000e94cca59dabf83d6cb75b40441aaf793d29880582dc4baa17246449b5fe ++cb721d0b36268a7b0ef493fa4d7f6bcbaa9ead8b1990e3c3fae015fa1d545226 diff --cc src/shell.c index 675e2ffd19,1236b12a0e..e51694bc76 --- a/src/shell.c +++ b/src/shell.c @@@ -143,20 -153,19 +153,20 @@@ extern LPWSTR sqlite3_win32_utf8_to_uni ** routines take care of that. */ #if defined(_WIN32) || defined(WIN32) - static void setBinaryMode(FILE *out){ - fflush(out); - _setmode(_fileno(out), _O_BINARY); + static void setBinaryMode(FILE *file, int isOutput){ + if( isOutput ) fflush(file); + _setmode(_fileno(file), _O_BINARY); } - static void setTextMode(FILE *out){ - fflush(out); - _setmode(_fileno(out), _O_TEXT); + static void setTextMode(FILE *file, int isOutput){ + if( isOutput ) fflush(file); + _setmode(_fileno(file), _O_TEXT); } #else - # define setBinaryMode(X) - # define setTextMode(X) + # define setBinaryMode(X,Y) + # define setTextMode(X,Y) #endif +#include "shell_indexes.c" /* True if the timer is enabled */ static int enableTimer = 0; @@@ -592,14 -1361,10 +1362,11 @@@ struct SavedModeInfo typedef struct ShellState ShellState; struct ShellState { sqlite3 *db; /* The database */ - int echoOn; /* True to echo input commands */ int autoExplain; /* Automatically turn on .explain mode */ int autoEQP; /* Run EXPLAIN QUERY PLAN prior to seach SQL stmt */ + int bRecommend; /* Instead of sqlite3_exec(), recommend indexes */ int statsOn; /* True to display memory stats before each finalize */ int scanstatsOn; /* True to display scan stats before each finalize */ - int countChanges; /* True to display change counts */ - int backslashOn; /* Resolve C-style \x escapes in SQL input text */ int outCount; /* Revert to stdout when reaching zero */ int cnt; /* Number of records displayed so far */ FILE *out; /* Write results here */ @@@ -1623,26 -2584,111 +2586,124 @@@ static void explain_data_delete(ShellSt p->iIndent = 0; } +typedef struct RecCommandCtx RecCommandCtx; +struct RecCommandCtx { + int (*xCallback)(void*,int,char**,char**,int*); + ShellState *pArg; +}; + +static void recCommandOut(void *pCtx, const char *zLine){ + const char *zCol = "output"; + RecCommandCtx *p = (RecCommandCtx*)pCtx; + int t = SQLITE_TEXT; + p->xCallback(p->pArg, 1, (char**)&zLine, (char**)&zCol, &t); +} + /* - ** Execute a statement or set of statements. Print - ** any result rows/columns depending on the current mode + ** Disable and restore .wheretrace and .selecttrace settings. + */ + #if defined(SQLITE_DEBUG) && defined(SQLITE_ENABLE_SELECTTRACE) + extern int sqlite3SelectTrace; + static int savedSelectTrace; + #endif + #if defined(SQLITE_DEBUG) && defined(SQLITE_ENABLE_WHERETRACE) + extern int sqlite3WhereTrace; + static int savedWhereTrace; + #endif + static void disable_debug_trace_modes(void){ + #if defined(SQLITE_DEBUG) && defined(SQLITE_ENABLE_SELECTTRACE) + savedSelectTrace = sqlite3SelectTrace; + sqlite3SelectTrace = 0; + #endif + #if defined(SQLITE_DEBUG) && defined(SQLITE_ENABLE_WHERETRACE) + savedWhereTrace = sqlite3WhereTrace; + sqlite3WhereTrace = 0; + #endif + } + static void restore_debug_trace_modes(void){ + #if defined(SQLITE_DEBUG) && defined(SQLITE_ENABLE_SELECTTRACE) + sqlite3SelectTrace = savedSelectTrace; + #endif + #if defined(SQLITE_DEBUG) && defined(SQLITE_ENABLE_WHERETRACE) + sqlite3WhereTrace = savedWhereTrace; + #endif + } + + /* + ** Run a prepared statement + */ + static void exec_prepared_stmt( + ShellState *pArg, /* Pointer to ShellState */ + sqlite3_stmt *pStmt, /* Statment to run */ + int (*xCallback)(void*,int,char**,char**,int*) /* Callback function */ + ){ + int rc; + + /* perform the first step. this will tell us if we + ** have a result set or not and how wide it is. + */ + rc = sqlite3_step(pStmt); + /* if we have a result set... */ + if( SQLITE_ROW == rc ){ + /* if we have a callback... */ + if( xCallback ){ + /* allocate space for col name ptr, value ptr, and type */ + int nCol = sqlite3_column_count(pStmt); + void *pData = sqlite3_malloc64(3*nCol*sizeof(const char*) + 1); + if( !pData ){ + rc = SQLITE_NOMEM; + }else{ + char **azCols = (char **)pData; /* Names of result columns */ + char **azVals = &azCols[nCol]; /* Results */ + int *aiTypes = (int *)&azVals[nCol]; /* Result types */ + int i, x; + assert(sizeof(int) <= sizeof(char *)); + /* save off ptrs to column names */ + for(i=0; icMode==MODE_Insert ){ + azVals[i] = ""; + }else{ + azVals[i] = (char*)sqlite3_column_text(pStmt, i); + } + if( !azVals[i] && (aiTypes[i]!=SQLITE_NULL) ){ + rc = SQLITE_NOMEM; + break; /* from for */ + } + } /* end for */ + + /* if data and types extracted successfully... */ + if( SQLITE_ROW == rc ){ + /* call the supplied callback with the result row data */ + if( xCallback(pArg, nCol, azVals, azCols, aiTypes) ){ + rc = SQLITE_ABORT; + }else{ + rc = sqlite3_step(pStmt); + } + } + } while( SQLITE_ROW == rc ); + sqlite3_free(pData); + } + }else{ + do{ + rc = sqlite3_step(pStmt); + } while( rc == SQLITE_ROW ); + } + } + } + + /* + ** Execute a statement or set of statements. Print + ** any result rows/columns depending on the current mode ** set via the supplied callback. ** - ** This is very similar to SQLite's built-in sqlite3_exec() - ** function except it takes a slightly different callback + ** This is very similar to SQLite's built-in sqlite3_exec() + ** function except it takes a slightly different callback ** and callback data argument. */ static int shell_exec( @@@ -1662,14 -2708,8 +2723,15 @@@ *pzErrMsg = NULL; } + if( pArg->bRecommend ){ + RecCommandCtx ctx; + ctx.xCallback = xCallback; + ctx.pArg = pArg; + rc = shellIndexesCommand(db, zSql, recCommandOut, &ctx, pzErrMsg); + }else + while( zSql[0] && (SQLITE_OK == rc) ){ + static const char *zStmtSql; rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, &zLeftover); if( SQLITE_OK != rc ){ if( pzErrMsg ){ diff --cc src/sqlite.h.in index 960925ff62,97294c3f81..f3067b64eb --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@@ -1938,16 -2014,9 +2014,19 @@@ struct sqlite3_mem_methods #define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */ #define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */ #define SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1004 /* int int* */ - #define SQLITE_DBCONFIG_WHEREINFO 1004 /* xWhereInfo void* */ + #define SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION 1005 /* int int* */ + #define SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE 1006 /* int int* */ + ++#define SQLITE_DBCONFIG_WHEREINFO 1007 /* xWhereInfo void* */ + +#define SQLITE_WHEREINFO_TABLE 1 +#define SQLITE_WHEREINFO_EQUALS 2 +#define SQLITE_WHEREINFO_RANGE 3 +#define SQLITE_WHEREINFO_ORDERBY 4 +#define SQLITE_WHEREINFO_BEGINOR 5 +#define SQLITE_WHEREINFO_ENDOR 6 +#define SQLITE_WHEREINFO_NEXTOR 7 + /* ** CAPI3REF: Enable Or Disable Extended Result Codes