fix: fix bugs of wrongly use sfltscloperator

This commit is contained in:
shenglian zhou 2023-05-23 14:08:20 +08:00
parent 77a1de444c
commit c9140e547e
1 changed files with 37 additions and 39 deletions

View File

@ -3431,7 +3431,6 @@ _return:
return code;
}
// compare ranges, null < min < val < max. null=null, min=min, max=max
typedef enum {
FLT_SCL_DATUM_KIND_NULL,
@ -3627,7 +3626,6 @@ typedef struct {
EOperatorType type;
} SFltSclOperator;
SFltSclColumnRange *fltSclGetOrCreateColumnRange(SColumnNode *colNode, SArray *colRangeList) {
for (int32_t i = 0; i < taosArrayGetSize(colRangeList); ++i) {
SFltSclColumnRange *colRange = taosArrayGet(colRangeList, i);
@ -3718,11 +3716,11 @@ int32_t fltSclBuildDatumFromBlockSmaValue(SFltSclDatum* datum, uint8_t type, int
}
}
return TSDB_CODE_SUCCESS;
}
int32_t fltSclBuildRangeFromBlockSma(SFltSclColumnRange* colRange, SColumnDataAgg* pAgg, int32_t numOfRows, SArray* points) {
int32_t fltSclBuildRangeFromBlockSma(SFltSclColumnRange *colRange, SColumnDataAgg *pAgg, int32_t numOfRows,
SArray *points) {
if (pAgg->numOfNull == numOfRows) {
SFltSclDatum datum = {.kind = FLT_SCL_DATUM_KIND_NULL};
SFltSclPoint startPt = {.start = true, .excl = false, .val = datum};
@ -4381,7 +4379,6 @@ int32_t fltSclProcessCNF(SArray *sclOpListCNF, SArray *colRangeList) {
taosArrayDestroy(colRange->points);
colRange->points = points;
}
}
return TSDB_CODE_SUCCESS;
}
@ -4403,8 +4400,9 @@ static int32_t fltSclCollectOperatorFromNode(SNode* pNode, SArray* sclOpList) {
pOper->opType == OP_TYPE_NOT_EQUAL || pOper->opType == OP_TYPE_EQUAL)) {
SValueNode *valNode = (SValueNode *)pOper->pRight;
if (IS_NUMERIC_TYPE(valNode->node.resType.type) || valNode->node.resType.type == TSDB_DATA_TYPE_TIMESTAMP) {
SNode *p = nodesCloneNode(pNode);
taosArrayPush(sclOpList, &p);
SFltSclOperator sclOp = {
.colNode = nodesCloneNode(pOper->pLeft), .valNode = nodesCloneNode(pOper->pRight), .type = pOper->opType};
taosArrayPush(sclOpList, &sclOp);
}
}
return TSDB_CODE_SUCCESS;
@ -4420,8 +4418,7 @@ static int32_t fltSclCollectOperatorsFromLogicCond(SNode* pNode, SArray* sclOpLi
return TSDB_CODE_SUCCESS;
}
SNode *pExpr = NULL;
FOREACH(pExpr, pLogicCond->pParameterList) { fltSclCollectOperatorFromNode(pExpr, sclOpList);
}
FOREACH(pExpr, pLogicCond->pParameterList) { fltSclCollectOperatorFromNode(pExpr, sclOpList); }
return TSDB_CODE_SUCCESS;
}
@ -4442,8 +4439,9 @@ int32_t fltOptimizeNodes(SFilterInfo *pInfo, SNode **pNode, SFltTreeStat *pStat)
pInfo->sclCtx.fltSclRange = colRangeList;
for (int32_t i = 0; i < taosArrayGetSize(sclOpList); ++i) {
SNode* p = taosArrayGetP(sclOpList, i);
nodesDestroyNode(p);
SFltSclOperator *sclOp = taosArrayGet(sclOpList, i);
nodesDestroyNode(sclOp->colNode);
nodesDestroyNode(sclOp->valNode);
}
taosArrayDestroy(sclOpList);
return TSDB_CODE_SUCCESS;