Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Finish incomplete edit of resolve.c from check-in (5998). (CVS 6000) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
0d7e150e8c6cb801e68273c9d0793ce3 |
User & Date: | drh 2008-12-09 14:03:22.000 |
Context
2008-12-09
| ||
14:46 | Return an appropriate out-of-memory message when sqlite3_errmsg() is called following an SQLITE_NOMEM error. (CVS 6001) (check-in: 228ebe4115 user: drh tags: trunk) | |
14:03 | Finish incomplete edit of resolve.c from check-in (5998). (CVS 6000) (check-in: 0d7e150e8c user: drh tags: trunk) | |
13:12 | Additional test cases for nested subqueries in a WHERE clause. (CVS 5999) (check-in: 4f10f19dd1 user: drh tags: trunk) | |
Changes
Changes to src/resolve.c.
︙ | ︙ | |||
10 11 12 13 14 15 16 | ** ************************************************************************* ** ** This file contains routines used for walking the parser tree and ** resolve all identifiers by associating them with a particular ** table and column. ** | | | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ** ************************************************************************* ** ** This file contains routines used for walking the parser tree and ** resolve all identifiers by associating them with a particular ** table and column. ** ** $Id: resolve.c,v 1.13 2008/12/09 14:03:22 drh Exp $ */ #include "sqliteInt.h" #include <stdlib.h> #include <string.h> /* ** Turn the pExpr expression into an alias for the iCol-th column of the |
︙ | ︙ | |||
959 960 961 962 963 964 965 | /* Recursively resolve names in all subqueries */ for(i=0; i<p->pSrc->nSrc; i++){ struct SrcList_item *pItem = &p->pSrc->a[i]; if( pItem->pSelect ){ const char *zSavedContext = pParse->zAuthContext; if( pItem->zName ) pParse->zAuthContext = pItem->zName; | | | 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 | /* Recursively resolve names in all subqueries */ for(i=0; i<p->pSrc->nSrc; i++){ struct SrcList_item *pItem = &p->pSrc->a[i]; if( pItem->pSelect ){ const char *zSavedContext = pParse->zAuthContext; if( pItem->zName ) pParse->zAuthContext = pItem->zName; sqlite3ResolveSelectNames(pParse, pItem->pSelect, pOuterNC); pParse->zAuthContext = zSavedContext; if( pParse->nErr || db->mallocFailed ) return WRC_Abort; } } /* If there are no aggregate functions in the result-set, and no GROUP BY ** expression, do not allow aggregates in any of the other expressions. |
︙ | ︙ |