Skip to content

Commit 605b77a

Browse files
committed
feat(engine/dolphin): support CALL statement
for #2612
1 parent fefa6f4 commit 605b77a

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

internal/engine/dolphin/convert.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1434,6 +1434,30 @@ func (c *cc) convertWindowSpec(n *pcast.WindowSpec) ast.Node {
14341434
return todo(n)
14351435
}
14361436

1437+
func (c *cc) convertCallStmt(n *pcast.CallStmt) ast.Node {
1438+
var funcname ast.List
1439+
for _, s := range []string{n.Procedure.Schema.L, n.Procedure.FnName.L} {
1440+
if s != "" {
1441+
funcname.Items = append(funcname.Items, NewIdentifier(s))
1442+
}
1443+
}
1444+
var args ast.List
1445+
for _, a := range n.Procedure.Args {
1446+
args.Items = append(args.Items, c.convert(a))
1447+
}
1448+
return &ast.CallStmt{
1449+
FuncCall: &ast.FuncCall{
1450+
Func: &ast.FuncName{
1451+
Schema: n.Procedure.Schema.L,
1452+
Name: n.Procedure.FnName.L,
1453+
},
1454+
Funcname: &funcname,
1455+
Args: &args,
1456+
Location: n.OriginTextPosition(),
1457+
},
1458+
}
1459+
}
1460+
14371461
func (c *cc) convert(node pcast.Node) ast.Node {
14381462
switch n := node.(type) {
14391463

@@ -1488,6 +1512,9 @@ func (c *cc) convert(node pcast.Node) ast.Node {
14881512
case *pcast.ByItem:
14891513
return c.convertByItem(n)
14901514

1515+
case *pcast.CallStmt:
1516+
return c.convertCallStmt(n)
1517+
14911518
case *pcast.CaseExpr:
14921519
return c.convertCaseExpr(n)
14931520

0 commit comments

Comments
 (0)