[td-14426] fix bug.
This commit is contained in:
parent
810cfefddc
commit
02e097dc5c
|
@ -198,8 +198,8 @@ typedef struct SGroupbyExpr {
|
||||||
} SGroupbyExpr;
|
} SGroupbyExpr;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
FUNC_PARAM_TYPE_VALUE = 0,
|
FUNC_PARAM_TYPE_VALUE = 0x1,
|
||||||
FUNC_PARAM_TYPE_COLUMN,
|
FUNC_PARAM_TYPE_COLUMN= 0x2,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct SFunctParam {
|
typedef struct SFunctParam {
|
||||||
|
|
|
@ -1258,8 +1258,8 @@ static void doSetInputDataBlock(SOperatorInfo* pOperator, SqlFunctionCtx* pCtx,
|
||||||
ASSERT(pCtx[i].input.pData[j] != NULL);
|
ASSERT(pCtx[i].input.pData[j] != NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// setBlockStatisInfo(&pCtx[i], pBlock, pOperator->pExpr[i].base.pColumns);
|
|
||||||
|
|
||||||
|
// setBlockStatisInfo(&pCtx[i], pBlock, pOperator->pExpr[i].base.pColumns);
|
||||||
// uint32_t flag = pOperator->pExpr[i].base.pParam[0].pCol->flag;
|
// uint32_t flag = pOperator->pExpr[i].base.pParam[0].pCol->flag;
|
||||||
// if (TSDB_COL_IS_NORMAL_COL(flag) /*|| (pCtx[i].functionId == FUNCTION_BLKINFO) ||
|
// if (TSDB_COL_IS_NORMAL_COL(flag) /*|| (pCtx[i].functionId == FUNCTION_BLKINFO) ||
|
||||||
// (TSDB_COL_IS_TAG(flag) && pOperator->pRuntimeEnv->scanFlag == MERGE_STAGE)*/) {
|
// (TSDB_COL_IS_TAG(flag) && pOperator->pRuntimeEnv->scanFlag == MERGE_STAGE)*/) {
|
||||||
|
@ -8771,8 +8771,8 @@ SExprInfo* createExprInfo(SNodeList* pNodeList, SNodeList* pGroupKeys, int32_t*
|
||||||
|
|
||||||
pExp->pExpr->_optrRoot.pRootNode = pTargetNode->pExpr;
|
pExp->pExpr->_optrRoot.pRootNode = pTargetNode->pExpr;
|
||||||
|
|
||||||
pExp->base.pParam[0].type = FUNC_PARAM_TYPE_COLUMN;
|
// pExp->base.pParam[0].type = FUNC_PARAM_TYPE_COLUMN;
|
||||||
pExp->base.pParam[0].pCol = createColumn(pTargetNode->dataBlockId, pTargetNode->slotId, pType);
|
// pExp->base.pParam[0].pCol = createColumn(pTargetNode->dataBlockId, pTargetNode->slotId, pType);
|
||||||
} else {
|
} else {
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -720,7 +720,7 @@ void vectorMathRemainder(SScalarParam* pLeft, SScalarParam* pRight, SScalarParam
|
||||||
|
|
||||||
double lx = getVectorDoubleValueFnLeft(pLeftCol->pData, i);
|
double lx = getVectorDoubleValueFnLeft(pLeftCol->pData, i);
|
||||||
double rx = getVectorDoubleValueFnRight(pRightCol->pData, i);
|
double rx = getVectorDoubleValueFnRight(pRightCol->pData, i);
|
||||||
if (compareDoubleVal(&zero, &rx)) {
|
if (isnan(lx) || isinf(lx) || isnan(rx) || isinf(rx)) {
|
||||||
colDataAppend(pOutputCol, i, NULL, true);
|
colDataAppend(pOutputCol, i, NULL, true);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -729,7 +729,7 @@ void vectorMathRemainder(SScalarParam* pLeft, SScalarParam* pRight, SScalarParam
|
||||||
}
|
}
|
||||||
} else if (pLeft->numOfRows == 1) {
|
} else if (pLeft->numOfRows == 1) {
|
||||||
double lx = getVectorDoubleValueFnLeft(pLeftCol->pData, 0);
|
double lx = getVectorDoubleValueFnLeft(pLeftCol->pData, 0);
|
||||||
if (colDataIsNull_f(pLeftCol->nullbitmap, 0)) { // Set pLeft->numOfRows NULL value
|
if (colDataIsNull_f(pLeftCol->nullbitmap, 0) || isnan(lx) || isinf(lx)) { // Set pLeft->numOfRows NULL value
|
||||||
// TODO set numOfRows NULL value
|
// TODO set numOfRows NULL value
|
||||||
} else {
|
} else {
|
||||||
for (; i >= 0 && i < pRight->numOfRows; i += step, output += 1) {
|
for (; i >= 0 && i < pRight->numOfRows; i += step, output += 1) {
|
||||||
|
@ -739,7 +739,7 @@ void vectorMathRemainder(SScalarParam* pLeft, SScalarParam* pRight, SScalarParam
|
||||||
}
|
}
|
||||||
|
|
||||||
double rx = getVectorDoubleValueFnRight(pRightCol->pData, i);
|
double rx = getVectorDoubleValueFnRight(pRightCol->pData, i);
|
||||||
if (compareDoubleVal(&zero, &rx)) {
|
if (isnan(rx) || isinf(rx) || FLT_EQUAL(rx, 0)) {
|
||||||
colDataAppend(pOutputCol, i, NULL, true);
|
colDataAppend(pOutputCol, i, NULL, true);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -749,17 +749,17 @@ void vectorMathRemainder(SScalarParam* pLeft, SScalarParam* pRight, SScalarParam
|
||||||
}
|
}
|
||||||
} else if (pRight->numOfRows == 1) {
|
} else if (pRight->numOfRows == 1) {
|
||||||
double rx = getVectorDoubleValueFnRight(pRightCol->pData, 0);
|
double rx = getVectorDoubleValueFnRight(pRightCol->pData, 0);
|
||||||
if (colDataIsNull_f(pRightCol->nullbitmap, 0)) { // Set pLeft->numOfRows NULL value
|
if (colDataIsNull_f(pRightCol->nullbitmap, 0) || FLT_EQUAL(rx, 0)) { // Set pLeft->numOfRows NULL value
|
||||||
// TODO set numOfRows NULL value
|
// TODO set numOfRows NULL value
|
||||||
} else {
|
} else {
|
||||||
for (; i >= 0 && i < pLeft->numOfRows; i += step, output += 1) {
|
for (; i >= 0 && i < pLeft->numOfRows; i += step, output += 1) {
|
||||||
if (colDataIsNull_f(pRightCol->nullbitmap, i)) {
|
if (colDataIsNull_f(pLeftCol->nullbitmap, i)) {
|
||||||
colDataAppend(pOutputCol, i, NULL, true);
|
colDataAppend(pOutputCol, i, NULL, true);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
double lx = getVectorDoubleValueFnLeft(pRightCol->pData, i);
|
double lx = getVectorDoubleValueFnLeft(pLeftCol->pData, i);
|
||||||
if (compareDoubleVal(&zero, &lx)) {
|
if (isnan(lx) || isinf(lx)) {
|
||||||
colDataAppend(pOutputCol, i, NULL, true);
|
colDataAppend(pOutputCol, i, NULL, true);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,6 +173,7 @@ int32_t compareDoubleVal(const void *pLeft, const void *pRight) {
|
||||||
if (isnan(p2)) {
|
if (isnan(p2)) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FLT_EQUAL(p1, p2)) {
|
if (FLT_EQUAL(p1, p2)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue