refact meta
This commit is contained in:
parent
c704496fd1
commit
0c605acf46
|
@ -51,13 +51,13 @@ int metaDropSTable(SMeta* pMeta, int64_t verison, SVDropStbReq* pReq);
|
||||||
int metaCreateTable(SMeta* pMeta, int64_t version, SVCreateTbReq* pReq);
|
int metaCreateTable(SMeta* pMeta, int64_t version, SVCreateTbReq* pReq);
|
||||||
|
|
||||||
// metaQuery ==================
|
// metaQuery ==================
|
||||||
typedef struct SMetaEntryReader SMetaEntryReader;
|
typedef struct SMetaReader SMetaReader;
|
||||||
|
|
||||||
void metaEntryReaderInit(SMetaEntryReader* pReader);
|
void metaEntryReaderInit(SMetaReader* pReader, SMeta* pMeta, int32_t flags);
|
||||||
void metaEntryReaderClear(SMetaEntryReader* pReader);
|
void metaEntryReaderClear(SMetaReader* pReader);
|
||||||
int metaGetTableEntryByVersion(SMeta* pMeta, SMetaEntryReader* pReader, int64_t version, tb_uid_t uid);
|
int metaGetTableEntryByVersion(SMetaReader* pReader, int64_t version, tb_uid_t uid);
|
||||||
int metaGetTableEntryByUid(SMeta* pMeta, SMetaEntryReader* pReader, tb_uid_t uid);
|
int metaGetTableEntryByUid(SMetaReader* pReader, tb_uid_t uid);
|
||||||
int metaGetTableEntryByName(SMeta* pMeta, SMetaEntryReader* pReader, const char* name);
|
int metaGetTableEntryByName(SMetaReader* pReader, const char* name);
|
||||||
|
|
||||||
// metaIdx ==================
|
// metaIdx ==================
|
||||||
int metaOpenIdx(SMeta* pMeta);
|
int metaOpenIdx(SMeta* pMeta);
|
||||||
|
@ -158,7 +158,9 @@ struct SMetaEntry {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SMetaEntryReader {
|
struct SMetaReader {
|
||||||
|
int32_t flags;
|
||||||
|
SMeta* pMeta;
|
||||||
SCoder coder;
|
SCoder coder;
|
||||||
SMetaEntry me;
|
SMetaEntry me;
|
||||||
void* pBuf;
|
void* pBuf;
|
||||||
|
|
|
@ -15,14 +15,19 @@
|
||||||
|
|
||||||
#include "vnodeInt.h"
|
#include "vnodeInt.h"
|
||||||
|
|
||||||
void metaEntryReaderInit(SMetaEntryReader *pReader) { memset(pReader, 0, sizeof(*pReader)); }
|
void metaEntryReaderInit(SMetaReader *pReader, SMeta *pMeta, int32_t flags) {
|
||||||
|
memset(pReader, 0, sizeof(*pReader));
|
||||||
|
pReader->flags = flags;
|
||||||
|
pReader->pMeta = pMeta;
|
||||||
|
}
|
||||||
|
|
||||||
void metaEntryReaderClear(SMetaEntryReader *pReader) {
|
void metaEntryReaderClear(SMetaReader *pReader) {
|
||||||
tCoderClear(&pReader->coder);
|
tCoderClear(&pReader->coder);
|
||||||
TDB_FREE(pReader->pBuf);
|
TDB_FREE(pReader->pBuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
int metaGetTableEntryByVersion(SMeta *pMeta, SMetaEntryReader *pReader, int64_t version, tb_uid_t uid) {
|
int metaGetTableEntryByVersion(SMetaReader *pReader, int64_t version, tb_uid_t uid) {
|
||||||
|
SMeta *pMeta = pReader->pMeta;
|
||||||
STbDbKey tbDbKey = {.version = version, .uid = uid};
|
STbDbKey tbDbKey = {.version = version, .uid = uid};
|
||||||
|
|
||||||
// query table.db
|
// query table.db
|
||||||
|
@ -43,7 +48,8 @@ _err:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int metaGetTableEntryByUid(SMeta *pMeta, SMetaEntryReader *pReader, tb_uid_t uid) {
|
int metaGetTableEntryByUid(SMetaReader *pReader, tb_uid_t uid) {
|
||||||
|
SMeta *pMeta = pReader->pMeta;
|
||||||
int64_t version;
|
int64_t version;
|
||||||
|
|
||||||
// query uid.idx
|
// query uid.idx
|
||||||
|
@ -52,10 +58,11 @@ int metaGetTableEntryByUid(SMeta *pMeta, SMetaEntryReader *pReader, tb_uid_t uid
|
||||||
}
|
}
|
||||||
|
|
||||||
version = *(int64_t *)pReader->pBuf;
|
version = *(int64_t *)pReader->pBuf;
|
||||||
return metaGetTableEntryByVersion(pMeta, pReader, version, uid);
|
return metaGetTableEntryByVersion(pReader, version, uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
int metaGetTableEntryByName(SMeta *pMeta, SMetaEntryReader *pReader, const char *name) {
|
int metaGetTableEntryByName(SMetaReader *pReader, const char *name) {
|
||||||
|
SMeta *pMeta = pReader->pMeta;
|
||||||
tb_uid_t uid;
|
tb_uid_t uid;
|
||||||
|
|
||||||
// query name.idx
|
// query name.idx
|
||||||
|
@ -64,7 +71,7 @@ int metaGetTableEntryByName(SMeta *pMeta, SMetaEntryReader *pReader, const char
|
||||||
}
|
}
|
||||||
|
|
||||||
uid = *(tb_uid_t *)pReader->pBuf;
|
uid = *(tb_uid_t *)pReader->pBuf;
|
||||||
return metaGetTableEntryByUid(pMeta, pReader, uid);
|
return metaGetTableEntryByUid(pReader, uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
|
|
|
@ -22,17 +22,17 @@ int vnodeQueryOpen(SVnode *pVnode) {
|
||||||
void vnodeQueryClose(SVnode *pVnode) { qWorkerDestroy((void **)&pVnode->pQuery); }
|
void vnodeQueryClose(SVnode *pVnode) { qWorkerDestroy((void **)&pVnode->pQuery); }
|
||||||
|
|
||||||
int vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg) {
|
int vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg) {
|
||||||
STableInfoReq infoReq = {0};
|
STableInfoReq infoReq = {0};
|
||||||
STableMetaRsp metaRsp = {0};
|
STableMetaRsp metaRsp = {0};
|
||||||
SMetaEntryReader mer1 = {0};
|
SMetaReader mer1 = {0};
|
||||||
SMetaEntryReader mer2 = {0};
|
SMetaReader mer2 = {0};
|
||||||
char tableFName[TSDB_TABLE_FNAME_LEN];
|
char tableFName[TSDB_TABLE_FNAME_LEN];
|
||||||
SRpcMsg rpcMsg;
|
SRpcMsg rpcMsg;
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
int32_t rspLen = 0;
|
int32_t rspLen = 0;
|
||||||
void *pRsp = NULL;
|
void *pRsp = NULL;
|
||||||
SSchemaWrapper schema = {0};
|
SSchemaWrapper schema = {0};
|
||||||
SSchemaWrapper schemaTag = {0};
|
SSchemaWrapper schemaTag = {0};
|
||||||
|
|
||||||
// decode req
|
// decode req
|
||||||
if (tDeserializeSTableInfoReq(pMsg->pCont, pMsg->contLen, &infoReq) != 0) {
|
if (tDeserializeSTableInfoReq(pMsg->pCont, pMsg->contLen, &infoReq) != 0) {
|
||||||
|
@ -51,9 +51,9 @@ int vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// query meta
|
// query meta
|
||||||
metaEntryReaderInit(&mer1);
|
metaEntryReaderInit(&mer1, pVnode->pMeta, 0);
|
||||||
|
|
||||||
if (metaGetTableEntryByName(pVnode->pMeta, &mer1, infoReq.tbName) < 0) {
|
if (metaGetTableEntryByName(&mer1, infoReq.tbName) < 0) {
|
||||||
goto _exit;
|
goto _exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,8 +66,8 @@ int vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg) {
|
||||||
schemaTag = mer1.me.stbEntry.schemaTag;
|
schemaTag = mer1.me.stbEntry.schemaTag;
|
||||||
metaRsp.suid = mer1.me.uid;
|
metaRsp.suid = mer1.me.uid;
|
||||||
} else if (mer1.me.type == TSDB_CHILD_TABLE) {
|
} else if (mer1.me.type == TSDB_CHILD_TABLE) {
|
||||||
metaEntryReaderInit(&mer2);
|
metaEntryReaderInit(&mer2, pVnode->pMeta, 0);
|
||||||
if (metaGetTableEntryByUid(pVnode->pMeta, &mer2, mer1.me.ctbEntry.suid) < 0) goto _exit;
|
if (metaGetTableEntryByUid(&mer2, mer1.me.ctbEntry.suid) < 0) goto _exit;
|
||||||
|
|
||||||
metaRsp.suid = mer2.me.uid;
|
metaRsp.suid = mer2.me.uid;
|
||||||
schema = mer2.me.stbEntry.schema;
|
schema = mer2.me.stbEntry.schema;
|
||||||
|
|
Loading…
Reference in New Issue