cleanup: remove unused pager open
This commit is contained in:
parent
a186cc4491
commit
1441684c03
|
@ -28,12 +28,12 @@ typedef struct {
|
||||||
TDB_STATIC_ASSERT(sizeof(SFileHdr) == 128, "Size of file header is not correct");
|
TDB_STATIC_ASSERT(sizeof(SFileHdr) == 128, "Size of file header is not correct");
|
||||||
|
|
||||||
struct hashset_st {
|
struct hashset_st {
|
||||||
size_t nbits;
|
size_t nbits;
|
||||||
size_t mask;
|
size_t mask;
|
||||||
size_t capacity;
|
size_t capacity;
|
||||||
size_t *items;
|
size_t *items;
|
||||||
size_t nitems;
|
size_t nitems;
|
||||||
double load_factor;
|
double load_factor;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const unsigned int prime = 39;
|
static const unsigned int prime = 39;
|
||||||
|
@ -68,11 +68,11 @@ void hashset_destroy(hashset_t set) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int hashset_add_member(hashset_t set, void *item) {
|
int hashset_add_member(hashset_t set, void *item) {
|
||||||
size_t value = (size_t) item;
|
size_t value = (size_t)item;
|
||||||
size_t h;
|
size_t h;
|
||||||
|
|
||||||
if (value == 0) {
|
if (value == 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (h = set->mask & (prime * value); set->items[h] != 0; h = set->mask & (h + prime2)) {
|
for (h = set->mask & (prime * value); set->items[h] != 0; h = set->mask & (h + prime2)) {
|
||||||
|
@ -103,7 +103,7 @@ int hashset_add(hashset_t set, void *item) {
|
||||||
|
|
||||||
set->nitems = 0;
|
set->nitems = 0;
|
||||||
for (size_t i = 0; i < old_capacity; ++i) {
|
for (size_t i = 0; i < old_capacity; ++i) {
|
||||||
hashset_add_member(set, (void*)old_items[i]);
|
hashset_add_member(set, (void *)old_items[i]);
|
||||||
}
|
}
|
||||||
tdbOsFree(old_items);
|
tdbOsFree(old_items);
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ int hashset_add(hashset_t set, void *item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int hashset_remove(hashset_t set, void *item) {
|
int hashset_remove(hashset_t set, void *item) {
|
||||||
size_t value = (size_t) item;
|
size_t value = (size_t)item;
|
||||||
|
|
||||||
for (size_t h = set->mask & (prime * value); set->items[h] != 0; h = set->mask & (h + prime2)) {
|
for (size_t h = set->mask & (prime * value); set->items[h] != 0; h = set->mask & (h + prime2)) {
|
||||||
if (set->items[h] == value) {
|
if (set->items[h] == value) {
|
||||||
|
@ -126,7 +126,7 @@ int hashset_remove(hashset_t set, void *item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int hashset_contains(hashset_t set, void *item) {
|
int hashset_contains(hashset_t set, void *item) {
|
||||||
size_t value = (size_t) item;
|
size_t value = (size_t)item;
|
||||||
|
|
||||||
for (size_t h = set->mask & (prime * value); set->items[h] != 0; h = set->mask & (h + prime2)) {
|
for (size_t h = set->mask & (prime * value); set->items[h] != 0; h = set->mask & (h + prime2)) {
|
||||||
if (set->items[h] == value) {
|
if (set->items[h] == value) {
|
||||||
|
@ -226,58 +226,7 @@ int tdbPagerClose(SPager *pPager) {
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
int tdbPagerOpenDB(SPager *pPager, SPgno *ppgno, bool toCreate, SBTree *pBt) {
|
|
||||||
SPgno pgno;
|
|
||||||
SPage *pPage;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (pPager->dbOrigSize > 0) {
|
|
||||||
pgno = 1;
|
|
||||||
} else {
|
|
||||||
pgno = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// TODO: try to search the main DB to get the page number
|
|
||||||
// pgno = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pgno == 0 && toCreate) {
|
|
||||||
// allocate a new child page
|
|
||||||
TXN txn;
|
|
||||||
tdbTxnOpen(&txn, 0, tdbDefaultMalloc, tdbDefaultFree, NULL, 0);
|
|
||||||
|
|
||||||
pPager->inTran = 1;
|
|
||||||
|
|
||||||
SBtreeInitPageArg zArg;
|
|
||||||
zArg.flags = 0x1 | 0x2; // root leaf node;
|
|
||||||
zArg.pBt = pBt;
|
|
||||||
ret = tdbPagerFetchPage(pPager, &pgno, &pPage, tdbBtreeInitPage, &zArg, &txn);
|
|
||||||
if (ret < 0) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ret = tdbPagerAllocPage(pPager, &pPage, &pgno);
|
|
||||||
// if (ret < 0) {
|
|
||||||
// return -1;
|
|
||||||
//}
|
|
||||||
|
|
||||||
// TODO: Need to zero the page
|
|
||||||
|
|
||||||
ret = tdbPagerWrite(pPager, pPage);
|
|
||||||
if (ret < 0) {
|
|
||||||
tdbError("failed to write page since %s", terrstr());
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
tdbTxnClose(&txn);
|
|
||||||
}
|
|
||||||
|
|
||||||
*ppgno = pgno;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
int tdbPagerWrite(SPager *pPager, SPage *pPage) {
|
int tdbPagerWrite(SPager *pPager, SPage *pPage) {
|
||||||
int ret;
|
int ret;
|
||||||
SPage **ppPage;
|
SPage **ppPage;
|
||||||
|
@ -319,7 +268,8 @@ int tdbPagerWrite(SPager *pPager, SPage *pPage) {
|
||||||
tRBTreePut(&pPager->rbt, (SRBTreeNode *)pPage);
|
tRBTreePut(&pPager->rbt, (SRBTreeNode *)pPage);
|
||||||
|
|
||||||
// Write page to journal if neccessary
|
// Write page to journal if neccessary
|
||||||
if (TDB_PAGE_PGNO(pPage) <= pPager->dbOrigSize && (pPager->jPageSet == NULL || !hashset_contains(pPager->jPageSet, (void*)((long)TDB_PAGE_PGNO(pPage))))) {
|
if (TDB_PAGE_PGNO(pPage) <= pPager->dbOrigSize &&
|
||||||
|
(pPager->jPageSet == NULL || !hashset_contains(pPager->jPageSet, (void *)((long)TDB_PAGE_PGNO(pPage))))) {
|
||||||
ret = tdbPagerWritePageToJournal(pPager, pPage);
|
ret = tdbPagerWritePageToJournal(pPager, pPage);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
tdbError("failed to write page to journal since %s", tstrerror(terrno));
|
tdbError("failed to write page to journal since %s", tstrerror(terrno));
|
||||||
|
@ -327,7 +277,7 @@ int tdbPagerWrite(SPager *pPager, SPage *pPage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pPager->jPageSet) {
|
if (pPager->jPageSet) {
|
||||||
hashset_add(pPager->jPageSet, (void*)((long)TDB_PAGE_PGNO(pPage)));
|
hashset_add(pPager->jPageSet, (void *)((long)TDB_PAGE_PGNO(pPage)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -391,7 +341,7 @@ int tdbPagerCommit(SPager *pPager, TXN *pTxn) {
|
||||||
|
|
||||||
tRBTreeDrop(&pPager->rbt, (SRBTreeNode *)pPage);
|
tRBTreeDrop(&pPager->rbt, (SRBTreeNode *)pPage);
|
||||||
if (pPager->jPageSet) {
|
if (pPager->jPageSet) {
|
||||||
hashset_remove(pPager->jPageSet, (void*)((long)TDB_PAGE_PGNO(pPage)));
|
hashset_remove(pPager->jPageSet, (void *)((long)TDB_PAGE_PGNO(pPage)));
|
||||||
}
|
}
|
||||||
tdbPCacheRelease(pPager->pCache, pPage, pTxn);
|
tdbPCacheRelease(pPager->pCache, pPage, pTxn);
|
||||||
}
|
}
|
||||||
|
@ -503,7 +453,7 @@ int tdbPagerAbort(SPager *pPager, TXN *pTxn) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 *pageBuf = tdbOsCalloc(1, pPager->pageSize);
|
u8 *pageBuf = tdbOsCalloc(1, pPager->pageSize);
|
||||||
if (pageBuf == NULL) {
|
if (pageBuf == NULL) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -560,7 +510,7 @@ int tdbPagerAbort(SPager *pPager, TXN *pTxn) {
|
||||||
pPage->isDirty = 0;
|
pPage->isDirty = 0;
|
||||||
|
|
||||||
tRBTreeDrop(&pPager->rbt, (SRBTreeNode *)pPage);
|
tRBTreeDrop(&pPager->rbt, (SRBTreeNode *)pPage);
|
||||||
hashset_remove(pPager->jPageSet, (void*)((long)TDB_PAGE_PGNO(pPage)));
|
hashset_remove(pPager->jPageSet, (void *)((long)TDB_PAGE_PGNO(pPage)));
|
||||||
tdbPCacheRelease(pPager->pCache, pPage, pTxn);
|
tdbPCacheRelease(pPager->pCache, pPage, pTxn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue