diff --git a/ext/rtree/rtree6.test b/ext/rtree/rtree6.test index c5a78bb3e3..9e51993bd8 100644 --- a/ext/rtree/rtree6.test +++ b/ext/rtree/rtree6.test @@ -92,12 +92,18 @@ do_eqp_test rtree6.2.3 { 0 1 1 {SEARCH TABLE t2 USING INTEGER PRIMARY KEY (rowid=?)} } -do_eqp_test rtree6.2.4 { - SELECT * FROM t1,t2 WHERE v=10 and x1<10 and x2>10 +do_eqp_test rtree6.2.4.1 { + SELECT * FROM t1,t2 WHERE v=+ii and x1<10 and x2>10 } { 0 0 0 {SCAN TABLE t1 VIRTUAL TABLE INDEX 2:C0E1} 0 1 1 {SEARCH TABLE t2 USING AUTOMATIC COVERING INDEX (v=?)} } +do_eqp_test rtree6.2.4.2 { + SELECT * FROM t1,t2 WHERE v=10 and x1<10 and x2>10 +} { + 0 0 0 {SCAN TABLE t1 VIRTUAL TABLE INDEX 2:C0E1} + 0 1 1 {SCAN TABLE t2} +} do_eqp_test rtree6.2.5 { SELECT * FROM t1,t2 WHERE k=ii AND x1a + pWC->nTerm; for(pTerm=pWC->a; rc==SQLITE_OK && pTermprereqRight & pNew->maskSelf ) continue; - if( pTerm->prereqRight==0 ) continue; + if( pTerm->prereqRight==0 + && sqlite3ExprIsConstant(pTerm->pExpr->pRight) ){ + continue; + } if( termCanDriveIndex(pTerm, pSrc, 0) ){ pNew->u.btree.nEq = 1; pNew->u.btree.nSkip = 0; diff --git a/test/tpch01.test b/test/tpch01.test index 2d099d63fb..ce48f8ec23 100644 --- a/test/tpch01.test +++ b/test/tpch01.test @@ -168,7 +168,10 @@ do_test tpch01-1.1 { } {/0 0 0 {SEARCH TABLE part USING INDEX bootleg_pti .P_TYPE=..} 0 1 2 {SEARCH TABLE lineitem USING INDEX lpki2 .L_PARTKEY=..}.*/} do_test tpch01-1.1b { set ::eqpres -} {/.* customer .* nation AS n1 .* nation AS n2 .*/} +} {/.* customer .* nation AS n1 .*/} +do_test tpch01-1.1c { + set ::eqpres +} {/.* supplier .* nation AS n2 .*/} do_eqp_test tpch01-1.2 { select @@ -185,3 +188,5 @@ group by order by revenue desc; } {0 0 1 {SEARCH TABLE orders USING INDEX odi (O_ORDERDATE>? AND O_ORDERDATE