diff --git a/include/libs/function/functionMgt.h b/include/libs/function/functionMgt.h index 9d0995a8d8e6ae29ee488a5d38cb6d083c036075..e6512b5bac7dc14315e7d9f55c476c9879ebe6eb 100644 --- a/include/libs/function/functionMgt.h +++ b/include/libs/function/functionMgt.h @@ -125,6 +125,8 @@ typedef enum EFunctionType { // distributed splitting functions FUNCTION_TYPE_APERCENTILE_PARTIAL, FUNCTION_TYPE_APERCENTILE_MERGE, + FUNCTION_TYPE_SPREAD_PARTIAL, + FUNCTION_TYPE_SPREAD_MERGE, // user defined funcion FUNCTION_TYPE_UDF = 10000 diff --git a/source/libs/function/src/builtins.c b/source/libs/function/src/builtins.c index 88259e2cbdde2dddbf57999f11a5c6fe9c2d1319..7897cc10c2f11aeff4209416e47c5195cedccd0d 100644 --- a/source/libs/function/src/builtins.c +++ b/source/libs/function/src/builtins.c @@ -1279,6 +1279,28 @@ const SBuiltinFuncDefinition funcMgtBuiltins[] = { .processFunc = spreadFunction, .finalizeFunc = spreadFinalize }, + { + .name = "_spread_partial", + .type = FUNCTION_TYPE_SPREAD_PARTIAL, + .classification = FUNC_MGT_AGG_FUNC, + .translateFunc = translateSpread, + .dataRequiredFunc = statisDataRequired, + .getEnvFunc = getSpreadFuncEnv, + .initFunc = spreadFunctionSetup, + .processFunc = spreadFunction, + .finalizeFunc = spreadFinalize + }, + { + .name = "_spread_merge", + .type = FUNCTION_TYPE_SPREAD_MERGE, + .classification = FUNC_MGT_AGG_FUNC, + .translateFunc = translateSpread, + .dataRequiredFunc = statisDataRequired, + .getEnvFunc = getSpreadFuncEnv, + .initFunc = spreadFunctionSetup, + .processFunc = spreadFunction, + .finalizeFunc = spreadFinalize + }, { .name = "elapsed", .type = FUNCTION_TYPE_ELAPSED,