Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Change the implementation of ALTER TABLE so that it does not use the IN() operattor. (CVS 2249) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
06887afb323fa1fb6988a136f96a4564 |
User & Date: | danielk1977 2005-01-21 00:44:22.000 |
Context
2005-01-21
| ||
02:34 | Add a new test file for subqueries. (CVS 2250) (check-in: de8ee3a29e user: drh tags: trunk) | |
00:44 | Change the implementation of ALTER TABLE so that it does not use the IN() operattor. (CVS 2249) (check-in: 06887afb32 user: danielk1977 tags: trunk) | |
00:22 | Fix a segfault that occurs on a corrupt database. (CVS 2248) (check-in: d1166472fd user: drh tags: trunk) | |
Changes
Changes to src/build.c.
︙ | ︙ | |||
18 19 20 21 22 23 24 | ** CREATE INDEX ** DROP INDEX ** creating ID lists ** BEGIN TRANSACTION ** COMMIT ** ROLLBACK ** | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ** CREATE INDEX ** DROP INDEX ** creating ID lists ** BEGIN TRANSACTION ** COMMIT ** ROLLBACK ** ** $Id: build.c,v 1.296 2005/01/21 00:44:22 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** This routine is called when a new SQL statement is beginning to ** be parsed. Initialize the pParse structure as needed. |
︙ | ︙ | |||
3010 3011 3012 3013 3014 3015 3016 | #endif "tbl_name = %Q, " "name = CASE " "WHEN type='table' THEN %Q " "WHEN name LIKE 'sqlite_autoindex%%' AND type='index' THEN " "'sqlite_autoindex_' || %Q || substr(name, %d+18,10) " "ELSE name END " | | > | 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 | #endif "tbl_name = %Q, " "name = CASE " "WHEN type='table' THEN %Q " "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='table' OR type='index' OR type='trigger');", zDb, SCHEMA_TABLE(iDb), zName, zName, zName, #ifndef SQLITE_OMIT_TRIGGER zName, #endif zName, strlen(pTab->zName), pTab->zName ); |
︙ | ︙ | |||
3041 3042 3043 3044 3045 3046 3047 | if( iDb!=1 ){ Trigger *pTrig; char *tmp = 0; for( pTrig=pTab->pTrigger; pTrig; pTrig=pTrig->pNext ){ if( pTrig->iDb==1 ){ if( !zTempTrig ){ zTempTrig = | | | | 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 | if( iDb!=1 ){ Trigger *pTrig; char *tmp = 0; for( pTrig=pTab->pTrigger; pTrig; pTrig=pTrig->pNext ){ if( pTrig->iDb==1 ){ if( !zTempTrig ){ zTempTrig = sqlite3MPrintf("type = 'trigger' AND (name=%Q", pTrig->name); }else{ tmp = zTempTrig; zTempTrig = sqlite3MPrintf("%s OR name=%Q", zTempTrig, pTrig->name); sqliteFree(tmp); } } } if( zTempTrig ){ tmp = zTempTrig; zTempTrig = sqlite3MPrintf("%s)", zTempTrig); |
︙ | ︙ |