more
This commit is contained in:
parent
3c4237afd9
commit
a015dd5238
|
@ -120,7 +120,10 @@ static SPgHdr *tdbPCacheFetchImpl(SPCache *pCache, const SPgid *pPgid, bool alcN
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pPage || !alcNewPage) {
|
if (pPage || !alcNewPage) {
|
||||||
if (pPage) tdbPCachePinPage(pPage);
|
if (pPage) {
|
||||||
|
ASSERT(pPage->isLoad == 1);
|
||||||
|
tdbPCachePinPage(pPage);
|
||||||
|
}
|
||||||
return pPage;
|
return pPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,7 +150,7 @@ static SPgHdr *tdbPCacheFetchImpl(SPCache *pCache, const SPgid *pPgid, bool alcN
|
||||||
if (pPage) {
|
if (pPage) {
|
||||||
memcpy(&(pPage->pgid), pPgid, sizeof(*pPgid));
|
memcpy(&(pPage->pgid), pPgid, sizeof(*pPgid));
|
||||||
pPage->pLruNext = NULL;
|
pPage->pLruNext = NULL;
|
||||||
// *(void **)pPage->page.pExtra = 0; (TODO)
|
pPage->isLoad = 0;
|
||||||
tdbPCacheAddPageToHash(pPage);
|
tdbPCacheAddPageToHash(pPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,6 +84,7 @@ SPgHdr *tdbPFileGet(SPFile *pFile, SPgno pgno) {
|
||||||
}
|
}
|
||||||
tdbPCacheFetchFinish(pFile->pCache, pPage);
|
tdbPCacheFetchFinish(pFile->pCache, pPage);
|
||||||
|
|
||||||
|
if (!(pPage->isLoad)) {
|
||||||
if (pgno > pFile->dbFileSize /*TODO*/) {
|
if (pgno > pFile->dbFileSize /*TODO*/) {
|
||||||
memset(pPage->pData, 0, pFile->pageSize);
|
memset(pPage->pData, 0, pFile->pageSize);
|
||||||
} else {
|
} else {
|
||||||
|
@ -92,6 +93,7 @@ SPgHdr *tdbPFileGet(SPFile *pFile, SPgno pgno) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return pPage;
|
return pPage;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ struct SPgHdr {
|
||||||
SPgid pgid;
|
SPgid pgid;
|
||||||
u8 isAnchor;
|
u8 isAnchor;
|
||||||
u8 isLocalPage;
|
u8 isLocalPage;
|
||||||
|
u8 isLoad;
|
||||||
i32 nRef;
|
i32 nRef;
|
||||||
SPCache *pCache;
|
SPCache *pCache;
|
||||||
SPgHdr * pFreeNext;
|
SPgHdr * pFreeNext;
|
||||||
|
|
Loading…
Reference in New Issue