diff --git a/source/libs/function/inc/tudf.h b/include/libs/function/tudf.h similarity index 100% rename from source/libs/function/inc/tudf.h rename to include/libs/function/tudf.h diff --git a/source/dnode/qnode/src/qnode.c b/source/dnode/qnode/src/qnode.c index 907fddaec2529385856f09add338fa91159e7c69..7a226a4c6bcc1c3070b18737455c072822c3820b 100644 --- a/source/dnode/qnode/src/qnode.c +++ b/source/dnode/qnode/src/qnode.c @@ -17,7 +17,7 @@ #include "qndInt.h" #include "query.h" #include "qworker.h" -//#include "tudf.h" +#include "libs/function/function.h" SQnode *qndOpen(const SQnodeOpt *pOption) { SQnode *pQnode = taosMemoryCalloc(1, sizeof(SQnode)); @@ -26,7 +26,9 @@ SQnode *qndOpen(const SQnodeOpt *pOption) { return NULL; } - //udfcOpen(); + if (udfcOpen() != 0) { + qError("qnode can not open udfc"); + } if (qWorkerInit(NODE_TYPE_QNODE, pQnode->qndId, NULL, (void **)&pQnode->pQuery, &pOption->msgCb)) { taosMemoryFreeClear(pQnode); @@ -40,7 +42,7 @@ SQnode *qndOpen(const SQnodeOpt *pOption) { void qndClose(SQnode *pQnode) { qWorkerDestroy((void **)&pQnode->pQuery); - //udfcClose(); + udfcClose(); taosMemoryFree(pQnode); } diff --git a/source/libs/scalar/src/scalar.c b/source/libs/scalar/src/scalar.c index 820a4894b5ed756bcacfe030211b24b35e86b11e..3b91c36ab4ae948f36b000166f1a7a6594796f6d 100644 --- a/source/libs/scalar/src/scalar.c +++ b/source/libs/scalar/src/scalar.c @@ -7,6 +7,7 @@ #include "tcommon.h" #include "tdatablock.h" #include "scalar.h" +#include "tudf.h" int32_t scalarGetOperatorParamNum(EOperatorType type) { if (OP_TYPE_IS_NULL == type || OP_TYPE_IS_NOT_NULL == type || OP_TYPE_IS_TRUE == type || OP_TYPE_IS_NOT_TRUE == type @@ -336,14 +337,12 @@ int32_t sclExecFunction(SFunctionNode *node, SScalarCtx *ctx, SScalarParam *outp SCL_ERR_RET(sclInitParamList(¶ms, node->pParameterList, ctx, ¶mNum, &rowNum)); if (fmIsUserDefinedFunc(node->funcId)) { -#if 0 UdfcFuncHandle udfHandle = NULL; SCL_ERR_JRET(setupUdf(node->functionName, &udfHandle)); code = callUdfScalarFunc(udfHandle, params, paramNum, output); teardownUdf(udfHandle); SCL_ERR_JRET(code); -#endif } else { SScalarFuncExecFuncs ffpSet = {0}; code = fmGetScalarFuncExecFuncs(node->funcId, &ffpSet);