1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Minor follow-on changes to the recent ATTACH patch. (CVS 892)

FossilOrigin-Name: e80afe75b33d4eacb40ef6128cf688f7c3253984
This commit is contained in:
drh
2003-03-31 13:36:09 +00:00
parent da93d238c2
commit 665de47ac3
6 changed files with 30 additions and 17 deletions

View File

@ -1,5 +1,5 @@
C Add\sthe\ssqliteErrorMsg()\sfunction\sand\suse\sit\sto\sgenerate\serror\smessage\ntext\sduring\sparsing\sand\scode\sgeneration.\s\sThis\ssimplifies\sthe\scode\nsomewhat\sand\smakes\sit\seasier\sto\shandle\snames\swith\sa\sdatabase\sprefix.\s(CVS\s891)
D 2003-03-31T02:12:47
C Minor\sfollow-on\schanges\sto\sthe\srecent\sATTACH\spatch.\s(CVS\s892)
D 2003-03-31T13:36:09
F Makefile.in 3c4ba24253e61c954d67adbbb4245e7117c5357e
F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
@ -22,7 +22,7 @@ F sqlite.pc.in 30552343140c53304c2a658c080fbe810cd09ca2
F src/auth.c f37bfc9451b8c1fa52f34adff474560018892729
F src/btree.c dba4d12945228dd7e94de7da0e1d8638b70d99f2
F src/btree.h 8209bfadf5845d4fdaa60f471bb360f894cd4095
F src/build.c 5ea24a62f447f3beabe6fb6218ec24f4dd6aff95
F src/build.c 81d31f2e63d51683ee653df6399acc3c3a2e3672
F src/delete.c 58d698779a6b7f819718ecd45b310a9de8537088
F src/encode.c faf03741efe921755ec371cf4a6984536de00042
F src/expr.c b8daee83f837b24a22d889200bdd74973ca2d8db
@ -39,11 +39,11 @@ F src/pager.h 97d9a8cc5103750efd8037d71ebfb41849ef2f2f
F src/parse.y 3be47fa18323aa2e3364fc42bf7a6ba5b3cc0a81
F src/printf.c fc5fdef6e92ad205005263661fe9716f55a49f3e
F src/random.c 19e8e00fe0df32a742f115773f57651be327cabe
F src/select.c 7d69e569339e7ce9e672eb41d50a454110ea8a05
F src/select.c 14e2e2a512f4edfc75fb310ebcb502ff3ee87402
F src/shell.c c13ff46e905a59eb1c7dbea7c1850f8f115e6395
F src/shell.tcl 27ecbd63dd88396ad16d81ab44f73e6c0ea9d20e
F src/sqlite.h.in be3e56214fecc73d72195ca62d8a3d6663602ff4
F src/sqliteInt.h 1ce5af48f980d63ec6fbb41d3f8517b4eaf446ce
F src/sqliteInt.h 18eb5a7f2ba010ad7d7ba81625f4b35fe3438239
F src/table.c eed2098c9b577aa17f8abe89313a9c4413f57d63
F src/tclsqlite.c 4cb0ffa863123ae037db359849a231ff5cebfed4
F src/test1.c 7ad4e6308dde0bf5a0f0775ce20cb2ec37a328f8
@ -53,7 +53,7 @@ F src/threadtest.c d641a5219e718e18a1a80a50eb9bb549f451f42e
F src/tokenize.c 675b4718d17c69fe7609dc8e85e426ef002be811
F src/trigger.c bd5a5b234b47f28f9f21a46243dcaf1c5b2383a3
F src/update.c b368369f1fbe6d7f56a53e5ffad3b75dae9e3e1a
F src/util.c 96178ddf8a01fe81f66620f555a53bcff54bd3d7
F src/util.c 8953c612a036e30f24c1c1f5a1498176173daa37
F src/vdbe.c 7171dbe873760f403b2501e96fd3d1bd852b3ce8
F src/vdbe.h ed43771f1dc2b994d5c484fdf2eab357c6ef0ee3
F src/where.c e5733f7d5e9cc4ed3590dc3401f779e7b7bb8127
@ -155,7 +155,7 @@ F www/speed.tcl cb4c10a722614aea76d2c51f32ee43400d5951be
F www/sqlite.tcl ae3dcfb077e53833b59d4fcc94d8a12c50a44098
F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
P c7c5e927a54f0fbc2ca625754787aff4d9c4eff1
R 049a3c05f7f7ec86278cb228c093cf6f
P 1d3fc977211abdc7ba3fd51d661863e8ce5aef69
R 8452f551322a2a47e2174b852766e085
U drh
Z 310a08d8c23f76a9c9a4ece27530433b
Z 6062850ebc36422b5dc928e90d3f98bb

View File

@ -1 +1 @@
1d3fc977211abdc7ba3fd51d661863e8ce5aef69
e80afe75b33d4eacb40ef6128cf688f7c3253984

View File

@ -25,7 +25,7 @@
** ROLLBACK
** PRAGMA
**
** $Id: build.c,v 1.138 2003/03/31 02:12:47 drh Exp $
** $Id: build.c,v 1.139 2003/03/31 13:36:09 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@ -2670,6 +2670,11 @@ void sqliteAttach(Parse *pParse, Token *pFilename, Token *pDbname){
if( pParse->explain ) return;
db = pParse->db;
if( db->nDb>=MAX_ATTACHED ){
sqliteErrorMsg(pParse, "too many attached databases - max %d",
MAX_ATTACHED);
return;
}
if( db->aDb==db->aDbStatic ){
aNew = sqliteMalloc( sizeof(db->aDb[0])*3 );
if( aNew==0 ) return;

View File

@ -12,7 +12,7 @@
** This file contains C code routines that are called by the parser
** to handle SELECT statements in SQLite.
**
** $Id: select.c,v 1.129 2003/03/31 02:12:47 drh Exp $
** $Id: select.c,v 1.130 2003/03/31 13:36:09 drh Exp $
*/
#include "sqliteInt.h"
@ -1591,7 +1591,7 @@ substExprList(ExprList *pList, int iTable, ExprList *pEList, int iSub){
** The subquery is p->pSrc->a[iFrom]. isAgg is true if the outer query
** uses aggregates and subqueryIsAgg is true if the subquery uses aggregates.
**
** If flattening is not attempted, this routine is a no-op and return 0.
** If flattening is not attempted, this routine is a no-op and returns 0.
** If flattening is attempted this routine returns 1.
**
** All of the expression analysis must occur on both the outer query and

View File

@ -11,7 +11,7 @@
*************************************************************************
** Internal interface definitions for SQLite.
**
** @(#) $Id: sqliteInt.h,v 1.168 2003/03/31 02:12:48 drh Exp $
** @(#) $Id: sqliteInt.h,v 1.169 2003/03/31 13:36:09 drh Exp $
*/
#include "config.h"
#include "sqlite.h"
@ -57,6 +57,14 @@
*/
#define NULL_DISTINCT_FOR_UNIQUE 1
/*
** The maximum number of attached databases. This must be at least 2
** in order to support the main database file (0) and the file used to
** hold temporary tables (1). And it must be less than 256 because the
** an unsigned character is used to stored the database index.
*/
#define MAX_ATTACHED 10
/*
** Integers of known sizes. These typedefs might change for architectures
** where the sizes very. Preprocessor macros are available so that the

View File

@ -14,7 +14,7 @@
** This file contains functions for allocating memory, comparing
** strings, and stuff like that.
**
** $Id: util.c,v 1.59 2003/03/31 02:12:48 drh Exp $
** $Id: util.c,v 1.60 2003/03/31 13:36:09 drh Exp $
*/
#include "sqliteInt.h"
#include <stdarg.h>
@ -413,7 +413,7 @@ void sqliteErrorMsg(Parse *pParse, const char *zFormat, ...){
nByte = 1 + strlen(zFormat);
va_start(ap, zFormat);
for(i=0; zFormat[i]; i++){
if( zFormat[i]!='%' && zFormat[i+1] ) continue;
if( zFormat[i]!='%' || zFormat[i+1]==0 ) continue;
i++;
switch( zFormat[i] ){
case 'd': {
@ -456,7 +456,7 @@ void sqliteErrorMsg(Parse *pParse, const char *zFormat, ...){
pParse->zErrMsg = z;
va_start(ap, zFormat);
for(i=j=0; zFormat[i]; i++){
if( zFormat[i]!='%' ) continue;
if( zFormat[i]!='%' || zFormat[i+1]==0 ) continue;
if( i>j ){
memcpy(z, &zFormat[j], i-j);
z += i-j;