Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Catch an obscure case of database corruption. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
0f9b17a6da42b4da667bbbc00f713eff |
User & Date: | dan 2009-12-05 18:03:51.000 |
Context
2009-12-05
| ||
18:16 | Add test case for the obscure corruption detection added by the previous commit. (check-in: f221f31eff user: dan tags: trunk) | |
18:03 | Catch an obscure case of database corruption. (check-in: 0f9b17a6da user: dan tags: trunk) | |
14:29 | Fix another bug in 3-way NEAR queries. (check-in: 3bb13a0652 user: dan tags: trunk) | |
Changes
Changes to src/btree.c.
︙ | ︙ | |||
5589 5590 5591 5592 5593 5594 5595 | /* Copy the b-tree node content from page pFrom to page pTo. */ iData = get2byte(&aFrom[iFromHdr+5]); memcpy(&aTo[iData], &aFrom[iData], pBt->usableSize-iData); memcpy(&aTo[iToHdr], &aFrom[iFromHdr], pFrom->cellOffset + 2*pFrom->nCell); /* Reinitialize page pTo so that the contents of the MemPage structure | | > | > | | > > > | 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 | /* Copy the b-tree node content from page pFrom to page pTo. */ iData = get2byte(&aFrom[iFromHdr+5]); memcpy(&aTo[iData], &aFrom[iData], pBt->usableSize-iData); memcpy(&aTo[iToHdr], &aFrom[iFromHdr], pFrom->cellOffset + 2*pFrom->nCell); /* Reinitialize page pTo so that the contents of the MemPage structure ** match the new data. The initialization of pTo can actually fail under ** fairly obscure circumstances, even though it is a copy of initialized ** page pFrom. */ pTo->isInit = 0; rc = btreeInitPage(pTo); if( rc!=SQLITE_OK ){ *pRC = rc; return; } /* If this is an auto-vacuum database, update the pointer-map entries ** for any b-tree or overflow pages that pTo now contains the pointers to. */ if( ISAUTOVACUUM ){ *pRC = setChildPtrmaps(pTo); } |
︙ | ︙ |