From: dan Date: Mon, 12 Oct 2020 15:27:50 +0000 (+0000) Subject: Fix ALTER TABLE so that it can run even if the schema contains unknown collation... X-Git-Tag: version-3.34.0~63 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=936a30598e9d7929c8fb3ef2ee6a7f4511d4c46b;p=thirdparty%2Fsqlite.git Fix ALTER TABLE so that it can run even if the schema contains unknown collation sequences. FossilOrigin-Name: bc4bb9433fed519386511796cce475d74100b8ed707cdbffd8cbdf683b0faf35 --- diff --git a/manifest b/manifest index 8ea07366b0..78468eea5a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sthe\s--nosys\soption\sto\sthe\s.schema\scommand\sin\sthe\sCLI. -D 2020-10-12T14:56:47.095 +C Fix\sALTER\sTABLE\sso\sthat\sit\scan\srun\seven\sif\sthe\sschema\scontains\sunknown\scollation\ssequences. +D 2020-10-12T15:27:50.366 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -481,7 +481,7 @@ F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 F src/btree.c c678de5bf6f57933e0ad40578fbdb0fc8113b414bf517e0a2525cb319c379874 F src/btree.h dcdff4037d75b3f032a5de0d922fcfaf35d48589417f634fa8627362709315f9 F src/btreeInt.h ffd66480520d9d70222171b3a026d78b80833b5cea49c89867949f3e023d5f43 -F src/build.c 633db5436505a5dd604439923e64324546184a02240f16e69574dff53b693547 +F src/build.c c4bfeaea9ffc91bd1b220a5ae6ff6cac3b966bd3acce370dd2616a4f2c5c6175 F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e F src/ctime.c e98518d2d3d4029a13c805e07313fb60c877be56db76e90dd5f3af73085d0ce6 @@ -646,7 +646,7 @@ F test/altercol.test 1d6a6fe698b81e626baea4881f5717f9bc53d7d07f1cd23ee7ad1b931f1 F test/alterlegacy.test 82022721ce0de29cedc9a7af63bc9fcc078b0ee000f8283b4b6ea9c3eab2f44b F test/altermalloc.test 167a47de41b5c638f5f5c6efb59784002b196fff70f98d9b4ed3cd74a3fb80c9 F test/altermalloc2.test fa7b1c1139ea39b8dec407cf1feb032ca8e0076bd429574969b619175ad0174b -F test/altertab.test b8b2104212e8ea87c75c3cbe3cb78ed7236a6c828ee2e59ed09d3dbe9812d002 +F test/altertab.test 6d7bbac2c4a6ef71b775094a3298fa3a92274d95034ee23157ffba92768e47e6 F test/altertab2.test b0d62f323ca5dab42b0bc028c52e310ebdd13e655e8fac070fe622bad7852c2b F test/altertab3.test d0d51e652aaa11e37de1f1215181d88334fefcb185f3b9bd91e06e98260c4694 F test/amatch1.test b5ae7065f042b7f4c1c922933f4700add50cdb9f @@ -1882,7 +1882,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 bcb0bc6a7b7006f07adb7266b1fecca39bf85a0adea6d78a341623a3546f2c2a -R f850d599307a07b99b6a57ce2a03a960 -U drh -Z 491bb289f372fef2a84fd27131c88833 +P b72ee694532c0c5d2285dd580154546eb592fd6892cad9ad7a49e98737adb974 +R 0cc2860ae79d7e0974788561dcae0a54 +U dan +Z c4962f97790029298d130122e4951577 diff --git a/manifest.uuid b/manifest.uuid index e86d2cd6ad..1586c740bf 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b72ee694532c0c5d2285dd580154546eb592fd6892cad9ad7a49e98737adb974 \ No newline at end of file +bc4bb9433fed519386511796cce475d74100b8ed707cdbffd8cbdf683b0faf35 \ No newline at end of file diff --git a/src/build.c b/src/build.c index e7efca87b7..9cce46dcd6 100644 --- a/src/build.c +++ b/src/build.c @@ -1656,7 +1656,7 @@ void sqlite3AddCollateType(Parse *pParse, Token *pToken){ char *zColl; /* Dequoted name of collation sequence */ sqlite3 *db; - if( (p = pParse->pNewTable)==0 ) return; + if( (p = pParse->pNewTable)==0 || IN_RENAME_OBJECT ) return; i = p->nCol-1; db = pParse->db; zColl = sqlite3NameFromToken(db, pToken); diff --git a/test/altertab.test b/test/altertab.test index 435620d1ee..4e6d98c937 100644 --- a/test/altertab.test +++ b/test/altertab.test @@ -677,4 +677,39 @@ do_execsql_test 22.1 { SELECT * FROM t1; } {1 2 78 a b 78} +#------------------------------------------------------------------------- +reset_db +db collate compare64 compare64 + +do_execsql_test 23.1 { + CREATE TABLE gigo(a text); + CREATE TABLE idx(x text COLLATE compare64); + CREATE VIEW v1 AS SELECT * FROM idx WHERE x='abc'; +} +db close +sqlite3 db test.db + +do_execsql_test 23.2 { + alter table gigo rename to ggiiggoo; + alter table idx rename to idx2; +} + +do_execsql_test 23.3 { + SELECT sql FROM sqlite_master; +} { + {CREATE TABLE "ggiiggoo"(a text)} + {CREATE TABLE "idx2"(x text COLLATE compare64)} + {CREATE VIEW v1 AS SELECT * FROM "idx2" WHERE x='abc'} +} + +do_execsql_test 23.4 { + ALTER TABLE idx2 RENAME x TO y; + SELECT sql FROM sqlite_master; +} { + {CREATE TABLE "ggiiggoo"(a text)} + {CREATE TABLE "idx2"(y text COLLATE compare64)} + {CREATE VIEW v1 AS SELECT * FROM "idx2" WHERE y='abc'} +} + finish_test +