refact
This commit is contained in:
parent
3902294f01
commit
8bd4beec94
|
@ -117,23 +117,27 @@ static int tdbBtCursorMoveTo(SBtCursor *pCur, const void *pKey, int kLen) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (;;) {
|
if (pCur->pPage->pHdr->nCells == 0) {
|
||||||
int lidx, ridx, midx, c;
|
// Tree is empty
|
||||||
|
} else {
|
||||||
|
for (;;) {
|
||||||
|
int lidx, ridx, midx, c;
|
||||||
|
|
||||||
pBtPage = pCur->pPage;
|
pBtPage = pCur->pPage;
|
||||||
lidx = 0;
|
lidx = 0;
|
||||||
ridx = pBtPage->pHdr->nCells - 1;
|
ridx = pBtPage->pHdr->nCells - 1;
|
||||||
while (lidx <= ridx) {
|
while (lidx <= ridx) {
|
||||||
midx = (lidx + ridx) >> 1;
|
midx = (lidx + ridx) >> 1;
|
||||||
pCell = (void *)(pBtPage->aData + pBtPage->aCellIdx[midx]);
|
pCell = (void *)(pBtPage->aData + pBtPage->aCellIdx[midx]);
|
||||||
|
|
||||||
c = tdbCompareKeyAndCell(pKey, kLen, pCell);
|
c = tdbCompareKeyAndCell(pKey, kLen, pCell);
|
||||||
if (c == 0) {
|
if (c == 0) {
|
||||||
break;
|
break;
|
||||||
} else if (c < 0) {
|
} else if (c < 0) {
|
||||||
lidx = lidx + 1;
|
lidx = lidx + 1;
|
||||||
} else {
|
} else {
|
||||||
ridx = ridx - 1;
|
ridx = ridx - 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ int tdbDbOpen(const char *fname, int keyLen, int valLen, FKeyComparator keyCmprF
|
||||||
// pDb->pEnv
|
// pDb->pEnv
|
||||||
pDb->pEnv = pEnv;
|
pDb->pEnv = pEnv;
|
||||||
|
|
||||||
pFile = tdbEnvGetPFile(pEnv, fname);
|
pFile = tdbEnvGetPager(pEnv, fname);
|
||||||
if (pFile == NULL) {
|
if (pFile == NULL) {
|
||||||
snprintf(fFullName, TDB_FILENAME_LEN, "%s/%s", pEnv->rootDir, fname);
|
snprintf(fFullName, TDB_FILENAME_LEN, "%s/%s", pEnv->rootDir, fname);
|
||||||
ret = tdbPagerOpen(pEnv->pCache, fFullName, &pFile);
|
ret = tdbPagerOpen(pEnv->pCache, fFullName, &pFile);
|
||||||
|
|
|
@ -64,7 +64,7 @@ int tdbEnvClose(STEnv *pEnv) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
SPager *tdbEnvGetPFile(STEnv *pEnv, const char *fname) {
|
SPager *tdbEnvGetPager(STEnv *pEnv, const char *fname) {
|
||||||
// TODO
|
// TODO
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
|
@ -30,7 +30,7 @@ typedef struct STEnv {
|
||||||
int tdbEnvOpen(const char *rootDir, int pageSize, int cacheSize, STEnv **ppEnv);
|
int tdbEnvOpen(const char *rootDir, int pageSize, int cacheSize, STEnv **ppEnv);
|
||||||
int tdbEnvClose(STEnv *pEnv);
|
int tdbEnvClose(STEnv *pEnv);
|
||||||
|
|
||||||
SPager *tdbEnvGetPFile(STEnv *pEnv, const char *fname);
|
SPager *tdbEnvGetPager(STEnv *pEnv, const char *fname);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue