aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/build.c9
-rw-r--r--src/select.c1
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
){