diff --git a/manifest b/manifest index 420fc4058d..1f4c33857e 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Updated\scomments.\s\sNo\scode\schanges. -D 2017-02-18T22:52:40.654 +C Merge\sfixes\sfrom\strunk. +D 2017-02-20T13:11:07.110 F Makefile.in edb6bcdd37748d2b1c3422ff727c748df7ffe918 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc a89ea37ab5928026001569f056973b9059492fe2 @@ -395,7 +395,7 @@ F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 F src/resolve.c f9bc0de45a30a450da47b3766de00be89bf9be79 F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac F src/select.c d12f3539f80db38b09015561b569e0eb1c4b6c5f -F src/shell.c bb8e20789499aec921a01d8744c616b81b8214f1 +F src/shell.c bf976d5301be9d8a4c52852c97909cc9a41ee20d F src/sqlite.h.in 751ff125eb159c8f92c182b8df980a5e4f50e966 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h 8648034aa702469afb553231677306cc6492a1ae @@ -460,7 +460,7 @@ F src/trigger.c c9f0810043b265724fdb1bdd466894f984dfc182 F src/update.c 456d4a4656f8a03c2abc88a51b19172197400e58 F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c F src/util.c ca8440ede81e155d15cff7c101654f60b55a9ae6 -F src/vacuum.c 33c174b28886b2faf26e503b5a49a1c01a9b1c16 +F src/vacuum.c 1fe4555cd8c9b263afb85b5b4ee3a4a4181ad569 F src/vdbe.c 02f9db522c73ba4e1743585e9fd6f8ac6c71515b F src/vdbe.h 59998ffd71d7caa8886bc78dafaf8caeccd4c13c F src/vdbeInt.h 4e4b15b2e1330e1636e4e01974eab2b0b985092f @@ -1557,7 +1557,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P d386015f5e7ecdd951d70db56b7bbd858be7ad90 -R bb5056af5425096e2e052e924ae83b2e +P e842ad391e62df273a5b1ed569d42ea46d03a99b 491814272dce7e937b4734fcbc2ad69e12377b56 +R 9def7926ef27f77a7e1d535aaff2eb82 U drh -Z a573182d78be17d037798d5840f110fc +Z ee1e0d41251dc153fd55728fd5740a3d diff --git a/manifest.uuid b/manifest.uuid index d08504dc8d..969c5d24f3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e842ad391e62df273a5b1ed569d42ea46d03a99b \ No newline at end of file +ff213f2ef5bf96754a2264685d25546d8b5ccf0a \ No newline at end of file diff --git a/src/shell.c b/src/shell.c index fbbbea9d79..f1c7f3c157 100644 --- a/src/shell.c +++ b/src/shell.c @@ -5192,6 +5192,7 @@ static int do_meta_command(char *zLine, ShellState *p){ } } }else +#endif /* !defined(SQLITE_UNTESTABLE) */ if( c=='t' && n>4 && strncmp(azArg[0], "timeout", n)==0 ){ open_db(p, 0); @@ -5228,7 +5229,6 @@ static int do_meta_command(char *zLine, ShellState *p){ } #endif }else -#endif /* !defined(SQLITE_UNTESTABLE) */ #if SQLITE_USER_AUTHENTICATION if( c=='u' && strncmp(azArg[0], "user", n)==0 ){ diff --git a/src/vacuum.c b/src/vacuum.c index 25b1258510..9e471b8d9c 100644 --- a/src/vacuum.c +++ b/src/vacuum.c @@ -98,8 +98,25 @@ static int execSqlF(sqlite3 *db, char **pzErrMsg, const char *zSql, ...){ */ void sqlite3Vacuum(Parse *pParse, Token *pNm){ Vdbe *v = sqlite3GetVdbe(pParse); - int iDb = pNm ? sqlite3TwoPartName(pParse, pNm, pNm, &pNm) : 0; - if( v && (iDb>=2 || iDb==0) ){ + int iDb = 0; + if( v==0 ) return; + if( pNm ){ +#ifndef SQLITE_BUG_COMPATIBLE_20160819 + /* Default behavior: Report an error if the argument to VACUUM is + ** not recognized */ + iDb = sqlite3TwoPartName(pParse, pNm, pNm, &pNm); + if( iDb<0 ) return; +#else + /* When SQLITE_BUG_COMPATIBLE_20160819 is defined, unrecognized arguments + ** to VACUUM are silently ignored. This is a back-out of a bug fix that + ** occurred on 2016-08-19 (https://www.sqlite.org/src/info/083f9e6270). + ** The buggy behavior is required for binary compatibility with some + ** legacy applications. */ + iDb = sqlite3FindDb(pParse->db, pNm); + if( iDb<0 ) iDb = 0; +#endif + } + if( iDb!=1 ){ sqlite3VdbeAddOp1(v, OP_Vacuum, iDb); sqlite3VdbeUsesBtree(v, iDb); }