Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Correct names returned from a query against a view. Ticket #1709, #1688, #1711. (CVS 3128) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
36830fafa405c9eae4795045efc68433 |
User & Date: | drh 2006-03-09 17:28:12.000 |
Context
2006-03-11
| ||
12:04 | Add an assert() to demonstrate that Klockworks is wrong about an aleged bug. (CVS 3129) (check-in: 0910022be3 user: drh tags: trunk) | |
2006-03-09
| ||
17:28 | Correct names returned from a query against a view. Ticket #1709, #1688, #1711. (CVS 3128) (check-in: 36830fafa4 user: drh tags: trunk) | |
2006-03-06
| ||
23:30 | Remove all reference to EXTERN from tclsqlite.c. Ticket #1687. (CVS 3127) (check-in: b4d3e0d528 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.307 2006/03/09 17:28:12 drh Exp $ */ #include "sqliteInt.h" /* ** Delete all the content of a Select structure but do not deallocate ** the select structure itself. |
︙ | ︙ | |||
2239 2240 2241 2242 2243 2244 2245 | ** SELECT a+5, b*10 FROM (SELECT x*3 AS a, y+10 AS b FROM t1) WHERE a>b; ** \ \_____________ subquery __________/ / ** \_____________________ outer query ______________________________/ ** ** We look at every expression in the outer query and every place we see ** "a" we substitute "x*3" and every place we see "b" we substitute "y+10". */ | < > | 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 | ** SELECT a+5, b*10 FROM (SELECT x*3 AS a, y+10 AS b FROM t1) WHERE a>b; ** \ \_____________ subquery __________/ / ** \_____________________ outer query ______________________________/ ** ** We look at every expression in the outer query and every place we see ** "a" we substitute "x*3" and every place we see "b" we substitute "y+10". */ pList = p->pEList; for(i=0; i<pList->nExpr; i++){ Expr *pExpr; if( pList->a[i].zName==0 && (pExpr = pList->a[i].pExpr)->span.z!=0 ){ pList->a[i].zName = sqliteStrNDup((char*)pExpr->span.z, pExpr->span.n); } } substExprList(p->pEList, iParent, pSub->pEList); if( isAgg ){ substExprList(p->pGroupBy, iParent, pSub->pEList); substExpr(p->pHaving, iParent, pSub->pEList); } if( pSub->pOrderBy ){ assert( p->pOrderBy==0 ); p->pOrderBy = pSub->pOrderBy; |
︙ | ︙ |
Changes to test/view.test.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 2002 February 26 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing VIEW statements. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 2002 February 26 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing VIEW statements. # # $Id: view.test,v 1.30 2006/03/09 17:28:13 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # Omit this entire file if the library is not configured with views enabled. ifcapable !view { finish_test return |
︙ | ︙ | |||
463 464 465 466 467 468 469 470 471 | # do_test view-14.1 { catchsql { CREATE TEMP VIEW t1 AS SELECT a,b FROM t1; SELECT * FROM temp.t1; } } {1 {view t1 is circularly defined}} finish_test | > > > > > > > > > > > > > > > | 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 | # do_test view-14.1 { catchsql { CREATE TEMP VIEW t1 AS SELECT a,b FROM t1; SELECT * FROM temp.t1; } } {1 {view t1 is circularly defined}} # Tickets #1688, #1709 # do_test view-15.1 { execsql2 { CREATE VIEW v15 AS SELECT a AS x, b AS y FROM t1; SELECT * FROM v15 LIMIT 1; } } {x 2 y 3} do_test view-15.2 { execsql2 { SELECT x, y FROM v15 LIMIT 1 } } {x 2 y 3} finish_test |