diff --git a/include/server/vnode/meta/impl/metaImpl.h b/include/server/vnode/meta/impl/metaImpl.h index c9506bc102..90ced02f30 100644 --- a/include/server/vnode/meta/impl/metaImpl.h +++ b/include/server/vnode/meta/impl/metaImpl.h @@ -59,7 +59,7 @@ typedef struct { struct STbOptions { uint8_t type; char* name; - uint64_t ttl; // time to live + uint32_t ttl; // time to live in (SECONDS) SSMAOptions bsma; // Block-wise sma union { SSTbOptions stbOptions; diff --git a/source/dnode/vnode/meta/src/metaTbOptions.c b/source/dnode/vnode/meta/src/metaTbOptions.c index 2c4093bf44..9bf9607df7 100644 --- a/source/dnode/vnode/meta/src/metaTbOptions.c +++ b/source/dnode/vnode/meta/src/metaTbOptions.c @@ -14,6 +14,7 @@ */ #include "metaDef.h" +#include "tcoding.h" int metaValidateTbOptions(SMeta *pMeta, const STbOptions *pTbOptions) { // TODO @@ -21,6 +22,28 @@ int metaValidateTbOptions(SMeta *pMeta, const STbOptions *pTbOptions) { } size_t metaEncodeTbObjFromTbOptions(const STbOptions *pTbOptions, void *pBuf, size_t bsize) { - // TODO - return 0; + void **ppBuf = &pBuf; + int tlen = 0; + + tlen += taosEncodeFixedU8(ppBuf, pTbOptions->type); + tlen += taosEncodeString(ppBuf, pTbOptions->name); + tlen += taosEncodeFixedU32(ppBuf, pTbOptions->ttl); + + switch (pTbOptions->type) { + case META_SUPER_TABLE: + tlen += taosEncodeFixedU64(ppBuf, pTbOptions->stbOptions.uid); + tlen += tdEncodeSchema(ppBuf, pTbOptions->stbOptions.pTagSchema); + // TODO: encode schema version array + break; + case META_CHILD_TABLE: + tlen += taosEncodeFixedU64(ppBuf, pTbOptions->ctbOptions.suid); + break; + case META_NORMAL_TABLE: + // TODO: encode schema version array + break; + default: + break; + } + + return tlen; } \ No newline at end of file