/ Check-in [01d26b3d]
Login

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

Overview
Comment:Fix for ticket #3382 was mistakenly removed by (5712). Add an assert to prevent it from being removed again. (CVS 5733)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 01d26b3df7029f7fa09231c18a7b9f9a1a967916
User & Date: drh 2008-09-23 09:36:10
Context
2008-09-23
09:58
Add no-op Unload entry points to the TCL interface. Ticket #3397. (CVS 5734) check-in: b31dd1e3 user: drh tags: trunk
09:36
Fix for ticket #3382 was mistakenly removed by (5712). Add an assert to prevent it from being removed again. (CVS 5733) check-in: 01d26b3d user: drh tags: trunk
2008-09-22
17:54
Get rid of all of the compiler magic associated with SQLITE_EXPERIMENTAL and SQLITE_DEPRECATED. It was causing more problems than it was solving. Ticket #3395 et al. (CVS 5732) check-in: bc040073 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/select.c.

     8      8   **    May you find forgiveness for yourself and forgive others.
     9      9   **    May you share freely, never taking more than you give.
    10     10   **
    11     11   *************************************************************************
    12     12   ** This file contains C code routines that are called by the parser
    13     13   ** to handle SELECT statements in SQLite.
    14     14   **
    15         -** $Id: select.c,v 1.475 2008/09/17 00:13:12 drh Exp $
           15  +** $Id: select.c,v 1.476 2008/09/23 09:36:10 drh Exp $
    16     16   */
    17     17   #include "sqliteInt.h"
    18     18   
    19     19   
    20     20   /*
    21     21   ** Delete all the content of a Select structure but do not deallocate
    22     22   ** the select structure itself.
................................................................................
  2043   2043     int regPrev;          /* A range of registers to hold previous output */
  2044   2044     int savedLimit;       /* Saved value of p->iLimit */
  2045   2045     int savedOffset;      /* Saved value of p->iOffset */
  2046   2046     int labelCmpr;        /* Label for the start of the merge algorithm */
  2047   2047     int labelEnd;         /* Label for the end of the overall SELECT stmt */
  2048   2048     int j1;               /* Jump instructions that get retargetted */
  2049   2049     int op;               /* One of TK_ALL, TK_UNION, TK_EXCEPT, TK_INTERSECT */
  2050         -  KeyInfo *pKeyDup;     /* Comparison information for duplicate removal */
         2050  +  KeyInfo *pKeyDup = 0; /* Comparison information for duplicate removal */
  2051   2051     KeyInfo *pKeyMerge;   /* Comparison information for merging rows */
  2052   2052     sqlite3 *db;          /* Database connection */
  2053   2053     ExprList *pOrderBy;   /* The ORDER BY clause */
  2054   2054     int nOrderBy;         /* Number of terms in the ORDER BY clause */
  2055   2055     int *aPermute;        /* Mapping from ORDER BY terms to result set columns */
  2056   2056   
  2057   2057     assert( p->pOrderBy!=0 );
         2058  +  assert( pKeyDup==0 ); /* "Managed" code needs this.  Ticket #3382. */
  2058   2059     db = pParse->db;
  2059   2060     v = pParse->pVdbe;
  2060   2061     if( v==0 ) return SQLITE_NOMEM;
  2061   2062     labelEnd = sqlite3VdbeMakeLabel(v);
  2062   2063     labelCmpr = sqlite3VdbeMakeLabel(v);
  2063   2064   
  2064   2065