refactor(query): opt perf by remove some functions.
This commit is contained in:
parent
e29ca4f5d8
commit
645c45a274
|
@ -132,6 +132,7 @@ typedef struct SqlFunctionCtx {
|
||||||
SInputColumnInfoData input;
|
SInputColumnInfoData input;
|
||||||
SResultDataInfo resDataInfo;
|
SResultDataInfo resDataInfo;
|
||||||
uint32_t order; // data block scanner order: asc|desc
|
uint32_t order; // data block scanner order: asc|desc
|
||||||
|
uint8_t isPseudoFunc;// denote current function is pseudo function or not [added for perf reason]
|
||||||
uint8_t scanFlag; // record current running step, default: 0
|
uint8_t scanFlag; // record current running step, default: 0
|
||||||
int16_t functionId; // function id
|
int16_t functionId; // function id
|
||||||
char *pOutput; // final result output buffer, point to sdata->data
|
char *pOutput; // final result output buffer, point to sdata->data
|
||||||
|
|
|
@ -1542,6 +1542,7 @@ SqlFunctionCtx* createSqlFunctionCtx(SExprInfo* pExprInfo, int32_t numOfOutput,
|
||||||
if (pExpr->pExpr->nodeType == QUERY_NODE_FUNCTION) {
|
if (pExpr->pExpr->nodeType == QUERY_NODE_FUNCTION) {
|
||||||
SFuncExecEnv env = {0};
|
SFuncExecEnv env = {0};
|
||||||
pCtx->functionId = pExpr->pExpr->_function.pFunctNode->funcId;
|
pCtx->functionId = pExpr->pExpr->_function.pFunctNode->funcId;
|
||||||
|
pCtx->isPseudoFunc = fmIsWindowPseudoColumnFunc(pCtx->functionId);
|
||||||
|
|
||||||
if (fmIsAggFunc(pCtx->functionId) || fmIsIndefiniteRowsFunc(pCtx->functionId)) {
|
if (fmIsAggFunc(pCtx->functionId) || fmIsIndefiniteRowsFunc(pCtx->functionId)) {
|
||||||
bool isUdaf = fmIsUserDefinedFunc(pCtx->functionId);
|
bool isUdaf = fmIsUserDefinedFunc(pCtx->functionId);
|
||||||
|
|
|
@ -365,7 +365,7 @@ void applyAggFunctionOnPartialTuples(SExecTaskInfo* taskInfo, SqlFunctionCtx* pC
|
||||||
pCtx[k].input.colDataSMAIsSet = false;
|
pCtx[k].input.colDataSMAIsSet = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fmIsWindowPseudoColumnFunc(pCtx[k].functionId)) {
|
if (pCtx[k].isPseudoFunc) {
|
||||||
SResultRowEntryInfo* pEntryInfo = GET_RES_INFO(&pCtx[k]);
|
SResultRowEntryInfo* pEntryInfo = GET_RES_INFO(&pCtx[k]);
|
||||||
|
|
||||||
char* p = GET_ROWCELL_INTERBUF(pEntryInfo);
|
char* p = GET_ROWCELL_INTERBUF(pEntryInfo);
|
||||||
|
@ -819,7 +819,7 @@ void setResultRowInitCtx(SResultRow* pResult, SqlFunctionCtx* pCtx, int32_t numO
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fmIsWindowPseudoColumnFunc(pCtx[i].functionId)) {
|
if (pCtx[i].isPseudoFunc) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue