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