Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix for a couple of minor memory leaks. (CVS 4712) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
a13d3e953f1a3e451e8708a8ef064aa1 |
User & Date: | drh 2008-01-15 02:22:24.000 |
Context
2008-01-16
| ||
08:24 | Work around using (regexp) in the (ifcapable) function of the test suite. So that simpler versions of tcl can call it. (CVS 4713) (check-in: 3aa5606bd4 user: danielk1977 tags: trunk) | |
2008-01-15
| ||
02:22 | Fix for a couple of minor memory leaks. (CVS 4712) (check-in: a13d3e953f user: drh tags: trunk) | |
2008-01-14
| ||
15:20 | Fix for ticket #2883. (CVS 4711) (check-in: 187f41f54d user: drh tags: trunk) | |
Changes
Changes to src/select.c.
︙ | ︙ | |||
8 9 10 11 12 13 14 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains C code routines that are called by the parser ** to handle SELECT statements in SQLite. ** | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains C code routines that are called by the parser ** to handle SELECT statements in SQLite. ** ** $Id: select.c,v 1.402 2008/01/15 02:22:24 drh Exp $ */ #include "sqliteInt.h" /* ** Delete all the content of a Select structure but do not deallocate ** the select structure itself. |
︙ | ︙ | |||
3535 3536 3537 3538 3539 3540 3541 | ** + The optimizer code in where.c (the thing that decides which ** index or indices to use) should place a different priority on ** satisfying the 'ORDER BY' clause than it does in other cases. ** Refer to code and comments in where.c for details. */ flag = minMaxQuery(pParse, p); if( flag ){ | | < | 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 | ** + The optimizer code in where.c (the thing that decides which ** index or indices to use) should place a different priority on ** satisfying the 'ORDER BY' clause than it does in other cases. ** Refer to code and comments in where.c for details. */ flag = minMaxQuery(pParse, p); if( flag ){ pDel = pMinMax = sqlite3ExprListDup(db, p->pEList->a[0].pExpr->pList); if( pMinMax && !db->mallocFailed ){ pMinMax->a[0].sortOrder = ((flag==ORDERBY_MIN)?0:1); pMinMax->a[0].pExpr->op = TK_COLUMN; } } /* This case runs if the aggregate has no GROUP BY clause. The ** processing is much simpler since there is only a single row ** of output. */ |
︙ | ︙ |
Changes to src/vdbeaux.c.
︙ | ︙ | |||
578 579 580 581 582 583 584 585 | ** Change the comment on the the most recently coded instruction. */ void sqlite3VdbeComment(Vdbe *p, const char *zFormat, ...){ va_list ap; assert( p->nOp>0 || p->aOp==0 ); assert( p->aOp==0 || p->aOp[p->nOp-1].zComment==0 || p->db->mallocFailed ); if( p->nOp ){ va_start(ap, zFormat); | > > | | 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 | ** Change the comment on the the most recently coded instruction. */ void sqlite3VdbeComment(Vdbe *p, const char *zFormat, ...){ va_list ap; assert( p->nOp>0 || p->aOp==0 ); assert( p->aOp==0 || p->aOp[p->nOp-1].zComment==0 || p->db->mallocFailed ); if( p->nOp ){ char **pz = &p->aOp[p->nOp-1].zComment; va_start(ap, zFormat); sqlite3_free(*pz); *pz = sqlite3VMPrintf(p->db, zFormat, ap); va_end(ap); } } #endif /* ** Return the opcode for a given address. |
︙ | ︙ |