/ Check-in [02232e71]
Login

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

Overview
Comment:Move a variable initialization earlier to work around MS compiler complaints. (CVS 5549)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 02232e71441efc75e0729423f635ce21809fe412
User & Date: drh 2008-08-08 18:06:26
Context
2008-08-11
14:26
Disallow empty triggers. Ticket #3283. This does not present a backwards compatibility problem because prior to this change, an empty trigger would segfault. (CVS 5550) check-in: 571adab9 user: drh tags: trunk
2008-08-08
18:06
Move a variable initialization earlier to work around MS compiler complaints. (CVS 5549) check-in: 02232e71 user: drh tags: trunk
15:06
Back out part of (5546): Even though ON CONFLICT clauses on CHECK constraints are no-ops, if a schema includes them, the database will be unreadable if we do not at least parse and ignore the clause. (CVS 5548) check-in: efcaeb68 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.463 2008/08/04 03:51:24 danielk1977 Exp $
           15  +** $Id: select.c,v 1.464 2008/08/08 18:06:26 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.
................................................................................
  1892   1892     ** the last (right-most) SELECT in the series may have an ORDER BY or LIMIT.
  1893   1893     */
  1894   1894     assert( p && p->pPrior );  /* Calling function guarantees this much */
  1895   1895     db = pParse->db;
  1896   1896     pPrior = p->pPrior;
  1897   1897     assert( pPrior->pRightmost!=pPrior );
  1898   1898     assert( pPrior->pRightmost==p->pRightmost );
         1899  +  dest = *pDest;
  1899   1900     if( pPrior->pOrderBy ){
  1900   1901       sqlite3ErrorMsg(pParse,"ORDER BY clause should come after %s not before",
  1901   1902         selectOpName(p->op));
  1902   1903       rc = 1;
  1903   1904       goto multi_select_end;
  1904   1905     }
  1905   1906     if( pPrior->pLimit ){
................................................................................
  1910   1911     }
  1911   1912   
  1912   1913     v = sqlite3GetVdbe(pParse);
  1913   1914     assert( v!=0 );  /* The VDBE already created by calling function */
  1914   1915   
  1915   1916     /* Create the destination temporary table if necessary
  1916   1917     */
  1917         -  dest = *pDest;
  1918   1918     if( dest.eDest==SRT_EphemTab ){
  1919   1919       assert( p->pEList );
  1920   1920       sqlite3VdbeAddOp2(v, OP_OpenEphemeral, dest.iParm, p->pEList->nExpr);
  1921   1921       dest.eDest = SRT_Table;
  1922   1922     }
  1923   1923   
  1924   1924     /* Make sure all SELECTs in the statement have the same number of elements