Procedure Definitions

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