Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Simplify the math slightly, and reduce by one the number of loop iterations, for the loop in balance_nonroot() that moves cells between pages. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
2e838db82e533598b3cb00011c04fc0d |
User & Date: | drh 2014-10-31 12:22:00.360 |
Context
2014-10-31
| ||
14:26 | Simplify the logic in the cell redistribution loop of balance_nonroot(). Enhance and clarify comments and add assert() statements for additional verification of correctness. (check-in: a07078b600 user: drh tags: trunk) | |
12:22 | Simplify the math slightly, and reduce by one the number of loop iterations, for the loop in balance_nonroot() that moves cells between pages. (check-in: 2e838db82e user: drh tags: trunk) | |
10:31 | Add the "varint.c" utility program in the tool directory. (check-in: ea5d56be5f user: drh tags: trunk) | |
Changes
Changes to src/btree.c.
︙ | ︙ | |||
7032 7033 7034 7035 7036 7037 7038 | ** ** 2) If cells are to be removed from the end of the page and shifted ** to the right-hand sibling, it is not safe to update the page until ** the right-hand sibling (apNew[i+1]) has already been updated. ** ** If neither of the above apply, the page is safe to update. */ | | | > > | 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 | ** ** 2) If cells are to be removed from the end of the page and shifted ** to the right-hand sibling, it is not safe to update the page until ** the right-hand sibling (apNew[i+1]) has already been updated. ** ** If neither of the above apply, the page is safe to update. */ for(i=1-nNew; i<nNew; i++){ int iPg = i<0 ? -i : i; /* iPg takes values from nNew-1 down to 0 then back up to nNew-1 again */ assert( iPg>=0 && iPg<nNew ); if( abDone[iPg]==0 && (iPg==0 || cntOld[iPg-1]>=cntNew[iPg-1] || abDone[iPg-1]) && (cntNew[iPg]>=cntOld[iPg] || abDone[iPg+1]) ){ int iNew; int iOld; int nNewCell; |
︙ | ︙ |