From 5dca9744df7755ff3a51f82d1f59253e026f8964 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Thu, 10 Feb 2022 03:14:53 +0000 Subject: [PATCH] more TDB --- source/dnode/vnode/src/meta/metaTDBImpl.c | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/source/dnode/vnode/src/meta/metaTDBImpl.c b/source/dnode/vnode/src/meta/metaTDBImpl.c index 56dbc9efc3..3a5b55925b 100644 --- a/source/dnode/vnode/src/meta/metaTDBImpl.c +++ b/source/dnode/vnode/src/meta/metaTDBImpl.c @@ -31,16 +31,50 @@ struct SMetaDB { } tagIdxHt; }; +#define A(op, flag) \ + do { \ + if ((ret = op) != 0) goto flag; \ + } while (0) + int metaOpenDB(SMeta *pMeta) { SMetaDB *pDb; + TENV * pEnv; + TDB * pTbDB; + TDB * pSchemaDB; + TDB * pNameIdx; + TDB * pStbIdx; + TDB * pNtbIdx; + TDB * pCtbIdx; + int ret; pDb = (SMetaDB *)calloc(1, sizeof(*pDb)); if (pDb == NULL) { return -1; } + // Create and open the ENV + A((tdbEnvCreate(&pEnv)), _err); + A((tdbEnvOpen(&pEnv)), _err); + + // Create and open each DB + A(tdbCreate(&pTbDB), _err); + A(tdbOpen(&pTbDB, "table.db", NULL, pEnv), _err); + + A(tdbCreate(&pSchemaDB), _err); + A(tdbOpen(&pSchemaDB, "schema.db", NULL, pEnv), _err); + + A(tdbCreate(&pNameIdx), _err); + A(tdbOpen(&pNameIdx, "name.db", NULL, pEnv), _err); + // tdbAssociate(); + + pDb->pEnv = pEnv; + pDb->pTbDB = pTbDB; + pDb->pSchemaDB = pSchemaDB; pMeta->pDB = pDb; return 0; + +_err: + return -1; } void metaCloseDB(SMeta *pMeta) { -- GitLab