From: danielk1977 Date: Fri, 21 Jan 2005 00:44:22 +0000 (+0000) Subject: Change the implementation of ALTER TABLE so that it does not use the IN() operattor... X-Git-Tag: version-3.6.10~3903 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=83715c3edd307f1c080e6b5a938d6f0061dc56b8;p=thirdparty%2Fsqlite.git Change the implementation of ALTER TABLE so that it does not use the IN() operattor. (CVS 2249) FossilOrigin-Name: 06887afb323fa1fb6988a136f96a456467cf7b2f --- diff --git a/manifest b/manifest index d8b4c882e4..21513dcb9b 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\ssegfault\sthat\soccurs\son\sa\scorrupt\sdatabase.\s(CVS\s2248) -D 2005-01-21T00:22:38 +C Change\sthe\simplementation\sof\sALTER\sTABLE\sso\sthat\sit\sdoes\snot\suse\sthe\sIN()\soperattor.\s(CVS\s2249) +D 2005-01-21T00:44:22 F Makefile.in ffd81f5e926d40b457071b4de8d7c1fa18f39b5a F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457 F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1 @@ -31,7 +31,7 @@ F src/attach.c cecf5ab42cff34416372a0210b14abb50ed48ef9 F src/auth.c 3b81f2a42f48a62c2c9c9b0eda31a157c681edea F src/btree.c 011acf7cedbe591bfe8207ac10050d9024807282 F src/btree.h 74d19cf40ab49fd69abe9e4e12a6c321ad86c497 -F src/build.c da5ecd9880f2d19d5e77fe48b722577494dd3290 +F src/build.c 9c9e9dbb9d8619f0755be79fcb30df5a8347a8ed F src/cursor.c de73c00aefc4747ad59b5105cf38bbff0667922e F src/date.c f3d1f5cd1503dabf426a198f3ebef5afbc122a7f F src/delete.c b3accca9c38d9a67dbd724f67b04151a13735ebd @@ -270,7 +270,7 @@ F www/tclsqlite.tcl e73f8f8e5f20e8277619433f7970060ab01088fc F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618 F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0 F www/whentouse.tcl 3e522a06ad41992023c80ca29a048ae2331ca5bd -P 6177148260c5e3e28df6ea1c486ba3642a745a01 -R 2762bf2e811176504fb47e78ea804eef -U drh -Z 97ed2a34cf1783e6f50f5fa286617335 +P d1166472fd17960eb3016f3d5d3bf44afc9f5bc8 +R d3c76340d5c2b36ec4f3164c5b3ed7ff +U danielk1977 +Z e8d416a6477130fce4f05937d70746ae diff --git a/manifest.uuid b/manifest.uuid index c9c74b5983..0eb06369bb 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d1166472fd17960eb3016f3d5d3bf44afc9f5bc8 \ No newline at end of file +06887afb323fa1fb6988a136f96a456467cf7b2f \ No newline at end of file diff --git a/src/build.c b/src/build.c index ba8bef5d27..603ecd755e 100644 --- a/src/build.c +++ b/src/build.c @@ -22,7 +22,7 @@ ** COMMIT ** ROLLBACK ** -** $Id: build.c,v 1.295 2005/01/19 23:24:50 drh Exp $ +** $Id: build.c,v 1.296 2005/01/21 00:44:22 danielk1977 Exp $ */ #include "sqliteInt.h" #include @@ -3014,7 +3014,8 @@ void sqlite3AlterRenameTable( "WHEN name LIKE 'sqlite_autoindex%%' AND type='index' THEN " "'sqlite_autoindex_' || %Q || substr(name, %d+18,10) " "ELSE name END " - "WHERE tbl_name=%Q AND type IN ('table', 'index', 'trigger');", + "WHERE tbl_name=%Q AND " + "(type='table' OR type='index' OR type='trigger');", zDb, SCHEMA_TABLE(iDb), zName, zName, zName, #ifndef SQLITE_OMIT_TRIGGER zName, @@ -3045,10 +3046,10 @@ zName, if( pTrig->iDb==1 ){ if( !zTempTrig ){ zTempTrig = - sqlite3MPrintf("type = 'trigger' AND name IN(%Q", pTrig->name); + sqlite3MPrintf("type = 'trigger' AND (name=%Q", pTrig->name); }else{ tmp = zTempTrig; - zTempTrig = sqlite3MPrintf("%s, %Q", zTempTrig, pTrig->name); + zTempTrig = sqlite3MPrintf("%s OR name=%Q", zTempTrig, pTrig->name); sqliteFree(tmp); } }