diff options
author | Hans-Christoph Steiner <hans@eds.org> | 2013-01-17 14:23:24 -0500 |
---|---|---|
committer | Hans-Christoph Steiner <hans@eds.org> | 2013-01-17 14:23:24 -0500 |
commit | 4f9313b1de21a03df32bfba4d94207c78a2171b0 (patch) | |
tree | 6a637dd4dde653f870346a37ec6555eb0574949a /src/walker.c | |
parent | 9da5e9acd37e51b86429d938e7e6a64ffb02da84 (diff) | |
parent | 1b5ba8e022836fa8ab93bc90df1b34a29ea6e134 (diff) |
Merge tag 'upstream/2.1.1'
Upstream version 2.1.1
Conflicts:
.gitignore
Diffstat (limited to 'src/walker.c')
-rw-r--r-- | src/walker.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/walker.c b/src/walker.c index c95a9c1..eab96ea 100644 --- a/src/walker.c +++ b/src/walker.c @@ -125,12 +125,18 @@ int sqlite3WalkSelect(Walker *pWalker, Select *p){ int rc; if( p==0 || pWalker->xSelectCallback==0 ) return WRC_Continue; rc = WRC_Continue; - while( p ){ + pWalker->walkerDepth++; + while( p ){ rc = pWalker->xSelectCallback(pWalker, p); if( rc ) break; - if( sqlite3WalkSelectExpr(pWalker, p) ) return WRC_Abort; - if( sqlite3WalkSelectFrom(pWalker, p) ) return WRC_Abort; + if( sqlite3WalkSelectExpr(pWalker, p) + || sqlite3WalkSelectFrom(pWalker, p) + ){ + pWalker->walkerDepth--; + return WRC_Abort; + } p = p->pPrior; } + pWalker->walkerDepth--; return rc & WRC_Abort; } |