fix: avoid crash
This commit is contained in:
parent
39244e08ea
commit
ad25660f99
|
@ -623,23 +623,28 @@ int32_t metaFilteTableIds(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
|
||||||
int32_t nTagData = 0;
|
int32_t nTagData = 0;
|
||||||
void * tagData = NULL;
|
void * tagData = NULL;
|
||||||
|
|
||||||
if (IS_VAR_DATA_TYPE(param->type)) {
|
if (param->val == NULL) {
|
||||||
tagData = varDataVal(param->val);
|
metaError("vgId:%d failed to filter NULL data", PRIi64, TD_VID(pMeta->pVnode), uid, smaId);
|
||||||
nTagData = varDataLen(param->val);
|
return -1;
|
||||||
|
|
||||||
if (param->type == TSDB_DATA_TYPE_NCHAR) {
|
|
||||||
maxSize = 4 * nTagData + 1;
|
|
||||||
buf = taosMemoryCalloc(1, maxSize);
|
|
||||||
if (false == taosMbsToUcs4(tagData, nTagData, (TdUcs4 *)buf, maxSize, &maxSize)) {
|
|
||||||
goto END;
|
|
||||||
}
|
|
||||||
|
|
||||||
tagData = buf;
|
|
||||||
nTagData = maxSize;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
tagData = param->val;
|
if (IS_VAR_DATA_TYPE(param->type)) {
|
||||||
nTagData = tDataTypes[param->type].bytes;
|
tagData = varDataVal(param->val);
|
||||||
|
nTagData = varDataLen(param->val);
|
||||||
|
|
||||||
|
if (param->type == TSDB_DATA_TYPE_NCHAR) {
|
||||||
|
maxSize = 4 * nTagData + 1;
|
||||||
|
buf = taosMemoryCalloc(1, maxSize);
|
||||||
|
if (false == taosMbsToUcs4(tagData, nTagData, (TdUcs4 *)buf, maxSize, &maxSize)) {
|
||||||
|
goto END;
|
||||||
|
}
|
||||||
|
|
||||||
|
tagData = buf;
|
||||||
|
nTagData = maxSize;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tagData = param->val;
|
||||||
|
nTagData = tDataTypes[param->type].bytes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ret = metaCreateTagIdxKey(pCursor->suid, pCursor->cid, tagData, nTagData, pCursor->type,
|
ret = metaCreateTagIdxKey(pCursor->suid, pCursor->cid, tagData, nTagData, pCursor->type,
|
||||||
param->reverse ? INT64_MAX : INT64_MIN, &pKey, &nKey);
|
param->reverse ? INT64_MAX : INT64_MIN, &pKey, &nKey);
|
||||||
|
|
Loading…
Reference in New Issue