Overview
Comment: | Fix an uninitialized variable in AggReset() (CVS 432) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: | 3dcdeae7f620736c1eae52ad78db1efb886ea9c3 |
User & Date: | drh 2002-03-18 13:03:55 |
Context
2002-03-19
| ||
23:51 | Version 2.4.2 (CVS 433) check-in: b0805b60 user: drh tags: trunk | |
2002-03-18
| ||
13:03 | Fix an uninitialized variable in AggReset() (CVS 432) check-in: 3dcdeae7 user: drh tags: trunk | |
2002-03-14
| ||
14:33 | Bug fix: allow ROWID as a column in SELECT statements where the FROM clause includes views which are flattened. (CVS 431) check-in: a3a360b3 user: drh tags: trunk | |
Changes
Changes to src/vdbe.c.
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
...
656
657
658
659
660
661
662
663
664
665
666
667
668
669
|
** type to the other occurs as necessary. ** ** Most of the code in this file is taken up by the sqliteVdbeExec() ** function which does the work of interpreting a VDBE program. ** But other routines are also provided to help in building up ** a program instruction by instruction. ** ** $Id: vdbe.c,v 1.134 2002/03/10 21:21:00 drh Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** The following global variable is incremented every time a cursor ** moves, either by the OP_MoveTo or the OP_Next opcode. The test ................................................................................ for(p = sqliteHashFirst(&pAgg->hash); p; p = sqliteHashNext(p)){ AggElem *pElem = sqliteHashData(p); assert( pAgg->apFunc!=0 ); for(i=0; i<pAgg->nMem; i++){ Mem *pMem = &pElem->aMem[i]; if( pAgg->apFunc[i] && (pMem->s.flags & STK_AggCtx)!=0 ){ sqlite_func ctx; ctx.s.flags = STK_Null; ctx.z = 0; ctx.pAgg = pMem->z; ctx.cnt = pMem->s.i; ctx.isStep = 0; ctx.isError = 0; (*pAgg->apFunc[i]->xFinalize)(&ctx); |
|
>
|
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
...
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
|
** type to the other occurs as necessary. ** ** Most of the code in this file is taken up by the sqliteVdbeExec() ** function which does the work of interpreting a VDBE program. ** But other routines are also provided to help in building up ** a program instruction by instruction. ** ** $Id: vdbe.c,v 1.135 2002/03/18 13:03:55 drh Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** The following global variable is incremented every time a cursor ** moves, either by the OP_MoveTo or the OP_Next opcode. The test ................................................................................ for(p = sqliteHashFirst(&pAgg->hash); p; p = sqliteHashNext(p)){ AggElem *pElem = sqliteHashData(p); assert( pAgg->apFunc!=0 ); for(i=0; i<pAgg->nMem; i++){ Mem *pMem = &pElem->aMem[i]; if( pAgg->apFunc[i] && (pMem->s.flags & STK_AggCtx)!=0 ){ sqlite_func ctx; ctx.pFunc = pAgg->apFunc[i]; ctx.s.flags = STK_Null; ctx.z = 0; ctx.pAgg = pMem->z; ctx.cnt = pMem->s.i; ctx.isStep = 0; ctx.isError = 0; (*pAgg->apFunc[i]->xFinalize)(&ctx); |