From f6b9bc44c78c608347cf023aa24d72bff672e3ab Mon Sep 17 00:00:00 2001 From: Pengrongkun Date: Wed, 11 Dec 2024 15:12:19 +0800 Subject: [PATCH 01/10] refactor stmt2_get_fields --- include/client/taos.h | 10 ++--- include/libs/parser/parser.h | 2 +- source/client/inc/clientStmt2.h | 2 +- source/client/src/clientMain.c | 50 ++++++++++----------- source/client/src/clientStmt2.c | 4 +- source/libs/parser/src/parInsertStmt.c | 14 +++--- tests/script/api/stmt2-example.c | 6 ++- tests/script/api/stmt2-get-fields.c | 12 ++--- tests/script/api/stmt2-nchar.c | 6 +-- tests/script/api/stmt2-nohole.c | 4 +- tests/script/api/stmt2-test.c | 61 ++++++++++++++------------ tests/script/api/stmt2.c | 4 +- 12 files changed, 89 insertions(+), 86 deletions(-) diff --git a/include/client/taos.h b/include/client/taos.h index e59ea9d418..17f97d3d3d 100644 --- a/include/client/taos.h +++ b/include/client/taos.h @@ -111,14 +111,14 @@ typedef struct TAOS_FIELD_E { int32_t bytes; } TAOS_FIELD_E; -typedef struct TAOS_FIELD_STB { +typedef struct TAOS_FIELD_ALL { char name[65]; int8_t type; uint8_t precision; uint8_t scale; int32_t bytes; uint8_t field_type; -} TAOS_FIELD_STB; +} TAOS_FIELD_ALL; #ifdef WINDOWS #define DLL_EXPORT __declspec(dllexport) @@ -250,10 +250,8 @@ DLL_EXPORT int taos_stmt2_bind_param(TAOS_STMT2 *stmt, TAOS_STMT2_BINDV DLL_EXPORT int taos_stmt2_exec(TAOS_STMT2 *stmt, int *affected_rows); DLL_EXPORT int taos_stmt2_close(TAOS_STMT2 *stmt); DLL_EXPORT int taos_stmt2_is_insert(TAOS_STMT2 *stmt, int *insert); -DLL_EXPORT int taos_stmt2_get_fields(TAOS_STMT2 *stmt, TAOS_FIELD_T field_type, int *count, TAOS_FIELD_E **fields); -DLL_EXPORT int taos_stmt2_get_stb_fields(TAOS_STMT2 *stmt, int *count, TAOS_FIELD_STB **fields); -DLL_EXPORT void taos_stmt2_free_fields(TAOS_STMT2 *stmt, TAOS_FIELD_E *fields); -DLL_EXPORT void taos_stmt2_free_stb_fields(TAOS_STMT2 *stmt, TAOS_FIELD_STB *fields); +DLL_EXPORT int taos_stmt2_get_fields(TAOS_STMT2 *stmt, int *count, TAOS_FIELD_ALL **fields); +DLL_EXPORT void taos_stmt2_free_fields(TAOS_STMT2 *stmt, TAOS_FIELD_ALL *fields); DLL_EXPORT TAOS_RES *taos_stmt2_result(TAOS_STMT2 *stmt); DLL_EXPORT char *taos_stmt2_error(TAOS_STMT2 *stmt); diff --git a/include/libs/parser/parser.h b/include/libs/parser/parser.h index 82985457a8..95f522f504 100644 --- a/include/libs/parser/parser.h +++ b/include/libs/parser/parser.h @@ -150,7 +150,7 @@ int32_t qBindStmtSingleColValue(void* pBlock, SArray* pCols, TAOS_MULTI_BIND* bi int32_t colIdx, int32_t rowNum, void* charsetCxt); int32_t qBuildStmtColFields(void* pDataBlock, int32_t* fieldNum, TAOS_FIELD_E** fields); int32_t qBuildStmtStbColFields(void* pBlock, void* boundTags, bool hasCtbName, int32_t* fieldNum, - TAOS_FIELD_STB** fields); + TAOS_FIELD_ALL** fields); int32_t qBuildStmtTagFields(void* pBlock, void* boundTags, int32_t* fieldNum, TAOS_FIELD_E** fields); int32_t qBindStmtTagsValue(void* pBlock, void* boundTags, int64_t suid, const char* sTableName, char* tName, TAOS_MULTI_BIND* bind, char* msgBuf, int32_t msgBufLen, void* charsetCxt); diff --git a/source/client/inc/clientStmt2.h b/source/client/inc/clientStmt2.h index 64abf31bc1..c42de739c6 100644 --- a/source/client/inc/clientStmt2.h +++ b/source/client/inc/clientStmt2.h @@ -222,7 +222,7 @@ int stmtSetTbTags2(TAOS_STMT2 *stmt, TAOS_STMT2_BIND *tags); int stmtBindBatch2(TAOS_STMT2 *stmt, TAOS_STMT2_BIND *bind, int32_t colIdx); int stmtGetTagFields2(TAOS_STMT2 *stmt, int *nums, TAOS_FIELD_E **fields); int stmtGetColFields2(TAOS_STMT2 *stmt, int *nums, TAOS_FIELD_E **fields); -int stmtGetStbColFields2(TAOS_STMT2 *stmt, int *nums, TAOS_FIELD_STB **fields); +int stmtGetStbColFields2(TAOS_STMT2 *stmt, int *nums, TAOS_FIELD_ALL **fields); int stmtGetParamNum2(TAOS_STMT2 *stmt, int *nums); int stmtGetParamTbName(TAOS_STMT2 *stmt, int *nums); int stmtIsInsert2(TAOS_STMT2 *stmt, int *insert); diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index d80c7df2e4..c98b89dad4 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -2249,29 +2249,29 @@ int taos_stmt2_is_insert(TAOS_STMT2 *stmt, int *insert) { return stmtIsInsert2(stmt, insert); } -int taos_stmt2_get_fields(TAOS_STMT2 *stmt, TAOS_FIELD_T field_type, int *count, TAOS_FIELD_E **fields) { - if (stmt == NULL || count == NULL) { - tscError("NULL parameter for %s", __FUNCTION__); - terrno = TSDB_CODE_INVALID_PARA; - return terrno; - } +// int taos_stmt2_get_fields(TAOS_STMT2 *stmt, TAOS_FIELD_T field_type, int *count, TAOS_FIELD_E **fields) { +// if (stmt == NULL || count == NULL) { +// tscError("NULL parameter for %s", __FUNCTION__); +// terrno = TSDB_CODE_INVALID_PARA; +// return terrno; +// } - if (field_type == TAOS_FIELD_COL) { - return stmtGetColFields2(stmt, count, fields); - } else if (field_type == TAOS_FIELD_TAG) { - return stmtGetTagFields2(stmt, count, fields); - } else if (field_type == TAOS_FIELD_QUERY) { - return stmtGetParamNum2(stmt, count); - } else if (field_type == TAOS_FIELD_TBNAME) { - return stmtGetParamTbName(stmt, count); - } else { - tscError("invalid parameter for %s", __FUNCTION__); - terrno = TSDB_CODE_INVALID_PARA; - return terrno; - } -} +// if (field_type == TAOS_FIELD_COL) { +// return stmtGetColFields2(stmt, count, fields); +// } else if (field_type == TAOS_FIELD_TAG) { +// return stmtGetTagFields2(stmt, count, fields); +// } else if (field_type == TAOS_FIELD_QUERY) { +// return stmtGetParamNum2(stmt, count); +// } else if (field_type == TAOS_FIELD_TBNAME) { +// return stmtGetParamTbName(stmt, count); +// } else { +// tscError("invalid parameter for %s", __FUNCTION__); +// terrno = TSDB_CODE_INVALID_PARA; +// return terrno; +// } +// } -int taos_stmt2_get_stb_fields(TAOS_STMT2 *stmt, int *count, TAOS_FIELD_STB **fields) { +int taos_stmt2_get_fields(TAOS_STMT2 *stmt, int *count, TAOS_FIELD_ALL **fields) { if (stmt == NULL || count == NULL) { tscError("NULL parameter for %s", __FUNCTION__); terrno = TSDB_CODE_INVALID_PARA; @@ -2293,13 +2293,7 @@ int taos_stmt2_get_stb_fields(TAOS_STMT2 *stmt, int *count, TAOS_FIELD_STB **fie return stmtGetStbColFields2(stmt, count, fields); } -void taos_stmt2_free_fields(TAOS_STMT2 *stmt, TAOS_FIELD_E *fields) { - (void)stmt; - if (!fields) return; - taosMemoryFree(fields); -} - -DLL_EXPORT void taos_stmt2_free_stb_fields(TAOS_STMT2 *stmt, TAOS_FIELD_STB *fields) { +DLL_EXPORT void taos_stmt2_free_fields(TAOS_STMT2 *stmt, TAOS_FIELD_ALL *fields) { (void)stmt; if (!fields) return; taosMemoryFree(fields); diff --git a/source/client/src/clientStmt2.c b/source/client/src/clientStmt2.c index f03879f199..bae9c6da88 100644 --- a/source/client/src/clientStmt2.c +++ b/source/client/src/clientStmt2.c @@ -1070,7 +1070,7 @@ static int stmtFetchColFields2(STscStmt2* pStmt, int32_t* fieldNum, TAOS_FIELD_E return TSDB_CODE_SUCCESS; } -static int stmtFetchStbColFields2(STscStmt2* pStmt, int32_t* fieldNum, TAOS_FIELD_STB** fields) { +static int stmtFetchStbColFields2(STscStmt2* pStmt, int32_t* fieldNum, TAOS_FIELD_ALL** fields) { if (pStmt->errCode != TSDB_CODE_SUCCESS) { return pStmt->errCode; } @@ -1894,7 +1894,7 @@ int stmtGetColFields2(TAOS_STMT2* stmt, int* nums, TAOS_FIELD_E** fields) { return stmtFetchColFields2(stmt, nums, fields); } -int stmtGetStbColFields2(TAOS_STMT2* stmt, int* nums, TAOS_FIELD_STB** fields) { +int stmtGetStbColFields2(TAOS_STMT2* stmt, int* nums, TAOS_FIELD_ALL** fields) { int32_t code = stmtParseColFields2(stmt); if (code != TSDB_CODE_SUCCESS) { return code; diff --git a/source/libs/parser/src/parInsertStmt.c b/source/libs/parser/src/parInsertStmt.c index 9e6abe1517..fae5caaff0 100644 --- a/source/libs/parser/src/parInsertStmt.c +++ b/source/libs/parser/src/parInsertStmt.c @@ -938,13 +938,17 @@ int32_t buildBoundFields(int32_t numOfBound, int16_t* boundColumns, SSchema* pSc return TSDB_CODE_SUCCESS; } -int32_t buildStbBoundFields(SBoundColInfo boundColsInfo, SSchema* pSchema, int32_t* fieldNum, TAOS_FIELD_STB** fields, +int32_t buildStbBoundFields(SBoundColInfo boundColsInfo, SSchema* pSchema, int32_t* fieldNum, TAOS_FIELD_ALL** fields, STableMeta* pMeta, void* boundTags, bool preCtbname) { SBoundColInfo* tags = (SBoundColInfo*)boundTags; - int32_t numOfBound = boundColsInfo.numOfBound + (tags->mixTagsCols ? 0 : tags->numOfBound) + (preCtbname ? 1 : 0); + bool hastag = tags != NULL; + int32_t numOfBound = boundColsInfo.numOfBound + (preCtbname ? 1 : 0); + if (hastag) { + numOfBound += tags->mixTagsCols ? 0 : tags->numOfBound; + } int32_t idx = 0; if (fields != NULL) { - *fields = taosMemoryCalloc(numOfBound, sizeof(TAOS_FIELD_STB)); + *fields = taosMemoryCalloc(numOfBound, sizeof(TAOS_FIELD_ALL)); if (NULL == *fields) { return terrno; } @@ -957,7 +961,7 @@ int32_t buildStbBoundFields(SBoundColInfo boundColsInfo, SSchema* pSchema, int32 idx++; } - if (tags->numOfBound > 0 && !tags->mixTagsCols) { + if (hastag && tags->numOfBound > 0 && !tags->mixTagsCols) { SSchema* tagSchema = getTableTagSchema(pMeta); for (int32_t i = 0; i < tags->numOfBound; ++i) { @@ -1054,7 +1058,7 @@ int32_t qBuildStmtColFields(void* pBlock, int32_t* fieldNum, TAOS_FIELD_E** fiel } int32_t qBuildStmtStbColFields(void* pBlock, void* boundTags, bool preCtbname, int32_t* fieldNum, - TAOS_FIELD_STB** fields) { + TAOS_FIELD_ALL** fields) { STableDataCxt* pDataBlock = (STableDataCxt*)pBlock; SSchema* pSchema = getTableColumnSchema(pDataBlock->pMeta); if (pDataBlock->boundColsInfo.numOfBound <= 0) { diff --git a/tests/script/api/stmt2-example.c b/tests/script/api/stmt2-example.c index 692ff90a06..611de1ebc3 100644 --- a/tests/script/api/stmt2-example.c +++ b/tests/script/api/stmt2-example.c @@ -58,8 +58,8 @@ void do_stmt(TAOS* taos) { } int fieldNum = 0; - TAOS_FIELD_STB* pFields = NULL; - code = taos_stmt2_get_stb_fields(stmt, &fieldNum, &pFields); + TAOS_FIELD_ALL* pFields = NULL; + code = taos_stmt2_get_fields(stmt, &fieldNum, &pFields); if (code != 0) { printf("failed get col,ErrCode: 0x%x, ErrMessage: %s.\n", code, taos_stmt2_error(stmt)); } else { @@ -70,6 +70,7 @@ void do_stmt(TAOS* taos) { } } + int64_t ts = 1591060628000; for (int i = 0; i < 2; ++i) { v.ts[i] = ts++; @@ -88,6 +89,7 @@ void do_stmt(TAOS* taos) { return; } + taos_stmt2_free_fields(stmt, pFields); taos_stmt2_close(stmt); } diff --git a/tests/script/api/stmt2-get-fields.c b/tests/script/api/stmt2-get-fields.c index df677eba1a..e14c0e2265 100755 --- a/tests/script/api/stmt2-get-fields.c +++ b/tests/script/api/stmt2-get-fields.c @@ -16,8 +16,8 @@ void getFields(TAOS *taos, const char *sql) { return; } int fieldNum = 0; - TAOS_FIELD_STB *pFields = NULL; - code = taos_stmt2_get_stb_fields(stmt, &fieldNum, &pFields); + TAOS_FIELD_ALL *pFields = NULL; + code = taos_stmt2_get_fields(stmt, &fieldNum, &pFields); if (code != 0) { printf("failed get col,ErrCode: 0x%x, ErrMessage: %s.\n", code, taos_stmt2_error(stmt)); } else { @@ -28,7 +28,7 @@ void getFields(TAOS *taos, const char *sql) { } } printf("====================================\n"); - taos_stmt2_free_stb_fields(stmt, pFields); + taos_stmt2_free_fields(stmt, pFields); taos_stmt2_close(stmt); } @@ -42,15 +42,15 @@ void getQueryFields(TAOS *taos, const char *sql) { return; } int fieldNum = 0; - TAOS_FIELD_STB *pFields = NULL; - code = taos_stmt2_get_stb_fields(stmt, &fieldNum, &pFields); + TAOS_FIELD_ALL *pFields = NULL; + code = taos_stmt2_get_fields(stmt, &fieldNum, &pFields); if (code != 0) { printf("failed get col,ErrCode: 0x%x, ErrMessage: %s.\n", code, taos_stmt2_error(stmt)); } else { printf("bind nums:%d\n", fieldNum); } printf("====================================\n"); - taos_stmt2_free_stb_fields(stmt, pFields); + taos_stmt2_free_fields(stmt, pFields); taos_stmt2_close(stmt); } diff --git a/tests/script/api/stmt2-nchar.c b/tests/script/api/stmt2-nchar.c index 3952bd5898..0f402517bf 100644 --- a/tests/script/api/stmt2-nchar.c +++ b/tests/script/api/stmt2-nchar.c @@ -205,11 +205,11 @@ void veriry_stmt(TAOS* taos) { return; } printf("param_count: %d\n", param_count); - */ - TAOS_FIELD_E* fields = NULL; + */ + TAOS_FIELD_ALL* fields = NULL; int field_count = -1; start = clock(); - code = taos_stmt2_get_fields(stmt, TAOS_FIELD_COL, &field_count, NULL); + code = taos_stmt2_get_fields(stmt, &field_count, &fields); end = clock(); printf("get fields time:%f\n", (double)(end - start) / CLOCKS_PER_SEC); if (code != 0) { diff --git a/tests/script/api/stmt2-nohole.c b/tests/script/api/stmt2-nohole.c index 5954f3660b..4bf0aae959 100644 --- a/tests/script/api/stmt2-nohole.c +++ b/tests/script/api/stmt2-nohole.c @@ -292,10 +292,10 @@ _bind_again: } printf("param_count: %d\n", param_count); */ - TAOS_FIELD_E* fields = NULL; + TAOS_FIELD_ALL* fields = NULL; int field_count = -1; start = clock(); - code = taos_stmt2_get_fields(stmt, TAOS_FIELD_TBNAME, &field_count, NULL); + code = taos_stmt2_get_fields(stmt, &field_count, &fields); end = clock(); printf("get fields time:%f\n", (double)(end - start) / CLOCKS_PER_SEC); if (code != 0) { diff --git a/tests/script/api/stmt2-test.c b/tests/script/api/stmt2-test.c index 2bbceec92e..d4e617ef66 100644 --- a/tests/script/api/stmt2-test.c +++ b/tests/script/api/stmt2-test.c @@ -35,8 +35,8 @@ typedef struct { } FuncInfo; typedef enum { - BP_BIND_TAG = 1, - BP_BIND_COL, + BP_BIND_COL = 1, + BP_BIND_TAG, } BP_BIND_TYPE; #define BP_BIND_TYPE_STR(t) (((t) == BP_BIND_COL) ? "column" : "tag") @@ -385,7 +385,7 @@ void *taosMemoryMalloc(uint64_t size) { return malloc(size); } void *taosMemoryCalloc(int32_t num, int32_t size) { return calloc(num, size); } void taosMemoryFree(const void *ptr) { - if (ptr == NULL) return; + if (ptr == NULL) return; return free((void *)ptr); } @@ -1303,23 +1303,23 @@ static int st_stmt2_exec(TAOS_STMT2 *stmt, int *affected_rows) { return taos_stm static int st_stmt2_is_insert(TAOS_STMT2 *stmt, int *insert) { return taos_stmt2_is_insert(stmt, insert); } -static int st_stmt2_num_params(TAOS_STMT2 *stmt, int *count) { - return taos_stmt2_get_fields(stmt, TAOS_FIELD_QUERY, count, NULL); -} +// static int st_stmt2_num_params(TAOS_STMT2 *stmt, int *count) { +// return taos_stmt2_get_fields(stmt, count, NULL); +// } -static int st_stmt2_get_tag_fields(TAOS_STMT2 *stmt, int *count, TAOS_FIELD_E **fields) { - return taos_stmt2_get_fields(stmt, TAOS_FIELD_TAG, count, fields); -} +// static int st_stmt2_get_tag_fields(TAOS_STMT2 *stmt, int *count, TAOS_FIELD_ALL **fields) { +// return taos_stmt2_get_fields(stmt, count, fields); +// } -static int st_stmt2_get_col_fields(TAOS_STMT2 *stmt, int *count, TAOS_FIELD_E **fields) { - return taos_stmt2_get_fields(stmt, TAOS_FIELD_COL, count, fields); -} +// static int st_stmt2_get_col_fields(TAOS_STMT2 *stmt, int *count, TAOS_FIELD_E **fields) { +// return taos_stmt2_get_fields(stmt, TAOS_FIELD_COL, count, fields); +// } static int st_stmt2_get_param(TAOS_STMT2 *stmt, int idx, int *type, int *bytes) { - int32_t code = 0, nums = 0; - TAOS_FIELD_E *fields = NULL; + int32_t code = 0, nums = 0; + TAOS_FIELD_ALL *fields = NULL; - code = taos_stmt2_get_fields(stmt, TAOS_FIELD_COL, &nums, &fields); + code = taos_stmt2_get_fields(stmt, &nums, &fields); if (code) { return code; } @@ -1398,8 +1398,8 @@ void bpCheckIsInsert(TAOS_STMT2 *stmt, int32_t insert) { void bpCheckParamNum(TAOS_STMT2 *stmt) { int32_t num = 0; - if (st_stmt2_num_params(stmt, &num)) { - printf("!!!st_stmt2_num_params error:%s\n", st_stmt2_error(stmt)); + if (taos_stmt2_get_fields(stmt, &num, NULL)) { + printf("!!!taos_stmt2_get_fields error:%s\n", st_stmt2_error(stmt)); exit(1); } @@ -1468,7 +1468,7 @@ void bpCheckQueryResult(TAOS_STMT2 *stmt, TAOS *taos, char *stmtSql, TAOS_STMT2_ printf("***sql res num match stmt res num %d\n", stmtResNum); } -void bpCheckColTagFields(TAOS_STMT2 *stmt, int32_t fieldNum, TAOS_FIELD_E *pFields, int32_t expecteNum, +void bpCheckColTagFields(TAOS_STMT2 *stmt, int32_t fieldNum, TAOS_FIELD_ALL *pFields, int32_t expecteNum, TAOS_STMT2_BIND *pBind, BP_BIND_TYPE type) { int32_t code = 0; @@ -1485,6 +1485,11 @@ void bpCheckColTagFields(TAOS_STMT2 *stmt, int32_t fieldNum, TAOS_FIELD_E *pFiel } for (int32_t i = 0; i < fieldNum; ++i) { + if (pFields[i].field_type != type) { + printf("!!!%s %dth field type %d mis-match expect type %d\n", BP_BIND_TYPE_STR(type), i, pFields[i].field_type, + TAOS_FIELD_TAG); + exit(1); + } if (pFields[i].type != pBind[i].buffer_type) { printf("!!!%s %dth field type %d mis-match expect type %d\n", BP_BIND_TYPE_STR(type), i, pFields[i].type, pBind[i].buffer_type); @@ -1545,17 +1550,17 @@ void bpCheckColTagFields(TAOS_STMT2 *stmt, int32_t fieldNum, TAOS_FIELD_E *pFiel } void bpCheckTagFields(TAOS_STMT2 *stmt, TAOS_STMT2_BIND *pBind) { - int32_t code = 0; - int fieldNum = 0; - TAOS_FIELD_E *pFields = NULL; - code = st_stmt2_get_tag_fields(stmt, &fieldNum, &pFields); + int32_t code = 0; + int fieldNum = 0; + TAOS_FIELD_ALL *pFields = NULL; + code = taos_stmt2_get_fields(stmt, &fieldNum, &pFields); if (code != 0) { - printf("!!!st_stmt2_get_tag_fields error:%s\n", st_stmt2_error(stmt)); + printf("!!!taos_stmt2_get_fields error:%s\n", st_stmt2_error(stmt)); exit(1); } bpCheckColTagFields(stmt, fieldNum, pFields, gCurCase->bindTagNum, pBind, BP_BIND_TAG); - taosMemoryFree(pFields); + taos_stmt2_free_fields(stmt, pFields); } void bpCheckColFields(TAOS_STMT2 *stmt, TAOS_STMT2_BIND *pBind) { @@ -1563,10 +1568,10 @@ void bpCheckColFields(TAOS_STMT2 *stmt, TAOS_STMT2_BIND *pBind) { return; } - int32_t code = 0; - int fieldNum = 0; - TAOS_FIELD_E *pFields = NULL; - code = st_stmt2_get_col_fields(stmt, &fieldNum, &pFields); + int32_t code = 0; + int fieldNum = 0; + TAOS_FIELD_ALL *pFields = NULL; + code = taos_stmt2_get_fields(stmt, &fieldNum, &pFields); if (code != 0) { printf("!!!st_stmt2_get_col_fields error:%s\n", st_stmt2_error(stmt)); exit(1); diff --git a/tests/script/api/stmt2.c b/tests/script/api/stmt2.c index 5b9f41baff..0ddff274a6 100644 --- a/tests/script/api/stmt2.c +++ b/tests/script/api/stmt2.c @@ -257,10 +257,10 @@ void veriry_stmt(TAOS* taos) { } printf("param_count: %d\n", param_count); */ - TAOS_FIELD_E* fields = NULL; + TAOS_FIELD_ALL* fields = NULL; int field_count = -1; start = clock(); - code = taos_stmt2_get_fields(stmt, TAOS_FIELD_COL, &field_count, NULL); + code = taos_stmt2_get_fields(stmt, &field_count, NULL); end = clock(); printf("get fields time:%f\n", (double)(end - start) / CLOCKS_PER_SEC); if (code != 0) { From 6a997eec630db5dabe25234aae339eea0b144950 Mon Sep 17 00:00:00 2001 From: Pengrongkun Date: Fri, 13 Dec 2024 17:02:02 +0800 Subject: [PATCH 02/10] fix refactor influnce stmt2-text.c --- tests/script/api/stmt2-test.c | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/tests/script/api/stmt2-test.c b/tests/script/api/stmt2-test.c index d4e617ef66..7edfd40d02 100644 --- a/tests/script/api/stmt2-test.c +++ b/tests/script/api/stmt2-test.c @@ -1328,9 +1328,18 @@ static int st_stmt2_get_param(TAOS_STMT2 *stmt, int idx, int *type, int *bytes) taosMemoryFree(fields); return -1; } + int i = 0; + for (; i < nums; i++) { + if (fields[i].field_type == TAOS_FIELD_COL) { + idx--; + } + if (idx < 0) { + break; + } + } - *type = fields[idx].type; - *bytes = fields[idx].bytes; + *type = fields[i].type; + *bytes = fields[i].bytes; taosMemoryFree(fields); return 0; @@ -1558,7 +1567,12 @@ void bpCheckTagFields(TAOS_STMT2 *stmt, TAOS_STMT2_BIND *pBind) { printf("!!!taos_stmt2_get_fields error:%s\n", st_stmt2_error(stmt)); exit(1); } - + int n = fieldNum; + for (int i = 0; i < n; i++) { + if (pFields[i].field_type != TAOS_FIELD_TAG) { + fieldNum--; + } + } bpCheckColTagFields(stmt, fieldNum, pFields, gCurCase->bindTagNum, pBind, BP_BIND_TAG); taos_stmt2_free_fields(stmt, pFields); } @@ -1571,13 +1585,24 @@ void bpCheckColFields(TAOS_STMT2 *stmt, TAOS_STMT2_BIND *pBind) { int32_t code = 0; int fieldNum = 0; TAOS_FIELD_ALL *pFields = NULL; + TAOS_FIELD_ALL *pColFields = NULL; + code = taos_stmt2_get_fields(stmt, &fieldNum, &pFields); if (code != 0) { printf("!!!st_stmt2_get_col_fields error:%s\n", st_stmt2_error(stmt)); exit(1); } - - bpCheckColTagFields(stmt, fieldNum, pFields, gCurCase->bindColNum, pBind, BP_BIND_COL); + int n = fieldNum; + pColFields = taosMemoryMalloc(fieldNum * sizeof(TAOS_FIELD_ALL)); + int j = 0; + for (int i = 0; i < n; i++) { + if (pFields[i].field_type != TAOS_FIELD_COL) { + fieldNum--; + } else { + pColFields[j++] = pFields[i]; + } + } + bpCheckColTagFields(stmt, fieldNum, pColFields, gCurCase->bindColNum, pBind, BP_BIND_COL); taosMemoryFree(pFields); } From 038e8bb844d416e7921130ee37d6d250b7c3b173 Mon Sep 17 00:00:00 2001 From: t_max <1172915550@qq.com> Date: Mon, 16 Dec 2024 14:31:45 +0800 Subject: [PATCH 03/10] test: test with taosadapter --- cmake/taosadapter_CMakeLists.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/taosadapter_CMakeLists.txt.in b/cmake/taosadapter_CMakeLists.txt.in index 13826a1a74..524d44da73 100644 --- a/cmake/taosadapter_CMakeLists.txt.in +++ b/cmake/taosadapter_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taosadapter ExternalProject_Add(taosadapter GIT_REPOSITORY https://github.com/taosdata/taosadapter.git - GIT_TAG main + GIT_TAG enh/xftan/TD-33174-3.0 SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosadapter" BINARY_DIR "" #BUILD_IN_SOURCE TRUE From 2fcef59962cdc01d5f2464fe0523eee662c5ee33 Mon Sep 17 00:00:00 2001 From: Pengrongkun Date: Mon, 16 Dec 2024 16:55:33 +0800 Subject: [PATCH 04/10] fix ci --- source/client/src/clientStmt2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/client/src/clientStmt2.c b/source/client/src/clientStmt2.c index 39d222eb48..89a0fd3788 100644 --- a/source/client/src/clientStmt2.c +++ b/source/client/src/clientStmt2.c @@ -39,7 +39,7 @@ static FORCE_INLINE int32_t stmtAllocQNodeFromBuf(STableBufInfo* pTblBuf, void** } static bool stmtDequeue(STscStmt2* pStmt, SStmtQNode** param) { - while (0 == atomic_load_64(&pStmt->queue.qRemainNum)) { + while (0 == atomic_load_64((int64_t*)&pStmt->queue.qRemainNum)) { taosUsleep(1); return false; } @@ -53,7 +53,7 @@ static bool stmtDequeue(STscStmt2* pStmt, SStmtQNode** param) { *param = node; - (void)atomic_sub_fetch_64(&pStmt->queue.qRemainNum, 1); + (void)atomic_sub_fetch_64((int64_t*)&pStmt->queue.qRemainNum, 1); return true; } @@ -63,7 +63,7 @@ static void stmtEnqueue(STscStmt2* pStmt, SStmtQNode* param) { pStmt->queue.tail = param; pStmt->stat.bindDataNum++; - (void)atomic_add_fetch_64(&pStmt->queue.qRemainNum, 1); + (void)atomic_add_fetch_64((int64_t*)&pStmt->queue.qRemainNum, 1); } static int32_t stmtCreateRequest(STscStmt2* pStmt) { From 7be31eea3062077ae9eddf24cd0d986092a64b20 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Mon, 16 Dec 2024 18:40:27 +0800 Subject: [PATCH 05/10] fix: query remain issues --- source/dnode/vnode/src/vnd/vnodeSvr.c | 14 +++++++++++++- source/libs/qworker/inc/qwInt.h | 3 +-- source/libs/qworker/src/qwMem.c | 19 ++++++++++++------- source/libs/qworker/src/qwMsg.c | 6 +++--- source/libs/qworker/src/qworker.c | 13 ++++++++++++- 5 files changed, 41 insertions(+), 14 deletions(-) diff --git a/source/dnode/vnode/src/vnd/vnodeSvr.c b/source/dnode/vnode/src/vnd/vnodeSvr.c index d9b41869c7..3e3d91cb13 100644 --- a/source/dnode/vnode/src/vnd/vnodeSvr.c +++ b/source/dnode/vnode/src/vnd/vnodeSvr.c @@ -830,7 +830,7 @@ int32_t vnodePreprocessQueryMsg(SVnode *pVnode, SRpcMsg *pMsg) { int32_t vnodeProcessQueryMsg(SVnode *pVnode, SRpcMsg *pMsg, SQueueInfo *pInfo) { vTrace("message in vnode query queue is processing"); - if ((pMsg->msgType == TDMT_SCH_QUERY || pMsg->msgType == TDMT_VND_TMQ_CONSUME) && !syncIsReadyForRead(pVnode->sync)) { + if (pMsg->msgType == TDMT_VND_TMQ_CONSUME && !syncIsReadyForRead(pVnode->sync)) { vnodeRedirectRpcMsg(pVnode, pMsg, terrno); return 0; } @@ -842,9 +842,21 @@ int32_t vnodeProcessQueryMsg(SVnode *pVnode, SRpcMsg *pMsg, SQueueInfo *pInfo) { SReadHandle handle = {.vnode = pVnode, .pMsgCb = &pVnode->msgCb, .pWorkerCb = pInfo->workerCb}; initStorageAPI(&handle.api); + int32_t code = TSDB_CODE_SUCCESS; + bool redirected = false; switch (pMsg->msgType) { case TDMT_SCH_QUERY: + if (!syncIsReadyForRead(pVnode->sync)) { + pMsg->code = (terrno) ? terrno : TSDB_CODE_SYN_NOT_LEADER; + redirected = true; + } + code = qWorkerProcessQueryMsg(&handle, pVnode->pQuery, pMsg, 0); + if (redirected) { + vnodeRedirectRpcMsg(pVnode, pMsg, pMsg->code); + return 0; + } + return code; case TDMT_SCH_MERGE_QUERY: return qWorkerProcessQueryMsg(&handle, pVnode->pQuery, pMsg, 0); case TDMT_SCH_QUERY_CONTINUE: diff --git a/source/libs/qworker/inc/qwInt.h b/source/libs/qworker/inc/qwInt.h index 53e1c3d288..65f7cd772f 100644 --- a/source/libs/qworker/inc/qwInt.h +++ b/source/libs/qworker/inc/qwInt.h @@ -320,9 +320,8 @@ extern SQueryMgmt gQueryMgmt; case QW_PHASE_POST_QUERY: \ case QW_PHASE_PRE_CQUERY: \ case QW_PHASE_POST_CQUERY: \ - atomic_store_8(&(ctx)->phase, _value); \ - break; \ default: \ + atomic_store_8(&(ctx)->phase, _value); \ break; \ } \ } while (0) diff --git a/source/libs/qworker/src/qwMem.c b/source/libs/qworker/src/qwMem.c index 89475bca13..d625bb113a 100644 --- a/source/libs/qworker/src/qwMem.c +++ b/source/libs/qworker/src/qwMem.c @@ -83,13 +83,16 @@ void qwDestroySession(QW_FPARAMS_DEF, SQWJobInfo *pJobInfo, void* session) { taosMemPoolDestroySession(gMemPoolHandle, session); + QW_LOCK(QW_WRITE, &pJobInfo->lock); int32_t remainSessions = atomic_sub_fetch_32(&pJobInfo->memInfo->remainSession, 1); - + if (remainSessions != 0) { + QW_UNLOCK(QW_WRITE, &pJobInfo->lock); + } + QW_TASK_DLOG("task session destoryed, remainSessions:%d", remainSessions); if (0 == remainSessions) { - QW_LOCK(QW_WRITE, &pJobInfo->lock); - if (/*0 == taosHashGetSize(pJobInfo->pSessions) && */0 == atomic_load_32(&pJobInfo->memInfo->remainSession)) { +// if (/*0 == taosHashGetSize(pJobInfo->pSessions) && */0 == atomic_load_32(&pJobInfo->memInfo->remainSession)) { atomic_store_8(&pJobInfo->destroyed, 1); QW_UNLOCK(QW_WRITE, &pJobInfo->lock); @@ -98,10 +101,10 @@ void qwDestroySession(QW_FPARAMS_DEF, SQWJobInfo *pJobInfo, void* session) { TAOS_UNUSED(taosHashRemove(gQueryMgmt.pJobInfo, id2, sizeof(id2))); QW_TASK_DLOG_E("the whole query job removed"); - } else { - QW_TASK_DLOG("job not removed, remainSessions:%d, %d", taosHashGetSize(pJobInfo->pSessions), pJobInfo->memInfo->remainSession); - QW_UNLOCK(QW_WRITE, &pJobInfo->lock); - } +// } else { +// QW_TASK_DLOG("job not removed, remainSessions:%d, %d", taosHashGetSize(pJobInfo->pSessions), pJobInfo->memInfo->remainSession); +// QW_UNLOCK(QW_WRITE, &pJobInfo->lock); +// } } } @@ -147,12 +150,14 @@ int32_t qwRetrieveJobInfo(QW_FPARAMS_DEF, SQWJobInfo** ppJob) { } QW_LOCK(QW_READ, &pJob->lock); + if (atomic_load_8(&pJob->destroyed)) { QW_UNLOCK(QW_READ, &pJob->lock); continue; } (void)atomic_add_fetch_32(&pJob->memInfo->remainSession, 1); + QW_UNLOCK(QW_READ, &pJob->lock); break; diff --git a/source/libs/qworker/src/qwMsg.c b/source/libs/qworker/src/qwMsg.c index 0452a05fe4..e385bbe5ea 100644 --- a/source/libs/qworker/src/qwMsg.c +++ b/source/libs/qworker/src/qwMsg.c @@ -498,14 +498,14 @@ int32_t qWorkerProcessQueryMsg(void *node, void *qWorkerMgmt, SRpcMsg *pMsg, int int64_t rId = msg.refId; int32_t eId = msg.execId; - SQWMsg qwMsg = {.node = node, .msg = msg.msg, .msgLen = msg.msgLen, .connInfo = pMsg->info, .msgType = pMsg->msgType}; + SQWMsg qwMsg = {.node = node, .msg = msg.msg, .msgLen = msg.msgLen, .connInfo = pMsg->info, .msgType = pMsg->msgType, .code = pMsg->code}; qwMsg.msgInfo.explain = msg.explain; qwMsg.msgInfo.taskType = msg.taskType; qwMsg.msgInfo.needFetch = msg.needFetch; qwMsg.msgInfo.compressMsg = msg.compress; - QW_SCH_TASK_DLOG("processQuery start, node:%p, type:%s, compress:%d, handle:%p, SQL:%s", node, TMSG_INFO(pMsg->msgType), - msg.compress, pMsg->info.handle, msg.sql); + QW_SCH_TASK_DLOG("processQuery start, node:%p, type:%s, compress:%d, handle:%p, SQL:%s, code:0x%x", node, TMSG_INFO(pMsg->msgType), + msg.compress, pMsg->info.handle, msg.sql, qwMsg.code); code = qwProcessQuery(QW_FPARAMS(), &qwMsg, msg.sql); msg.sql = NULL; diff --git a/source/libs/qworker/src/qworker.c b/source/libs/qworker/src/qworker.c index 50af01cd6f..d38c8645d7 100644 --- a/source/libs/qworker/src/qworker.c +++ b/source/libs/qworker/src/qworker.c @@ -567,6 +567,13 @@ int32_t qwHandlePrePhaseEvents(QW_FPARAMS_DEF, int8_t phase, SQWPhaseInput *inpu QW_ERR_JRET(ctx->rspCode); } + if (TSDB_CODE_SUCCESS != input->code) { + QW_TASK_ELOG("task already failed at phase %s, code:0x%x", qwPhaseStr(phase), input->code); + (void)qwDropTask(QW_FPARAMS()); + + QW_ERR_JRET(input->code); + } + QW_ERR_JRET(qwUpdateTaskStatus(QW_FPARAMS(), JOB_TASK_STATUS_EXEC, ctx->dynamicTask)); break; } @@ -631,6 +638,10 @@ _return: if (ctx) { QW_UPDATE_RSP_CODE(ctx, code); + if (QW_PHASE_PRE_CQUERY == phase && code) { + QW_SET_PHASE(ctx, QW_PHASE_POST_CQUERY); + } + QW_UNLOCK(QW_WRITE, &ctx->lock); qwReleaseTaskCtx(mgmt, ctx); } @@ -767,7 +778,7 @@ _return: int32_t qwProcessQuery(QW_FPARAMS_DEF, SQWMsg *qwMsg, char *sql) { int32_t code = 0; SSubplan *plan = NULL; - SQWPhaseInput input = {0}; + SQWPhaseInput input = {.code = qwMsg->code}; qTaskInfo_t pTaskInfo = NULL; DataSinkHandle sinkHandle = NULL; SQWTaskCtx *ctx = NULL; From 2464f1ba686a5a8096925ed79f6154acb1766ffa Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Mon, 16 Dec 2024 19:20:16 +0800 Subject: [PATCH 06/10] fix: void return code --- source/libs/qworker/src/qworker.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/libs/qworker/src/qworker.c b/source/libs/qworker/src/qworker.c index d38c8645d7..fa422b1de4 100644 --- a/source/libs/qworker/src/qworker.c +++ b/source/libs/qworker/src/qworker.c @@ -819,10 +819,10 @@ int32_t qwProcessQuery(QW_FPARAMS_DEF, SQWMsg *qwMsg, char *sql) { QW_ERR_JRET(TSDB_CODE_APP_ERROR); } - atomic_add_fetch_64(&gQueryMgmt.stat.taskRunNum, 1); + (void)atomic_add_fetch_64(&gQueryMgmt.stat.taskRunNum, 1); uint64_t flags = 0; - dsGetSinkFlags(sinkHandle, &flags); + (void)dsGetSinkFlags(sinkHandle, &flags); ctx->level = plan->level; ctx->dynamicTask = qIsDynamicExecTask(pTaskInfo); @@ -1353,7 +1353,7 @@ int32_t qwProcessDelete(QW_FPARAMS_DEF, SQWMsg *qwMsg, SDeleteRes *pRes) { ctx.sinkHandle = sinkHandle; uint64_t flags = 0; - dsGetSinkFlags(sinkHandle, &flags); + (void)dsGetSinkFlags(sinkHandle, &flags); ctx.sinkWithMemPool = flags & DS_FLAG_USE_MEMPOOL; From f603042eef2e0fc9e3fbd151b14a6704a16127ae Mon Sep 17 00:00:00 2001 From: t_max <1172915550@qq.com> Date: Tue, 17 Dec 2024 09:13:39 +0800 Subject: [PATCH 07/10] chore: revert taosadapter version --- cmake/taosadapter_CMakeLists.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/taosadapter_CMakeLists.txt.in b/cmake/taosadapter_CMakeLists.txt.in index 524d44da73..ef6ed4af1d 100644 --- a/cmake/taosadapter_CMakeLists.txt.in +++ b/cmake/taosadapter_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taosadapter ExternalProject_Add(taosadapter GIT_REPOSITORY https://github.com/taosdata/taosadapter.git - GIT_TAG enh/xftan/TD-33174-3.0 + GIT_TAG 3.0 SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosadapter" BINARY_DIR "" #BUILD_IN_SOURCE TRUE From 85ec00768729bb3ce151aa6ca42aa42aef1216b1 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Tue, 17 Dec 2024 11:39:49 +0800 Subject: [PATCH 08/10] fix: task release prior to response issue --- source/libs/qworker/src/qworker.c | 1 + source/libs/scheduler/src/schRemote.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/source/libs/qworker/src/qworker.c b/source/libs/qworker/src/qworker.c index fa422b1de4..641fa03f7a 100644 --- a/source/libs/qworker/src/qworker.c +++ b/source/libs/qworker/src/qworker.c @@ -569,6 +569,7 @@ int32_t qwHandlePrePhaseEvents(QW_FPARAMS_DEF, int8_t phase, SQWPhaseInput *inpu if (TSDB_CODE_SUCCESS != input->code) { QW_TASK_ELOG("task already failed at phase %s, code:0x%x", qwPhaseStr(phase), input->code); + ctx->ctrlConnInfo.handle = NULL; (void)qwDropTask(QW_FPARAMS()); QW_ERR_JRET(input->code); diff --git a/source/libs/scheduler/src/schRemote.c b/source/libs/scheduler/src/schRemote.c index fd255f53cf..d15ac7a791 100644 --- a/source/libs/scheduler/src/schRemote.c +++ b/source/libs/scheduler/src/schRemote.c @@ -1361,14 +1361,14 @@ int32_t schBuildAndSendMsg(SSchJob *pJob, SSchTask *pTask, SQueryNodeAddr *addr, taosMemoryFree(msg); SCH_ERR_RET(schProcessOnTaskSuccess(pJob, pTask)); } else { + if (msgType == TDMT_SCH_QUERY || msgType == TDMT_SCH_MERGE_QUERY) { + SCH_ERR_JRET(schAppendTaskExecNode(pJob, pTask, addr, pTask->execId)); + } + SSchTrans trans = {.pTrans = pJob->conn.pTrans, .pHandle = SCH_GET_TASK_HANDLE(pTask)}; code = schAsyncSendMsg(pJob, pTask, &trans, addr, msgType, msg, (uint32_t)msgSize, persistHandle, (rpcCtx.args ? &rpcCtx : NULL)); msg = NULL; SCH_ERR_JRET(code); - - if (msgType == TDMT_SCH_QUERY || msgType == TDMT_SCH_MERGE_QUERY) { - SCH_ERR_RET(schAppendTaskExecNode(pJob, pTask, addr, pTask->execId)); - } } return TSDB_CODE_SUCCESS; From 2f6923ea3efbe40d29718fe1df469154c33bcbd4 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Tue, 17 Dec 2024 11:44:54 +0800 Subject: [PATCH 09/10] merge: set git tags --- cmake/taosadapter_CMakeLists.txt.in | 2 +- cmake/taostools_CMakeLists.txt.in | 2 +- cmake/taosws_CMakeLists.txt.in | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/taosadapter_CMakeLists.txt.in b/cmake/taosadapter_CMakeLists.txt.in index 13826a1a74..ef6ed4af1d 100644 --- a/cmake/taosadapter_CMakeLists.txt.in +++ b/cmake/taosadapter_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taosadapter ExternalProject_Add(taosadapter GIT_REPOSITORY https://github.com/taosdata/taosadapter.git - GIT_TAG main + GIT_TAG 3.0 SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosadapter" BINARY_DIR "" #BUILD_IN_SOURCE TRUE diff --git a/cmake/taostools_CMakeLists.txt.in b/cmake/taostools_CMakeLists.txt.in index 9bbda8309f..9a6a5329ae 100644 --- a/cmake/taostools_CMakeLists.txt.in +++ b/cmake/taostools_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taos-tools ExternalProject_Add(taos-tools GIT_REPOSITORY https://github.com/taosdata/taos-tools.git - GIT_TAG main + GIT_TAG 3.0 SOURCE_DIR "${TD_SOURCE_DIR}/tools/taos-tools" BINARY_DIR "" #BUILD_IN_SOURCE TRUE diff --git a/cmake/taosws_CMakeLists.txt.in b/cmake/taosws_CMakeLists.txt.in index b013d45911..17446d184d 100644 --- a/cmake/taosws_CMakeLists.txt.in +++ b/cmake/taosws_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taosws-rs ExternalProject_Add(taosws-rs GIT_REPOSITORY https://github.com/taosdata/taos-connector-rust.git - GIT_TAG main + GIT_TAG 3.0 SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosws-rs" BINARY_DIR "" #BUILD_IN_SOURCE TRUE From d56d67f59c00416800c14b21ecac4592f4d17faf Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Wed, 18 Dec 2024 00:00:31 +0800 Subject: [PATCH 10/10] merge: set git tags --- cmake/taosadapter_CMakeLists.txt.in | 2 +- cmake/taostools_CMakeLists.txt.in | 2 +- cmake/taosws_CMakeLists.txt.in | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/taosadapter_CMakeLists.txt.in b/cmake/taosadapter_CMakeLists.txt.in index ef6ed4af1d..13826a1a74 100644 --- a/cmake/taosadapter_CMakeLists.txt.in +++ b/cmake/taosadapter_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taosadapter ExternalProject_Add(taosadapter GIT_REPOSITORY https://github.com/taosdata/taosadapter.git - GIT_TAG 3.0 + GIT_TAG main SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosadapter" BINARY_DIR "" #BUILD_IN_SOURCE TRUE diff --git a/cmake/taostools_CMakeLists.txt.in b/cmake/taostools_CMakeLists.txt.in index 9a6a5329ae..9bbda8309f 100644 --- a/cmake/taostools_CMakeLists.txt.in +++ b/cmake/taostools_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taos-tools ExternalProject_Add(taos-tools GIT_REPOSITORY https://github.com/taosdata/taos-tools.git - GIT_TAG 3.0 + GIT_TAG main SOURCE_DIR "${TD_SOURCE_DIR}/tools/taos-tools" BINARY_DIR "" #BUILD_IN_SOURCE TRUE diff --git a/cmake/taosws_CMakeLists.txt.in b/cmake/taosws_CMakeLists.txt.in index 17446d184d..b013d45911 100644 --- a/cmake/taosws_CMakeLists.txt.in +++ b/cmake/taosws_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taosws-rs ExternalProject_Add(taosws-rs GIT_REPOSITORY https://github.com/taosdata/taos-connector-rust.git - GIT_TAG 3.0 + GIT_TAG main SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosws-rs" BINARY_DIR "" #BUILD_IN_SOURCE TRUE