From: drh Date: Fri, 6 Dec 2019 01:38:24 +0000 (+0000) Subject: Further enhancements to RTREE, following up to check-in [f898d04cf272ef01] X-Git-Tag: version-3.31.0~256 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e5748a550244deea5b0a0e1c09b240f85b7a0299;p=thirdparty%2Fsqlite.git Further enhancements to RTREE, following up to check-in [f898d04cf272ef01] so that constraints are allowed to be compared to strings that look like numbers. Ticket [aa573a787b8f1fdf] FossilOrigin-Name: 32772dfd50b602c049d8c30bc28cde60a18b7495a997d728081f689ff417c956 --- diff --git a/ext/rtree/rtree.c b/ext/rtree/rtree.c index 08d8e057c0..76078e97fd 100644 --- a/ext/rtree/rtree.c +++ b/ext/rtree/rtree.c @@ -1855,7 +1855,7 @@ static int rtreeFilter( || (idxStr && (int)strlen(idxStr)==argc*2) ); for(ii=0; iiaConstraint[ii]; - int eType = sqlite3_value_type(argv[ii]); + int eType = sqlite3_value_numeric_type(argv[ii]); p->op = idxStr[ii*2]; p->iCoord = idxStr[ii*2+1]-'0'; if( p->op>=RTREE_MATCH ){ diff --git a/ext/rtree/rtree1.test b/ext/rtree/rtree1.test index 86ae18210d..485ebeb497 100644 --- a/ext/rtree/rtree1.test +++ b/ext/rtree/rtree1.test @@ -380,18 +380,24 @@ do_test rtree-8.1.4 { execsql { SELECT ii FROM t6 WHERE x1>4 } } {} do_test rtree-8.1.5 { execsql { SELECT ii FROM t6 WHERE x1>5 } } {} do_test rtree-8.1.6 { execsql { SELECT ii FROM t6 WHERE x1>''} } {} do_test rtree-8.1.7 { execsql { SELECT ii FROM t6 WHERE x1>null}} {} +do_test rtree-8.1.8 { execsql { SELECT ii FROM t6 WHERE x1>'2'} } {1 2} +do_test rtree-8.1.9 { execsql { SELECT ii FROM t6 WHERE x1>'3'} } {2} do_test rtree-8.2.2 { execsql { SELECT ii FROM t6 WHERE x1>=2 } } {1 2} do_test rtree-8.2.3 { execsql { SELECT ii FROM t6 WHERE x1>=3 } } {1 2} do_test rtree-8.2.4 { execsql { SELECT ii FROM t6 WHERE x1>=4 } } {2} do_test rtree-8.2.5 { execsql { SELECT ii FROM t6 WHERE x1>=5 } } {} do_test rtree-8.2.6 { execsql { SELECT ii FROM t6 WHERE x1>=''} } {} do_test rtree-8.2.7 { execsql { SELECT ii FROM t6 WHERE x1>=null}} {} +do_test rtree-8.2.8 { execsql { SELECT ii FROM t6 WHERE x1>='4'} } {2} +do_test rtree-8.2.9 { execsql { SELECT ii FROM t6 WHERE x1>='5'} } {} do_test rtree-8.3.2 { execsql { SELECT ii FROM t6 WHERE x1<2 } } {} do_test rtree-8.3.3 { execsql { SELECT ii FROM t6 WHERE x1<3 } } {} do_test rtree-8.3.4 { execsql { SELECT ii FROM t6 WHERE x1<4 } } {1} do_test rtree-8.3.5 { execsql { SELECT ii FROM t6 WHERE x1<5 } } {1 2} do_test rtree-8.3.6 { execsql { SELECT ii FROM t6 WHERE x1<''} } {1 2} do_test rtree-8.3.7 { execsql { SELECT ii FROM t6 WHERE x1