Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Avoid a NULL-pointer deref following OOM. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | sorter-reference |
Files: | files | file ages | folders |
SHA3-256: |
413015c029d850d4ce7e66be1f59b57f |
User & Date: | drh 2018-04-18 19:08:44.210 |
Context
2018-04-18
| ||
19:56 | Add the "sorter-reference" optimization, allowing SQLite to be configured so that some required values may be loaded from the database after external sorting occurs for SELECT statements with ORDER BY clauses that are not satisfied by database indexes. (check-in: ef74090a40 user: dan tags: trunk) | |
19:08 | Avoid a NULL-pointer deref following OOM. (Closed-Leaf check-in: 413015c029 user: drh tags: sorter-reference) | |
15:21 | Add the --sorterref N option to the CLI. (check-in: 902a40897f user: drh tags: sorter-reference) | |
Changes
Changes to src/select.c.
︙ | ︙ | |||
880 881 882 883 884 885 886 | int j; if( (j = pSort->pOrderBy->a[i].u.x.iOrderByCol)>0 ){ p->pEList->a[j-1].u.x.iOrderByCol = i+1-pSort->nOBSat; } } #ifdef SQLITE_ENABLE_SORTER_REFERENCES selectExprDefer(pParse, pSort, p->pEList, &pExtra); | | | 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 | int j; if( (j = pSort->pOrderBy->a[i].u.x.iOrderByCol)>0 ){ p->pEList->a[j-1].u.x.iOrderByCol = i+1-pSort->nOBSat; } } #ifdef SQLITE_ENABLE_SORTER_REFERENCES selectExprDefer(pParse, pSort, p->pEList, &pExtra); if( pExtra && pParse->db->mallocFailed==0 ){ /* If there are any extra PK columns to add to the sorter records, ** allocate extra memory cells and adjust the OpenEphemeral ** instruction to account for the larger records. This is only ** required if there are one or more WITHOUT ROWID tables with ** composite primary keys in the SortCtx.aDefer[] array. */ VdbeOp *pOp = sqlite3VdbeGetOp(v, pSort->addrSortIndex); pOp->p2 += (pExtra->nExpr - pSort->nDefer); |
︙ | ︙ |