Merge pull request #23354 from taosdata/fix/3.0/TD-26779
fix: union all cast func resType check error
This commit is contained in:
commit
9bf8be1ab4
|
@ -1412,6 +1412,10 @@ SNode* createColumnDefNode(SAstCreateContext* pCxt, SToken* pColName, SDataType
|
||||||
if (!checkColumnName(pCxt, pColName) || !checkComment(pCxt, pComment, false)) {
|
if (!checkColumnName(pCxt, pColName) || !checkComment(pCxt, pComment, false)) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
if (IS_VAR_DATA_TYPE(dataType.type) && dataType.bytes == 0) {
|
||||||
|
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
SColumnDefNode* pCol = (SColumnDefNode*)nodesMakeNode(QUERY_NODE_COLUMN_DEF);
|
SColumnDefNode* pCol = (SColumnDefNode*)nodesMakeNode(QUERY_NODE_COLUMN_DEF);
|
||||||
CHECK_OUT_OF_MEM(pCol);
|
CHECK_OUT_OF_MEM(pCol);
|
||||||
COPY_STRING_FORM_ID_TOKEN(pCol->colName, pColName);
|
COPY_STRING_FORM_ID_TOKEN(pCol->colName, pColName);
|
||||||
|
|
|
@ -2185,11 +2185,12 @@ static int32_t createCastFunc(STranslateContext* pCxt, SNode* pExpr, SDataType d
|
||||||
nodesDestroyNode((SNode*)pFunc);
|
nodesDestroyNode((SNode*)pFunc);
|
||||||
return TSDB_CODE_OUT_OF_MEMORY;
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
if (TSDB_CODE_SUCCESS != getFuncInfo(pCxt, pFunc)) {
|
int32_t code = getFuncInfo(pCxt, pFunc);
|
||||||
|
if (TSDB_CODE_SUCCESS != code) {
|
||||||
nodesClearList(pFunc->pParameterList);
|
nodesClearList(pFunc->pParameterList);
|
||||||
pFunc->pParameterList = NULL;
|
pFunc->pParameterList = NULL;
|
||||||
nodesDestroyNode((SNode*)pFunc);
|
nodesDestroyNode((SNode*)pFunc);
|
||||||
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_WRONG_VALUE_TYPE, ((SExprNode*)pExpr)->aliasName);
|
return code;
|
||||||
}
|
}
|
||||||
*pCast = (SNode*)pFunc;
|
*pCast = (SNode*)pFunc;
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
|
|
|
@ -126,7 +126,7 @@ static char* getSyntaxErrFormat(int32_t errCode) {
|
||||||
case TSDB_CODE_PAR_INVALID_FIRST_COLUMN:
|
case TSDB_CODE_PAR_INVALID_FIRST_COLUMN:
|
||||||
return "First column must be timestamp";
|
return "First column must be timestamp";
|
||||||
case TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN:
|
case TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN:
|
||||||
return "Invalid binary/nchar column length";
|
return "Invalid column length for var length type";
|
||||||
case TSDB_CODE_PAR_INVALID_TAGS_NUM:
|
case TSDB_CODE_PAR_INVALID_TAGS_NUM:
|
||||||
return "Invalid number of tag columns";
|
return "Invalid number of tag columns";
|
||||||
case TSDB_CODE_PAR_INVALID_INTERNAL_PK:
|
case TSDB_CODE_PAR_INVALID_INTERNAL_PK:
|
||||||
|
|
|
@ -76,6 +76,12 @@ class TDTestCase:
|
||||||
for i in range(tdSql.queryRows):
|
for i in range(tdSql.queryRows):
|
||||||
tdSql.checkData(i,0, data_ct1_c8[i])
|
tdSql.checkData(i,0, data_ct1_c8[i])
|
||||||
|
|
||||||
|
tdSql.error("create stable empty_col_stable(ts timestamp, c2 varchar(0)) tags(tg1 int)")
|
||||||
|
tdSql.error("create stable empty_col_stable(ts timestamp, c2 varchar(10)) tags(tg1 varchar(0))")
|
||||||
|
tdSql.error("create stable empty_col_stable(ts timestamp, c2 varchar(10)) tags(tg1 nchar(0))")
|
||||||
|
tdSql.error("create stable empty_col_stable(ts timestamp, c2 varchar(10)) tags(tg1 binary(0))")
|
||||||
|
tdSql.error("create stable empty_col_stable(ts timestamp, c2 varchar(10)) tags(tg1 varbinary(0))")
|
||||||
|
|
||||||
|
|
||||||
# tdSql.query("select c8 from ct4")
|
# tdSql.query("select c8 from ct4")
|
||||||
# data_ct4 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)]
|
# data_ct4 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)]
|
||||||
|
|
Loading…
Reference in New Issue