func_def:
CREATE [OR REPLACE] PROCEDURE qname '(' [ paramlist] ')' routine_body
| CREATE [OR REPLACE] PROCEDURE qname '(' [ paramlist] ')' EXTERNAL NAME external_function_name
routine_body:
procedure_statement
| BEGIN procedure_statement_list END
| BEGIN ATOMIC procedure_statement_list END
procedure_statement:
update_statement
| declare_statement
| set_statement
| control_statement
| select_statement_single_row
CREATE ... EXTERNAL NAME ... is a MonetDB language extension
See also system tables/views: sys.functions where type = 2
,
sys.args,
information_schema.routines where routine_type = 'PROCEDURE'
,
information_schema.parameters where function_type = 2
.