1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-12-03 08:01:19 +03:00

Fix problems in ALTER TABLE that occur when column or table names are

invalid UTF encodings. (CVS 4000)

FossilOrigin-Name: 9ff382f4584ff685a78b39f24424319709efb382
This commit is contained in:
drh
2007-05-15 03:56:49 +00:00
parent e279195400
commit 4e5dd85135
7 changed files with 79 additions and 24 deletions

View File

@@ -22,7 +22,7 @@
** COMMIT
** ROLLBACK
**
** $Id: build.c,v 1.430 2007/05/12 15:00:15 drh Exp $
** $Id: build.c,v 1.431 2007/05/15 03:56:49 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -1562,13 +1562,16 @@ void sqlite3EndTable(
#ifndef SQLITE_OMIT_ALTERTABLE
if( !p->pSelect ){
const char *zName = (const char *)pParse->sNameToken.z;
int nName;
int nName, i, nUtfChar;
assert( !pSelect && pCons && pEnd );
if( pCons->z==0 ){
pCons = pEnd;
}
nName = (const char *)pCons->z - zName;
p->addColOffset = 13 + sqlite3Utf8CharLen(zName, nName);
for(i=nUtfChar=0; i<nName; i++){
if( (zName[i]&0xc0)!=0x80 ) nUtfChar++;
}
p->addColOffset = 13 + nUtfChar;
}
#endif
}