Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add a couple of asserts trying to make the operation of sqlite3SelectNew() clearer. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
b21b1c7bc490b193da8d8a277489eb87 |
User & Date: | drh 2011-10-11 20:14:41.773 |
Context
2011-10-11
| ||
20:41 | Put in code to defend against signed/unsigned character problems in the command-line shell. (check-in: b94a80a832 user: drh tags: trunk) | |
20:14 | Add a couple of asserts trying to make the operation of sqlite3SelectNew() clearer. (check-in: b21b1c7bc4 user: drh tags: trunk) | |
18:18 | Change the behavior of the readonly_shm=1 query parameter so that it never attempts to open the -shm file read/write. (check-in: f136400483 user: drh tags: trunk) | |
Changes
Changes to src/select.c.
︙ | ︙ | |||
61 62 63 64 65 66 67 68 69 70 71 72 73 74 | ){ Select *pNew; Select standin; sqlite3 *db = pParse->db; pNew = sqlite3DbMallocZero(db, sizeof(*pNew) ); assert( db->mallocFailed || !pOffset || pLimit ); /* OFFSET implies LIMIT */ if( pNew==0 ){ pNew = &standin; memset(pNew, 0, sizeof(*pNew)); } if( pEList==0 ){ pEList = sqlite3ExprListAppend(pParse, 0, sqlite3Expr(db,TK_ALL,0)); } pNew->pEList = pEList; | > | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | ){ Select *pNew; Select standin; sqlite3 *db = pParse->db; pNew = sqlite3DbMallocZero(db, sizeof(*pNew) ); assert( db->mallocFailed || !pOffset || pLimit ); /* OFFSET implies LIMIT */ if( pNew==0 ){ assert( db->mallocFailed ); pNew = &standin; memset(pNew, 0, sizeof(*pNew)); } if( pEList==0 ){ pEList = sqlite3ExprListAppend(pParse, 0, sqlite3Expr(db,TK_ALL,0)); } pNew->pEList = pEList; |
︙ | ︙ | |||
88 89 90 91 92 93 94 95 96 97 98 99 100 101 | if( db->mallocFailed ) { clearSelect(db, pNew); if( pNew!=&standin ) sqlite3DbFree(db, pNew); pNew = 0; }else{ assert( pNew->pSrc!=0 || pParse->nErr>0 ); } return pNew; } /* ** Delete the given Select structure and all of its substructures. */ void sqlite3SelectDelete(sqlite3 *db, Select *p){ | > | 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | if( db->mallocFailed ) { clearSelect(db, pNew); if( pNew!=&standin ) sqlite3DbFree(db, pNew); pNew = 0; }else{ assert( pNew->pSrc!=0 || pParse->nErr>0 ); } assert( pNew!=&standin ); return pNew; } /* ** Delete the given Select structure and all of its substructures. */ void sqlite3SelectDelete(sqlite3 *db, Select *p){ |
︙ | ︙ |