diff --git a/source/client/test/clientTests.cpp b/source/client/test/clientTests.cpp index 7f1dd93a09..1c8cd6a4b6 100644 --- a/source/client/test/clientTests.cpp +++ b/source/client/test/clientTests.cpp @@ -48,14 +48,7 @@ TEST(testCase, create_user_Test) { TAOS* pConn = taos_connect("ubuntu", "root", "taosdata", NULL, 0); // assert(pConn != NULL); - TAOS_RES* pRes = taos_query(pConn, "drop user abc"); - if (taos_errno(pRes) != TSDB_CODE_SUCCESS) { - printf("failed to create user, reason:%s\n", taos_errstr(pRes)); - } - - taos_free_result(pRes); - - pRes = taos_query(pConn, "create user abc pass 'abc'"); + TAOS_RES* pRes = taos_query(pConn, "create user abc pass 'abc'"); if (taos_errno(pRes) != TSDB_CODE_SUCCESS) { printf("failed to create user, reason:%s\n", taos_errstr(pRes)); } @@ -66,7 +59,7 @@ TEST(testCase, create_user_Test) { TEST(testCase, create_account_Test) { TAOS* pConn = taos_connect("ubuntu", "root", "taosdata", NULL, 0); -// assert(pConn != NULL); + assert(pConn != NULL); TAOS_RES* pRes = taos_query(pConn, "create account aabc pass 'abc'"); if (taos_errno(pRes) != TSDB_CODE_SUCCESS) { @@ -90,19 +83,6 @@ TEST(testCase, drop_account_Test) { taos_close(pConn); } -TEST(testCase, drop_user_Test) { - TAOS* pConn = taos_connect("ubuntu", "root", "taosdata", NULL, 0); - assert(pConn != NULL); - - TAOS_RES* pRes = taos_query(pConn, "drop user abc"); - if (taos_errno(pRes) != TSDB_CODE_SUCCESS) { - printf("failed to create user, reason:%s\n", taos_errstr(pRes)); - } - - taos_free_result(pRes); - taos_close(pConn); -} - TEST(testCase, show_user_Test) { TAOS* pConn = taos_connect("ubuntu", "root", "taosdata", NULL, 0); // assert(pConn != NULL); @@ -122,6 +102,19 @@ TEST(testCase, show_user_Test) { taos_close(pConn); } +TEST(testCase, drop_user_Test) { + TAOS* pConn = taos_connect("ubuntu", "root", "taosdata", NULL, 0); + assert(pConn != NULL); + + TAOS_RES* pRes = taos_query(pConn, "drop user abc"); + if (taos_errno(pRes) != TSDB_CODE_SUCCESS) { + printf("failed to create user, reason:%s\n", taos_errstr(pRes)); + } + + taos_free_result(pRes); + taos_close(pConn); +} + TEST(testCase, show_db_Test) { TAOS* pConn = taos_connect("ubuntu", "root", "taosdata", NULL, 0); // assert(pConn != NULL); @@ -143,7 +136,7 @@ TEST(testCase, show_db_Test) { TEST(testCase, create_db_Test) { TAOS* pConn = taos_connect("ubuntu", "root", "taosdata", NULL, 0); -// assert(pConn != NULL); + assert(pConn != NULL); TAOS_RES* pRes = taos_query(pConn, "create database abc1"); diff --git a/source/libs/parser/inc/astToMsg.h b/source/libs/parser/inc/astToMsg.h index 82c5c31607..32906f7800 100644 --- a/source/libs/parser/inc/astToMsg.h +++ b/source/libs/parser/inc/astToMsg.h @@ -4,8 +4,8 @@ #include "parserInt.h" #include "taosmsg.h" -SCreateUserMsg* buildUserManipulationMsg(SSqlInfo* pInfo, int64_t id, char* msgBuf, int32_t msgLen); -SDropUserMsg* buildDropUserMsg(SSqlInfo* pInfo, int64_t id, char* msgBuf, int32_t msgLen); +SCreateUserMsg* buildUserManipulationMsg(SSqlInfo* pInfo, int32_t* outputLen, int64_t id, char* msgBuf, int32_t msgLen); +SDropUserMsg* buildDropUserMsg(SSqlInfo* pInfo, int32_t* outputLen, int64_t id, char* msgBuf, int32_t msgLen); SShowMsg* buildShowMsg(SShowInfo* pShowInfo, int64_t id, char* msgBuf, int32_t msgLen); SCreateDbMsg* buildCreateDbMsg(SCreateDbInfo* pCreateDbInfo, char* msgBuf, int32_t msgLen); diff --git a/source/libs/parser/src/astToMsg.c b/source/libs/parser/src/astToMsg.c index 11311ea28d..3f9d86737f 100644 --- a/source/libs/parser/src/astToMsg.c +++ b/source/libs/parser/src/astToMsg.c @@ -1,7 +1,7 @@ #include "parserInt.h" #include "parserUtil.h" -SCreateUserMsg* buildUserManipulationMsg(SSqlInfo* pInfo, int64_t id, char* msgBuf, int32_t msgLen) { +SCreateUserMsg* buildUserManipulationMsg(SSqlInfo* pInfo, int32_t* outputLen, int64_t id, char* msgBuf, int32_t msgLen) { SCreateUserMsg* pMsg = (SCreateUserMsg*)calloc(1, sizeof(SCreateUserMsg)); if (pMsg == NULL) { // tscError("0x%" PRIx64 " failed to malloc for query msg", id); @@ -20,22 +20,25 @@ SCreateUserMsg* buildUserManipulationMsg(SSqlInfo* pInfo, int64_t id, char* msgB strncpy(pMsg->pass, pUser->passwd.z, pUser->passwd.n); } + *outputLen = sizeof(SUserInfo); return pMsg; } -SDropUserMsg* buildDropUserMsg(SSqlInfo* pInfo, int64_t id, char* msgBuf, int32_t msgLen) { - if (pInfo->pMiscInfo->user.user.n >= TSDB_USER_LEN) { +SDropUserMsg* buildDropUserMsg(SSqlInfo* pInfo, int32_t *msgLen, int64_t id, char* msgBuf, int32_t msgBufLen) { + SToken* pName = taosArrayGet(pInfo->pMiscInfo->a, 0); + if (pName->n >= TSDB_USER_LEN) { return NULL; } + SDropUserMsg* pMsg = calloc(1, sizeof(SDropUserMsg)); if (pMsg == NULL) { return NULL; } - SToken* pName = taosArrayGet(pInfo->pMiscInfo->a, 0); strncpy(pMsg->user, pName->z, pName->n); - return TSDB_CODE_SUCCESS; + *msgLen = sizeof(SDropUserMsg); + return pMsg; } SShowMsg* buildShowMsg(SShowInfo* pShowInfo, int64_t id, char* msgBuf, int32_t msgLen) { diff --git a/source/libs/parser/src/astValidate.c b/source/libs/parser/src/astValidate.c index edb507e1d9..ba96c4a796 100644 --- a/source/libs/parser/src/astValidate.c +++ b/source/libs/parser/src/astValidate.c @@ -4224,13 +4224,13 @@ int32_t qParserValidateDclSqlNode(SSqlInfo* pInfo, int64_t id, void** output, in } } - *output = buildUserManipulationMsg(pInfo, id, msgBuf, msgBufLen); + *output = buildUserManipulationMsg(pInfo, outputLen, id, msgBuf, msgBufLen); break; } case TSDB_SQL_DROP_ACCT: case TSDB_SQL_DROP_USER: { - *output = buildDropUserMsg(pInfo, id, msgBuf, msgBufLen); + *output = buildDropUserMsg(pInfo, outputLen, id, msgBuf, msgBufLen); break; }