The example is silly because I had to create the simplest test case to demonstrate a bug I found in the source code:
set term ^;
drop procedure p^
recreate exception e1 'e1'^
recreate exception e2 'e2'^
create procedure p as begin
when exception e1, exception e2 do begin end
show depend p^
set term ;^
The output is
The output should be instead
The proof of the bug is to issue:
recreate exception e1 'e1';
recreate exception e2 'e2';
after the script shown above. Recreating e1 fails due to dependencies but recreating e2 succeeds. With correct dependencies tracking, both should fail.
In the case of
drop exception e2;
the procedure will get a BLR error the next time it's run but after all clients disconnect from the db (due to procedure caching logic).
The problem is a copy/paste in the code from par_condition into par_conditions (note singular v/s plural).
The bug predates the FB project, as seen here:
It was inherited from IB.
(This message is being copy/pasted, too.)