diff --git a/source/libs/parser/inc/astToMsg.h b/source/libs/parser/inc/astToMsg.h new file mode 100644 index 0000000000..223d5a5768 --- /dev/null +++ b/source/libs/parser/inc/astToMsg.h @@ -0,0 +1,9 @@ +#ifndef TDENGINE_ASTTOMSG_H +#define TDENGINE_ASTTOMSG_H + +#include "parserInt.h" +#include "taosmsg.h" + +SCreateUserMsg* buildUserManipulationMsg(SSqlInfo* pInfo, int64_t id, char* msgBuf, int32_t msgLen); + +#endif // TDENGINE_ASTTOMSG_H diff --git a/source/libs/parser/src/astToMsg.c b/source/libs/parser/src/astToMsg.c new file mode 100644 index 0000000000..6bfbd5ebed --- /dev/null +++ b/source/libs/parser/src/astToMsg.c @@ -0,0 +1,23 @@ +#include "parserInt.h" + +SCreateUserMsg* buildUserManipulationMsg(SSqlInfo* pInfo, 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); + terrno = TSDB_CODE_TSC_OUT_OF_MEMORY; + return NULL; + } + + SUserInfo *pUser = &pInfo->pMiscInfo->user; + strncpy(pMsg->user, pUser->user.z, pUser->user.n); + pMsg->type = pUser->type; + pMsg->superUser = (int8_t)pUser->type; + + if (pUser->type == TSDB_ALTER_USER_PRIVILEGES) { +// pMsg->privilege = (char)pCmd->count; + } else { + strncpy(pMsg->pass, pUser->passwd.z, pUser->passwd.n); + } + + return pMsg; +} \ No newline at end of file