提交 0a372a73 编写于 作者: H Hongze Cheng

more TDB

上级 2849a62c
......@@ -17,4 +17,35 @@
struct SBtCursor {
// TODO
};
\ No newline at end of file
};
static int btreeCreate(SBTree **pBt);
static int btreeDestroy(SBTree *pBt);
int btreeOpen(SBTree **ppBt, SPgFile *pPgFile) {
SBTree *pBt;
int ret;
ret = btreeCreate(&pBt);
if (ret != 0) {
return -1;
}
*ppBt = pBt;
return 0;
}
int btreeClose(SBTree *pBt) {
// TODO
return 0;
}
static int btreeCreate(SBTree **pBt) {
// TODO
return 0;
}
static int btreeDestroy(SBTree *pBt) {
// TODO
return 0;
}
\ No newline at end of file
......@@ -16,7 +16,7 @@
#include "tdbInt.h"
struct STDb {
SBTree btree; // current access method
SBTree * pBt; // current access method
SPgFile *pPgFile; // backend page file this DB is using
TENV * pEnv; // TENV containing the DB
};
......@@ -47,6 +47,7 @@ int tdbOpen(TDB **ppDb, const char *fname, const char *dbname, TENV *pEnv) {
uint8_t fileid[TDB_FILE_ID_LEN];
SPgFile * pPgFile;
SPgCache *pPgCache;
SBTree * pBt;
// Create DB if DB handle is not created yet
if (ppDb == NULL) {
......@@ -78,6 +79,7 @@ int tdbOpen(TDB **ppDb, const char *fname, const char *dbname, TENV *pEnv) {
}
// Check if the SPgFile already opened
tdbGnrtFileID(fname, fileid, false);
pPgFile = tdbEnvGetPageFile(pEnv, fileid);
if (pPgFile == NULL) {
pPgCache = tdbEnvGetPgCache(pEnv);
......@@ -89,6 +91,11 @@ int tdbOpen(TDB **ppDb, const char *fname, const char *dbname, TENV *pEnv) {
pDb->pPgFile = pPgFile;
// open the access method (TODO)
if (btreeOpen(&pBt, pPgFile) != 0) {
return -1;
}
pDb->pBt = pBt;
return 0;
}
......
......@@ -24,7 +24,7 @@ typedef struct SBTree SBTree;
typedef struct SBtCursor SBtCursor;
// SBTree
int btreeOpen(SBTree **ppBt);
int btreeOpen(SBTree **ppBt, SPgFile *pPgFile);
int btreeClose(SBTree *pBt);
// SBtCursor
......
......@@ -20,7 +20,6 @@
extern "C" {
#endif
typedef struct SPgFile SPgFile;
struct SPgFile {
char * fname; // backend file name
uint8_t fileid[TDB_FILE_ID_LEN]; // file id
......
......@@ -25,6 +25,8 @@
extern "C" {
#endif
typedef struct SPgFile SPgFile;
// pgno_t
typedef int32_t pgno_t;
#define TDB_IVLD_PGNO ((pgno_t)-1)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册