From a641e5b544442b33208cc5cd29de75ac24af2152 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Mon, 28 Feb 2022 08:06:57 +0000 Subject: [PATCH] refact --- source/libs/tdb/src/db/tdbDb.c | 174 +-------------------------------- 1 file changed, 1 insertion(+), 173 deletions(-) diff --git a/source/libs/tdb/src/db/tdbDb.c b/source/libs/tdb/src/db/tdbDb.c index a9670e24de..d702b809fd 100644 --- a/source/libs/tdb/src/db/tdbDb.c +++ b/source/libs/tdb/src/db/tdbDb.c @@ -82,176 +82,4 @@ int tdbDbClose(STDb *pDb) { int tdbDbInsert(STDb *pDb, const void *pKey, int keyLen, const void *pVal, int valLen) { // TODO return 0; -} - -#if 0 -struct STDb { - char dbname[TDB_MAX_DBNAME_LEN]; - SBTree * pBt; // current access method (may extend) - SPgFile * pPgFile; // backend page file this DB is using - TENV * pEnv; // TENV containing the DB - int klen; // key length if know - int vlen; // value length if know - bool dup; // dup mode - TdbKeyCmprFn cFn; // compare function -}; - -struct STDbCurosr { - SBtCursor *pBtCur; -}; - -static int tdbDefaultKeyCmprFn(int keyLen1, const void *pKey1, int keyLen2, const void *pKey2); - -int tdbCreate(TDB **ppDb) { - TDB *pDb; - - // create the handle - pDb = (TDB *)calloc(1, sizeof(*pDb)); - if (pDb == NULL) { - return -1; - } - - pDb->klen = TDB_VARIANT_LEN; - pDb->vlen = TDB_VARIANT_LEN; - pDb->dup = false; - pDb->cFn = tdbDefaultKeyCmprFn; - - *ppDb = pDb; - return 0; -} - -static int tdbDestroy(TDB *pDb) { - if (pDb) { - free(pDb); - } - return 0; -} - -int tdbOpen(TDB *pDb, const char *fname, const char *dbname, TENV *pEnv) { - int ret; - uint8_t fileid[TDB_FILE_ID_LEN]; - SPgFile * pPgFile; - SPgCache *pPgCache; - SBTree * pBt; - bool fileExist; - size_t dbNameLen; - SPgno dbRootPgno; - char dbfname[128]; // TODO: make this as a macro or malloc on the heap - - ASSERT(pDb != NULL); - ASSERT(fname != NULL); - // TODO: Here we simply put an assert here. In the future, make `pEnv` - // can be set as NULL. - ASSERT(pEnv != NULL); - - // check the DB name - dbNameLen = 0; - if (dbname) { - dbNameLen = strlen(dbname); - if (dbNameLen >= TDB_MAX_DBNAME_LEN) { - return -1; - } - - memcpy(pDb->dbname, dbname, dbNameLen); - } - - pDb->dbname[dbNameLen] = '\0'; - - // get page file from the env, if not opened yet, open it - pPgFile = NULL; - snprintf(dbfname, 128, "%s/%s", tdbEnvGetRootDir(pEnv), fname); - fileExist = (tdbCheckFileAccess(fname, TDB_F_OK) == 0); - if (fileExist) { - tdbGnrtFileID(dbfname, fileid, false); - pPgFile = tdbEnvGetPageFile(pEnv, fileid); - } - - if (pPgFile == NULL) { - ret = pgFileOpen(&pPgFile, dbfname, pEnv); - if (ret != 0) { - // TODO: handle error - return -1; - } - } - - // TODO: get the root page number from the master DB of the page file - // tdbGet(&dbRootPgno); - if (dbRootPgno == 0) { - // DB not exist, create one - ret = pgFileAllocatePage(pPgFile, &dbRootPgno); - if (ret != 0) { - // TODO: handle error - - // tdbInsert(pPgFile->pMasterDB, dbname, strlen(dbname), &dbRootPgno, sizeof(dbRootPgno)); - } - - ASSERT(dbRootPgno > 1); - - // pDb->pBt->root = dbRootPgno; - - // register - pDb->pPgFile = pPgFile; - tdbEnvRgstDB(pEnv, pDb); - pDb->pEnv = pEnv; - - return 0; -} - -int tdbClose(TDB *pDb) { - if (pDb == NULL) return 0; - return tdbDestroy(pDb); -} - -int tdbDrop(TDB *pDb) { - // TODO - return 0; -} - -int tdbSetKeyLen(TDB *pDb, int klen) { - // TODO: check `klen` - pDb->klen = klen; - return 0; -} - -int tdbSetValLen(TDB *pDb, int vlen) { - // TODO: check `vlen` - pDb->vlen = vlen; - return 0; -} - -int tdbSetDup(TDB *pDb, int dup) { - if (dup) { - pDb->dup = true; - } else { - pDb->dup = false; - } - return 0; -} - -int tdbSetCmprFunc(TDB *pDb, TdbKeyCmprFn fn) { - if (fn == NULL) { - return -1; - } else { - pDb->cFn = fn; - } - return 0; -} - -int tdbGetKeyLen(TDB *pDb) { return pDb->klen; } - -int tdbGetValLen(TDB *pDb) { return pDb->vlen; } - -int tdbGetDup(TDB *pDb) { - if (pDb->dup) { - return 1; - } else { - return 0; - } -} - -int tdbInsert(TDB *pDb, const void *pKey, int nKey, const void *pData, int nData) { - // TODO - return 0; -} - -#endif \ No newline at end of file +} \ No newline at end of file