aboutsummaryrefslogtreecommitdiff
path: root/src/wherecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wherecode.c')
-rw-r--r--src/wherecode.c35
1 files changed, 2 insertions, 33 deletions
diff --git a/src/wherecode.c b/src/wherecode.c
index dd15b5893..2ef9a46b5 100644
--- a/src/wherecode.c
+++ b/src/wherecode.c
@@ -377,34 +377,7 @@ static int codeEqualityTerm(
assert( pLevel->pWLoop->aLTerm[iEq]==pTerm );
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;
- int i;
- Expr *pSub = pRight->pLeft;
- assert( pSub->op==TK_SELECT );
- for(i=pLoop->nSkip; i<iEq; i++){
- Expr *pExpr = pLoop->aLTerm[i]->pExpr->pRight;
- if( pExpr && pExpr->op==TK_SELECT_COLUMN && pExpr->pLeft==pSub ) break;
- }
-
- if( i==iEq ){
- iReg = sqlite3CodeSubselect(pParse, pSub, 0, 0);
- for(/*no-op*/; i<pLoop->nLTerm; i++){
- Expr *pExpr = pLoop->aLTerm[i]->pExpr->pRight;
- if( pExpr && pExpr->op==TK_SELECT_COLUMN && pExpr->pLeft==pSub ){
- sqlite3VdbeAddOp2(v, OP_Copy, iReg+pExpr->iColumn, iTarget-iEq+i);
- }
- }
- }
- iReg = iTarget;
- }else
-#endif
- {
- iReg = sqlite3ExprCodeTarget(pParse, pRight, iTarget);
- }
+ iReg = sqlite3ExprCodeTarget(pParse, pX->pRight, iTarget);
}else if( pX->op==TK_ISNULL ){
iReg = iTarget;
sqlite3VdbeAddOp2(v, OP_Null, 0, iReg);
@@ -1101,11 +1074,7 @@ Bitmask sqlite3WhereCodeOneLoopStart(
addrNotFound = pLevel->addrNxt;
}else{
Expr *pRight = pTerm->pExpr->pRight;
- if( pRight->op==TK_SELECT_COLUMN ){
- codeEqualityTerm(pParse, pTerm, pLevel, j, bRev, iTarget);
- }else{
- codeExprOrVector(pParse, pRight, iTarget, 1);
- }
+ codeExprOrVector(pParse, pRight, iTarget, 1);
}
}
sqlite3VdbeAddOp2(v, OP_Integer, pLoop->u.vtab.idxNum, iReg);