From c60ea644e3e762b23ec00470a12f4dff2d49dffb Mon Sep 17 00:00:00 2001 From: xsren <285808407@qq.com> Date: Tue, 27 Aug 2024 11:49:28 +0800 Subject: [PATCH 1/4] fix: return --- source/libs/function/src/functionMgt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/function/src/functionMgt.c b/source/libs/function/src/functionMgt.c index e50dbf8b14..f2df3c8e4d 100644 --- a/source/libs/function/src/functionMgt.c +++ b/source/libs/function/src/functionMgt.c @@ -118,7 +118,7 @@ EFuncDataRequired fmFuncDataRequired(SFunctionNode* pFunc, STimeWindow* pTimeWin int32_t fmFuncDynDataRequired(int32_t funcId, void* pRes, SDataBlockInfo* pBlockInfo, int32_t *reqStatus) { if (fmIsUserDefinedFunc(funcId) || funcId < 0 || funcId >= funcMgtBuiltinsNum) { *reqStatus = -1; - return TSDB_CODE_FAILED; + return TSDB_CODE_SUCCESS; } const char* name = funcMgtBuiltins[funcId].name; From 809932b283c4ef2afa0b681aedded6b08bf259d0 Mon Sep 17 00:00:00 2001 From: xsren <285808407@qq.com> Date: Tue, 27 Aug 2024 12:52:50 +0800 Subject: [PATCH 2/4] fix: reqStatus --- source/libs/function/src/functionMgt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/function/src/functionMgt.c b/source/libs/function/src/functionMgt.c index f2df3c8e4d..b1aecdfa8b 100644 --- a/source/libs/function/src/functionMgt.c +++ b/source/libs/function/src/functionMgt.c @@ -117,7 +117,7 @@ EFuncDataRequired fmFuncDataRequired(SFunctionNode* pFunc, STimeWindow* pTimeWin int32_t fmFuncDynDataRequired(int32_t funcId, void* pRes, SDataBlockInfo* pBlockInfo, int32_t *reqStatus) { if (fmIsUserDefinedFunc(funcId) || funcId < 0 || funcId >= funcMgtBuiltinsNum) { - *reqStatus = -1; + *reqStatus = FUNC_DATA_REQUIRED_NOT_LOAD; return TSDB_CODE_SUCCESS; } From 3b1a1ed2cd849b49ce3e6b38ee14e3480b3e5882 Mon Sep 17 00:00:00 2001 From: xsren <285808407@qq.com> Date: Tue, 27 Aug 2024 13:25:33 +0800 Subject: [PATCH 3/4] udf function required data load --- source/libs/function/src/functionMgt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/function/src/functionMgt.c b/source/libs/function/src/functionMgt.c index b1aecdfa8b..b9c8ce9ad3 100644 --- a/source/libs/function/src/functionMgt.c +++ b/source/libs/function/src/functionMgt.c @@ -117,7 +117,7 @@ EFuncDataRequired fmFuncDataRequired(SFunctionNode* pFunc, STimeWindow* pTimeWin int32_t fmFuncDynDataRequired(int32_t funcId, void* pRes, SDataBlockInfo* pBlockInfo, int32_t *reqStatus) { if (fmIsUserDefinedFunc(funcId) || funcId < 0 || funcId >= funcMgtBuiltinsNum) { - *reqStatus = FUNC_DATA_REQUIRED_NOT_LOAD; + *reqStatus = FUNC_DATA_REQUIRED_DATA_LOAD; return TSDB_CODE_SUCCESS; } From 4b872f849ce238fd5304da2ef23fc1cd44330876 Mon Sep 17 00:00:00 2001 From: xsren <285808407@qq.com> Date: Tue, 27 Aug 2024 17:07:13 +0800 Subject: [PATCH 4/4] fmFuncDynDataRequired: only return state --- include/libs/function/functionMgt.h | 2 +- source/libs/executor/src/scanoperator.c | 5 ++--- source/libs/function/src/functionMgt.c | 14 +++++--------- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/include/libs/function/functionMgt.h b/include/libs/function/functionMgt.h index 905f1c2575..233e201ac3 100644 --- a/include/libs/function/functionMgt.h +++ b/include/libs/function/functionMgt.h @@ -295,7 +295,7 @@ typedef enum EFuncDataRequired { } EFuncDataRequired; EFuncDataRequired fmFuncDataRequired(SFunctionNode* pFunc, STimeWindow* pTimeWindow); -int32_t fmFuncDynDataRequired(int32_t funcId, void* pRes, SDataBlockInfo* pBlockInfo, int32_t *reqStatus); +EFuncDataRequired fmFuncDynDataRequired(int32_t funcId, void* pRes, SDataBlockInfo* pBlockInfo); int32_t fmGetFuncExecFuncs(int32_t funcId, SFuncExecFuncs* pFpSet); int32_t fmGetScalarFuncExecFuncs(int32_t funcId, SScalarFuncExecFuncs* pFpSet); diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 310992efed..3a4bf9cfd9 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -226,9 +226,8 @@ static int32_t doDynamicPruneDataBlock(SOperatorInfo* pOperator, SDataBlockInfo* SResultRowEntryInfo* pEntry = getResultEntryInfo(pRow, i, pTableScanInfo->base.pdInfo.pExprSup->rowEntryInfoOffset); - int32_t reqStatus; - code = fmFuncDynDataRequired(functionId, pEntry, pBlockInfo, &reqStatus); - if (code != TSDB_CODE_SUCCESS || reqStatus != FUNC_DATA_REQUIRED_NOT_LOAD) { + EFuncDataRequired reqStatus = fmFuncDynDataRequired(functionId, pEntry, pBlockInfo); + if (reqStatus != FUNC_DATA_REQUIRED_NOT_LOAD) { notLoadBlock = false; break; } diff --git a/source/libs/function/src/functionMgt.c b/source/libs/function/src/functionMgt.c index b9c8ce9ad3..254a06426c 100644 --- a/source/libs/function/src/functionMgt.c +++ b/source/libs/function/src/functionMgt.c @@ -115,24 +115,20 @@ EFuncDataRequired fmFuncDataRequired(SFunctionNode* pFunc, STimeWindow* pTimeWin return funcMgtBuiltins[pFunc->funcId].dataRequiredFunc(pFunc, pTimeWindow); } -int32_t fmFuncDynDataRequired(int32_t funcId, void* pRes, SDataBlockInfo* pBlockInfo, int32_t *reqStatus) { +EFuncDataRequired fmFuncDynDataRequired(int32_t funcId, void* pRes, SDataBlockInfo* pBlockInfo) { if (fmIsUserDefinedFunc(funcId) || funcId < 0 || funcId >= funcMgtBuiltinsNum) { - *reqStatus = FUNC_DATA_REQUIRED_DATA_LOAD; - return TSDB_CODE_SUCCESS; + return FUNC_DATA_REQUIRED_DATA_LOAD; } const char* name = funcMgtBuiltins[funcId].name; if ((strcmp(name, "_group_key") == 0) || (strcmp(name, "_select_value") == 0)) { - *reqStatus = FUNC_DATA_REQUIRED_NOT_LOAD; - return TSDB_CODE_SUCCESS;; + return FUNC_DATA_REQUIRED_NOT_LOAD;; } if (funcMgtBuiltins[funcId].dynDataRequiredFunc == NULL) { - *reqStatus = FUNC_DATA_REQUIRED_DATA_LOAD; - return TSDB_CODE_SUCCESS; + return FUNC_DATA_REQUIRED_DATA_LOAD; } else { - *reqStatus = funcMgtBuiltins[funcId].dynDataRequiredFunc(pRes, pBlockInfo); - return TSDB_CODE_SUCCESS; + return funcMgtBuiltins[funcId].dynDataRequiredFunc(pRes, pBlockInfo); } }