Q:

PostgreSQL GOTO like keyword to jump to a block

I have a PostgreSQL function 
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
IF i<0 THEN 
RETURN i + 1;
ELSE
  GOTO label1;
END IF
<<label1>>
RETURN null;
END;
$$ LANGUAGE plpgsql;

In this function I have to GOTO to a label1, but GOTO keyword is not working, can u please help me in getting the way from which I am able to jump from a particular code to label. 

A:

workaround:
<<label>>
LOOP
   ...
   EXIT label WHEN i > 0;
   ...
   EXIT;
 END LOOP label;
 some;

But I didn't use it ten years - so usually you do some wrong

A:

Another nested Begin block? 
BEGIN
  <<label1>>
  BEGIN 
      IF i<0 THEN 
          RETURN i + 1;
      ELSE
          EXIT label1;
      END IF;
  END;
  RETURN null;
END;

