handle except
This commit is contained in:
parent
124b52cd28
commit
6a4199d3ed
|
@ -5,7 +5,6 @@ AccessModifierOffset: -1
|
||||||
AlignAfterOpenBracket: Align
|
AlignAfterOpenBracket: Align
|
||||||
AlignConsecutiveAssignments: false
|
AlignConsecutiveAssignments: false
|
||||||
AlignConsecutiveDeclarations: true
|
AlignConsecutiveDeclarations: true
|
||||||
AlignConsecutiveMacros: true
|
|
||||||
AlignEscapedNewlinesLeft: true
|
AlignEscapedNewlinesLeft: true
|
||||||
AlignOperands: true
|
AlignOperands: true
|
||||||
AlignTrailingComments: true
|
AlignTrailingComments: true
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include "taos.h"
|
#include "taos.h"
|
||||||
|
|
||||||
int32_t init_env() {
|
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) {
|
if (pConn == NULL) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ int32_t init_env() {
|
||||||
int32_t create_stream() {
|
int32_t create_stream() {
|
||||||
printf("create stream\n");
|
printf("create stream\n");
|
||||||
TAOS_RES* pRes;
|
TAOS_RES* pRes;
|
||||||
TAOS* pConn = taos_connect("localhost", "root", "taosdata", NULL, 0);
|
TAOS* pConn = taos_connect("localhost", "root", "taosdata", NULL, 7010);
|
||||||
if (pConn == NULL) {
|
if (pConn == NULL) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -645,6 +645,10 @@ void fstNodeDestroy(FstNode* node) {
|
||||||
fstSliceDestroy(&node->data);
|
fstSliceDestroy(&node->data);
|
||||||
taosMemoryFree(node);
|
taosMemoryFree(node);
|
||||||
}
|
}
|
||||||
|
void fstNodeDestroyP(void* node) {
|
||||||
|
FstNode* n = (FstNode*)(*(FstNode**)node);
|
||||||
|
fstNodeDestroy(n);
|
||||||
|
};
|
||||||
FstTransitions* fstNodeTransitions(FstNode* node) {
|
FstTransitions* fstNodeTransitions(FstNode* node) {
|
||||||
FstTransitions* t = taosMemoryMalloc(sizeof(FstTransitions));
|
FstTransitions* t = taosMemoryMalloc(sizeof(FstTransitions));
|
||||||
if (NULL == t) {
|
if (NULL == t) {
|
||||||
|
@ -1293,7 +1297,6 @@ bool streamWithStateSeekMin(StreamWithState* sws, FstBoundWithData* min) {
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallback callback) {
|
StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallback callback) {
|
||||||
AutomationCtx* aut = sws->aut;
|
AutomationCtx* aut = sws->aut;
|
||||||
FstOutput output = sws->emptyOutput;
|
FstOutput output = sws->emptyOutput;
|
||||||
|
@ -1317,7 +1320,7 @@ StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallb
|
||||||
if (FST_NODE_ADDR(p->node) != fstGetRootAddr(sws->fst)) {
|
if (FST_NODE_ADDR(p->node) != fstGetRootAddr(sws->fst)) {
|
||||||
taosArrayPop(sws->inp);
|
taosArrayPop(sws->inp);
|
||||||
}
|
}
|
||||||
// streamStateDestroy(p);
|
streamStateDestroy(p);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
FstTransition trn;
|
FstTransition trn;
|
||||||
|
@ -1356,6 +1359,7 @@ StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallb
|
||||||
sws->stack = (SArray*)taosArrayInit(256, sizeof(StreamState));
|
sws->stack = (SArray*)taosArrayInit(256, sizeof(StreamState));
|
||||||
taosMemoryFreeClear(buf);
|
taosMemoryFreeClear(buf);
|
||||||
fstSliceDestroy(&slice);
|
fstSliceDestroy(&slice);
|
||||||
|
taosArrayDestroyEx(nodes, NULL);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (FST_NODE_IS_FINAL(nextNode) && isMatch) {
|
if (FST_NODE_IS_FINAL(nextNode) && isMatch) {
|
||||||
|
@ -1363,17 +1367,20 @@ StreamWithStateResult* streamWithStateNextWith(StreamWithState* sws, StreamCallb
|
||||||
StreamWithStateResult* result = swsResultCreate(&slice, fOutput, tState);
|
StreamWithStateResult* result = swsResultCreate(&slice, fOutput, tState);
|
||||||
taosMemoryFreeClear(buf);
|
taosMemoryFreeClear(buf);
|
||||||
fstSliceDestroy(&slice);
|
fstSliceDestroy(&slice);
|
||||||
taosArrayDestroy(nodes);
|
taosArrayDestroyEx(nodes, NULL);
|
||||||
|
nodes = NULL;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
taosMemoryFreeClear(buf);
|
taosMemoryFreeClear(buf);
|
||||||
fstSliceDestroy(&slice);
|
fstSliceDestroy(&slice);
|
||||||
}
|
};
|
||||||
for (size_t i = 0; i < taosArrayGetSize(nodes); i++) {
|
taosArrayDestroyEx(nodes, NULL);
|
||||||
FstNode** node = (FstNode**)taosArrayGet(nodes, i);
|
// taosArrayDestroyEx(nodes, );
|
||||||
fstNodeDestroy(*node);
|
// for (size_t i = 0; i < taosArrayGetSize(nodes); i++) {
|
||||||
}
|
// FstNode** node = (FstNode**)taosArrayGet(nodes, i);
|
||||||
taosArrayDestroy(nodes);
|
// fstNodeDestroy(*node);
|
||||||
|
//}
|
||||||
|
// taosArrayDestroy(nodes);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,6 +99,8 @@ class FstReadMemory {
|
||||||
result.push_back(rt->out.out);
|
result.push_back(rt->out.out);
|
||||||
swsResultDestroy(rt);
|
swsResultDestroy(rt);
|
||||||
}
|
}
|
||||||
|
streamWithStateDestroy(st);
|
||||||
|
fstStreamBuilderDestroy(sb);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool SearchRange(AutomationCtx* ctx, const std::string& low, RangeType lowType, const std::string& high,
|
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);
|
result.push_back(rt->out.out);
|
||||||
swsResultDestroy(rt);
|
swsResultDestroy(rt);
|
||||||
}
|
}
|
||||||
|
streamWithStateDestroy(st);
|
||||||
|
fstStreamBuilderDestroy(sb);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool SearchWithTimeCostUs(AutomationCtx* ctx, std::vector<uint64_t>& result) {
|
bool SearchWithTimeCostUs(AutomationCtx* ctx, std::vector<uint64_t>& result) {
|
||||||
|
@ -325,8 +329,8 @@ void checkFstCheckIterator2() {
|
||||||
for (int i = 0; i < result.size(); i++) {
|
for (int i = 0; i < result.size(); i++) {
|
||||||
// assert(result[i] == i); // check result
|
// assert(result[i] == i); // check result
|
||||||
}
|
}
|
||||||
|
automCtxDestroy(ctx);
|
||||||
|
|
||||||
taosMemoryFree(ctx);
|
|
||||||
delete m;
|
delete m;
|
||||||
}
|
}
|
||||||
void checkFstCheckIteratorPrefix() {
|
void checkFstCheckIteratorPrefix() {
|
||||||
|
@ -361,7 +365,7 @@ void checkFstCheckIteratorPrefix() {
|
||||||
AutomationCtx* ctx = automCtxCreate((void*)"he", AUTOMATION_PREFIX);
|
AutomationCtx* ctx = automCtxCreate((void*)"he", AUTOMATION_PREFIX);
|
||||||
m->Search(ctx, result);
|
m->Search(ctx, result);
|
||||||
assert(result.size() == 1);
|
assert(result.size() == 1);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// prefix search
|
// prefix search
|
||||||
|
@ -370,7 +374,7 @@ void checkFstCheckIteratorPrefix() {
|
||||||
AutomationCtx* ctx = automCtxCreate((void*)"Hello", AUTOMATION_PREFIX);
|
AutomationCtx* ctx = automCtxCreate((void*)"Hello", AUTOMATION_PREFIX);
|
||||||
m->Search(ctx, result);
|
m->Search(ctx, result);
|
||||||
assert(result.size() == 2);
|
assert(result.size() == 2);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
std::vector<uint64_t> result;
|
std::vector<uint64_t> result;
|
||||||
|
@ -378,7 +382,7 @@ void checkFstCheckIteratorPrefix() {
|
||||||
AutomationCtx* ctx = automCtxCreate((void*)"jddd", AUTOMATION_PREFIX);
|
AutomationCtx* ctx = automCtxCreate((void*)"jddd", AUTOMATION_PREFIX);
|
||||||
m->Search(ctx, result);
|
m->Search(ctx, result);
|
||||||
assert(result.size() == 1);
|
assert(result.size() == 1);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
}
|
}
|
||||||
delete m;
|
delete m;
|
||||||
}
|
}
|
||||||
|
@ -413,7 +417,7 @@ void checkFstCheckIteratorRange1() {
|
||||||
// [b, e)
|
// [b, e)
|
||||||
m->SearchRange(ctx, "b", GE, "e", LT, result);
|
m->SearchRange(ctx, "b", GE, "e", LT, result);
|
||||||
assert(result.size() == 3);
|
assert(result.size() == 3);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// prefix search
|
// prefix search
|
||||||
|
@ -422,7 +426,7 @@ void checkFstCheckIteratorRange1() {
|
||||||
// [b, e)
|
// [b, e)
|
||||||
m->SearchRange(ctx, "b", GT, "e", LT, result);
|
m->SearchRange(ctx, "b", GT, "e", LT, result);
|
||||||
assert(result.size() == 2);
|
assert(result.size() == 2);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// prefix search
|
// prefix search
|
||||||
|
@ -431,7 +435,7 @@ void checkFstCheckIteratorRange1() {
|
||||||
// [b, e)
|
// [b, e)
|
||||||
m->SearchRange(ctx, "b", GT, "e", LE, result);
|
m->SearchRange(ctx, "b", GT, "e", LE, result);
|
||||||
assert(result.size() == 3);
|
assert(result.size() == 3);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// prefix search
|
// prefix search
|
||||||
|
@ -440,8 +444,9 @@ void checkFstCheckIteratorRange1() {
|
||||||
// [b, e)
|
// [b, e)
|
||||||
m->SearchRange(ctx, "b", GE, "e", LE, result);
|
m->SearchRange(ctx, "b", GE, "e", LE, result);
|
||||||
assert(result.size() == 4);
|
assert(result.size() == 4);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
}
|
}
|
||||||
|
delete m;
|
||||||
}
|
}
|
||||||
void checkFstCheckIteratorRange2() {
|
void checkFstCheckIteratorRange2() {
|
||||||
FstWriter* fw = new FstWriter;
|
FstWriter* fw = new FstWriter;
|
||||||
|
@ -473,7 +478,7 @@ void checkFstCheckIteratorRange2() {
|
||||||
// [b, e)
|
// [b, e)
|
||||||
m->SearchRange(ctx, "b", GE, "ed", LT, result);
|
m->SearchRange(ctx, "b", GE, "ed", LT, result);
|
||||||
assert(result.size() == 4);
|
assert(result.size() == 4);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// range search
|
// range search
|
||||||
|
@ -482,7 +487,8 @@ void checkFstCheckIteratorRange2() {
|
||||||
// [b, e)
|
// [b, e)
|
||||||
m->SearchRange(ctx, "b", GE, "ed", LE, result);
|
m->SearchRange(ctx, "b", GE, "ed", LE, result);
|
||||||
assert(result.size() == 5);
|
assert(result.size() == 5);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
|
// taosMemoryFree(ctx);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// range search
|
// range search
|
||||||
|
@ -491,7 +497,7 @@ void checkFstCheckIteratorRange2() {
|
||||||
// [b, e)
|
// [b, e)
|
||||||
m->SearchRange(ctx, "b", GT, "ed", LE, result);
|
m->SearchRange(ctx, "b", GT, "ed", LE, result);
|
||||||
assert(result.size() == 4);
|
assert(result.size() == 4);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// range search
|
// range search
|
||||||
|
@ -500,7 +506,7 @@ void checkFstCheckIteratorRange2() {
|
||||||
// [b, e)
|
// [b, e)
|
||||||
m->SearchRange(ctx, "b", GT, "ed", LT, result);
|
m->SearchRange(ctx, "b", GT, "ed", LT, result);
|
||||||
assert(result.size() == 3);
|
assert(result.size() == 3);
|
||||||
taosMemoryFree(ctx);
|
automCtxDestroy(ctx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -566,9 +572,9 @@ int main(int argc, char* argv[]) {
|
||||||
// path suid colName ver
|
// path suid colName ver
|
||||||
// iterTFileReader(argv[1], argv[2], argv[3], argv[4]);
|
// iterTFileReader(argv[1], argv[2], argv[3], argv[4]);
|
||||||
//}
|
//}
|
||||||
// checkFstCheckIterator1();
|
checkFstCheckIterator1();
|
||||||
// checkFstCheckIterator2();
|
checkFstCheckIterator2();
|
||||||
// checkFstCheckIteratorPrefix();
|
checkFstCheckIteratorPrefix();
|
||||||
checkFstCheckIteratorRange1();
|
checkFstCheckIteratorRange1();
|
||||||
checkFstCheckIteratorRange2();
|
checkFstCheckIteratorRange2();
|
||||||
// checkFstLongTerm();
|
// checkFstLongTerm();
|
||||||
|
|
Loading…
Reference in New Issue