@@ -639,6 +639,33 @@ func convertBooleanTest(n *pg.BooleanTest) *ast.BooleanTest {
639639 }
640640}
641641
642+ func convertCallStmt (n * pg.CallStmt ) * ast.CallStmt {
643+ if n == nil {
644+ return nil
645+ }
646+ rel , err := parseRelationFromNodes (n .Funccall .Funcname )
647+ if err != nil {
648+ // TODO: How should we handle errors?
649+ panic (err )
650+ }
651+
652+ return & ast.CallStmt {
653+ FuncCall : & ast.FuncCall {
654+ Func : rel .FuncName (),
655+ Funcname : convertSlice (n .Funccall .Funcname ),
656+ Args : convertSlice (n .Funccall .Args ),
657+ AggOrder : convertSlice (n .Funccall .AggOrder ),
658+ AggFilter : convertNode (n .Funccall .AggFilter ),
659+ AggWithinGroup : n .Funccall .AggWithinGroup ,
660+ AggStar : n .Funccall .AggStar ,
661+ AggDistinct : n .Funccall .AggDistinct ,
662+ FuncVariadic : n .Funccall .FuncVariadic ,
663+ Over : convertWindowDef (n .Funccall .Over ),
664+ Location : int (n .Funccall .Location ),
665+ },
666+ }
667+ }
668+
642669func convertCaseExpr (n * pg.CaseExpr ) * ast.CaseExpr {
643670 if n == nil {
644671 return nil
@@ -3092,6 +3119,9 @@ func convertNode(node *pg.Node) ast.Node {
30923119
30933120 case * pg.Node_BooleanTest :
30943121 return convertBooleanTest (n .BooleanTest )
3122+
3123+ case * pg.Node_CallStmt :
3124+ return convertCallStmt (n .CallStmt )
30953125
30963126 case * pg.Node_CaseExpr :
30973127 return convertCaseExpr (n .CaseExpr )
0 commit comments