Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a potential NULL pointer dereference on a RENAME TABLE that references a VIEW with a logic error in a window function in the ORDER BY clause. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
0adb273f7e7671efb0e0a1619887e369 |
User & Date: | drh 2019-11-16 11:33:39.324 |
Context
2019-11-16
| ||
12:04 | Do not allow shadow tables to be dropped in defensive mode. (check-in: 70390bbca4 user: drh tags: trunk) | |
11:33 | Fix a potential NULL pointer dereference on a RENAME TABLE that references a VIEW with a logic error in a window function in the ORDER BY clause. (check-in: 0adb273f7e user: drh tags: trunk) | |
2019-11-15
| ||
21:16 | Modify three test cases so that they work even with unusual versions of the library printf(). (check-in: 8f4a3750b7 user: drh tags: trunk) | |
Changes
Changes to src/window.c.
︙ | ︙ | |||
1240 1241 1242 1243 1244 1245 1246 | /* ** Possibly link window pWin into the list at pSel->pWin (window functions ** to be processed as part of SELECT statement pSel). The window is linked ** in if either (a) there are no other windows already linked to this ** SELECT, or (b) the windows already linked use a compatible window frame. */ void sqlite3WindowLink(Select *pSel, Window *pWin){ | | | | 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 | /* ** Possibly link window pWin into the list at pSel->pWin (window functions ** to be processed as part of SELECT statement pSel). The window is linked ** in if either (a) there are no other windows already linked to this ** SELECT, or (b) the windows already linked use a compatible window frame. */ void sqlite3WindowLink(Select *pSel, Window *pWin){ if( pSel!=0 && (0==pSel->pWin || 0==sqlite3WindowCompare(0, pSel->pWin, pWin, 0)) ){ pWin->pNextWin = pSel->pWin; if( pSel->pWin ){ pSel->pWin->ppThis = &pWin->pNextWin; } pSel->pWin = pWin; pWin->ppThis = &pSel->pWin; |
︙ | ︙ |
Changes to test/window1.test.
︙ | ︙ | |||
1230 1231 1232 1233 1234 1235 1236 1237 | FROM t3 ) FROM ( SELECT * FROM t2 ); } {1 {frame ending offset must be a non-negative integer}} finish_test | > > > > > > > > > | 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 | FROM t3 ) FROM ( SELECT * FROM t2 ); } {1 {frame ending offset must be a non-negative integer}} # 2019-11-16 chromium issue 1025467 db close sqlite3 db :memory: do_catchsql_test 32.10 { CREATE VIEW a AS SELECT NULL INTERSECT SELECT NULL ORDER BY s() OVER R; CREATE TABLE a0 AS SELECT 0; ALTER TABLE a0 RENAME TO S; } {1 {error in view a: 1st ORDER BY term does not match any column in the result set}} finish_test |