Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a faulty assert() statement in sqlite3ExprListDup(). This is a continuation of the fix at [59812e7ef705226c]. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
240f7494bfa3e0806ae2f971e78039c6 |
User & Date: | drh 2021-05-20 23:25:28.287 |
Context
2021-05-21
| ||
16:42 | Merge the latest trunk enhancements into the wal2 branch. (check-in: 95cc778345 user: drh tags: wal2) | |
16:41 | Fix a problem with SQLITE_MAX_MEMORY in malloc.c. (check-in: c18dbe2f38 user: dan tags: trunk) | |
16:17 | Merge recent trunk changes into the begin-concurrent-pnu branch. (check-in: a8d05f8e92 user: drh tags: begin-concurrent-pnu) | |
15:33 | Merge all recent trunk changes into the begin-concurrent branch. (check-in: 0dba9010ad user: drh tags: begin-concurrent) | |
13:32 | Add a new sqlite3_config() option for setting the maximum precision of a printf() substitition. The default value is 100,000. It was formerly more than 2 billion. The default can be changed using the SQLITE_PRINTF_PRECISION_LIMIT compile-time option. (Leaf check-in: fd8b68a474 user: drh tags: compile-time-precision-limit) | |
2021-05-20
| ||
23:25 | Fix a faulty assert() statement in sqlite3ExprListDup(). This is a continuation of the fix at [59812e7ef705226c]. (check-in: 240f7494bf user: drh tags: trunk) | |
18:11 | Enhance one test case to use various alternative definitions of DUAL. (check-in: 179dcb6ba7 user: drh tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
1504 1505 1506 1507 1508 1509 1510 | pItem->pExpr = sqlite3ExprDup(db, pOldExpr, flags); if( pOldExpr && pOldExpr->op==TK_SELECT_COLUMN && (pNewExpr = pItem->pExpr)!=0 ){ assert( pNewExpr->iColumn==0 || i>0 ); if( pNewExpr->iColumn==0 ){ | | > | 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 | pItem->pExpr = sqlite3ExprDup(db, pOldExpr, flags); if( pOldExpr && pOldExpr->op==TK_SELECT_COLUMN && (pNewExpr = pItem->pExpr)!=0 ){ assert( pNewExpr->iColumn==0 || i>0 ); if( pNewExpr->iColumn==0 ){ assert( pOldExpr->pLeft==pOldExpr->pRight || ExprHasProperty(pOldExpr->pLeft, EP_Subquery) ); pPriorSelectCol = pNewExpr->pLeft = pNewExpr->pRight; }else{ assert( i>0 ); assert( pItem[-1].pExpr!=0 ); assert( pNewExpr->iColumn==pItem[-1].pExpr->iColumn+1 ); assert( pPriorSelectCol==pItem[-1].pExpr->pLeft ); pNewExpr->pLeft = pPriorSelectCol; |
︙ | ︙ |
Changes to test/upfrom1.test.
︙ | ︙ | |||
186 187 188 189 190 191 192 193 194 | SELECT x, y FROM t1, t2; } {102 2} do_execsql_test 4.2 { WITH t1 AS (SELECT y+100 AS x FROM t2) UPDATE t1 SET x=x+y FROM t2; SELECT x, y FROM t1, t2; } {104 2} finish_test | > > > > > > > > > > > > > > > > | 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | SELECT x, y FROM t1, t2; } {102 2} do_execsql_test 4.2 { WITH t1 AS (SELECT y+100 AS x FROM t2) UPDATE t1 SET x=x+y FROM t2; SELECT x, y FROM t1, t2; } {104 2} # 2021-05-20 # Forum https://sqlite.org/forum/forumpost/339f487de5 by Yu Liang # A bad assert() # reset_db do_execsql_test 5.1 { CREATE TABLE t1(a); INSERT INTO t1(a) VALUES(5); CREATE VIEW t2 AS SELECT a FROM t1 UNION ALL SELECT a FROM t1; CREATE TABLE t3(b,c); INSERT INTO t3(b,c) VALUES(1,2); UPDATE t3 SET (c,b) = (SELECT 3,4) FROM t1, t2; SELECT * FROM t3; } {4 3} finish_test |