From 6a4199d3ede95babba75f98dadc86f1dd036ca14 Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Tue, 29 Mar 2022 15:01:05 +0800 Subject: [PATCH 1/3] handle except --- .clang-format | 1 - example/src/tstream.c | 4 ++-- source/libs/index/src/index_fst.c | 25 +++++++++++++-------- source/libs/index/test/fstTest.cc | 36 ++++++++++++++++++------------- 4 files changed, 39 insertions(+), 27 deletions(-) diff --git a/.clang-format b/.clang-format index e58d518b3b..3ddd8b43f6 100644 --- a/.clang-format +++ b/.clang-format @@ -5,7 +5,6 @@ AccessModifierOffset: -1 AlignAfterOpenBracket: Align AlignConsecutiveAssignments: false AlignConsecutiveDeclarations: true -AlignConsecutiveMacros: true AlignEscapedNewlinesLeft: true AlignOperands: true AlignTrailingComments: true diff --git a/example/src/tstream.c b/example/src/tstream.c index 8ffa932bd2..40d8ff9b0b 100644 --- a/example/src/tstream.c +++ b/example/src/tstream.c @@ -20,7 +20,7 @@ #include "taos.h" int32_t init_env() { - TAOS* pConn = taos_connect("localhost", "root", "taosdata", NULL, 0); + TAOS* pConn = taos_connect("localhost", "root", "taosdata", NULL, 7010); if (pConn == NULL) { return -1; } @@ -65,7 +65,7 @@ int32_t init_env() { int32_t create_stream() { printf("create stream\n"); TAOS_RES* pRes; - TAOS* pConn = taos_connect("localhost", "root", "taosdata", NULL, 0); + TAOS* pConn = taos_connect("localhost", "root", "taosdata", NULL, 7010); if (pConn == NULL) { return -1; } diff --git a/source/libs/index/src/index_fst.c b/source/libs/index/src/index_fst.c index 1a556950ba..12f3b37749 100644 --- a/source/libs/index/src/index_fst.c +++ b/source/libs/index/src/index_fst.c @@ -645,6 +645,10 @@ void fstNodeDestroy(FstNode* node) { fstSliceDestroy(&node->data); taosMemoryFree(node); } +void fstNodeDestroyP(void* node) { + FstNode* n = (FstNode*)(*(FstNode**)node); + fstNodeDestroy(n); +}; FstTransitions* fstNodeTransitions(FstNode* node) { FstTransitions* t = taosMemoryMalloc(sizeof(FstTransitions)); if (NULL == t) { @@ -1293,7 +1297,6 @@ bool streamWithStateSeekMin(StreamWithState* sws, FstBoundWithData* min) { return false; } - StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallback callback) { AutomationCtx* aut = sws->aut; FstOutput output = sws->emptyOutput; @@ -1317,7 +1320,7 @@ StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallb if (FST_NODE_ADDR(p->node) != fstGetRootAddr(sws->fst)) { taosArrayPop(sws->inp); } - // streamStateDestroy(p); + streamStateDestroy(p); continue; } FstTransition trn; @@ -1356,6 +1359,7 @@ StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallb sws->stack = (SArray*)taosArrayInit(256, sizeof(StreamState)); taosMemoryFreeClear(buf); fstSliceDestroy(&slice); + taosArrayDestroyEx(nodes, NULL); return NULL; } if (FST_NODE_IS_FINAL(nextNode) && isMatch) { @@ -1363,17 +1367,20 @@ StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallb StreamWithStateResult* result = swsResultCreate(&slice, fOutput, tState); taosMemoryFreeClear(buf); fstSliceDestroy(&slice); - taosArrayDestroy(nodes); + taosArrayDestroyEx(nodes, NULL); + nodes = NULL; return result; } taosMemoryFreeClear(buf); fstSliceDestroy(&slice); - } - for (size_t i = 0; i < taosArrayGetSize(nodes); i++) { - FstNode** node = (FstNode**)taosArrayGet(nodes, i); - fstNodeDestroy(*node); - } - taosArrayDestroy(nodes); + }; + taosArrayDestroyEx(nodes, NULL); + // taosArrayDestroyEx(nodes, ); + // for (size_t i = 0; i < taosArrayGetSize(nodes); i++) { + // FstNode** node = (FstNode**)taosArrayGet(nodes, i); + // fstNodeDestroy(*node); + //} + // taosArrayDestroy(nodes); return NULL; } diff --git a/source/libs/index/test/fstTest.cc b/source/libs/index/test/fstTest.cc index b507b5ab02..e72134a086 100644 --- a/source/libs/index/test/fstTest.cc +++ b/source/libs/index/test/fstTest.cc @@ -99,6 +99,8 @@ class FstReadMemory { result.push_back(rt->out.out); swsResultDestroy(rt); } + streamWithStateDestroy(st); + fstStreamBuilderDestroy(sb); return true; } bool SearchRange(AutomationCtx* ctx, const std::string& low, RangeType lowType, const std::string& high, @@ -127,6 +129,8 @@ class FstReadMemory { result.push_back(rt->out.out); swsResultDestroy(rt); } + streamWithStateDestroy(st); + fstStreamBuilderDestroy(sb); return true; } bool SearchWithTimeCostUs(AutomationCtx* ctx, std::vector& result) { @@ -325,8 +329,8 @@ void checkFstCheckIterator2() { for (int i = 0; i < result.size(); i++) { // assert(result[i] == i); // check result } + automCtxDestroy(ctx); - taosMemoryFree(ctx); delete m; } void checkFstCheckIteratorPrefix() { @@ -361,7 +365,7 @@ void checkFstCheckIteratorPrefix() { AutomationCtx* ctx = automCtxCreate((void*)"he", AUTOMATION_PREFIX); m->Search(ctx, result); assert(result.size() == 1); - taosMemoryFree(ctx); + automCtxDestroy(ctx); } { // prefix search @@ -370,7 +374,7 @@ void checkFstCheckIteratorPrefix() { AutomationCtx* ctx = automCtxCreate((void*)"Hello", AUTOMATION_PREFIX); m->Search(ctx, result); assert(result.size() == 2); - taosMemoryFree(ctx); + automCtxDestroy(ctx); } { std::vector result; @@ -378,7 +382,7 @@ void checkFstCheckIteratorPrefix() { AutomationCtx* ctx = automCtxCreate((void*)"jddd", AUTOMATION_PREFIX); m->Search(ctx, result); assert(result.size() == 1); - taosMemoryFree(ctx); + automCtxDestroy(ctx); } delete m; } @@ -413,7 +417,7 @@ void checkFstCheckIteratorRange1() { // [b, e) m->SearchRange(ctx, "b", GE, "e", LT, result); assert(result.size() == 3); - taosMemoryFree(ctx); + automCtxDestroy(ctx); } { // prefix search @@ -422,7 +426,7 @@ void checkFstCheckIteratorRange1() { // [b, e) m->SearchRange(ctx, "b", GT, "e", LT, result); assert(result.size() == 2); - taosMemoryFree(ctx); + automCtxDestroy(ctx); } { // prefix search @@ -431,7 +435,7 @@ void checkFstCheckIteratorRange1() { // [b, e) m->SearchRange(ctx, "b", GT, "e", LE, result); assert(result.size() == 3); - taosMemoryFree(ctx); + automCtxDestroy(ctx); } { // prefix search @@ -440,8 +444,9 @@ void checkFstCheckIteratorRange1() { // [b, e) m->SearchRange(ctx, "b", GE, "e", LE, result); assert(result.size() == 4); - taosMemoryFree(ctx); + automCtxDestroy(ctx); } + delete m; } void checkFstCheckIteratorRange2() { FstWriter* fw = new FstWriter; @@ -473,7 +478,7 @@ void checkFstCheckIteratorRange2() { // [b, e) m->SearchRange(ctx, "b", GE, "ed", LT, result); assert(result.size() == 4); - taosMemoryFree(ctx); + automCtxDestroy(ctx); } { // range search @@ -482,7 +487,8 @@ void checkFstCheckIteratorRange2() { // [b, e) m->SearchRange(ctx, "b", GE, "ed", LE, result); assert(result.size() == 5); - taosMemoryFree(ctx); + automCtxDestroy(ctx); + // taosMemoryFree(ctx); } { // range search @@ -491,7 +497,7 @@ void checkFstCheckIteratorRange2() { // [b, e) m->SearchRange(ctx, "b", GT, "ed", LE, result); assert(result.size() == 4); - taosMemoryFree(ctx); + automCtxDestroy(ctx); } { // range search @@ -500,7 +506,7 @@ void checkFstCheckIteratorRange2() { // [b, e) m->SearchRange(ctx, "b", GT, "ed", LT, result); assert(result.size() == 3); - taosMemoryFree(ctx); + automCtxDestroy(ctx); } } @@ -566,9 +572,9 @@ int main(int argc, char* argv[]) { // path suid colName ver // iterTFileReader(argv[1], argv[2], argv[3], argv[4]); //} - // checkFstCheckIterator1(); - // checkFstCheckIterator2(); - // checkFstCheckIteratorPrefix(); + checkFstCheckIterator1(); + checkFstCheckIterator2(); + checkFstCheckIteratorPrefix(); checkFstCheckIteratorRange1(); checkFstCheckIteratorRange2(); // checkFstLongTerm(); From 065351396844ea276023abad2a8d20c9672930ee Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Tue, 29 Mar 2022 15:06:28 +0800 Subject: [PATCH 2/3] fst query --- source/libs/index/src/index_fst.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/source/libs/index/src/index_fst.c b/source/libs/index/src/index_fst.c index 12f3b37749..eaefaca887 100644 --- a/source/libs/index/src/index_fst.c +++ b/source/libs/index/src/index_fst.c @@ -645,10 +645,6 @@ void fstNodeDestroy(FstNode* node) { fstSliceDestroy(&node->data); taosMemoryFree(node); } -void fstNodeDestroyP(void* node) { - FstNode* n = (FstNode*)(*(FstNode**)node); - fstNodeDestroy(n); -}; FstTransitions* fstNodeTransitions(FstNode* node) { FstTransitions* t = taosMemoryMalloc(sizeof(FstTransitions)); if (NULL == t) { @@ -1359,7 +1355,7 @@ StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallb sws->stack = (SArray*)taosArrayInit(256, sizeof(StreamState)); taosMemoryFreeClear(buf); fstSliceDestroy(&slice); - taosArrayDestroyEx(nodes, NULL); + taosArrayDestroy(nodes); return NULL; } if (FST_NODE_IS_FINAL(nextNode) && isMatch) { @@ -1367,20 +1363,14 @@ StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallb StreamWithStateResult* result = swsResultCreate(&slice, fOutput, tState); taosMemoryFreeClear(buf); fstSliceDestroy(&slice); - taosArrayDestroyEx(nodes, NULL); + taosArrayDestroy(nodes); nodes = NULL; return result; } taosMemoryFreeClear(buf); fstSliceDestroy(&slice); }; - taosArrayDestroyEx(nodes, NULL); - // taosArrayDestroyEx(nodes, ); - // for (size_t i = 0; i < taosArrayGetSize(nodes); i++) { - // FstNode** node = (FstNode**)taosArrayGet(nodes, i); - // fstNodeDestroy(*node); - //} - // taosArrayDestroy(nodes); + taosArrayDestroy(nodes); return NULL; } From 9a445b26c874bda33512c497ae16ae286831af28 Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Tue, 29 Mar 2022 15:33:39 +0800 Subject: [PATCH 3/3] fst query --- source/libs/index/test/fstTest.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/libs/index/test/fstTest.cc b/source/libs/index/test/fstTest.cc index e72134a086..e0b12a6f33 100644 --- a/source/libs/index/test/fstTest.cc +++ b/source/libs/index/test/fstTest.cc @@ -294,8 +294,8 @@ void checkFstCheckIterator1() { for (int i = 0; i < result.size(); i++) { // assert(result[i] == i); // check result } + automCtxDestroy(ctx); - taosMemoryFree(ctx); delete m; } void checkFstCheckIterator2() { @@ -508,6 +508,7 @@ void checkFstCheckIteratorRange2() { assert(result.size() == 3); automCtxDestroy(ctx); } + delete m; } void fst_get(Fst* fst) {