Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Ensure ALTER TABLE respects the system table convention - "sqlite_*". (CVS 2115) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
f635b6aae661ac85eec49b197f3bb4b8 |
User & Date: | danielk1977 2004-11-19 08:41:34.000 |
Context
2004-11-19
| ||
11:59 | Split up the lang.html page into a seperate page for each command. (CVS 2116) (check-in: ea315668e5 user: danielk1977 tags: trunk) | |
08:41 | Ensure ALTER TABLE respects the system table convention - "sqlite_*". (CVS 2115) (check-in: f635b6aae6 user: danielk1977 tags: trunk) | |
08:02 | Update the sqlite_sequence table when a table is renamed with ALTER_TABLE. (CVS 2114) (check-in: 6e97186880 user: danielk1977 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.284 2004/11/19 08:41:34 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** This routine is called when a new SQL statement is beginning to ** be parsed. Check to see if the schema for the database needs |
︙ | ︙ | |||
2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 | */ if( sqlite3FindTable(db, zName, zDb) || sqlite3FindIndex(db, zName, zDb) ){ sqlite3ErrorMsg(pParse, "there is already another table or index with this name: %s", zName); sqliteFree(zName); return; } #ifndef SQLITE_OMIT_AUTHORIZATION /* Invoke the authorization callback. */ if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){ sqliteFree(zName); return; } | > > > > > > > > > > > > > | 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 | */ if( sqlite3FindTable(db, zName, zDb) || sqlite3FindIndex(db, zName, zDb) ){ sqlite3ErrorMsg(pParse, "there is already another table or index with this name: %s", zName); sqliteFree(zName); return; } /* Make sure it is not a system table being altered, or a reserved name ** that the table is being renamed to. */ if( strlen(pTab->zName)>6 && 0==sqlite3StrNICmp(pTab->zName, "sqlite_", 7) ){ sqlite3ErrorMsg(pParse, "table %s may not be altered", pTab->zName); sqliteFree(zName); return; } if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){ sqliteFree(zName); return; } #ifndef SQLITE_OMIT_AUTHORIZATION /* Invoke the authorization callback. */ if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){ sqliteFree(zName); return; } |
︙ | ︙ |
Changes to test/alter.test.
1 2 3 4 5 6 7 8 9 10 | # # The author or author's hereby grant to the public domain a non-exclusive, # fully paid-up, perpetual, license in the software and all related # intellectual property to make, have made, use, have used, reproduce, # prepare derivative works, distribute, perform and display the work. # #************************************************************************* # This file implements regression tests for SQLite library. The # focus of this script is testing the ALTER TABLE statement. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # # The author or author's hereby grant to the public domain a non-exclusive, # fully paid-up, perpetual, license in the software and all related # intellectual property to make, have made, use, have used, reproduce, # prepare derivative works, distribute, perform and display the work. # #************************************************************************* # This file implements regression tests for SQLite library. The # focus of this script is testing the ALTER TABLE statement. # # $Id: alter.test,v 1.6 2004/11/19 08:41:34 danielk1977 Exp $ # set testdir [file dirname $argv0] source $testdir/tester.tcl # If SQLITE_OMIT_ALTERTABLE is defined, omit this file. ifcapable !altertable { |
︙ | ︙ | |||
251 252 253 254 255 256 257 258 259 260 261 262 263 264 | } } {1 {there is already another table or index with this name: t3}} do_test alter-2.3 { catchsql { ALTER TABLE [<t2>] RENAME TO i3; } } {1 {there is already another table or index with this name: i3}} # If this compilation does not include triggers, omit the alter-3.* tests. ifcapable trigger { #----------------------------------------------------------------------- # Tests alter-3.* test ALTER TABLE on tables that have triggers. # | > > > > > > > > > > | 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 | } } {1 {there is already another table or index with this name: t3}} do_test alter-2.3 { catchsql { ALTER TABLE [<t2>] RENAME TO i3; } } {1 {there is already another table or index with this name: i3}} do_test alter-2.4 { catchsql { ALTER TABLE SqLiTe_master RENAME TO master; } } {1 {table sqlite_master may not be altered}} do_test alter-2.5 { catchsql { ALTER TABLE t3 RENAME TO sqlite_t3; } } {1 {object name reserved for internal use: sqlite_t3}} # If this compilation does not include triggers, omit the alter-3.* tests. ifcapable trigger { #----------------------------------------------------------------------- # Tests alter-3.* test ALTER TABLE on tables that have triggers. # |
︙ | ︙ |