Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Code constant vector components outside of any loops in CASE and BETWEEN expressions. Fix for [1a684656]. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | branch-3.15 |
Files: | files | file ages | folders |
SHA1: |
4c6efe600debf783e1cbb3db5df3b409 |
User & Date: | drh 2016-11-23 21:13:41.487 |
Context
2016-11-23
| ||
21:14 | Update the version number to 3.15.2. (check-in: 86dc74cb10 user: drh tags: branch-3.15) | |
21:13 | Code constant vector components outside of any loops in CASE and BETWEEN expressions. Fix for [1a684656]. (check-in: 4c6efe600d user: drh tags: branch-3.15) | |
21:08 | Prevent a possible use-after-free bug in the query optimizer. (check-in: 661b45068f user: drh tags: branch-3.15) | |
19:31 | Code constant vector components outside of any loops in CASE and BETWEEN expressions. Fix for [1a684656]. (check-in: c08aff13ea user: dan tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
3292 3293 3294 3295 3296 3297 3298 | if( p->op==TK_SELECT ){ iResult = sqlite3CodeSubselect(pParse, p, 0, 0); }else{ int i; iResult = pParse->nMem+1; pParse->nMem += nResult; for(i=0; i<nResult; i++){ | | | 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 | if( p->op==TK_SELECT ){ iResult = sqlite3CodeSubselect(pParse, p, 0, 0); }else{ int i; iResult = pParse->nMem+1; pParse->nMem += nResult; for(i=0; i<nResult; i++){ sqlite3ExprCodeFactorable(pParse, p->x.pList->a[i].pExpr, i+iResult); } } } return iResult; } |
︙ | ︙ |
Changes to test/rowvalue.test.
︙ | ︙ | |||
274 275 276 277 278 279 280 | 3 "SELECT 2 BETWEEN 1 AND (1,2)" 4 "SELECT (1,2) FROM (SELECT 1) ORDER BY 1" 5 "SELECT (1,2) FROM (SELECT 1) GROUP BY 1" } { do_catchsql_test 13.$tn $sql {1 {row value misused}} } | > > > | > > > > > > > > > > > | 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 | 3 "SELECT 2 BETWEEN 1 AND (1,2)" 4 "SELECT (1,2) FROM (SELECT 1) ORDER BY 1" 5 "SELECT (1,2) FROM (SELECT 1) GROUP BY 1" } { do_catchsql_test 13.$tn $sql {1 {row value misused}} } do_execsql_test 14.0 { CREATE TABLE t12(x); INSERT INTO t12 VALUES(2), (4); } do_execsql_test 14.1 "SELECT 1 WHERE (2,2) BETWEEN (1,1) AND (3,3)" 1 do_execsql_test 14.2 "SELECT CASE (2,2) WHEN (1, 1) THEN 2 ELSE 1 END" 1 do_execsql_test 14.3 "SELECT CASE (SELECT 2,2) WHEN (1, 1) THEN 2 ELSE 1 END" 1 do_execsql_test 14.4 "SELECT 1 WHERE (SELECT 2,2) BETWEEN (1,1) AND (3,3)" 1 do_execsql_test 14.5 "SELECT 1 FROM t12 WHERE (x,1) BETWEEN (1,1) AND (3,3)" 1 do_execsql_test 14.6 { SELECT 1 FROM t12 WHERE (1,x) BETWEEN (1,1) AND (3,3) } {1 1} finish_test |