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:
transaction_statement
| update_statement
| schema
| grant
| revoke
| create_statement
| drop_statement
| alter_statement
| declare_statement
| set_statement
| control_statement
| select_statement_single_row
|
Note: CREATE ... EXTERNAL NAME ... is a MonetDB language extension.