Fix bugs introduced by checkin (2656) and do some modest code enhancements. (CVS 2657)

FossilOrigin-Name: 7b56763a8b514834198d2392639d6d726b17d901
This commit is contained in:
drh 2005-09-05 20:06:49 +00:00
parent c092998715
commit d81bd4e209
6 changed files with 22 additions and 21 deletions

View File

@ -1,5 +1,5 @@
C Use\sthe\sunicode\sAPI\sto\swin32\swhere\savailable.\r\nTickets\s#1407,\s#1396,\s#1331,\s#1243,\s#1206\s(CVS\s2656)
D 2005-09-05T19:08:29
C Fix\sbugs\sintroduced\sby\scheckin\s(2656)\sand\sdo\ssome\smodest\scode\senhancements.\s(CVS\s2657)
D 2005-09-05T20:06:49
F Makefile.in 12784cdce5ffc8dfb707300c34e4f1eb3b8a14f1
F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@ -40,7 +40,7 @@ F src/complete.c 4de937dfdd4c79a501772ab2035b26082f337a79
F src/date.c 7444b0900a28da77e57e3337a636873cff0ae940
F src/delete.c be1fc25c9e109cd8cbab42a43ee696263da7c04b
F src/experimental.c 50c1e3b34f752f4ac10c36f287db095c2b61766d
F src/expr.c e9d0401bed1fa61cce356c2da4b53dae769c4fc3
F src/expr.c 8a72157fa6842e84819a8c80521be02ec471180c
F src/func.c 9da04a6241309a612cf610715944c6a2aaf0f297
F src/hash.c 2b1b13f7400e179631c83a1be0c664608c8f021f
F src/hash.h 1b0c445e1c89ff2aaad9b4605ba61375af001e84
@ -54,7 +54,7 @@ F src/os_test.c 91e5f22dd89491e5e1554820e715805f43fa4ece
F src/os_test.h 903c93554c23d88f34f667f1979e4a1cee792af3
F src/os_unix.c b4c4592589113db088662ef7570967ec36022b5d
F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e
F src/os_win.c 8b80f418aefd2ceabe3580f680f5dcc244cf2344
F src/os_win.c 4aad6cd49a2a546f945491a9e6a0b7d061cf47c5
F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
F src/pager.c cd9896287a8fd33cc267bd0c2b69c421a4808169
F src/pager.h 17b13225abd93c1e9f470060f40a21b9edb5a164
@ -63,7 +63,7 @@ F src/pragma.c 69413fbdc0c6aaa493a776ea52c1b3e6cf35dfb2
F src/prepare.c 86f0d8e744b8d956eff6bc40e29049efee017610
F src/printf.c d2678b06cfa07be9b14c330a42310f62340e34ce
F src/random.c 90adff4e73a3b249eb4f1fc2a6ff9cf78c7233a4
F src/select.c aabc227c8806fb942dff17965a0e63fe2a9ced67
F src/select.c 79bd7f97345ee4291e7f4d469307b185eb2cba8f
F src/shell.c b21daba017b8feef2fdc65ecde57f70209494217
F src/sqlite.h.in d6561d51025d08de4f455607f3f9f9aa76e855d5
F src/sqliteInt.h 845ff6f8019f80baafb1bdbb8ef80fcd04d9d0f9
@ -84,7 +84,7 @@ F src/vdbe.c efde23f8829b5902cfbc8cca3f3fab51a7e9c99a
F src/vdbe.h 3b29a9af6c7a64ed692bef1fc5f61338f40d2f67
F src/vdbeInt.h 52811a5182c6f98a10d34a1d1d0188fe3582ae03
F src/vdbeapi.c f0d36ff0f06bb5315efac5645b62e99db2c175b8
F src/vdbeaux.c afb689d2d5c413ec3448f8f697d07dcd35bd8766
F src/vdbeaux.c b23bb870ab88fb91a2dd15273922d93314d8a7a3
F src/vdbefifo.c 9efb94c8c3f4c979ebd0028219483f88e57584f5
F src/vdbemem.c 4732fd4d1a75dc38549493d7f9a81d02bf7c59b5
F src/where.c 92ab208abe6bec15e81616b8c1a619be23ece506
@ -306,7 +306,7 @@ F www/tclsqlite.tcl 3df553505b6efcad08f91e9b975deb2e6c9bb955
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
P efbb4bc83cd86b6a26d58c5818c58c2e3edaab18
R d11951b0db345c53b16225d15ddfa80a
P 3ec58c673ae4cf0695ea0c287cc9bcbdcdb1a200
R c648b12a5837f4af3bcb70379debe21a
U drh
Z ce91eee65efcee02daeb83c44469f09e
Z 6fef8f1ff4c303f7c6fae65439249cbb

View File

@ -1 +1 @@
3ec58c673ae4cf0695ea0c287cc9bcbdcdb1a200
7b56763a8b514834198d2392639d6d726b17d901

View File

@ -12,7 +12,7 @@
** This file contains routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions in SQLite.
**
** $Id: expr.c,v 1.223 2005/09/01 03:07:44 drh Exp $
** $Id: expr.c,v 1.224 2005/09/05 20:06:49 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@ -2078,7 +2078,6 @@ static int analyzeAggregate(void *pArg, Expr *pExpr){
NameContext *pNC = (NameContext *)pArg;
Parse *pParse = pNC->pParse;
SrcList *pSrcList = pNC->pSrcList;
Expr *pAggExpr;
switch( pExpr->op ){
case TK_COLUMN: {
@ -2086,9 +2085,10 @@ static int analyzeAggregate(void *pArg, Expr *pExpr){
if( pExpr->iTable==pSrcList->a[i].iCursor ){
pAgg = pParse->aAgg;
for(i=0; i<pParse->nAgg; i++, pAgg++){
Expr *pE;
if( pAgg->isAgg ) continue;
if( (pAggExpr = pAgg->pExpr)->iTable==pExpr->iTable
&& pAggExpr->iColumn==pExpr->iColumn ){
pE = pAgg->pExpr;
if( pE->iTable==pExpr->iTable && pE->iColumn==pExpr->iColumn ){
break;
}
}

View File

@ -88,7 +88,7 @@ static WCHAR *utf8ToUnicode(const char *zFilename){
return 0;
}
nByte = MultiByteToWideChar(CP_UTF8, 0, zFilename, -1, NULL, 0)*sizeof(WCHAR);
zWideFilename = sqliteMalloc( nByte );
zWideFilename = sqliteMalloc( nByte*sizeof(zWideFilename[0]) );
if( zWideFilename==0 ){
return 0;
}
@ -387,7 +387,7 @@ int sqlite3OsTempFileName(char *zBuf){
GetTempPathW(SQLITE_TEMPNAME_SIZE-30, zWidePath);
zMulti = unicodeToUtf8(zWidePath);
if( zMulti ){
memcpy(zTempPath, zMulti, SQLITE_TEMPNAME_SIZE-30);
strncpy(zTempPath, zMulti, SQLITE_TEMPNAME_SIZE-30);
zTempPath[SQLITE_TEMPNAME_SIZE-30] = 0;
sqliteFree(zMulti);
}

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.259 2005/09/01 12:16:29 drh Exp $
** $Id: select.c,v 1.260 2005/09/05 20:06:49 drh Exp $
*/
#include "sqliteInt.h"
@ -2167,8 +2167,7 @@ static int simpleMinMaxQuery(Parse *pParse, Select *p, int eDest, int iParm){
/* If the output is destined for a temporary table, open that table.
*/
if( eDest==SRT_TempTable ){
sqlite3VdbeAddOp(v, OP_OpenVirtual, iParm, 0);
sqlite3VdbeAddOp(v, OP_SetNumColumns, iParm, 1);
sqlite3VdbeAddOp(v, OP_OpenVirtual, iParm, 1);
}
/* Generating code to find the min or the max. Basically all we have

View File

@ -1703,6 +1703,8 @@ int sqlite3VdbeSerialGet(
}
case 6: /* 8-byte signed integer */
case 7: { /* IEEE floating point */
u64 x;
u32 y;
#ifndef NDEBUG
/* Verify that integers and floating point values use the same
** byte order. The byte order differs on some (broken) architectures.
@ -1711,8 +1713,8 @@ int sqlite3VdbeSerialGet(
assert( 1.0==*(double*)&t1 );
#endif
u64 x = (buf[0]<<24) | (buf[1]<<16) | (buf[2]<<8) | buf[3];
u32 y = (buf[4]<<24) | (buf[5]<<16) | (buf[6]<<8) | buf[7];
x = (buf[0]<<24) | (buf[1]<<16) | (buf[2]<<8) | buf[3];
y = (buf[4]<<24) | (buf[5]<<16) | (buf[6]<<8) | buf[7];
x = (x<<32) | y;
if( serial_type==6 ){
pMem->i = *(i64*)&x;