Re: Creating nested functions with plpgsql
От | Alvaro Herrera |
---|---|
Тема | Re: Creating nested functions with plpgsql |
Дата | |
Msg-id | 20060507233343.GC31301@surnet.cl обсуждение исходный текст |
Ответ на | Creating nested functions with plpgsql (Jorge Godoy <jgodoy@gmail.com>) |
Ответы |
Re: Creating nested functions with plpgsql
|
Список | pgsql-sql |
Jorge Godoy wrote: > I have some real case examples where this could be useful, if it is needed. > I haven't pasted them here because the smallest one has 176 LOC, after > refactoring with nested functions. > > If it is not possible, are there any plans to allow this kind of thing? > (Even with a different syntax it would be good to have it.) We don't support nested functions at present, but you can create a separate function and invoke it as you would call any external function. This is arguably better, because you may then use inner_function in any "outer function", not just the current one. Something like: CREATE FUNCTION inner_function(OUT output_day DATE) AS $_$ DECLARE output_day DATE; BEGIN -- do something to calculate output_day RETURN output_day; END $_$; CREATE FUNCTION outer_function(param1 DATE) RETURNS date AS $$ DECLARE output_day DATE; BEGIN; output_day = SELECT inner_function(params_to_create_date); -- do something in main function that uses inner function several -- times. END; $$ language plpgsql; -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc.
В списке pgsql-sql по дате отправления: