Skip to content

Commit bb77d8f

Browse files
committed
save for 调整 非全局方式使用
1 parent 40e32f1 commit bb77d8f

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

config/functions/functions.go

+9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,15 @@ func Reg(name string, f Func) {
1919
funcMap[name] = f
2020
}
2121

22+
func RegHandler(name string, handler func(ctx context.Context, param g.Map) (res any, err error)) {
23+
if _, exists := funcMap[name]; exists {
24+
panic(fmt.Errorf(" function %s has exists", name))
25+
}
26+
funcMap[name] = struct {
27+
Handler func(ctx context.Context, param g.Map) (res any, err error)
28+
}{Handler: handler}
29+
}
30+
2231
func Call(ctx context.Context, name string, param g.Map) (any, error) {
2332
return funcMap[name].Handler(ctx, param)
2433
}

query/node.go

+11-3
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,9 @@ func (n *Node) parse() {
389389
}
390390

391391
case NodeTypeFunc:
392-
functionName, _ := util.ParseFunctionsStr(n.simpleReqVal)
393-
n.simpleReqVal = functionName
392+
// todo
393+
//functionName, _ := util.ParseFunctionsStr(n.simpleReqVal)
394+
//n.simpleReqVal = functionName
394395

395396
}
396397
if n.queryContext.PrintProcessLog {
@@ -572,8 +573,15 @@ func (n *Node) fetch() {
572573
n.total = n.children[n.primaryTableKey].total
573574
}
574575
case NodeTypeFunc:
576+
functionName, paramKeys := util.ParseFunctionsStr(n.simpleReqVal)
577+
//n.simpleReqVal = functionName
578+
// todo 如何传递参数
575579
param := model.Map{}
576-
n.ret, n.err = functions.Call(n.ctx, n.simpleReqVal, param)
580+
for _, key := range paramKeys {
581+
param[key] = n.queryContext.pathNodes[key].simpleReqVal
582+
}
583+
584+
n.ret, n.err = functions.Call(n.ctx, functionName, param)
577585
}
578586

579587
}

0 commit comments

Comments
 (0)