diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/build.c | 9 | ||||
-rw-r--r-- | src/select.c | 1 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/build.c b/src/build.c index cd838557f..5495cef18 100644 --- a/src/build.c +++ b/src/build.c @@ -5138,6 +5138,9 @@ void sqlite3SrcListIndexedBy(Parse *pParse, SrcList *p, Token *pIndexedBy){ */ SrcList *sqlite3SrcListAppendList(Parse *pParse, SrcList *p1, SrcList *p2){ assert( p1 ); + assert( p2 || pParse->nErr ); + assert( p2==0 || p2->nSrc>=1 ); + testcase( p1->nSrc==0 ); if( p2 ){ int nOld = p1->nSrc; SrcList *pNew = sqlite3SrcListEnlarge(pParse, p1, p2->nSrc, nOld); @@ -5146,10 +5149,10 @@ SrcList *sqlite3SrcListAppendList(Parse *pParse, SrcList *p1, SrcList *p2){ }else{ p1 = pNew; memcpy(&p1->a[nOld], p2->a, p2->nSrc*sizeof(SrcItem)); - assert( nOld==1 || (p2->nSrc==1 && (p2->a[0].fg.jointype&JT_LTORJ)==0) ); - assert( p1->nSrc>=2 ); + assert( nOld==1 || (p2->a[0].fg.jointype & JT_LTORJ)==0 ); + assert( p1->nSrc>=1 ); + p1->a[0].fg.jointype |= (JT_LTORJ & p2->a[0].fg.jointype); sqlite3DbFree(pParse->db, p2); - p1->a[0].fg.jointype |= (JT_LTORJ & p1->a[1].fg.jointype); } } return p1; diff --git a/src/select.c b/src/select.c index b15300237..2dd8fc772 100644 --- a/src/select.c +++ b/src/select.c @@ -7432,7 +7432,6 @@ static SQLITE_NOINLINE void existsToJoin( ){ if( pWhere && !ExprHasProperty(pWhere, EP_OuterON|EP_InnerON) - && p->pSrc->nSrc>0 && p->pSrc->nSrc<BMS && pParse->db->mallocFailed==0 ){ |