Re: pgsql: SQL-standard function body
От | Andres Freund |
---|---|
Тема | Re: pgsql: SQL-standard function body |
Дата | |
Msg-id | 20210407225806.majgznh4lk34hjvu@alap3.anarazel.de обсуждение исходный текст |
Ответ на | pgsql: SQL-standard function body (Peter Eisentraut <peter@eisentraut.org>) |
Ответы |
Re: pgsql: SQL-standard function body
|
Список | pgsql-committers |
Hi, On 2021-04-07 19:53:35 +0000, Peter Eisentraut wrote: > SQL-standard function body > > This adds support for writing CREATE FUNCTION and CREATE PROCEDURE > statements for language SQL with a function body that conforms to the > SQL standard and is portable to other implementations. > > Instead of the PostgreSQL-specific AS $$ string literal $$ syntax, > this allows writing out the SQL statements making up the body > unquoted, either as a single statement: > > CREATE FUNCTION add(a integer, b integer) RETURNS integer > LANGUAGE SQL > RETURN a + b; > > or as a block > > CREATE PROCEDURE insert_data(a integer, b integer) > LANGUAGE SQL > BEGIN ATOMIC > INSERT INTO tbl VALUES (a); > INSERT INTO tbl VALUES (b); > END; > > The function body is parsed at function definition time and stored as > expression nodes in a new pg_proc column prosqlbody. So at run time, > no further parsing is required. > > However, this form does not support polymorphic arguments, because > there is no more parse analysis done at call time. > > Dependencies between the function and the objects it uses are fully > tracked. > > A new RETURN statement is introduced. This can only be used inside > function bodies. Internally, it is treated much like a SELECT > statement. > > psql needs some new intelligence to keep track of function body > boundaries so that it doesn't send off statements when it sees > semicolons that are inside a function body. > > Tested-by: Jaime Casanova <jcasanov@systemguards.com.ec> > Reviewed-by: Julien Rouhaud <rjuju123@gmail.com> > Discussion: https://www.postgresql.org/message-id/flat/1c11f1eb-f00c-43b7-799d-2d44132c02d7@2ndquadrant.com > > Branch > ------ > master > > Details > ------- > https://git.postgresql.org/pg/commitdiff/e717a9a18b2e34c9c40e5259ad4d31cd7e420750 This is turning the BF red: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=rhinoceros&dt=2021-04-07%2022%3A52%3A19 Might be force_parallel_mode=regress related. Greetings, Andres Freund
В списке pgsql-committers по дате отправления: