]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix bugs introduced by checkin (2656) and do some modest code enhancements. (CVS...
authordrh <drh@noemail.net>
Mon, 5 Sep 2005 20:06:49 +0000 (20:06 +0000)
committerdrh <drh@noemail.net>
Mon, 5 Sep 2005 20:06:49 +0000 (20:06 +0000)
FossilOrigin-Name: 7b56763a8b514834198d2392639d6d726b17d901

manifest
manifest.uuid
src/expr.c
src/os_win.c
src/select.c
src/vdbeaux.c

index 21bb9756607fdd97a49fc97e15af7fbd5930d79d..5b7a1b13a40928173d647c29f9bcc136e0e7e8fb 100644 (file)
--- a/manifest
+++ b/manifest
@@ -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
index 6799ed3610a2eb5023ff9941c78b700395733034..042cf7e2d713dc290cfeba04c13ac336b53bfe7e 100644 (file)
@@ -1 +1 @@
-3ec58c673ae4cf0695ea0c287cc9bcbdcdb1a200
\ No newline at end of file
+7b56763a8b514834198d2392639d6d726b17d901
\ No newline at end of file
index 134de2446a67e3c4063e4ffa3a5a5e9c9756beee..7ac7a7ae46c1a7aa3057a38774e708407a739514 100644 (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;
             }
           }
index 4e98a25f2a21bc768713b575ee55bd66b14667ba..c5f6bd933fd4466c005640e27ad0ce0842e077df 100644 (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);
     }
index 2ff7e282acfd393712760fc036a3e78a0366fada..94943a5414b0500a924b2c3aed65984c999524b9 100644 (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
index 60a60dcd15df783dddd47f6a859b8d31ab3afc77..917716ef45f8d322fb86704a81bb6138874bf094 100644 (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;