From 075d881c7f36ba8c7e56fdc7d7bbdf747580a34d Mon Sep 17 00:00:00 2001 From: Cary Xu Date: Sat, 4 Jun 2022 18:44:39 +0800 Subject: [PATCH 1/4] feat: add msg of exp wnd and del --- include/common/tmsg.h | 39 +++++++++----- source/common/src/tmsg.c | 107 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+), 13 deletions(-) diff --git a/include/common/tmsg.h b/include/common/tmsg.h index ee858ad506..1b58a3bf45 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -2397,16 +2397,25 @@ static int32_t tDecodeTSmaWrapper(SDecoder* pDecoder, STSmaWrapper* pReq) { } typedef struct { - int64_t tsmaIndexUid; + int64_t indexUid; STimeWindow queryWindow; } SVGetTsmaExpWndsReq; +#define SMA_WND_EXPIRE_FLAG (0x1) +#define SMA_WND_IS_EXPIRE(flag) (((flag)&SMA_WND_EXPIRE_FLAG) != 0) +#define SMA_WND_SET_EXPIRE(flag) ((flag) |= SMA_WND_EXPIRE_FLAG) typedef struct { - int64_t tsmaIndexUid; + int64_t indexUid; + int8_t flags; // 0x1 all window expired int32_t numExpWnds; - TSKEY* expWndsStartTs; + TSKEY* wndSKeys[]; } SVGetTsmaExpWndsRsp; +int32_t tEncodeSVGetTSmaExpWndsReq(SEncoder* pCoder, const SVGetTsmaExpWndsReq* pReq); +int32_t tDecodeSVGetTsmaExpWndsReq(SDecoder* pCoder, SVGetTsmaExpWndsReq* pReq); +int32_t tEncodeSVGetTSmaExpWndsRsp(SEncoder* pCoder, const SVGetTsmaExpWndsRsp* pReq); +int32_t tDecodeSVGetTsmaExpWndsRsp(SDecoder* pCoder, SVGetTsmaExpWndsRsp* pReq); + typedef struct { int idx; } SMCreateFullTextReq; @@ -2670,23 +2679,27 @@ typedef struct { int32_t tEncodeSVSubmitReq(SEncoder* pCoder, const SVSubmitReq* pReq); int32_t tDecodeSVSubmitReq(SDecoder* pCoder, SVSubmitReq* pReq); -// TDMT_VND_DELETE typedef struct { - TSKEY sKey; - TSKEY eKey; - - // super table - char* stbName; - - // child/normal - char* tbName; + int64_t delUid; + int64_t tbUid; // super/child/normal table + int8_t type; // table type + int16_t nWnds; + char* tbFullName; + char* subPlan; + STimeWindow wnds[]; } SVDeleteReq; +int32_t tEncodeSVDeleteReq(SEncoder* pCoder, const SVDeleteReq* pReq); +int32_t tDecodeSVDeleteReq(SDecoder* pCoder, SVDeleteReq* pReq); + typedef struct { int32_t code; - // TODO + int64_t affectedRows; } SVDeleteRsp; +int32_t tEncodeSVDeleteRsp(SEncoder* pCoder, const SVDeleteRsp* pReq); +int32_t tDecodeSVDeleteRsp(SDecoder* pCoder, SVDeleteRsp* pReq); + #pragma pack(pop) #ifdef __cplusplus diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index e7ee164be7..e6cd173a2f 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -3742,6 +3742,113 @@ int32_t tDecodeSVDropTSmaReq(SDecoder *pCoder, SVDropTSmaReq *pReq) { return 0; } +int32_t tEncodeSVGetTSmaExpWndsReq(SEncoder* pCoder, const SVGetTsmaExpWndsReq* pReq) { + if (tStartEncode(pCoder) < 0) return -1; + + if (tEncodeI64(pCoder, pReq->indexUid) < 0) return -1; + if (tEncodeI64(pCoder, pReq->queryWindow.skey) < 0) return -1; + if (tEncodeI64(pCoder, pReq->queryWindow.ekey) < 0) return -1; + + tEndEncode(pCoder); + return 0; +} + +int32_t tDecodeSVGetTsmaExpWndsReq(SDecoder* pCoder, SVGetTsmaExpWndsReq* pReq) { + if (tStartDecode(pCoder) < 0) return -1; + + if (tDecodeI64(pCoder, &pReq->indexUid) < 0) return -1; + if (tDecodeI64(pCoder, &pReq->queryWindow.skey) < 0) return -1; + if (tDecodeI64(pCoder, &pReq->queryWindow.ekey) < 0) return -1; + + tEndDecode(pCoder); + return 0; +} + +int32_t tEncodeSVGetTSmaExpWndsRsp(SEncoder* pCoder, const SVGetTsmaExpWndsRsp* pReq) { + if (tStartEncode(pCoder) < 0) return -1; + + if (tEncodeI64(pCoder, pReq->indexUid) < 0) return -1; + if (tEncodeI8(pCoder, pReq->flags) < 0) return -1; + if (tEncodeI32(pCoder, pReq->numExpWnds) < 0) return -1; + for (int32_t i = 0; i < pReq->numExpWnds; ++i) { + if (tEncodeI64(pCoder, *(int64_t*)((TSKEY*)pReq->wndSKeys + i)) < 0) return -1; + } + tEndEncode(pCoder); + return 0; +} + +int32_t tDecodeSVGetTsmaExpWndsRsp(SDecoder* pCoder, SVGetTsmaExpWndsRsp* pReq) { + if (tStartDecode(pCoder) < 0) return -1; + + if (tDecodeI64(pCoder, &pReq->indexUid) < 0) return -1; + if (tDecodeI8(pCoder, &pReq->flags) < 0) return -1; + if (tDecodeI32(pCoder, &pReq->numExpWnds) < 0) return -1; + for (int32_t i = 0; i < pReq->numExpWnds; ++i) { + if (tDecodeI64(pCoder, (TSKEY*)pReq->wndSKeys + i) < 0) return -1; + } + + tEndDecode(pCoder); + return 0; +} + +int32_t tEncodeSVDeleteReq(SEncoder* pCoder, const SVDeleteReq* pReq) { + if (tStartEncode(pCoder) < 0) return -1; + + if (tEncodeI64(pCoder, pReq->delUid) < 0) return -1; + if (tEncodeI64(pCoder, pReq->tbUid) < 0) return -1; + if (tEncodeI8(pCoder, pReq->type) < 0) return -1; + if (tEncodeI16v(pCoder, pReq->nWnds) < 0) return -1; + if (tEncodeCStr(pCoder, pReq->tbFullName) < 0) return -1; + if (tEncodeCStr(pCoder, pReq->subPlan) < 0) return -1; + for (int16_t i = 0; i < pReq->nWnds; ++i) { + STimeWindow* wnd = (STimeWindow*)pReq->wnds + i; + if (tEncodeI64(pCoder, wnd->skey) < 0) return -1; + if (tEncodeI64(pCoder, wnd->ekey) < 0) return -1; + } + + tEndEncode(pCoder); + return 0; +} + +int32_t tDecodeSVDeleteReq(SDecoder* pCoder, SVDeleteReq* pReq) { + if (tStartDecode(pCoder) < 0) return -1; + + if (tDecodeI64(pCoder, &pReq->delUid) < 0) return -1; + if (tDecodeI64(pCoder, &pReq->tbUid) < 0) return -1; + if (tDecodeI8(pCoder, &pReq->type) < 0) return -1; + if (tDecodeI16v(pCoder, &pReq->nWnds) < 0) return -1; + if (tDecodeCStr(pCoder, &pReq->tbFullName) < 0) return -1; + if (tDecodeCStr(pCoder, &pReq->subPlan) < 0) return -1; + for (int16_t i = 0; i < pReq->nWnds; ++i) { + STimeWindow* wnd = (STimeWindow*)pReq->wnds + i; + if (tDecodeI64(pCoder, &wnd->skey) < 0) return -1; + if (tDecodeI64(pCoder, &wnd->ekey) < 0) return -1; + } + + tEndDecode(pCoder); + return 0; +} + +int32_t tEncodeSVDeleteRsp(SEncoder* pCoder, const SVDeleteRsp* pReq) { + if (tStartEncode(pCoder) < 0) return -1; + + if (tEncodeI32(pCoder, pReq->code) < 0) return -1; + if (tEncodeI64(pCoder, pReq->affectedRows) < 0) return -1; + + tEndEncode(pCoder); + return 0; +} + +int32_t tDecodeSVDeleteRsp(SDecoder* pCoder, SVDeleteRsp* pReq) { + if (tStartDecode(pCoder) < 0) return -1; + + if (tDecodeI32(pCoder, &pReq->code) < 0) return -1; + if (tDecodeI64(pCoder, &pReq->affectedRows) < 0) return -1; + + tEndDecode(pCoder); + return 0; +} + int32_t tSerializeSCMCreateStreamReq(void *buf, int32_t bufLen, const SCMCreateStreamReq *pReq) { int32_t sqlLen = 0; int32_t astLen = 0; From 420489e8423a6ba287a3353d576f6986eabb7001 Mon Sep 17 00:00:00 2001 From: Cary Xu Date: Sat, 4 Jun 2022 18:48:56 +0800 Subject: [PATCH 2/4] other: naming optimization for exp wnds --- include/common/tmsg.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/common/tmsg.h b/include/common/tmsg.h index 1b58a3bf45..b2ee07a4be 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -2401,9 +2401,10 @@ typedef struct { STimeWindow queryWindow; } SVGetTsmaExpWndsReq; -#define SMA_WND_EXPIRE_FLAG (0x1) -#define SMA_WND_IS_EXPIRE(flag) (((flag)&SMA_WND_EXPIRE_FLAG) != 0) -#define SMA_WND_SET_EXPIRE(flag) ((flag) |= SMA_WND_EXPIRE_FLAG) +#define SMA_WNDS_EXPIRE_FLAG (0x1) +#define SMA_WNDS_IS_EXPIRE(flag) (((flag)&EXP_WNDS_EXPIRE_FLAG) != 0) +#define SMA_WNDS_SET_EXPIRE(flag) ((flag) |= EXP_WNDS_EXPIRE_FLAG) + typedef struct { int64_t indexUid; int8_t flags; // 0x1 all window expired From bae6bed2bd982e78d47390e9e1fbf3086388d3b3 Mon Sep 17 00:00:00 2001 From: Cary Xu Date: Sat, 4 Jun 2022 18:49:39 +0800 Subject: [PATCH 3/4] other: naming optimization for exp wnds --- include/common/tmsg.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/common/tmsg.h b/include/common/tmsg.h index b2ee07a4be..70beda7b42 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -2402,8 +2402,8 @@ typedef struct { } SVGetTsmaExpWndsReq; #define SMA_WNDS_EXPIRE_FLAG (0x1) -#define SMA_WNDS_IS_EXPIRE(flag) (((flag)&EXP_WNDS_EXPIRE_FLAG) != 0) -#define SMA_WNDS_SET_EXPIRE(flag) ((flag) |= EXP_WNDS_EXPIRE_FLAG) +#define SMA_WNDS_IS_EXPIRE(flag) (((flag)&SMA_WNDS_EXPIRE_FLAG) != 0) +#define SMA_WNDS_SET_EXPIRE(flag) ((flag) |= SMA_WNDS_EXPIRE_FLAG) typedef struct { int64_t indexUid; From fc4c08ef46647f6dbbcffe49ceab3ff1624ecab8 Mon Sep 17 00:00:00 2001 From: Cary Xu Date: Sat, 4 Jun 2022 19:34:53 +0800 Subject: [PATCH 4/4] other: code optimization for exp/del msg --- include/common/tmsg.h | 2 +- source/common/src/tmsg.c | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/include/common/tmsg.h b/include/common/tmsg.h index 70beda7b42..507ce7ebaf 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -2409,7 +2409,7 @@ typedef struct { int64_t indexUid; int8_t flags; // 0x1 all window expired int32_t numExpWnds; - TSKEY* wndSKeys[]; + TSKEY wndSKeys[]; } SVGetTsmaExpWndsRsp; int32_t tEncodeSVGetTSmaExpWndsReq(SEncoder* pCoder, const SVGetTsmaExpWndsReq* pReq); diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index e6cd173a2f..477eff0004 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -3771,20 +3771,20 @@ int32_t tEncodeSVGetTSmaExpWndsRsp(SEncoder* pCoder, const SVGetTsmaExpWndsRsp* if (tEncodeI8(pCoder, pReq->flags) < 0) return -1; if (tEncodeI32(pCoder, pReq->numExpWnds) < 0) return -1; for (int32_t i = 0; i < pReq->numExpWnds; ++i) { - if (tEncodeI64(pCoder, *(int64_t*)((TSKEY*)pReq->wndSKeys + i)) < 0) return -1; + if (tEncodeI64(pCoder, pReq->wndSKeys[i]) < 0) return -1; } tEndEncode(pCoder); return 0; } -int32_t tDecodeSVGetTsmaExpWndsRsp(SDecoder* pCoder, SVGetTsmaExpWndsRsp* pReq) { +int32_t tDecodeSVGetTsmaExpWndsRsp(SDecoder *pCoder, SVGetTsmaExpWndsRsp *pReq) { if (tStartDecode(pCoder) < 0) return -1; if (tDecodeI64(pCoder, &pReq->indexUid) < 0) return -1; if (tDecodeI8(pCoder, &pReq->flags) < 0) return -1; if (tDecodeI32(pCoder, &pReq->numExpWnds) < 0) return -1; for (int32_t i = 0; i < pReq->numExpWnds; ++i) { - if (tDecodeI64(pCoder, (TSKEY*)pReq->wndSKeys + i) < 0) return -1; + if (tDecodeI64(pCoder, &pReq->wndSKeys[i]) < 0) return -1; } tEndDecode(pCoder); @@ -3801,9 +3801,8 @@ int32_t tEncodeSVDeleteReq(SEncoder* pCoder, const SVDeleteReq* pReq) { if (tEncodeCStr(pCoder, pReq->tbFullName) < 0) return -1; if (tEncodeCStr(pCoder, pReq->subPlan) < 0) return -1; for (int16_t i = 0; i < pReq->nWnds; ++i) { - STimeWindow* wnd = (STimeWindow*)pReq->wnds + i; - if (tEncodeI64(pCoder, wnd->skey) < 0) return -1; - if (tEncodeI64(pCoder, wnd->ekey) < 0) return -1; + if (tEncodeI64(pCoder, pReq->wnds[i].skey) < 0) return -1; + if (tEncodeI64(pCoder, pReq->wnds[i].ekey) < 0) return -1; } tEndEncode(pCoder); @@ -3820,9 +3819,8 @@ int32_t tDecodeSVDeleteReq(SDecoder* pCoder, SVDeleteReq* pReq) { if (tDecodeCStr(pCoder, &pReq->tbFullName) < 0) return -1; if (tDecodeCStr(pCoder, &pReq->subPlan) < 0) return -1; for (int16_t i = 0; i < pReq->nWnds; ++i) { - STimeWindow* wnd = (STimeWindow*)pReq->wnds + i; - if (tDecodeI64(pCoder, &wnd->skey) < 0) return -1; - if (tDecodeI64(pCoder, &wnd->ekey) < 0) return -1; + if (tDecodeI64(pCoder, &pReq->wnds[i].skey) < 0) return -1; + if (tDecodeI64(pCoder, &pReq->wnds[i].ekey) < 0) return -1; } tEndDecode(pCoder);