/ Check-in [4a008050]
Login
SQLite training in Houston TX on 2019-11-05 (details)
Part of the 2019 Tcl Conference

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix a C++-ism in recent changes to select.c. (CVS 4633)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 4a00805014a5f4ad862bde0bb55fac934bab41dd
User & Date: drh 2007-12-14 17:24:40
Context
2007-12-14
17:24
Update library version number to 3.5.4. (CVS 4634) check-in: 5c653bfc user: drh tags: trunk
17:24
Fix a C++-ism in recent changes to select.c. (CVS 4633) check-in: 4a008050 user: drh tags: trunk
17:22
Change to the crash simulator to give better diagnostics in case it runs out of memory while using the mem3.c allocator. (CVS 4632) check-in: 0d5747db user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/select.c.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
....
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
**    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.371 2007/12/14 16:11:09 drh Exp $
*/
#include "sqliteInt.h"


/*
** Delete all the content of a Select structure but do not deallocate
** the select structure itself.
................................................................................
  while( pSelect->pPrior ){
    pSelect = pSelect->pPrior;
  }
  while( pSelect && moreToDo ){
    moreToDo = 0;
    for(i=0; i<pOrderBy->nExpr; i++){
      int iCol;
      Expr *pE;
      if( pOrderBy->a[i].done ) continue;
      pE = pOrderBy->a[i].pExpr;
      Expr *pDup = sqlite3ExprDup(db, pE);
      if( pDup==0 ){
        return 1;
      }
      iCol = matchOrderByTermToExprList(pParse, pSelect, pDup, i+1, 1, 0);
      sqlite3ExprDelete(pDup);
      if( iCol<0 ){
        return 1;







|







 







|


|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
....
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
**    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.372 2007/12/14 17:24:40 drh Exp $
*/
#include "sqliteInt.h"


/*
** Delete all the content of a Select structure but do not deallocate
** the select structure itself.
................................................................................
  while( pSelect->pPrior ){
    pSelect = pSelect->pPrior;
  }
  while( pSelect && moreToDo ){
    moreToDo = 0;
    for(i=0; i<pOrderBy->nExpr; i++){
      int iCol;
      Expr *pE, *pDup;
      if( pOrderBy->a[i].done ) continue;
      pE = pOrderBy->a[i].pExpr;
      pDup = sqlite3ExprDup(db, pE);
      if( pDup==0 ){
        return 1;
      }
      iCol = matchOrderByTermToExprList(pParse, pSelect, pDup, i+1, 1, 0);
      sqlite3ExprDelete(pDup);
      if( iCol<0 ){
        return 1;