feat: the function manager adds an interface for manually configuring the parameters of the merge function
This commit is contained in:
parent
04e9996db6
commit
7db6081c72
|
@ -1737,7 +1737,7 @@ const SBuiltinFuncDefinition funcMgtBuiltins[] = {
|
|||
.combineFunc = topCombine,
|
||||
.pPartialFunc = "_top_partial",
|
||||
.pMergeFunc = "_top_merge",
|
||||
.createMergeParaFuc = topCreateMergePara
|
||||
// .createMergeParaFuc = topCreateMergePara
|
||||
},
|
||||
{
|
||||
.name = "_top_partial",
|
||||
|
|
|
@ -321,16 +321,18 @@ static int32_t createMergeFunction(const SFunctionNode* pSrcFunc, const SFunctio
|
|||
if (TSDB_CODE_SUCCESS == code) {
|
||||
// overwrite function restype set by translate function
|
||||
if (fmIsSameInOutType(pSrcFunc->funcId)) {
|
||||
(*pMergeFunc)->node.resType = pSrcFunc->node.resType;
|
||||
pFunc->node.resType = pSrcFunc->node.resType;
|
||||
}
|
||||
strcpy((*pMergeFunc)->node.aliasName, pSrcFunc->node.aliasName);
|
||||
strcpy(pFunc->node.aliasName, pSrcFunc->node.aliasName);
|
||||
}
|
||||
|
||||
if (TSDB_CODE_SUCCESS == code) {
|
||||
*pMergeFunc = pFunc;
|
||||
} else {
|
||||
pFunc->pParameterList = NULL;
|
||||
nodesDestroyNode((SNode*)pFunc);
|
||||
if (NULL != pFunc) {
|
||||
pFunc->pParameterList = NULL;
|
||||
nodesDestroyNode((SNode*)pFunc);
|
||||
}
|
||||
nodesDestroyList(pParameterList);
|
||||
}
|
||||
|
||||
|
|
|
@ -52,6 +52,8 @@ TEST_F(PlanBasicTest, func) {
|
|||
run("SELECT PERCENTILE(c1, 60) FROM t1");
|
||||
|
||||
run("SELECT TOP(c1, 60) FROM t1");
|
||||
|
||||
run("SELECT TOP(c1, 60) FROM st1");
|
||||
}
|
||||
|
||||
TEST_F(PlanBasicTest, uniqueFunc) {
|
||||
|
|
Loading…
Reference in New Issue