more TDB
This commit is contained in:
parent
2849a62ced
commit
0a372a7359
|
@ -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;
|
||||||
|
}
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue