Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a double-free that could occur when a component of a compound SELECT with an ORDER BY clause uses named window definitions. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
92893b7980cbb0c6e26bc0b21390a717 |
User & Date: | dan 2019-12-04 01:42:07.734 |
Context
2019-12-04
| ||
03:31 | Fix an incorrect NEVER() macro. (check-in: 96b6a76da0 user: drh tags: trunk) | |
01:42 | Fix a double-free that could occur when a component of a compound SELECT with an ORDER BY clause uses named window definitions. (check-in: 92893b7980 user: dan tags: trunk) | |
2019-12-03
| ||
03:34 | Avoid a crash that could occur when a database containing a table with a temp trigger that has the same name as a temp table is detached. (check-in: c4cb9708d4 user: dan tags: trunk) | |
Changes
Changes to src/select.c.
︙ | ︙ | |||
4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 | p->pWhere = 0; pNew->pGroupBy = 0; pNew->pHaving = 0; pNew->pOrderBy = 0; p->pPrior = 0; p->pNext = 0; p->pWith = 0; p->selFlags &= ~SF_Compound; assert( (p->selFlags & SF_Converted)==0 ); p->selFlags |= SF_Converted; assert( pNew->pPrior!=0 ); pNew->pPrior->pNext = pNew; pNew->pLimit = 0; return WRC_Continue; | > > > | 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 | p->pWhere = 0; pNew->pGroupBy = 0; pNew->pHaving = 0; pNew->pOrderBy = 0; p->pPrior = 0; p->pNext = 0; p->pWith = 0; #ifndef SQLITE_OMIT_WINDOWFUNC p->pWinDefn = 0; #endif p->selFlags &= ~SF_Compound; assert( (p->selFlags & SF_Converted)==0 ); p->selFlags |= SF_Converted; assert( pNew->pPrior!=0 ); pNew->pPrior->pNext = pNew; pNew->pLimit = 0; return WRC_Continue; |
︙ | ︙ |
Changes to test/window1.test.
︙ | ︙ | |||
1267 1268 1269 1270 1271 1272 1273 1274 1275 | SELECT total(d) OVER (ORDER BY c) FROM (SELECT 1 AS d) ORDER BY 1 ) ) ) FROM t1; } finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 | SELECT total(d) OVER (ORDER BY c) FROM (SELECT 1 AS d) ORDER BY 1 ) ) ) FROM t1; } #------------------------------------------------------------------------- reset_db do_catchsql_test 35.0 { SELECT * WINDOW f AS () ORDER BY name COLLATE nocase; } {1 {no tables specified}} do_catchsql_test 35.1 { VALUES(1) INTERSECT SELECT * WINDOW f AS () ORDER BY x COLLATE nocase; } {1 {no tables specified}} do_execsql_test 35.2 { CREATE TABLE t1(x); INSERT INTO t1 VALUES(1), (2), (3); VALUES(1) INTERSECT SELECT sum(x) OVER f FROM t1 WINDOW f AS (ORDER BY x) ORDER BY 1; } {1} do_execsql_test 35.3 { VALUES(8) EXCEPT SELECT sum(x) OVER f FROM t1 WINDOW f AS (ORDER BY x) ORDER BY 1; } {8} do_execsql_test 35.4 { VALUES(1) UNION SELECT sum(x) OVER f FROM t1 WINDOW f AS (ORDER BY x) ORDER BY 1; } {1 3 6} finish_test |