From: drh Date: Tue, 5 Jun 2012 19:20:03 +0000 (+0000) Subject: Merge the latest trunk changes into shared-schema branch. Also fix a C99-ism X-Git-Tag: version-3.7.13~14^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bae591a960643d2e3b34157065734b8d78eff657;p=thirdparty%2Fsqlite.git Merge the latest trunk changes into shared-schema branch. Also fix a C99-ism in that branch. FossilOrigin-Name: 42338e9e6979bb497823527f8f39e96f63623c59 --- bae591a960643d2e3b34157065734b8d78eff657 diff --cc manifest index 5ee9da6342,604ec87337..8dd687ea56 --- a/manifest +++ b/manifest @@@ -1,12 -1,12 +1,12 @@@ - C Return\sSQLITE_MISUSE\sif\san\sapplication\sattempts\sto\sregister\sa\svirtual\stable\smodule\swith\sthe\ssame\sname\sas\san\sexisting\smodule. - D 2012-05-16T14:29:11.421 -C Add\ssqlite3_quota_ferror()\sand\ssqlite3_quota_file_available()\sinterfaces\sto\ntest_quota.c.\s\sChange\ssqlite3_quota_fwrite()\sto\suse\sa\sconst\sinput\sbuffer. -D 2012-06-05T13:56:15.352 ++C Merge\sthe\slatest\strunk\schanges\sinto\sshared-schema\sbranch.\s\sAlso\sfix\sa\sC99-ism\s\nin\sthat\sbranch. ++D 2012-06-05T19:20:03.039 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f - F Makefile.in 2f37e468503dbe79d35c9f6dffcf3fae1ae9ec20 + F Makefile.in 4f37eb61be9d38643cdd839a74b8e3bad724cfcf F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 - F Makefile.msc 7849a871b6cdb20fd51baee6bbe5965a03326be4 + F Makefile.msc 0891f992d012d6b2976f86e80a82ae6839fa9ded F Makefile.vxworks 3b7fe7a0571fdadc61363ebc1b23732d2d6363ca F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6 - F VERSION f9313d88cb77df8617059a88eb382291321ef6bc + F VERSION 3e857b9b826e818eec9411eafe2c3fa22c1dbb8a F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 F addopcodes.awk 17dc593f791f874d2c23a0f9360850ded0286531 F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 @@@ -113,15 -118,15 +118,15 @@@ F sqlite3.1 6be1ad09113570e1fc8dcaff84c F sqlite3.pc.in ae6f59a76e862f5c561eb32a380228a02afc3cad F src/alter.c 149cc80d9257971b0bff34e58fb2263e01998289 F src/analyze.c 70c46504c0d2543ea5cdca01140b2cd3e1d886e7 -F src/attach.c 12c6957996908edc31c96d7c68d4942c2474405f +F src/attach.c 577bf5675b0c50495fc28549f2fcbdb1bac71143 F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34 -F src/backup.c 6be23a344d3301ae38e92fddb3a33b91c309fce4 +F src/backup.c d7fb4c6d2ad3fe51a4ce1a897fde7b00f4de5fef F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7 - F src/btree.c df800f10896bc2ddaa1125c532d6e7a7b9efc532 + F src/btree.c f0b71054103cb77eb5e782088c16998ec4f06624 F src/btree.h 48a013f8964f12d944d90e4700df47b72dd6d923 F src/btreeInt.h 38a639c0542c29fe8331a221c4aed0cb8686249e - F src/build.c 6da3a261958d79805df198808b35209e93acf52d -F src/build.c 2bb2163bb1e69f59e9f36a9413079ead42fa1d2c ++F src/build.c 178b24b35ada3688aa63d04cd6a2f972cb481aea F src/callback.c 0cb4228cdcd827dcc5def98fb099edcc9142dbcd F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac F src/ctime.c a9c26822515f81ec21588cbb482ca6724be02e33 @@@ -140,8 -145,8 +145,8 @@@ F src/journal.c 552839e54d1bf76fb8f7abe F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f F src/lempar.c 0ee69fca0be54cd93939df98d2aca4ca46f44416 F src/loadext.c f20382fbaeec832438a1ba7797bee3d3c8a6d51d - F src/main.c 48f47554ccedb2e800aa8f5fb316835a584f709f - F src/malloc.c 15afac5e59b6584efe072e9933aefb4230e74f97 -F src/main.c fdd95737fe28db3ad2b740c8a134b40592c6b20a ++F src/main.c 41bfe7e14319b44f6322332bce2b48599e524f75 + F src/malloc.c fe085aa851b666b7c375c1ff957643dc20a04bf6 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c b3677415e69603d6a0e7c5410a1b3731d55beda1 F src/mem2.c e307323e86b5da1853d7111b68fd6b84ad6f09cf @@@ -167,17 -172,17 +172,17 @@@ F src/parse.y f29df90bd3adc64b33114ab1d F src/pcache.c f8043b433a57aba85384a531e3937a804432a346 F src/pcache.h 1b5dcc3dc8103d03e625b177023ee67764fa6b7c F src/pcache1.c b30b1c35908346ecc43d8d9d17f2ddf6817f8f60 -F src/pragma.c e708b3bb5704605816f617e0b1d63a5488060715 -F src/prepare.c 9a00a9612ebf80203fbb41f8a29ab8cb27a05f40 +F src/pragma.c 28d7955a9e9a27d41cb462690228d39e3cec231c +F src/prepare.c ef197444dac110ee57a5f49745368b447a8c6bd1 F src/printf.c 7ffb4ebb8b341f67e049695ba031da717b3d2699 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50 - F src/resolve.c 748e75299faff345f34f0e5bd02a2bac8aa69fcd + F src/resolve.c b3c70ab28cac60de33684c9aa9e5138dcf71d6dd F src/rowset.c f6a49f3e9579428024662f6e2931832511f831a1 - F src/select.c d7b9018b7dd2e821183d69477ab55c39b8272335 - F src/shell.c 04399b2f9942bd02ed5ffee3b84bcdb39c52a1e6 - F src/sqlite.h.in 4f4d4792f6fb00387c877af013cb09d955643f12 + F src/select.c f6c4833c4d8e94714761d99013d74f381e084f1d + F src/shell.c c16f72e34f611f060546709564c121a67cb2b31b + F src/sqlite.h.in 922d2907cc2b0177b2c4a3b462f04937750d6edd F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477 - F src/sqliteInt.h 05b22e581622128168d786a7c852d1763dd45559 -F src/sqliteInt.h 64cffc7ff43725ade0cdfdbab0ef6a56ef3b682f ++F src/sqliteInt.h 29b5348f0056d9b46d0bb94d4853db21568afde9 F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d F src/status.c 35939e7e03abf1b7577ce311f48f682c40de3208 F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e @@@ -233,8 -238,8 +238,8 @@@ F src/trigger.c ee7e178fb9188f44b532ceb F src/update.c d3076782c887c10e882996550345da9c4c9f9dea F src/utf.c 890c67dcfcc7a74623c95baac7535aadfe265e84 F src/util.c 4f6cfad661b2e3454b0cdd5b1b9d39a54942d0e3 -F src/vacuum.c bfd53f9bd20a8fdb70b0fa8e77182b866875c0d8 -F src/vdbe.c b6cb2ac43263843a5612892c0ad2309609b32c26 +F src/vacuum.c 587a52bb8833d7ac15af8916f25437e2575028bd - F src/vdbe.c 6ed3e89957a0dd55e9c4ab7842949051ba8eaaa9 ++F src/vdbe.c 76ae5ef2a0227681c3808ce20fe2d8b194bac634 F src/vdbe.h 18f581cac1f4339ec3299f3e0cc6e11aec654cdb F src/vdbeInt.h 6ff4180a05683566a8835d12f7ec504b22932c82 F src/vdbeapi.c 3662b6a468a2a4605a15dfab313baa6dff81ad91 @@@ -242,8 -247,8 +247,8 @@@ F src/vdbeaux.c d52c8a424fdd4b1d5cf1ac9 F src/vdbeblob.c 32f2a4899d67f69634ea4dd93e3f651936d732cb F src/vdbemem.c cb55e84b8e2c15704968ee05f0fae25883299b74 F src/vdbesort.c b25814d385895544ebc8118245c8311ded7f81c9 - F src/vdbetrace.c d6e50e04e1ec498150e519058f617d91b8f5c843 + F src/vdbetrace.c 79059ebd17b3c8545fab2a24253713e77e4ab392 -F src/vtab.c ae657b1c22cff43863458e768a44f915c07bc0e4 +F src/vtab.c bb8ea3a26608bb1357538a5d2fc72beba6638998 F src/wal.c 7bb3ad807afc7973406c805d5157ec7a2f65e146 F src/wal.h 29c197540b19044e6cd73487017e5e47a1d3dac6 F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f @@@ -688,10 -695,9 +695,10 @@@ F test/shared3.test ebf77f023f4bdaa8f74 F test/shared4.test 72d90821e8d2fc918a08f16d32880868d8ee8e9d F test/shared6.test 866bb4982c45ce216c61ded5e8fde4e7e2f3ffa9 F test/shared7.test 960760bc8d03e1419e70dea69cf41db62853616e +F test/shared8.test b27befbefbe7f4517f1d6b7ff8f64a41ec74165d F test/shared_err.test 91e26ec4f3fbe07951967955585137e2f18993de F test/sharedlock.test ffa0a3c4ac192145b310f1254f8afca4d553eabf - F test/shell1.test cd9f846702d1d471225a988fee590a153be8192c + F test/shell1.test 6e3013bc50e2b73f00d17e491f776decc82a71c8 F test/shell2.test 037d6ad16e873354195d30bb2dc4b5321788154a F test/shell3.test 9196c42772d575685e722c92b4b39053c6ebba59 F test/shell4.test aa4eef8118b412d1a01477a53426ece169ea86a9 @@@ -998,7 -1004,7 +1005,7 @@@ F tool/tostr.awk e75472c2f98dd76e06b8c9 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/warnings-clang.sh a8a0a3babda96dfb1ff51adda3cbbf3dfb7266c2 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 - P 5587c73badc07d3e01a7c5c5964e178b5112dd24 - R c4833805a7760d62c8726aeccbf50a1f - U dan - Z 29dbe9b5d386a5757fe1ec7bc83d13ea -P 70c419a434be77b042a23174483d6a411899eb5d -R 6f34bdd03e1922ea3b6cb56fd9309a2c ++P ea2cd55e098b21cd8997fd6c1978131d3ef2fab4 61669c95859e187618fb2fb4249306a947ae8d26 ++R fc7cb647ad4d37ffcdbbdbe50e659acc + U drh -Z 1b017ff1370375c5086bff54a1d45078 ++Z 0c46cbc562d7f9db30fca97ff8d69c33 diff --cc manifest.uuid index aad61d8e81,9d397b734f..7d57948980 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - ea2cd55e098b21cd8997fd6c1978131d3ef2fab4 -61669c95859e187618fb2fb4249306a947ae8d26 ++42338e9e6979bb497823527f8f39e96f63623c59 diff --cc src/build.c index 3eefac9391,31190f6fe7..7938343e81 --- a/src/build.c +++ b/src/build.c @@@ -424,50 -467,6 +424,51 @@@ void sqlite3CollapseDatabaseArray(sqlit } } +/* +** Reset the schema for the database at index iDb. Also reset the +** TEMP schema. +*/ +void sqlite3ResetOneSchema(sqlite3 *db, int iDb){ ++ Db *pDb; + assert( iDbnDb ); + + /* Case 1: Reset the single schema identified by iDb */ - Db *pDb = &db->aDb[iDb]; ++ pDb = &db->aDb[iDb]; + assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); + assert( pDb->pSchema!=0 ); + sqlite3SchemaClear(pDb->pSchema); + + /* If any database other than TEMP is reset, then also reset TEMP + ** since TEMP might be holding triggers that reference tables in the + ** other database. + */ + if( iDb!=1 ){ + pDb = &db->aDb[1]; + assert( pDb->pSchema!=0 ); + sqlite3SchemaClear(pDb->pSchema); + } + return; +} + +/* +** Erase all schema information from all attached databases (including +** "main" and "temp") for a single database connection. +*/ +void sqlite3ResetAllSchemasOfConnection(sqlite3 *db){ + int i; + sqlite3BtreeEnterAll(db); + for(i=0; inDb; i++){ + Db *pDb = &db->aDb[i]; + if( pDb->pSchema ){ + sqlite3SchemaClear(pDb->pSchema); + } + } + db->flags &= ~SQLITE_InternChanges; + sqlite3VtabUnlockList(db); + sqlite3BtreeLeaveAll(db); + sqlite3CollapseDatabaseArray(db); +} + /* ** This routine is called when a commit occurs. */