fix: fix page capacity calculation
This commit is contained in:
parent
61e3250ee7
commit
c1de4df95b
|
@ -246,14 +246,17 @@ void tdbPageCopy(SPage *pFromPage, SPage *pToPage) {
|
||||||
|
|
||||||
int tdbPageCapacity(int pageSize, int amHdrSize) {
|
int tdbPageCapacity(int pageSize, int amHdrSize) {
|
||||||
int szPageHdr;
|
int szPageHdr;
|
||||||
|
int minCellIndexSize; // at least one cell in cell index
|
||||||
|
|
||||||
if (pageSize < 65536) {
|
if (pageSize < 65536) {
|
||||||
szPageHdr = pageMethods.szPageHdr;
|
szPageHdr = pageMethods.szPageHdr;
|
||||||
|
minCellIndexSize = pageMethods.szOffset;
|
||||||
} else {
|
} else {
|
||||||
szPageHdr = pageLargeMethods.szPageHdr;
|
szPageHdr = pageLargeMethods.szPageHdr;
|
||||||
|
minCellIndexSize = pageLargeMethods.szOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
return pageSize - szPageHdr - amHdrSize;
|
return pageSize - szPageHdr - amHdrSize - sizeof(SPageFtr) - minCellIndexSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tdbPageAllocate(SPage *pPage, int szCell, SCell **ppCell) {
|
static int tdbPageAllocate(SPage *pPage, int szCell, SCell **ppCell) {
|
||||||
|
|
Loading…
Reference in New Issue