From: drh Date: Sat, 4 Jul 2020 20:29:56 +0000 (+0000) Subject: Fix the table_info pragma so that it always checks the schema version and X-Git-Tag: version-3.33.0~71 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a78d2c052837f9eac464c175a8924fbe173f7643;p=thirdparty%2Fsqlite.git Fix the table_info pragma so that it always checks the schema version and reprepares, even if it is a no-op. FossilOrigin-Name: 6da77973abc325ae8baf64615267a614a0b8bb8dfd0a01a9f7d6c3a8f359564f --- diff --git a/manifest b/manifest index e83f457708..dcc05a423a 100644 --- a/manifest +++ b/manifest @@ -1,6 +1,6 @@ B 7a876209a678a34c198b54ceef9e3c041f128a14dc73357f6a57cadadaa6cf7b -C Fix\sthe\sline-number\sof\serror\smessages\scoming\sout\sof\sthe\s".import"\scommand\nwhen\sthe\s--skip\soption\sis\sused. -D 2020-07-03T21:24:42.768 +C Fix\sthe\stable_info\spragma\sso\sthat\sit\salways\schecks\sthe\sschema\sversion\sand\nreprepares,\seven\sif\sit\sis\sa\sno-op. +D 2020-07-04T20:29:56.015 F Makefile.in 19374a5db06c3199ec1bab71ab74a103d8abf21053c05e9389255dc58083f806 F Makefile.msc 48f5a3fc32672c09ad73795749f6253e406a31526935fbbffd8f021108d54574 F autoconf/Makefile.am a8d1d24affe52ebf8d7ddcf91aa973fa0316618ab95bb68c87cabf8faf527dc8 @@ -16,7 +16,7 @@ F src/btreeInt.h 19267385aa3bc00067d48e0e4ba83ae82dc08b0c15a3b3df20ea653cb462b5b F src/build.c ba1bbe563a3dc02d5fed20537603181e5289c13ea30ae5e775f552e7557adbfa F src/expr.c a3ab84399b3415f66d2d0c25f5bcd98ef465c0c07ea1f19bf2a418b1c8fcad74 F src/parse.y b6b4b02f8cc8f94ac1d93a922543e0344dbb30b04877898736c01ec7ec03eaaa -F src/pragma.c 1c6a435c92e913a65be9875c14bd2976fa1bf05b76a54785378c32b04fa34a00 +F src/pragma.c ae499b5ab8f4e833f67e28bf2322500e9aa612aadf12581d1324333f848d8b51 F src/pragma.h 8dc78ab7e9ec6ce3ded8332810a2066f1ef6267e2e03cd7356ee00276125c6cf F src/resolve.c 79cee37182fea66703f90365b8b0a646ed7e9bfa9238b91fa90dfc74258b940e F src/select.c 860daa05592ed1b38f6266f067fa020b539548ab929aa60fa59e7681e7f3f8cb @@ -43,7 +43,7 @@ F tool/mksqlite3c.tcl f4ef476510eca4124c874a72029f1e01bc54a896b1724e8f9eef0d8bfa F tool/mksqlite3h.tcl 1f5e4a1dbbbc43c83cc6e74fe32c6c620502240b66c7c0f33a51378e78fc4edf F tool/showlocks.c 9cc5e66d4ebbf2d194f39db2527ece92077e86ae627ddd233ee48e16e8142564 F tool/speed-check.sh 615cbdf50f1409ef3bbf9f682e396df80f49d97ed93ed3e61c8e91fae6afde58 -P b27bb4fe389e12472a6144441df2dca6a7393024f2621fd22dd1a2b4033c46ec -R 4597e3b583090ca1d9f8e80cad1c285d +P e0a8b11dfd6b3ab89ae5032d60cf3c1bba7198a1a2debe5c691b5d1f2e1befee +R cb5f54709308b35a9f476c3b77f8d5e6 U drh -Z 073bca9c798500a057b61d811672f64a +Z 33f477ab518aaa9913eb2bfe5c1ccb78 diff --git a/manifest.uuid b/manifest.uuid index a09b7a4ad3..cd2f2291e4 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e0a8b11dfd6b3ab89ae5032d60cf3c1bba7198a1a2debe5c691b5d1f2e1befee \ No newline at end of file +6da77973abc325ae8baf64615267a614a0b8bb8dfd0a01a9f7d6c3a8f359564f \ No newline at end of file diff --git a/src/pragma.c b/src/pragma.c index 5d1050fffe..fa4ef748cf 100644 --- a/src/pragma.c +++ b/src/pragma.c @@ -1138,15 +1138,14 @@ void sqlite3Pragma( */ case PragTyp_TABLE_INFO: if( zRight ){ Table *pTab; + sqlite3CodeVerifyNamedSchema(pParse, zDb); pTab = sqlite3LocateTable(pParse, LOCATE_NOERR, zRight, zDb); if( pTab ){ - int iTabDb = sqlite3SchemaToIndex(db, pTab->pSchema); int i, k; int nHidden = 0; Column *pCol; Index *pPk = sqlite3PrimaryKeyIndex(pTab); pParse->nMem = 7; - sqlite3CodeVerifySchema(pParse, iTabDb); sqlite3ViewGetColumnNames(pParse, pTab); for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){ int isHidden = 0;