From baf5ceed55c68d61c3afef7ae115fcbb6f85c8db Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 15 Feb 2022 11:12:29 +0000 Subject: [PATCH] more TDB --- source/libs/tdb/src/db/tdbEnv.c | 10 +++++++++- source/libs/tdb/src/inc/tdbPgFile.h | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/source/libs/tdb/src/db/tdbEnv.c b/source/libs/tdb/src/db/tdbEnv.c index daf74e07e3..9954770046 100644 --- a/source/libs/tdb/src/db/tdbEnv.c +++ b/source/libs/tdb/src/db/tdbEnv.c @@ -131,10 +131,18 @@ int tdbEnvCommit(TENV *pEnv) { const char *tdbEnvGetRootDir(TENV *pEnv) { return pEnv->rootDir; } +#define TDB_ENV_PGF_HASH(fileid) \ + ({ \ + uint8_t *tmp = (uint8_t *)(fileid); \ + tmp[0] + tmp[1] + tmp[2]; \ + }) + int tdbEnvRgstPageFile(TENV *pEnv, SPgFile *pPgFile) { SPgFileList *pBucket; - pBucket = pEnv->pgfht.buckets + (0 % TDB_ENV_PGF_HASH_BUCKETS); // TODO + TD_DLIST_APPEND_WITH_FIELD(&(pEnv->pgfList), pPgFile, envPgfList); + + pBucket = pEnv->pgfht.buckets + (TDB_ENV_PGF_HASH(pPgFile->fileid) % TDB_ENV_PGF_HASH_BUCKETS); // TODO TD_DLIST_APPEND_WITH_FIELD(pBucket, pPgFile, envHash); return 0; diff --git a/source/libs/tdb/src/inc/tdbPgFile.h b/source/libs/tdb/src/inc/tdbPgFile.h index 90136ef886..99fb811c9e 100644 --- a/source/libs/tdb/src/inc/tdbPgFile.h +++ b/source/libs/tdb/src/inc/tdbPgFile.h @@ -38,6 +38,7 @@ struct SPgFile { uint8_t fileid[TDB_FILE_ID_LEN]; // file id int fd; SPgFileListNode envHash; + SPgFileListNode envPgfList; // TDB * pDb; // For a SPgFile for multiple databases, this is the mapping DB. };