From 157caa361ccfd2df8cc2613e849ab7babe1b5b03 Mon Sep 17 00:00:00 2001 From: Alex Duan <417921451@qq.com> Date: Tue, 25 Oct 2022 12:06:43 +0800 Subject: [PATCH] fix(mdb): compatible v2.0 2.2 mdb file format and ignore blank --- src/client/src/tscAsync.c | 16 ++++++++++++++++ src/client/src/tscSQLParser.c | 6 +----- src/mnode/src/mnodeUser.c | 2 +- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/client/src/tscAsync.c b/src/client/src/tscAsync.c index e75ce8dc01..b00e82f65a 100644 --- a/src/client/src/tscAsync.c +++ b/src/client/src/tscAsync.c @@ -334,6 +334,22 @@ bool appendTagsFilter(SSqlObj* pSql) { return false; } + // check tags is blank + size_t len = strlen(pTscObj->tags); + char* p = pTscObj->tags; + bool blank = true; + while(*p != 0) { + if(*p != ' ') { + blank = false; + break; + } + } + // result + if(blank) { + tscDebug("TAGS 0x%" PRIx64 " tags is all blank. user=%s", pSql->self, pTscObj->user); + return false; + } + char * p = insertTags(pSql->sqlstr, pTscObj->tags); if(p == NULL) { return false; diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 8eb7f15fde..6fbc8a5e19 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -862,7 +862,6 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) { const char* msg3 = "name too long"; const char* msg5 = "invalid user rights"; const char* msg7 = "not support options"; - const char* msg8 = "tags filter length must over 3 bytes."; pCmd->command = pInfo->type; @@ -901,10 +900,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) { } else { return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg5); } - } else if (pUser->type == TSDB_ALTER_USER_TAGS) { - SStrToken* pTags = &pUser->tags; - if(pTags->n < 4) - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg8); + } } else { return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg7); } diff --git a/src/mnode/src/mnodeUser.c b/src/mnode/src/mnodeUser.c index 6d6ccb933e..63e41bf652 100644 --- a/src/mnode/src/mnodeUser.c +++ b/src/mnode/src/mnodeUser.c @@ -97,7 +97,7 @@ static int32_t mnodeUserActionDecode(SSdbRow *pRow) { SUserObj *pUser = (SUserObj *)calloc(1, sizeof(SUserObj)); if (pUser == NULL) return TSDB_CODE_MND_OUT_OF_MEMORY; - memcpy(pUser, pRow->rowData, tsUserUpdateSize); + memcpy(pUser, pRow->rowData, pRow->rowSize); pRow->pObj = pUser; return TSDB_CODE_SUCCESS; } -- GitLab