Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Bug fix: allow ROWID as a column in SELECT statements where the FROM clause includes views which are flattened. (CVS 431) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
a3a360b308e45eaaf19efda80e30f2d4 |
User & Date: | drh 2002-03-14 14:33:31.000 |
Context
2002-03-18
| ||
13:03 | Fix an uninitialized variable in AggReset() (CVS 432) (check-in: 3dcdeae7f6 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: a3a360b308 user: drh tags: trunk) | |
2002-03-13
| ||
19:00 | Version 2.4.1 (CVS 442) (check-in: 9f12b8805f 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.76 2002/03/14 14:33:31 drh Exp $ */ #include "sqliteInt.h" /* ** Allocate a new Select structure and return a pointer to that ** structure. */ |
︙ | ︙ | |||
778 779 780 781 782 783 784 | } } } /* ** Scan through the expression pExpr. Replace every reference to ** a column in table number iTable with a copy of the corresponding | | > | | | | 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 | } } } /* ** Scan through the expression pExpr. Replace every reference to ** a column in table number iTable with a copy of the corresponding ** entry in pEList. (But leave references to the ROWID column ** unchanged.) When making a copy of an expression in pEList, change ** references to columns in table iSub into references to table iTable. ** ** This routine is part of the flattening procedure. A subquery ** whose result set is defined by pEList appears as entry in the ** FROM clause of a SELECT such that the VDBE cursor assigned to that ** FORM clause entry is iTable. This routine make the necessary ** changes to pExpr so that it refers directly to the source table ** of the subquery rather the result set of the subquery. */ static void substExpr(Expr *pExpr, int iTable, ExprList *pEList, int iSub){ if( pExpr==0 ) return; if( pExpr->op==TK_COLUMN && pExpr->iTable==iTable && pExpr->iColumn>=0 ){ Expr *pNew; assert( pEList!=0 && pExpr->iColumn<pEList->nExpr ); assert( pExpr->pLeft==0 && pExpr->pRight==0 && pExpr->pList==0 ); pNew = pEList->a[pExpr->iColumn].pExpr; assert( pNew!=0 ); pExpr->op = pNew->op; pExpr->pLeft = sqliteExprDup(pNew->pLeft); pExpr->pRight = sqliteExprDup(pNew->pRight); pExpr->pList = sqliteExprListDup(pNew->pList); |
︙ | ︙ |
Changes to www/changes.tcl.
︙ | ︙ | |||
14 15 16 17 18 19 20 | proc chng {date desc} { puts "<DT><B>$date</B></DT>" puts "<DD><P><UL>$desc</UL></P></DD>" } chng {2002 Mar 13 (2.4.1)} { | | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | proc chng {date desc} { puts "<DT><B>$date</B></DT>" puts "<DD><P><UL>$desc</UL></P></DD>" } chng {2002 Mar 13 (2.4.1)} { <li>Using an unnamed subquery in a FROM clause would cause a segfault.</li> <li>The parser now insists on seeing a semicolon or the end of input before executing a statement. This avoids an accidental disaster if the WHERE keyword is misspelled in an UPDATE or DELETE statement.</li> } chng {2002 Mar 10 (2.4.0)} { <li>Change the name of the sanity_check PRAGMA to <b>integrity_check</b> |
︙ | ︙ |