From 7ed7e1de40c0005a90d833008417b86a6964af27 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Thu, 12 May 2022 11:21:44 +0000 Subject: [PATCH] feat: tag read --- include/common/tdataformat.h | 2 +- source/dnode/vnode/inc/vnode.h | 9 +++++---- source/dnode/vnode/src/meta/metaQuery.c | 5 +++++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/include/common/tdataformat.h b/include/common/tdataformat.h index 2e8a214a9d..c80b8db58a 100644 --- a/include/common/tdataformat.h +++ b/include/common/tdataformat.h @@ -384,7 +384,7 @@ static FORCE_INLINE int32_t comparTagId(const void *key1, const void *key2) { } } -static FORCE_INLINE void *tdGetKVRowValOfCol(SKVRow row, int16_t colId) { +static FORCE_INLINE void *tdGetKVRowValOfCol(const SKVRow row, int16_t colId) { void *ret = taosbsearch(&colId, kvRowColIdx(row), kvRowNCols(row), sizeof(SColIdx), comparTagId, TD_EQ); if (ret == NULL) return NULL; return kvRowColVal(row, (SColIdx *)ret); diff --git a/source/dnode/vnode/inc/vnode.h b/source/dnode/vnode/inc/vnode.h index ebf49c644b..b84732c848 100644 --- a/source/dnode/vnode/inc/vnode.h +++ b/source/dnode/vnode/inc/vnode.h @@ -72,10 +72,11 @@ typedef struct SMeta SMeta; // todo: remove typedef struct SMetaReader SMetaReader; typedef struct SMetaEntry SMetaEntry; -void metaReaderInit(SMetaReader *pReader, SMeta *pMeta, int32_t flags); -void metaReaderClear(SMetaReader *pReader); -int metaGetTableEntryByUid(SMetaReader *pReader, tb_uid_t uid); -int metaReadNext(SMetaReader *pReader); +void metaReaderInit(SMetaReader *pReader, SMeta *pMeta, int32_t flags); +void metaReaderClear(SMetaReader *pReader); +int metaGetTableEntryByUid(SMetaReader *pReader, tb_uid_t uid); +int metaReadNext(SMetaReader *pReader); +const void *metaGetTableTagVal(SMetaEntry *pEntry, int16_t cid); #if 1 // refact APIs below (TODO) typedef SVCreateTbReq STbCfg; diff --git a/source/dnode/vnode/src/meta/metaQuery.c b/source/dnode/vnode/src/meta/metaQuery.c index 7d0a87d79d..1e2c94679f 100644 --- a/source/dnode/vnode/src/meta/metaQuery.c +++ b/source/dnode/vnode/src/meta/metaQuery.c @@ -466,3 +466,8 @@ void *metaGetSmaInfoByIndex(SMeta *pMeta, int64_t indexUid, bool isDecode) { } #endif + +const void *metaGetTableTagVal(SMetaEntry *pEntry, int16_t cid) { + ASSERT(pEntry->type == TSDB_CHILD_TABLE); + return tdGetKVRowValOfCol((const SKVRow)pEntry->ctbEntry.pTags, cid); +} \ No newline at end of file