From ba5123ad2423a72541924ec811c0dc91fcccdab4 Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Thu, 28 Apr 2022 14:07:24 +0800 Subject: [PATCH] agg proc func parameter change --- include/libs/function/tudf.h | 2 +- source/libs/function/src/udfd.c | 2 +- source/libs/function/test/udf2.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/libs/function/tudf.h b/include/libs/function/tudf.h index 985bf6fa6f..e49f5cac45 100644 --- a/include/libs/function/tudf.h +++ b/include/libs/function/tudf.h @@ -140,7 +140,7 @@ typedef int32_t (*TUdfFreeUdfColumnFunc)(SUdfColumn* column); typedef int32_t (*TUdfScalarProcFunc)(SUdfDataBlock* block, SUdfColumn *resultCol); typedef int32_t (*TUdfAggStartFunc)(SUdfInterBuf *buf); -typedef int32_t (*TUdfAggProcessFunc)(SUdfDataBlock* block, SUdfInterBuf *interBuf); +typedef int32_t (*TUdfAggProcessFunc)(SUdfDataBlock* block, SUdfInterBuf *interBuf, SUdfInterBuf *newInterBuf); typedef int32_t (*TUdfAggFinishFunc)(SUdfInterBuf* buf, SUdfInterBuf *resultData); diff --git a/source/libs/function/src/udfd.c b/source/libs/function/src/udfd.c index 896ebd3763..ae24a832c8 100644 --- a/source/libs/function/src/udfd.c +++ b/source/libs/function/src/udfd.c @@ -232,7 +232,7 @@ void udfdProcessRequest(uv_work_t *req) { SUdfInterBuf outBuf = {.buf = taosMemoryMalloc(udf->bufSize), .bufLen= udf->bufSize, .numOfResult = 0}; - udf->aggProcFunc(&input, &outBuf); + udf->aggProcFunc(&input, &call->interBuf, &outBuf); subRsp->resultBuf = outBuf; break; diff --git a/source/libs/function/test/udf2.c b/source/libs/function/test/udf2.c index 250c20ba88..83187c5855 100644 --- a/source/libs/function/test/udf2.c +++ b/source/libs/function/test/udf2.c @@ -24,7 +24,7 @@ int32_t udf2_start(SUdfInterBuf *buf) { return 0; } -int32_t udf2(SUdfDataBlock* block, SUdfInterBuf *interBuf) { +int32_t udf2(SUdfDataBlock* block, SUdfInterBuf *interBuf, SUdfInterBuf *newInterBuf) { int64_t sumSquares = *(int64_t*)interBuf->buf; for (int32_t i = 0; i < block->numOfCols; ++i) { for (int32_t j = 0; j < block->numOfRows; ++i) { @@ -35,10 +35,10 @@ int32_t udf2(SUdfDataBlock* block, SUdfInterBuf *interBuf) { } } - *(int64_t*)interBuf = sumSquares; - interBuf->bufLen = sizeof(int64_t); + *(int64_t*)newInterBuf = sumSquares; + newInterBuf->bufLen = sizeof(int64_t); //TODO: if all null value, numOfResult = 0; - interBuf->numOfResult = 1; + newInterBuf->numOfResult = 1; return 0; }