-C Make\sVACUUM\swork\swhen\sthe\spage\ssize\sis\sdifferent\sthan\sthe\sdefault\s1024.\nTicket\s#890.\s(CVS\s1939)
-D 2004-09-05T00:33:43
+C Comment\schanges\sand\sminor\scode\scleanup.\s(CVS\s1940)
+D 2004-09-05T23:23:42
F Makefile.in 65a7c43fcaf9a710d62f120b11b6e435eeb4a450
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
F sqlite.pc.in 30552343140c53304c2a658c080fbe810cd09ca2
F sqlite3.def 84215604aa7b547d75e0f7b437966e7ad18fa8b2
F sqlite3.pc.in 985b9bf34192a549d7d370e0f0b6b34a4f61369a
-F src/attach.c 0bd4f11da6999665da30625665a4096ba7898de6
+F src/attach.c 3fe50b71cf6b324c7d217fc13742124dba726486
F src/auth.c 60db23b98bb94c8b0178180faaf49dc116674217
F src/btree.c fe763fde639793ef2010d5388d0d135ecc02b4eb
F src/btree.h 94dfec0a1722d33359b23e7e310f2b64ffedf029
F src/pager.c ae06c85de0db43f61a7a3e5eacad3fd5615daf59
F src/pager.h 67739fe649f33be55dba522ca8a9cc4e42d14f71
F src/parse.y 581a2ce014b843506805b2470c02b7865ad034d5
-F src/pragma.c 7156618038546ed4d09d733ceea231aebee3f2f8
+F src/pragma.c 0fbfb50491ac971dd22c049c3042c322e9cadb39
F src/printf.c 17b28a1eedfe8129b05de981719306c18c3f1327
F src/random.c eff68e3f257e05e81eae6c4d50a51eb88beb4ff3
F src/select.c 14534579535579a082fda8bbc7d621d7d170f406
F src/trigger.c 40e10f4b219b55e56478bc17480ce77654300e8d
F src/update.c bbe126c67529bd699016af2d72bc4ceb8fd41527
F src/utf.c 328890099db492dda5620ee5f924e244c6e57ff7
-F src/util.c d5aaf211543fb6e285654fada50252c857ac78aa
+F src/util.c f53a683ff6daf25694920c42020848fc38967a8f
F src/vacuum.c c5f11bf25e49479940133d1bb882ad2a5d6fa021
F src/vdbe.c 45f659497b479f001c2f4e8251474aba3975b9f8
F src/vdbe.h e081c72cd0f7c19d49b1927460aeefcf0fbc85ac
F www/vdbe.tcl 59288db1ac5c0616296b26dce071c36cb611dfe9
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
-P af44ddeea110576bf9c475b5e6e3540ee50c5edf
-R afb470c685b393383d09d5ee609f260e
+P fa82becae7e41c47a6387061932f692c6f9f472e
+R edad9a6786f399b5ab4dfba836413b99
U drh
-Z 341c14103181636b02bfc0ae91fe7a33
+Z 8c9e068ca55b5659b9e57265a53ffefe
-fa82becae7e41c47a6387061932f692c6f9f472e
\ No newline at end of file
+dfa9ea89c473e1fea804ad07e8e58a9af1e92f6c
\ No newline at end of file
*************************************************************************
** This file contains code used to implement the ATTACH and DETACH commands.
**
-** $Id: attach.c,v 1.26 2004/08/01 03:52:18 drh Exp $
+** $Id: attach.c,v 1.27 2004/09/05 23:23:42 drh Exp $
*/
#include "sqliteInt.h"
Token *pFilename, /* Name of database file */
Token *pDbname, /* Name of the database to use internally */
int keyType, /* 0: no key. 1: TEXT, 2: BLOB */
- Token *pKey /* Text of the key for keytype 2 and 3 */
+ Token *pKey /* Text of the key for keytype 1 and 2 */
){
Db *aNew;
int rc, i;
int sqlite3FixInit(
DbFixer *pFix, /* The fixer to be initialized */
Parse *pParse, /* Error messages will be written here */
- int iDb, /* This is the database that must must be used */
+ int iDb, /* This is the database that must be used */
const char *zType, /* "view", "trigger", or "index" */
const Token *pName /* Name of the view, trigger, or index */
){
){
int i;
const char *zDb;
+ struct SrcList_item *pItem;
if( pList==0 ) return 0;
zDb = pFix->zDb;
- for(i=0; i<pList->nSrc; i++){
- if( pList->a[i].zDatabase==0 ){
- pList->a[i].zDatabase = sqliteStrDup(zDb);
- }else if( sqlite3StrICmp(pList->a[i].zDatabase,zDb)!=0 ){
+ for(i=0, pItem=pList->a; i<pList->nSrc; i++, pItem++){
+ if( pItem->zDatabase==0 ){
+ pItem->zDatabase = sqliteStrDup(zDb);
+ }else if( sqlite3StrICmp(pItem->zDatabase,zDb)!=0 ){
sqlite3ErrorMsg(pFix->pParse,
- "%s %z cannot reference objects in database %s",
- pFix->zType, sqliteStrNDup(pFix->pName->z, pFix->pName->n),
- pList->a[i].zDatabase);
+ "%s %T cannot reference objects in database %s",
+ pFix->zType, pFix->pName, pItem->zDatabase);
return 1;
}
- if( sqlite3FixSelect(pFix, pList->a[i].pSelect) ) return 1;
- if( sqlite3FixExpr(pFix, pList->a[i].pOn) ) return 1;
+ if( sqlite3FixSelect(pFix, pItem->pSelect) ) return 1;
+ if( sqlite3FixExpr(pFix, pItem->pOn) ) return 1;
}
return 0;
}
ExprList *pList /* The expression to be fixed to one database */
){
int i;
+ struct ExprList_item *pItem;
if( pList==0 ) return 0;
- for(i=0; i<pList->nExpr; i++){
- if( sqlite3FixExpr(pFix, pList->a[i].pExpr) ){
+ for(i=0, pItem=pList->a; i<pList->nExpr; i++, pItem++){
+ if( sqlite3FixExpr(pFix, pItem->pExpr) ){
return 1;
}
}
*************************************************************************
** This file contains code used to implement the PRAGMA command.
**
-** $Id: pragma.c,v 1.62 2004/09/02 15:14:01 drh Exp $
+** $Id: pragma.c,v 1.63 2004/09/05 23:23:42 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
static const u8 *azTrue[] = { "yes", "on", "true" };
int i;
if( z[0]==0 ) return 0;
- if( isdigit(z[0]) || (z[0]=='-' && isdigit(z[1])) ){
+ if( sqlite3IsNumber(z, 0, SQLITE_UTF8) ){
return atoi(z);
}
for(i=0; i<sizeof(azTrue)/sizeof(azTrue[0]); i++){
};
int i;
if( z[0]==0 ) return 1;
- if( isdigit(z[0]) || (z[0]=='-' && isdigit(z[1])) ){
+ if( sqlite3IsNumber(z, 0, SQLITE_UTF8) ){
return atoi(z);
}
for(i=0; i<sizeof(aKey)/sizeof(aKey[0]); i++){
** This file contains functions for allocating memory, comparing
** strings, and stuff like that.
**
-** $Id: util.c,v 1.114 2004/08/31 00:52:37 drh Exp $
+** $Id: util.c,v 1.115 2004/09/05 23:23:42 drh Exp $
*/
#include "sqliteInt.h"
#include <stdarg.h>
** the string is numeric and contains the '.' character, set *realnum
** to TRUE (otherwise FALSE).
**
-** Am empty string is considered non-numeric.
+** An empty string is considered non-numeric.
*/
int sqlite3IsNumber(const char *z, int *realnum, u8 enc){
int incr = (enc==SQLITE_UTF8?1:2);
** 32-bit signed integer, return TRUE. Otherwise return FALSE.
**
** This routine returns FALSE for the string -2147483648 even that
-** that number will, in theory fit in a 32-bit integer. But positive
+** that number will in fact fit in a 32-bit integer. But positive
** 2147483648 will not fit in 32 bits. So it seems safer to return
** false.
*/