fix/TS-6028-check-column-name
This commit is contained in:
parent
39bc844be0
commit
078c7bdc31
|
@ -1259,6 +1259,7 @@ static int32_t mndProcessCreateStbReq(SRpcMsg *pReq) {
|
||||||
SDbObj *pDb = NULL;
|
SDbObj *pDb = NULL;
|
||||||
SMCreateStbReq createReq = {0};
|
SMCreateStbReq createReq = {0};
|
||||||
bool isAlter = false;
|
bool isAlter = false;
|
||||||
|
SHashObj *pHash = NULL;
|
||||||
|
|
||||||
if (tDeserializeSMCreateStbReq(pReq->pCont, pReq->contLen, &createReq) != 0) {
|
if (tDeserializeSMCreateStbReq(pReq->pCont, pReq->contLen, &createReq) != 0) {
|
||||||
code = TSDB_CODE_INVALID_MSG;
|
code = TSDB_CODE_INVALID_MSG;
|
||||||
|
@ -1319,6 +1320,25 @@ static int32_t mndProcessCreateStbReq(SRpcMsg *pReq) {
|
||||||
goto _OVER;
|
goto _OVER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pHash = taosHashInit(3, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), false, HASH_NO_LOCK);
|
||||||
|
void *pIter = NULL;
|
||||||
|
|
||||||
|
for (int32_t i = 0; i < createReq.numOfColumns; ++i) {
|
||||||
|
SFieldWithOptions *pField = taosArrayGet(createReq.pColumns, i);
|
||||||
|
if (taosHashPut(pHash, pField->name, sizeof(pField->name), pField->name, sizeof(pField->name)) != 0) {
|
||||||
|
code = TSDB_CODE_TSC_DUP_COL_NAMES;
|
||||||
|
goto _OVER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int32_t i = 0; i < createReq.numOfTags; ++i) {
|
||||||
|
SField *pField = taosArrayGet(createReq.pTags, i);
|
||||||
|
if (taosHashPut(pHash, pField->name, sizeof(pField->name), pField->name, sizeof(pField->name)) != 0) {
|
||||||
|
code = TSDB_CODE_TSC_DUP_COL_NAMES;
|
||||||
|
goto _OVER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pDb = mndAcquireDbByStb(pMnode, createReq.name);
|
pDb = mndAcquireDbByStb(pMnode, createReq.name);
|
||||||
if (pDb == NULL) {
|
if (pDb == NULL) {
|
||||||
code = TSDB_CODE_MND_DB_NOT_SELECTED;
|
code = TSDB_CODE_MND_DB_NOT_SELECTED;
|
||||||
|
@ -1383,6 +1403,17 @@ _OVER:
|
||||||
mndReleaseDb(pMnode, pDb);
|
mndReleaseDb(pMnode, pDb);
|
||||||
tFreeSMCreateStbReq(&createReq);
|
tFreeSMCreateStbReq(&createReq);
|
||||||
|
|
||||||
|
if (pHash != NULL) {
|
||||||
|
pIter = taosHashIterate(pHash, NULL);
|
||||||
|
while (pIter) {
|
||||||
|
STablesReq *pDb = (STablesReq *)pIter;
|
||||||
|
taosArrayDestroy(pDb->pTables);
|
||||||
|
pIter = taosHashIterate(pHash, pIter);
|
||||||
|
}
|
||||||
|
|
||||||
|
taosHashCleanup(pHash);
|
||||||
|
}
|
||||||
|
|
||||||
TAOS_RETURN(code);
|
TAOS_RETURN(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue