BUG #8568: PLPGSQL Documentation For CASE Is incorrect

From: joshuadburns(at)hotmail(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #8568: PLPGSQL Documentation For CASE Is incorrect
Date: 2013-10-30 00:07:37
Message-ID: E1VbJJx-0003T6-KN@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 8568
Logged by: Joshua D. Burns
Email address: joshuadburns(at)hotmail(dot)com
PostgreSQL version: 9.3.1
Operating system: Linux
Description:

Documentation Sections Affected:
* 8.4: 38.6
* 9.0, 9.1 & 9.2: 39.6
* 9.3 & devel: 40.6

Example Documentation URL:
http://www.postgresql.org/docs/9.3/static/plpgsql-control-structures.html

Every example within the PLPGSQL "control structures" documentation states
that the proper syntax for closing a "CASE" statement is to use "END CASE;"
however in reality, on every version of PostgreSQL I can my hands on, "END
CASE;" throws the following exception:

ERROR: syntax error at or near "CASE"
LINE 9: END CASE;

However if I use "END;" in place of "END CASE;", the script executes as
expected. This leads me to believe the documentation for "CASE" statements
across all current versions of the documentation, are incorrect.

=====================================
Example CASE statement with END CASE;
-------------------------------------
DO LANGUAGE "plpgsql" $BODY$
DECLARE my_var INTEGER := 2; BEGIN
RAISE NOTICE
'%',
CASE
WHEN my_var = 1 THEN 'one'
WHEN my_var = 2 THEN 'two'
WHEN my_var = 3 THEN 'three'
END CASE;
END $BODY$;
=====================================
Results In Unexpected Behavior:
ERROR: syntax error at or near "CASE"
LINE 9: END CASE;

=====================================
Example CASE statement using END;
-------------------------------------
DO LANGUAGE "plpgsql" $BODY$
DECLARE my_var INTEGER := 2; BEGIN
RAISE NOTICE
'%',
CASE
WHEN my_var = 1 THEN 'one'
WHEN my_var = 2 THEN 'two'
WHEN my_var = 3 THEN 'three'
END;
END $BODY$;
-------------------------------------
Results In Expected Behavior:
NOTICE: two

I haven't checked, but this could also affect IF statements, specifically
"END IF;" vs. "END;" as well.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2013-10-30 00:19:23 Re: BUG #8568: PLPGSQL Documentation For CASE Is incorrect
Previous Message Robert Haas 2013-10-29 17:35:20 Re: surprising to_timestamp behavior