diff --git a/source/libs/tdb/src/db/tdbPgCache.c b/source/libs/tdb/src/db/tdbPgCache.c index 9a8ea62863..273b1abe4b 100644 --- a/source/libs/tdb/src/db/tdbPgCache.c +++ b/source/libs/tdb/src/db/tdbPgCache.c @@ -14,6 +14,32 @@ */ #include "tdbInt.h" +typedef TD_DLIST_NODE(SPage) SPgListNode; +struct SPage { + pgid_t pgid; // page id + frame_id_t frameid; // frame id + SPgListNode freeNode; // for SPgCache.freeList + SPgListNode pghtNode; // for pght + SPgListNode lruNode; // for LRU + uint8_t * pData; // real data +}; + +typedef TD_DLIST(SPage) SPgList; +struct SPgCache { + TENV * pEnv; // TENV containing this page cache + SRWLatch mutex; + pgsz_t pgsize; + int32_t npage; + SPage * pages; + SPgList freeList; + SPgList lru; + struct { + int32_t nbucket; + SPgList *buckets; + } pght; // page hash table +}; + + static void pgCachePinPage(SPage *pPage); static void pgCacheUnpinPage(SPage *pPage); diff --git a/source/libs/tdb/src/db/tdbPgFile.c b/source/libs/tdb/src/db/tdbPgFile.c index c03303da38..576d6f3da4 100644 --- a/source/libs/tdb/src/db/tdbPgFile.c +++ b/source/libs/tdb/src/db/tdbPgFile.c @@ -86,7 +86,8 @@ SPage *pgFileFetch(SPgFile *pPgFile, pgno_t pgno) { if (1 /*Page is cached, no need to load from file*/) { return pPage; } else { - if (pgFileRead(pPgFile, pgno, pPage->pData) < 0) { + // TODO: handle error + if (pgFileRead(pPgFile, pgno, (void *)pPage) < 0) { // todoerr } return pPage; diff --git a/source/libs/tdb/src/inc/tdbPgCache.h b/source/libs/tdb/src/inc/tdbPgCache.h index 35a8b9d1fc..791d5148fc 100644 --- a/source/libs/tdb/src/inc/tdbPgCache.h +++ b/source/libs/tdb/src/inc/tdbPgCache.h @@ -32,31 +32,6 @@ int pgCacheRelease(SPage *pPage); // SPage -typedef TD_DLIST_NODE(SPage) SPgListNode; -struct SPage { - pgid_t pgid; // page id - frame_id_t frameid; // frame id - SPgListNode freeNode; // for SPgCache.freeList - SPgListNode pghtNode; // for pght - SPgListNode lruNode; // for LRU - uint8_t * pData; // real data -}; - -typedef TD_DLIST(SPage) SPgList; -struct SPgCache { - TENV * pEnv; // TENV containing this page cache - SRWLatch mutex; - pgsz_t pgsize; - int32_t npage; - SPage * pages; - SPgList freeList; - SPgList lru; - struct { - int32_t nbucket; - SPgList *buckets; - } pght; // page hash table -}; - #ifdef __cplusplus } #endif