diff --git a/source/libs/executor/src/executil.c b/source/libs/executor/src/executil.c index 80c1494f8d..e9dbb67472 100644 --- a/source/libs/executor/src/executil.c +++ b/source/libs/executor/src/executil.c @@ -938,15 +938,17 @@ SArray* extractColMatchInfo(SNodeList* pNodeList, SDataBlockDescNode* pOutputNod for (int32_t i = 0; i < numOfCols; ++i) { STargetNode* pNode = (STargetNode*)nodesListGetNode(pNodeList, i); - SColumnNode* pColNode = (SColumnNode*)pNode->pExpr; + if (nodeType(pNode->pExpr) == QUERY_NODE_COLUMN) { + SColumnNode* pColNode = (SColumnNode*)pNode->pExpr; - SColMatchInfo c = {0}; - c.output = true; - c.colId = pColNode->colId; - c.srcSlotId = pColNode->slotId; - c.matchType = type; - c.targetSlotId = pNode->slotId; - taosArrayPush(pList, &c); + SColMatchInfo c = {0}; + c.output = true; + c.colId = pColNode->colId; + c.srcSlotId = pColNode->slotId; + c.matchType = type; + c.targetSlotId = pNode->slotId; + taosArrayPush(pList, &c); + } } *numOfOutputCols = 0; diff --git a/source/libs/executor/src/executorimpl.c b/source/libs/executor/src/executorimpl.c index 4ffa80d468..39be1f7620 100644 --- a/source/libs/executor/src/executorimpl.c +++ b/source/libs/executor/src/executorimpl.c @@ -263,8 +263,6 @@ SResultRow* doSetResultOutBufByKey(SDiskbasedBuf* pResultBuf, SResultRowInfo* pR ASSERT(pSup->resultRowSize > 0); pResult = getNewResultRow(pResultBuf, &pSup->currentPageId, pSup->resultRowSize); - initResultRow(pResult); - // add a new result set for a new group SResultRowPosition pos = {.pageId = pResult->pageId, .offset = pResult->offset}; tSimpleHashPut(pSup->pResultRowHashTable, pSup->keyBuf, GET_RES_WINDOW_KEY_LEN(bytes), &pos, @@ -817,13 +815,6 @@ void setBlockSMAInfo(SqlFunctionCtx* pCtx, SExprInfo* pExprInfo, SSDataBlock* pB } else { pInput->colDataAggIsSet = false; } - - // set the statistics data for primary time stamp column - // if (pCtx->functionId == FUNCTION_SPREAD && pColumn->colId == PRIMARYKEY_TIMESTAMP_COL_ID) { - // pCtx->isAggSet = true; - // pCtx->agg.min = pBlock->info.window.skey; - // pCtx->agg.max = pBlock->info.window.ekey; - // } } bool isTaskKilled(SExecTaskInfo* pTaskInfo) { @@ -860,146 +851,6 @@ STimeWindow getAlignQueryTimeWindow(SInterval* pInterval, int32_t precision, int return win; } -#if 0 -static int32_t updateBlockLoadStatus(STaskAttr* pQuery, int32_t status) { - - bool hasFirstLastFunc = false; - bool hasOtherFunc = false; - - if (status == BLK_DATA_DATA_LOAD || status == BLK_DATA_FILTEROUT) { - return status; - } - - for (int32_t i = 0; i < pQuery->numOfOutput; ++i) { - int32_t functionId = getExprFunctionId(&pQuery->pExpr1[i]); - - if (functionId == FUNCTION_TS || functionId == FUNCTION_TS_DUMMY || functionId == FUNCTION_TAG || - functionId == FUNCTION_TAG_DUMMY) { - continue; - } - - if (functionId == FUNCTION_FIRST_DST || functionId == FUNCTION_LAST_DST) { - hasFirstLastFunc = true; - } else { - hasOtherFunc = true; - } - - } - - if (hasFirstLastFunc && status == BLK_DATA_NOT_LOAD) { - if (!hasOtherFunc) { - return BLK_DATA_FILTEROUT; - } else { - return BLK_DATA_DATA_LOAD; - } - } - - return status; -} - -#endif - -// static void updateDataCheckOrder(SQInfo *pQInfo, SQueryTableReq* pQueryMsg, bool stableQuery) { -// STaskAttr* pQueryAttr = pQInfo->runtimeEnv.pQueryAttr; -// -// // in case of point-interpolation query, use asc order scan -// char msg[] = "QInfo:0x%"PRIx64" scan order changed for %s query, old:%d, new:%d, qrange exchanged, old qrange:%" -// PRId64 -// "-%" PRId64 ", new qrange:%" PRId64 "-%" PRId64; -// -// // todo handle the case the the order irrelevant query type mixed up with order critical query type -// // descending order query for last_row query -// if (isFirstLastRowQuery(pQueryAttr)) { -// //qDebug("QInfo:0x%"PRIx64" scan order changed for last_row query, old:%d, new:%d", pQInfo->qId, -// pQueryAttr->order.order, TSDB_ORDER_ASC); -// -// pQueryAttr->order.order = TSDB_ORDER_ASC; -// if (pQueryAttr->window.skey > pQueryAttr->window.ekey) { -// TSWAP(pQueryAttr->window.skey, pQueryAttr->window.ekey); -// } -// -// pQueryAttr->needReverseScan = false; -// return; -// } -// -// if (pQueryAttr->groupbyColumn && pQueryAttr->order.order == TSDB_ORDER_DESC) { -// pQueryAttr->order.order = TSDB_ORDER_ASC; -// if (pQueryAttr->window.skey > pQueryAttr->window.ekey) { -// TSWAP(pQueryAttr->window.skey, pQueryAttr->window.ekey); -// } -// -// pQueryAttr->needReverseScan = false; -// doUpdateLastKey(pQueryAttr); -// return; -// } -// -// if (pQueryAttr->pointInterpQuery && pQueryAttr->interval.interval == 0) { -// if (!QUERY_IS_ASC_QUERY(pQueryAttr)) { -// //qDebug(msg, pQInfo->qId, "interp", pQueryAttr->order.order, TSDB_ORDER_ASC, pQueryAttr->window.skey, -// pQueryAttr->window.ekey, pQueryAttr->window.ekey, pQueryAttr->window.skey); TSWAP(pQueryAttr->window.skey, -// pQueryAttr->window.ekey, TSKEY); -// } -// -// pQueryAttr->order.order = TSDB_ORDER_ASC; -// return; -// } -// -// if (pQueryAttr->interval.interval == 0) { -// if (onlyFirstQuery(pQueryAttr)) { -// if (!QUERY_IS_ASC_QUERY(pQueryAttr)) { -// //qDebug(msg, pQInfo->qId, "only-first", pQueryAttr->order.order, TSDB_ORDER_ASC, pQueryAttr->window.skey, -//// pQueryAttr->window.ekey, pQueryAttr->window.ekey, pQueryAttr->window.skey); -// -// TSWAP(pQueryAttr->window.skey, pQueryAttr->window.ekey); -// doUpdateLastKey(pQueryAttr); -// } -// -// pQueryAttr->order.order = TSDB_ORDER_ASC; -// pQueryAttr->needReverseScan = false; -// } else if (onlyLastQuery(pQueryAttr) && notContainSessionOrStateWindow(pQueryAttr)) { -// if (QUERY_IS_ASC_QUERY(pQueryAttr)) { -// //qDebug(msg, pQInfo->qId, "only-last", pQueryAttr->order.order, TSDB_ORDER_DESC, pQueryAttr->window.skey, -//// pQueryAttr->window.ekey, pQueryAttr->window.ekey, pQueryAttr->window.skey); -// -// TSWAP(pQueryAttr->window.skey, pQueryAttr->window.ekey); -// doUpdateLastKey(pQueryAttr); -// } -// -// pQueryAttr->order.order = TSDB_ORDER_DESC; -// pQueryAttr->needReverseScan = false; -// } -// -// } else { // interval query -// if (stableQuery) { -// if (onlyFirstQuery(pQueryAttr)) { -// if (!QUERY_IS_ASC_QUERY(pQueryAttr)) { -// //qDebug(msg, pQInfo->qId, "only-first stable", pQueryAttr->order.order, TSDB_ORDER_ASC, -//// pQueryAttr->window.skey, pQueryAttr->window.ekey, pQueryAttr->window.ekey, -/// pQueryAttr->window.skey); -// -// TSWAP(pQueryAttr->window.skey, pQueryAttr->window.ekey); -// doUpdateLastKey(pQueryAttr); -// } -// -// pQueryAttr->order.order = TSDB_ORDER_ASC; -// pQueryAttr->needReverseScan = false; -// } else if (onlyLastQuery(pQueryAttr)) { -// if (QUERY_IS_ASC_QUERY(pQueryAttr)) { -// //qDebug(msg, pQInfo->qId, "only-last stable", pQueryAttr->order.order, TSDB_ORDER_DESC, -//// pQueryAttr->window.skey, pQueryAttr->window.ekey, pQueryAttr->window.ekey, -/// pQueryAttr->window.skey); -// -// TSWAP(pQueryAttr->window.skey, pQueryAttr->window.ekey); -// doUpdateLastKey(pQueryAttr); -// } -// -// pQueryAttr->order.order = TSDB_ORDER_DESC; -// pQueryAttr->needReverseScan = false; -// } -// } -// } -//} - #if 0 static bool overlapWithTimeWindow(STaskAttr* pQueryAttr, SDataBlockInfo* pBlockInfo) { STimeWindow w = {0}; @@ -1225,24 +1076,6 @@ static void updateTableQueryInfoForReverseScan(STableQueryInfo* pTableQueryInfo) if (pTableQueryInfo == NULL) { return; } - - // TSWAP(pTableQueryInfo->win.skey, pTableQueryInfo->win.ekey); - // pTableQueryInfo->lastKey = pTableQueryInfo->win.skey; - - // SWITCH_ORDER(pTableQueryInfo->cur.order); - // pTableQueryInfo->cur.vgroupIndex = -1; - - // set the index to be the end slot of result rows array - // SResultRowInfo* pResultRowInfo = &pTableQueryInfo->resInfo; - // if (pResultRowInfo->size > 0) { - // pResultRowInfo->curPos = pResultRowInfo->size - 1; - // } else { - // pResultRowInfo->curPos = -1; - // } -} - -void initResultRow(SResultRow* pResultRow) { - // pResultRow->pEntryInfo = (struct SResultRowEntryInfo*)((char*)pResultRow + sizeof(SResultRow)); } void setTaskStatus(SExecTaskInfo* pTaskInfo, int8_t status) { @@ -1255,15 +1088,6 @@ void setTaskStatus(SExecTaskInfo* pTaskInfo, int8_t status) { } } -void destroyTableQueryInfoImpl(STableQueryInfo* pTableQueryInfo) { - if (pTableQueryInfo == NULL) { - return; - } - - // taosVariantDestroy(&pTableQueryInfo->tag); - // cleanupResultRowInfo(&pTableQueryInfo->resInfo); -} - void setResultRowInitCtx(SResultRow* pResult, SqlFunctionCtx* pCtx, int32_t numOfOutput, int32_t* rowEntryInfoOffset) { bool init = false; for (int32_t i = 0; i < numOfOutput; ++i) { @@ -3108,7 +2932,6 @@ int32_t aggDecodeResultRow(SOperatorInfo* pOperator, char* result) { resultRow->offset = pOffset; offset += valueLen; - initResultRow(resultRow); pInfo->resultRowInfo.cur = (SResultRowPosition){.pageId = resultRow->pageId, .offset = resultRow->offset}; // releaseBufPage(pSup->pResultBuf, getBufPage(pSup->pResultBuf, pageId)); } diff --git a/source/libs/executor/src/timewindowoperator.c b/source/libs/executor/src/timewindowoperator.c index 152bd5939d..90d262e59a 100644 --- a/source/libs/executor/src/timewindowoperator.c +++ b/source/libs/executor/src/timewindowoperator.c @@ -3817,7 +3817,6 @@ static int32_t setWindowOutputBuf(SResultWindowInfo* pWinInfo, SResultRow** pRes if (*pResult == NULL) { return TSDB_CODE_OUT_OF_MEMORY; } - initResultRow(*pResult); // add a new result set for a new group pWinInfo->pos.pageId = (*pResult)->pageId;