fix(query): fix taosshell crash when arithmetic operation with NULL
concstant TD-15132
This commit is contained in:
parent
b08ad78d64
commit
daea9b4d58
|
@ -86,6 +86,8 @@ static FORCE_INLINE _getDoubleValue_fn_t getVectorDoubleValueFn(int32_t srcType)
|
|||
p = getVectorDoubleValue_JSON;
|
||||
} else if (srcType == TSDB_DATA_TYPE_BOOL) {
|
||||
p = getVectorDoubleValue_BOOL;
|
||||
} else if (srcType == TSDB_DATA_TYPE_NULL) {
|
||||
p = NULL;
|
||||
} else {
|
||||
assert(0);
|
||||
}
|
||||
|
|
|
@ -597,9 +597,12 @@ EDealRes sclRewriteOperator(SNode** pNode, SScalarCtx *ctx) {
|
|||
return DEAL_RES_ERROR;
|
||||
}
|
||||
|
||||
res->node.resType = node->node.resType;
|
||||
res->translate = true;
|
||||
|
||||
if (colDataIsNull_s(output.columnData, 0)) {
|
||||
res->node.resType.type = TSDB_DATA_TYPE_NULL;
|
||||
} else {
|
||||
res->node.resType = node->node.resType;
|
||||
int32_t type = output.columnData->info.type;
|
||||
if (IS_VAR_DATA_TYPE(type)) { // todo refactor
|
||||
res->datum.p = output.columnData->pData;
|
||||
|
@ -607,6 +610,7 @@ EDealRes sclRewriteOperator(SNode** pNode, SScalarCtx *ctx) {
|
|||
} else {
|
||||
memcpy(nodesGetValueFromNode(res), output.columnData->pData, tDataTypes[type].bytes);
|
||||
}
|
||||
}
|
||||
|
||||
nodesDestroyNode(*pNode);
|
||||
*pNode = (SNode*)res;
|
||||
|
|
|
@ -176,6 +176,8 @@ _getBigintValue_fn_t getVectorBigintValueFn(int32_t srcType) {
|
|||
p = getVectorBigintValue_BOOL;
|
||||
} else if (srcType==TSDB_DATA_TYPE_JSON) {
|
||||
p = getVectorBigintValue_JSON;
|
||||
} else if (srcType==TSDB_DATA_TYPE_NULL){
|
||||
p = NULL;
|
||||
} else {
|
||||
assert(0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue