       order.push (node.agg_order.map (node) => @deparse(node, context)).join(", ")
 
     call = []
-    call.push(name + '(')
+    call.push "#{name}("
     call.push 'DISTINCT ' if node.agg_distinct
 
     # prepend variadic before the last parameter
     # SELECT CONCAT('|', VARIADIC ARRAY['1','2','3'])
     if node.func_variadic
-      params[params.length - 1] = 'VARIADIC ' + params[params.length - 1]
+      params[params.length - 1] = "VARIADIC #{params[params.length - 1]}"
 
     call.push params.join(', ')
 

    if node.rarg
      # wrap nested join expressions in parens to make the following symmetric:
      # select * from int8_tbl x cross join (int4_tbl x cross join lateral (select x.f1) ss)
      if node.rarg.JoinExpr? and not node.rarg.JoinExpr?.alias?
        output.push '(' + @deparse(node.rarg) + ')'
      else
        output.push @deparse(node.rarg)

        @deparse(item)

    type = []
    type.push @type(node['names'], args && args.join(', '))
    type.push '[]' if node.arrayBounds?

    output.push type.join('')
