This commit is contained in:
Hongze Cheng 2022-02-28 06:50:40 +00:00
parent 59e7f147c3
commit b4a2bed4dd
2 changed files with 24 additions and 3 deletions

View File

@ -25,6 +25,7 @@ int tdbDbOpen(const char *fname, int keyLen, int valLen, FKeyComparator keyCmprF
SPFile *pFile;
int ret;
char fFullName[TDB_FILENAME_LEN];
SPage * pPage;
*ppDb = NULL;
@ -45,6 +46,16 @@ int tdbDbOpen(const char *fname, int keyLen, int valLen, FKeyComparator keyCmprF
}
}
ASSERT(pFile != NULL);
// TODO: Search if the DB already in the file
if (1 /*todo: db should be created*/) {
ret = tdbPFileAllocPage(pFile, &pPage);
if (ret < 0) {
return -1;
}
}
// pDb->pBt
ret = tdbBtreeOpen(&(pDb->pBt));
if (ret < 0) {

View File

@ -103,7 +103,7 @@ SPage *tdbPFileGet(SPFile *pFile, SPgno pgno) {
ASSERT(pPage->isLoad);
return pPage;
}
int tdbPFileWrite(SPFile *pFile, SPage *pPage) {
// TODO: if the page is not in journal, write to journal
@ -112,8 +112,18 @@ int tdbPFileWrite(SPFile *pFile, SPage *pPage) {
}
int tdbPFileAllocPage(SPFile *pFile, SPage **ppPage) {
// TODO
*ppPage = NULL;
SPage *pPage;
SPgno pgno;
if (1 /*TODO: no free page*/) {
pgno = ++pFile->dbFileSize;
pPage = tdbPFileGet(pFile, pgno);
ASSERT(pPage != NULL);
} else {
ASSERT(0);
}
*ppPage = pPage;
return 0;
}