Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Candidate fix for a memory leak that occurs if a CREATE TABLE statement contains two or more COLLATE clauses on the same column definition. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | memleak |
Files: | files | file ages | folders |
SHA1: |
60fc77bc537b099bdd48916746109d03 |
User & Date: | drh 2013-06-08 19:58:27.523 |
Context
2013-06-09
| ||
20:16 | Add test cases to demonstrate the memory leak on the COLLATE clause. (Closed-Leaf check-in: 0a60212c9c user: drh tags: memleak) | |
2013-06-08
| ||
19:58 | Candidate fix for a memory leak that occurs if a CREATE TABLE statement contains two or more COLLATE clauses on the same column definition. (check-in: 60fc77bc53 user: drh tags: memleak) | |
2013-06-07
| ||
22:12 | Improve manual cleaning step performed by the multi-platform build tool for MSVC. (check-in: d5bc1fe1c4 user: mistachkin tags: trunk) | |
Changes
Changes to src/build.c.
︙ | ︙ | |||
1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 | i = p->nCol-1; db = pParse->db; zColl = sqlite3NameFromToken(db, pToken); if( !zColl ) return; if( sqlite3LocateCollSeq(pParse, zColl) ){ Index *pIdx; p->aCol[i].zColl = zColl; /* If the column is declared as "<name> PRIMARY KEY COLLATE <type>", ** then an index may have been created on this column before the ** collation type was added. Correct this if it is the case. */ for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){ | > | 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 | i = p->nCol-1; db = pParse->db; zColl = sqlite3NameFromToken(db, pToken); if( !zColl ) return; if( sqlite3LocateCollSeq(pParse, zColl) ){ Index *pIdx; sqlite3DbFree(db, p->aCol[i].zColl); p->aCol[i].zColl = zColl; /* If the column is declared as "<name> PRIMARY KEY COLLATE <type>", ** then an index may have been created on this column before the ** collation type was added. Correct this if it is the case. */ for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){ |
︙ | ︙ |