From 8eae8112c73202435e7c15de9f802b27d5f8b4d6 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Mon, 29 Nov 2021 11:53:31 +0800 Subject: [PATCH] more --- include/dnode/vnode/meta/meta.h | 2 +- source/dnode/vnode/impl/inc/vnodeDef.h | 3 ++- source/dnode/vnode/impl/inc/vnodeRequest.h | 4 ++++ source/dnode/vnode/impl/src/vnodeWrite.c | 11 +++++++++-- source/dnode/vnode/meta/src/metaTable.c | 3 +-- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/include/dnode/vnode/meta/meta.h b/include/dnode/vnode/meta/meta.h index df67b37686..6060db02c4 100644 --- a/include/dnode/vnode/meta/meta.h +++ b/include/dnode/vnode/meta/meta.h @@ -75,7 +75,7 @@ SMeta *metaOpen(const char *path, const SMetaCfg *pOptions); void metaClose(SMeta *pMeta); void metaRemove(const char *path); int metaCreateTable(SMeta *pMeta, STbCfg *pTbCfg); -int metaDropTable(SMeta *pMeta, const void *pReq, const int len); +int metaDropTable(SMeta *pMeta, tb_uid_t uid); int metaCommit(SMeta *pMeta); // Options diff --git a/source/dnode/vnode/impl/inc/vnodeDef.h b/source/dnode/vnode/impl/inc/vnodeDef.h index 41943ce4f1..ee414eb5e2 100644 --- a/source/dnode/vnode/impl/inc/vnodeDef.h +++ b/source/dnode/vnode/impl/inc/vnodeDef.h @@ -23,9 +23,10 @@ #include "vnode.h" #include "vnodeBufferPool.h" +#include "vnodeCfg.h" #include "vnodeCommit.h" #include "vnodeFS.h" -#include "vnodeCfg.h" +#include "vnodeRequest.h" #include "vnodeStateMgr.h" #include "vnodeSync.h" diff --git a/source/dnode/vnode/impl/inc/vnodeRequest.h b/source/dnode/vnode/impl/inc/vnodeRequest.h index e7fdff092e..e31ce8a5ee 100644 --- a/source/dnode/vnode/impl/inc/vnodeRequest.h +++ b/source/dnode/vnode/impl/inc/vnodeRequest.h @@ -22,8 +22,12 @@ extern "C" { #endif +// SVCreateTableReq int vnodeBuildCreateTableReq(const SVCreateTableReq *pReq, char *msg, int len); int vnodeParseCreateTableReq(const char *msg, int len, SVCreateTableReq *pReq); +// SVDropTableReq +int vnodeBuildDropTableReq(const SVDropTableReq *pReq, char *msg, int len); +int vnodeParseDropTableReq(const char *msg, int len, SVDropTableReq *pReq); #ifdef __cplusplus } diff --git a/source/dnode/vnode/impl/src/vnodeWrite.c b/source/dnode/vnode/impl/src/vnodeWrite.c index 2daee82b69..0d4250c60e 100644 --- a/source/dnode/vnode/impl/src/vnodeWrite.c +++ b/source/dnode/vnode/impl/src/vnodeWrite.c @@ -38,6 +38,7 @@ int vnodeProcessWMsgs(SVnode *pVnode, SArray *pMsgs) { pMsg = *(SRpcMsg **)taosArrayGet(pMsgs, i); pVnodeReq = (SVnodeReq *)(pMsg->pCont); SVCreateTableReq ctReq; + SVDropTableReq dtReq; // Apply the request { @@ -49,7 +50,7 @@ int vnodeProcessWMsgs(SVnode *pVnode, SArray *pMsgs) { memcpy(ptr, pVnodeReq, pMsg->contLen); // todo: change the interface here - if (tqPushMsg(pVnode->pTq, pVnodeReq->req, pVnodeReq->ver) < 0) { + if (tqPushMsg(pVnode->pTq, ptr, pVnodeReq->ver) < 0) { // TODO: handle error } @@ -66,7 +67,13 @@ int vnodeProcessWMsgs(SVnode *pVnode, SArray *pMsgs) { // TODO: maybe need to clear the requst struct break; case TSDB_MSG_TYPE_DROP_TABLE: - /* code */ + if (vnodeParseDropTableReq(pVnodeReq->req, pMsg->contLen - sizeof(pVnodeReq->ver), &(dtReq)) < 0) { + // TODO: handle error + } + + if (metaDropTable(pVnode->pMeta, dtReq.uid) < 0) { + // TODO: handle error + } break; case TSDB_MSG_TYPE_SUBMIT: /* code */ diff --git a/source/dnode/vnode/meta/src/metaTable.c b/source/dnode/vnode/meta/src/metaTable.c index bed2140f51..fc0f19302f 100644 --- a/source/dnode/vnode/meta/src/metaTable.c +++ b/source/dnode/vnode/meta/src/metaTable.c @@ -37,8 +37,7 @@ int metaCreateTable(SMeta *pMeta, STbCfg *pTbCfg) { return 0; } -int metaDropTable(SMeta *pMeta, const void *pCont, const int len) { - tb_uid_t uid; +int metaDropTable(SMeta *pMeta, tb_uid_t uid) { if (metaRemoveTableFromIdx(pMeta, uid) < 0) { // TODO: handle error return -1;