aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2015-06-23 12:19:55 +0000
committerdan <dan@noemail.net>2015-06-23 12:19:55 +0000
commit923cadb1ae3c4f1fbbc9bc11a818ea62474631f4 (patch)
treef4c15d520802a0259ac8617af889534f1d64b348 /src/resolve.c
parent82c4f9b4076bca379194efd79ad6df47fff4fab9 (diff)
downloadsqlite-923cadb1ae3c4f1fbbc9bc11a818ea62474631f4.tar.gz
sqlite-923cadb1ae3c4f1fbbc9bc11a818ea62474631f4.zip
Test that the left and right sides of a compound SELECT operator have the same number of expressions in the expanded expression list before beginning to generate code.
FossilOrigin-Name: 4df852ce26c95d5d23c83dbe9c59d2c3435acddf
Diffstat (limited to 'src/resolve.c')
-rw-r--r--src/resolve.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/resolve.c b/src/resolve.c
index 27eba9fd0..fd57fd702 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -1331,6 +1331,13 @@ static int resolveSelectStep(Walker *pWalker, Select *p){
}
}
+ /* If this is part of a compound SELECT, check that it has the right
+ ** number of expressions in the select list. */
+ if( p->pNext && p->pEList->nExpr!=p->pNext->pEList->nExpr ){
+ sqlite3SelectWrongNumTermsError(pParse, p->pNext);
+ return WRC_Abort;
+ }
+
/* Advance to the next term of the compound
*/
p = p->pPrior;