Re: multiple CREATE FUNCTION AS items for PLs

Поиск
Список
Период
Сортировка
От Hannu Krosing
Тема Re: multiple CREATE FUNCTION AS items for PLs
Дата
Msg-id 50CE1A77.6090005@2ndQuadrant.com
обсуждение исходный текст
Ответ на Re: multiple CREATE FUNCTION AS items for PLs  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 12/16/2012 07:37 PM, Tom Lane wrote:
> Hannu Krosing <hannu@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




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Hannu Krosing
Дата:
Сообщение: Re: multiple CREATE FUNCTION AS items for PLs
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: multiple CREATE FUNCTION AS items for PLs