Thread: How to use CreateFunctionStmt's RETURN TABLE?
Hello Guys,
Lately, I saw this syntax in ./src/backend/parser/Gray.y as following!
CreateFunctionStmt:
CREATE opt_or_replace FUNCTION func_name func_args_with_defaults
RETURNS func_return createfunc_opt_list opt_definition
{
CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
n->replace = $2;
n->funcname = $4;
n->parameters = $5;
n->returnType = $7;
n->options = $8;
n->withClause = $9;
$$ = (Node *)n;
}
| CREATE opt_or_replace FUNCTION func_name func_args_with_defaults
RETURNS TABLE '(' table_func_column_list ')' createfunc_opt_list opt_definition
{
CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
n->replace = $2;
n->funcname = $4;
n->parameters = mergeTableFuncParameters($5, $9);
n->returnType = TableFuncTypeName($9);
n->returnType->location = @7;
n->options = $11;
n->withClause = $12;
$$ = (Node *)n;
}
| CREATE opt_or_replace FUNCTION func_name func_args_with_defaults
createfunc_opt_list opt_definition
{
CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
n->replace = $2;
n->funcname = $4;
n->parameters = $5;
n->returnType = NULL;
n->options = $6;
n->withClause = $7;
$$ = (Node *)n;
}
;
I do not know how to use the second syntax:RETURNS TABLE '(' table_func_column_list ')' createfunc_opt_list opt_definition.
May someone help me to write a simple example of this syntax! Thank you very much. Looking forward for your help!
2011/7/26 _石头 <tanjia76@qq.com>: [... cut ...] > I do not know how to use the second syntax:RETURNS TABLE '(' > table_func_column_list ')' createfunc_opt_list opt_definition. > May someone help me to write a simple example of this syntax! > Thank you very much. Looking forward for your help! (I'm supposing that you are talking about the syntax of 'CREATE FUNCTION' itself and not about the bison entry in that file.) See the docs [1] and this post [2]. They could help you. [1] http://www.postgresql.org/docs/current/static/sql-createfunction.html [2] http://www.postgresonline.com/journal/archives/201-returns-table.html Best regards, -- Dickson S. Guedes mail/xmpp: guedes@guedesoft.net - skype: guediz http://guedesoft.net - http://www.postgresql.org.br