Fix the issure #103, alter table change tag bug
This commit is contained in:
parent
04e0600907
commit
136f34044b
|
@ -526,8 +526,7 @@ void tscMeterMetaCallBack(void *param, TAOS_RES *res, int code) {
|
|||
/*
|
||||
* NOTE:
|
||||
* transfer the sql function for metric query before get meter/metric meta,
|
||||
* since in callback functions,
|
||||
* only tscProcessSql(pStream->pSql) is executed!
|
||||
* since in callback functions, only tscProcessSql(pStream->pSql) is executed!
|
||||
*/
|
||||
tscTansformSQLFunctionForMetricQuery(&pSql->cmd);
|
||||
tscIncStreamExecutionCount(pSql->pStream);
|
||||
|
|
|
@ -1586,7 +1586,7 @@ static int32_t setExprInfoForFunctions(SSqlCmd* pCmd, SSchema* pSchema, int32_t
|
|||
int16_t type = 0;
|
||||
int16_t bytes = 0;
|
||||
|
||||
char columnName[TSDB_COL_NAME_LEN + 1] = {0};
|
||||
char columnName[TSDB_COL_NAME_LEN] = {0};
|
||||
char msg1[] = "not support column types";
|
||||
|
||||
if (functionID == TSDB_FUNC_SPREAD) {
|
||||
|
@ -3570,20 +3570,27 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
|
|||
pCmd->numOfCols = 1; // only one column
|
||||
|
||||
} else if (pInfo->sqlType == ALTER_TABLE_TAGS_CHG) {
|
||||
char msg1[] = "tag name too long";
|
||||
char msg2[] = "invalid tag name";
|
||||
|
||||
pCmd->count = TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN;
|
||||
tVariantList* pVarList = pAlterSQL->varList;
|
||||
if (pVarList->nExpr > 2) {
|
||||
return TSDB_CODE_INVALID_SQL;
|
||||
}
|
||||
|
||||
if (pVarList->a[0].pVar.nLen > TSDB_COL_NAME_LEN || pVarList->a[1].pVar.nLen > TSDB_COL_NAME_LEN) {
|
||||
char msg[] = "tag name too long";
|
||||
setErrMsg(pCmd, msg, tListLen(msg));
|
||||
tVariantListItem* pSrcItem = &pAlterSQL->varList->a[0];
|
||||
tVariantListItem* pDstItem = &pAlterSQL->varList->a[1];
|
||||
|
||||
if (pSrcItem->pVar.nLen >= TSDB_COL_NAME_LEN || pDstItem->pVar.nLen >= TSDB_COL_NAME_LEN) {
|
||||
setErrMsg(pCmd, msg1, tListLen(msg1));
|
||||
return TSDB_CODE_INVALID_SQL;
|
||||
}
|
||||
|
||||
tVariantListItem* pSrcItem = &pAlterSQL->varList->a[0];
|
||||
tVariantListItem* pDstItem = &pAlterSQL->varList->a[1];
|
||||
if (pSrcItem->pVar.nType != TSDB_DATA_TYPE_BINARY || pDstItem->pVar.nType != TSDB_DATA_TYPE_BINARY) {
|
||||
setErrMsg(pCmd, msg2, tListLen(msg2));
|
||||
return TSDB_CODE_INVALID_SQL;
|
||||
}
|
||||
|
||||
bool srcFound = false;
|
||||
bool dstFound = false;
|
||||
|
@ -3592,11 +3599,12 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
|
|||
char* tagName = pSchema[tagIdx].name;
|
||||
|
||||
size_t nameLen = strlen(tagName);
|
||||
if ((!srcFound) && strncasecmp(tagName, pSrcItem->pVar.pz, nameLen) == 0) {
|
||||
if ((!srcFound) && (strncasecmp(tagName, pSrcItem->pVar.pz, nameLen) == 0 && (pSrcItem->pVar.nLen == nameLen))) {
|
||||
srcFound = true;
|
||||
}
|
||||
|
||||
if ((!dstFound) && strncasecmp(tagName, pDstItem->pVar.pz, nameLen) == 0) {
|
||||
//todo extract method
|
||||
if ((!dstFound) && (strncasecmp(tagName, pDstItem->pVar.pz, nameLen) == 0 && (pDstItem->pVar.nLen == nameLen))) {
|
||||
dstFound = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1621,7 +1621,7 @@ int32_t mgmtMeterModifyTagNameByCol(STabObj *pMetric, uint32_t col, const char *
|
|||
return TSDB_CODE_APP_ERROR;
|
||||
}
|
||||
|
||||
mError("Succeed to modify table %s tag column", pMetric->meterId);
|
||||
mTrace("Succeed to modify table %s tag column", pMetric->meterId);
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue