[td-14393] fix bug.
This commit is contained in:
parent
803e1ab162
commit
751cad9c2a
|
@ -393,6 +393,7 @@ typedef struct STableScanInfo {
|
|||
int32_t times; // repeat counts
|
||||
int32_t current;
|
||||
int32_t reverseTimes; // 0 by default
|
||||
SNode* pFilterNode; // filter operator info
|
||||
SqlFunctionCtx* pCtx; // next operator query context
|
||||
SResultRowInfo* pResultRowInfo;
|
||||
int32_t* rowCellInfoOffset;
|
||||
|
@ -628,7 +629,7 @@ typedef struct SDistinctOperatorInfo {
|
|||
|
||||
SOperatorInfo* createExchangeOperatorInfo(const SNodeList* pSources, SSDataBlock* pBlock, SExecTaskInfo* pTaskInfo);
|
||||
SOperatorInfo* createTableScanOperatorInfo(void* pTsdbReadHandle, int32_t order, int32_t numOfCols, int32_t repeatTime,
|
||||
int32_t reverseTime, SArray* pColMatchInfo, SExecTaskInfo* pTaskInfo);
|
||||
int32_t reverseTime, SArray* pColMatchInfo, SNode* pCondition, SExecTaskInfo* pTaskInfo);
|
||||
SOperatorInfo* createAggregateOperatorInfo(SOperatorInfo* downstream, SExprInfo* pExprInfo, int32_t numOfCols, SSDataBlock* pResultBlock,
|
||||
SExecTaskInfo* pTaskInfo, const STableGroupInfo* pTableGroupInfo);
|
||||
SOperatorInfo* createMultiTableAggOperatorInfo(SOperatorInfo* downstream, SExprInfo* pExprInfo, int32_t numOfCols, SSDataBlock* pResBlock, SExecTaskInfo* pTaskInfo, const STableGroupInfo* pTableGroupInfo);
|
||||
|
|
|
@ -3016,6 +3016,23 @@ int32_t loadDataBlock(SExecTaskInfo* pTaskInfo, STableScanInfo* pTableScanInfo,
|
|||
taosArraySet(pBlock->pDataBlock, pColMatchInfo->targetSlotId, p);
|
||||
}
|
||||
|
||||
if (pTableScanInfo->pFilterNode != NULL) {
|
||||
SFilterInfo* filter = NULL;
|
||||
int32_t code = filterInitFromNode((SNode*)pTableScanInfo->pFilterNode, &filter, 0);
|
||||
|
||||
SFilterColumnParam param1 = {.numOfCols = pBlock->info.numOfCols, .pDataBlock = pBlock->pDataBlock};
|
||||
code = filterSetDataFromSlotId(filter, ¶m1);
|
||||
|
||||
int8_t* rowRes = NULL;
|
||||
bool keep = filterExecute(filter, pBlock, &rowRes, NULL, param1.numOfCols);
|
||||
|
||||
// filterSetColFieldData(pQueryAttr->pFilters, pBlock->info.numOfCols, pBlock->pDataBlock);
|
||||
|
||||
// if (pQueryAttr->pFilters != NULL) {
|
||||
// filterColRowsInDataBlock(pRuntimeEnv, pBlock, ascQuery);
|
||||
// }
|
||||
}
|
||||
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -4655,7 +4672,6 @@ static SSDataBlock* doTableScanImpl(SOperatorInfo* pOperator, bool* newgroup) {
|
|||
// break;
|
||||
// }
|
||||
//
|
||||
// pRuntimeEnv->current = *pTableQueryInfo;
|
||||
// doTableQueryInfoTimeWindowCheck(pTaskInfo, *pTableQueryInfo, pTableScanInfo->order);
|
||||
// }
|
||||
|
||||
|
@ -5413,7 +5429,7 @@ SSDataBlock* createResultDataBlock(const SArray* pExprInfo) {
|
|||
|
||||
SOperatorInfo* createTableScanOperatorInfo(void* pTsdbReadHandle, int32_t order, int32_t numOfOutput,
|
||||
int32_t repeatTime, int32_t reverseTime, SArray* pColMatchInfo,
|
||||
SExecTaskInfo* pTaskInfo) {
|
||||
SNode* pCondition, SExecTaskInfo* pTaskInfo) {
|
||||
assert(repeatTime > 0);
|
||||
|
||||
STableScanInfo* pInfo = taosMemoryCalloc(1, sizeof(STableScanInfo));
|
||||
|
@ -5432,6 +5448,7 @@ SOperatorInfo* createTableScanOperatorInfo(void* pTsdbReadHandle, int32_t order,
|
|||
taosArrayPush(pInfo->block.pDataBlock, &idata);
|
||||
}
|
||||
|
||||
pInfo->pFilterNode = pCondition;
|
||||
pInfo->pTsdbReadHandle = pTsdbReadHandle;
|
||||
pInfo->times = repeatTime;
|
||||
pInfo->reverseTimes = reverseTime;
|
||||
|
@ -5703,7 +5720,7 @@ static SSDataBlock* doSysTableScan(SOperatorInfo* pOperator, bool* newgroup) {
|
|||
SColumnInfoData* pColInfoData = taosArrayGet(pInfo->pRes->pDataBlock, i);
|
||||
int64_t tmp = 0;
|
||||
char t[10] = {0};
|
||||
STR_TO_VARSTR(t, "_");
|
||||
STR_TO_VARSTR(t, "_"); //TODO
|
||||
if (IS_VAR_DATA_TYPE(pColInfoData->info.type)) {
|
||||
colDataAppend(pColInfoData, numOfRows, t, false);
|
||||
} else {
|
||||
|
@ -8618,7 +8635,7 @@ SOperatorInfo* createOperatorTree(SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo
|
|||
SArray* pColList = extractColMatchInfo(pScanPhyNode->pScanCols, pScanPhyNode->node.pOutputDataBlockDesc, &numOfCols);
|
||||
|
||||
return createTableScanOperatorInfo(pDataReader, pScanPhyNode->order, numOfCols, pScanPhyNode->count,
|
||||
pScanPhyNode->reverse, pColList, pTaskInfo);
|
||||
pScanPhyNode->reverse, pColList, pScanPhyNode->node.pConditions, pTaskInfo);
|
||||
} else if (QUERY_NODE_PHYSICAL_PLAN_EXCHANGE == nodeType(pPhyNode)) {
|
||||
SExchangePhysiNode* pExchange = (SExchangePhysiNode*)pPhyNode;
|
||||
SSDataBlock* pResBlock = createOutputBuf_rv1(pExchange->node.pOutputDataBlockDesc);
|
||||
|
|
|
@ -3668,7 +3668,6 @@ bool filterExecute(SFilterInfo *info, SSDataBlock *pSrc, int8_t** p, SColumnData
|
|||
taosArrayPush(pList, &pSrc);
|
||||
|
||||
FLT_ERR_RET(scalarCalculate(info->sclCtx.node, pList, &output));
|
||||
|
||||
taosArrayDestroy(pList);
|
||||
// TODO Fix it
|
||||
// *p = output.orig.data;
|
||||
|
|
|
@ -275,7 +275,6 @@ TEST(timerangeTest, greater_and_lower) {
|
|||
nodesDestroyNode(logicNode);
|
||||
}
|
||||
|
||||
|
||||
TEST(columnTest, smallint_column_greater_double_value) {
|
||||
SNode *pLeft = NULL, *pRight = NULL, *opNode = NULL;
|
||||
int16_t leftv[5]= {1, 2, 3, 4, 5};
|
||||
|
@ -386,7 +385,6 @@ TEST(columnTest, int_column_greater_smallint_value) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
TEST(columnTest, int_column_in_double_list) {
|
||||
SNode *pLeft = NULL, *pRight = NULL, *listNode = NULL, *opNode = NULL;
|
||||
int32_t leftv[5] = {1, 2, 3, 4, 5};
|
||||
|
@ -432,8 +430,6 @@ TEST(columnTest, int_column_in_double_list) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
|
||||
TEST(columnTest, binary_column_in_binary_list) {
|
||||
SNode *pLeft = NULL, *pRight = NULL, *listNode = NULL, *opNode = NULL;
|
||||
bool eRes[5] = {true, true, false, false, false};
|
||||
|
@ -497,7 +493,6 @@ TEST(columnTest, binary_column_in_binary_list) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
TEST(columnTest, binary_column_like_binary) {
|
||||
SNode *pLeft = NULL, *pRight = NULL, *opNode = NULL;
|
||||
char rightv[64] = {0};
|
||||
|
@ -546,7 +541,6 @@ TEST(columnTest, binary_column_like_binary) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
TEST(columnTest, binary_column_is_null) {
|
||||
SNode *pLeft = NULL, *opNode = NULL;
|
||||
char leftv[5][5]= {0};
|
||||
|
@ -641,8 +635,6 @@ TEST(columnTest, binary_column_is_not_null) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
|
||||
TEST(opTest, smallint_column_greater_int_column) {
|
||||
SNode *pLeft = NULL, *pRight = NULL, *opNode = NULL;
|
||||
int16_t leftv[5] = {1, -6, -2, 11, 101};
|
||||
|
@ -680,7 +672,6 @@ TEST(opTest, smallint_column_greater_int_column) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
TEST(opTest, smallint_value_add_int_column) {
|
||||
SNode *pLeft = NULL, *pRight = NULL, *opNode = NULL;
|
||||
int32_t leftv = 1;
|
||||
|
@ -719,8 +710,6 @@ TEST(opTest, smallint_value_add_int_column) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
|
||||
TEST(opTest, bigint_column_multi_binary_column) {
|
||||
SNode *pLeft = NULL, *pRight = NULL, *opNode = NULL;
|
||||
int64_t leftv[5]= {1, 2, 3, 4, 5};
|
||||
|
@ -845,8 +834,6 @@ TEST(opTest, smallint_column_or_float_column) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
|
||||
TEST(opTest, smallint_column_or_double_value) {
|
||||
SNode *pLeft = NULL, *pRight = NULL, *opNode = NULL;
|
||||
int16_t leftv[5]= {0, 2, 3, 0, -1};
|
||||
|
@ -885,7 +872,6 @@ TEST(opTest, smallint_column_or_double_value) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
TEST(opTest, binary_column_is_true) {
|
||||
SNode *pLeft = NULL, *opNode = NULL;
|
||||
char leftv[5][5]= {0};
|
||||
|
@ -930,7 +916,6 @@ TEST(opTest, binary_column_is_true) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
TEST(filterModelogicTest, diff_columns_and_or_and) {
|
||||
flttInitLogFile();
|
||||
|
||||
|
@ -1071,7 +1056,6 @@ TEST(filterModelogicTest, same_column_and_or_and) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
TEST(filterModelogicTest, diff_columns_or_and_or) {
|
||||
SNode *pLeft1 = NULL, *pRight1 = NULL, *pLeft2 = NULL, *pRight2 = NULL, *opNode1 = NULL, *opNode2 = NULL;
|
||||
SNode *logicNode1 = NULL, *logicNode2 = NULL;
|
||||
|
@ -1210,8 +1194,6 @@ TEST(filterModelogicTest, same_column_or_and_or) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
|
||||
TEST(scalarModelogicTest, diff_columns_or_and_or) {
|
||||
flttInitLogFile();
|
||||
|
||||
|
@ -1283,8 +1265,6 @@ TEST(scalarModelogicTest, diff_columns_or_and_or) {
|
|||
blockDataDestroy(src);
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
taosSeedRand(taosGetTimestampSec());
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
|
|
Loading…
Reference in New Issue