This commit is contained in:
Hongze Cheng 2022-02-10 07:08:26 +00:00
parent 2849a62ced
commit 0a372a7359
5 changed files with 43 additions and 4 deletions

View File

@ -17,4 +17,35 @@
struct SBtCursor { struct SBtCursor {
// TODO // TODO
}; };
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;
}

View File

@ -16,7 +16,7 @@
#include "tdbInt.h" #include "tdbInt.h"
struct STDb { struct STDb {
SBTree btree; // current access method SBTree * pBt; // current access method
SPgFile *pPgFile; // backend page file this DB is using SPgFile *pPgFile; // backend page file this DB is using
TENV * pEnv; // TENV containing the DB 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]; uint8_t fileid[TDB_FILE_ID_LEN];
SPgFile * pPgFile; SPgFile * pPgFile;
SPgCache *pPgCache; SPgCache *pPgCache;
SBTree * pBt;
// Create DB if DB handle is not created yet // Create DB if DB handle is not created yet
if (ppDb == NULL) { 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 // Check if the SPgFile already opened
tdbGnrtFileID(fname, fileid, false);
pPgFile = tdbEnvGetPageFile(pEnv, fileid); pPgFile = tdbEnvGetPageFile(pEnv, fileid);
if (pPgFile == NULL) { if (pPgFile == NULL) {
pPgCache = tdbEnvGetPgCache(pEnv); pPgCache = tdbEnvGetPgCache(pEnv);
@ -89,6 +91,11 @@ int tdbOpen(TDB **ppDb, const char *fname, const char *dbname, TENV *pEnv) {
pDb->pPgFile = pPgFile; pDb->pPgFile = pPgFile;
// open the access method (TODO) // open the access method (TODO)
if (btreeOpen(&pBt, pPgFile) != 0) {
return -1;
}
pDb->pBt = pBt;
return 0; return 0;
} }

View File

@ -24,7 +24,7 @@ typedef struct SBTree SBTree;
typedef struct SBtCursor SBtCursor; typedef struct SBtCursor SBtCursor;
// SBTree // SBTree
int btreeOpen(SBTree **ppBt); int btreeOpen(SBTree **ppBt, SPgFile *pPgFile);
int btreeClose(SBTree *pBt); int btreeClose(SBTree *pBt);
// SBtCursor // SBtCursor

View File

@ -20,7 +20,6 @@
extern "C" { extern "C" {
#endif #endif
typedef struct SPgFile SPgFile;
struct SPgFile { struct SPgFile {
char * fname; // backend file name char * fname; // backend file name
uint8_t fileid[TDB_FILE_ID_LEN]; // file id uint8_t fileid[TDB_FILE_ID_LEN]; // file id

View File

@ -25,6 +25,8 @@
extern "C" { extern "C" {
#endif #endif
typedef struct SPgFile SPgFile;
// pgno_t // pgno_t
typedef int32_t pgno_t; typedef int32_t pgno_t;
#define TDB_IVLD_PGNO ((pgno_t)-1) #define TDB_IVLD_PGNO ((pgno_t)-1)