On 12/16/2012 07:37 PM, Tom Lane wrote:
Hannu Krosing <ha...@2ndquadrant.com> writes:
On further thought the function name should just be what it is defined
in postgresql, like this
CREATE FUNCTION foo(a,b,c) AS $$
      import x
          from __future__ import nex_cool_feature
          def helper_function(x):
             ...
          def foo(a,b,c):
              defined function body here
          def bar(i,j):
              function body for bar(i,j)
$$ language plpythonu;
but this would not be backwards compatible, at least not in any
obvious way.
This is still unfortunately true :(
Could we say that *if* the function text contains a line beginning
"def function_name" then we interpret it as above, otherwise oldstyle?
I'm not sure how big a risk of false positives there'd be.

You could be inclined to define a recursive function like this under current pl/python

CREATE FUNCTION factorial(n bigint) returns bigint LANGUAGE plpythonu
AS $$

def factorial(n):
    if n==0: return 1
    return factorial(n-1) * n

return factorial(n)

$$;

but at least for functions returning a non-null value an old-style definition usually
end with line in form

return <something>

------------------------
Hannu



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to