aboutsummaryrefslogtreecommitdiff
path: root/src/wherecode.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2016-08-02 17:45:00 +0000
committerdan <dan@noemail.net>2016-08-02 17:45:00 +0000
commitf9b2e05c75e55ca795caa825bfcba1c0760ea35f (patch)
treeaf04e7fbee05617f78c086013fcd27d1f253e7ad /src/wherecode.c
parentd05a7144cd7bcdbe5f5274198198e5120e846703 (diff)
downloadsqlite-f9b2e05c75e55ca795caa825bfcba1c0760ea35f.tar.gz
sqlite-f9b2e05c75e55ca795caa825bfcba1c0760ea35f.zip
Fix SQLITE_OMIT_SUBQUERY builds.
FossilOrigin-Name: 339f85f414a484e44d2502d1ff7281caf9b7c838
Diffstat (limited to 'src/wherecode.c')
-rw-r--r--src/wherecode.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/wherecode.c b/src/wherecode.c
index 11e9bbda3..9aafa8366 100644
--- a/src/wherecode.c
+++ b/src/wherecode.c
@@ -360,6 +360,7 @@ static int codeEqualityTerm(
assert( iTarget>0 );
if( pX->op==TK_EQ || pX->op==TK_IS ){
Expr *pRight = pX->pRight;
+#ifndef SQLITE_OMIT_SUBQUERY
if( pRight->op==TK_SELECT_COLUMN ){
/* This case occurs for expressions like "(a, b) == (SELECT ...)". */
WhereLoop *pLoop = pLevel->pWLoop;
@@ -381,7 +382,9 @@ static int codeEqualityTerm(
}
}
iReg = iTarget;
- }else{
+ }else
+#endif
+ {
iReg = sqlite3ExprCodeTarget(pParse, pRight, iTarget);
}
}else if( pX->op==TK_ISNULL ){
@@ -962,17 +965,20 @@ static void codeDeferredSeek(
static void codeExprOrVector(Parse *pParse, Expr *p, int iReg, int nReg){
assert( nReg>0 );
if( sqlite3ExprIsVector(p) ){
- int i;
- if( (p->flags & EP_xIsSelect)==0 ){
+#ifndef SQLITE_OMIT_SUBQUERY
+ if( (p->flags & EP_xIsSelect) ){
+ Vdbe *v = pParse->pVdbe;
+ int iSelect = sqlite3CodeSubselect(pParse, p, 0, 0);
+ sqlite3VdbeAddOp3(v, OP_Copy, iSelect, iReg, nReg-1);
+ }else
+#endif
+ {
+ int i;
ExprList *pList = p->x.pList;
assert( nReg<=pList->nExpr );
for(i=0; i<nReg; i++){
sqlite3ExprCode(pParse, pList->a[i].pExpr, iReg+i);
}
- }else{
- Vdbe *v = pParse->pVdbe;
- int iSelect = sqlite3CodeSubselect(pParse, p, 0, 0);
- sqlite3VdbeAddOp3(v, OP_Copy, iSelect, iReg, nReg-1);
}
}else{
assert( nReg==1 );