diff options
author | dan <dan@noemail.net> | 2015-06-23 12:19:55 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2015-06-23 12:19:55 +0000 |
commit | 923cadb1ae3c4f1fbbc9bc11a818ea62474631f4 (patch) | |
tree | f4c15d520802a0259ac8617af889534f1d64b348 /src/resolve.c | |
parent | 82c4f9b4076bca379194efd79ad6df47fff4fab9 (diff) | |
download | sqlite-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.c | 7 |
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; |