-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
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
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
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
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
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
-3ec58c673ae4cf0695ea0c287cc9bcbdcdb1a200
\ No newline at end of file
+7b56763a8b514834198d2392639d6d726b17d901
\ No newline at end of file
** 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>
NameContext *pNC = (NameContext *)pArg;
Parse *pParse = pNC->pParse;
SrcList *pSrcList = pNC->pSrcList;
- Expr *pAggExpr;
switch( pExpr->op ){
case TK_COLUMN: {
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;
}
}
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;
}
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);
}
** 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"
/* 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
}
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.
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;