Commit 480777e5 authored by Neil Conway's avatar Neil Conway

Allow 'ELSEIF' as an alternative to 'ELSIF' in PL/PgSQL. There have been

several reports of users being confused when they attempt to use ELSEIF
and run into trouble due to PL/PgSQL's lax parser. The parser will be
improved for 8.1, but we can fix most of the problem by allowing ELSEIF
for now.
parent dfdae5d6
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/plpgsql.sgml,v 1.51 2004/12/13 18:05:08 petere Exp $ $PostgreSQL: pgsql/doc/src/sgml/plpgsql.sgml,v 1.52 2004/12/17 03:51:34 neilc Exp $
--> -->
<chapter id="plpgsql"> <chapter id="plpgsql">
...@@ -1475,7 +1475,7 @@ SELECT * FROM some_func(); ...@@ -1475,7 +1475,7 @@ SELECT * FROM some_func();
<para> <para>
<literal>IF</> statements let you execute commands based on <literal>IF</> statements let you execute commands based on
certain conditions. <application>PL/pgSQL</> has four forms of certain conditions. <application>PL/pgSQL</> has five forms of
<literal>IF</>: <literal>IF</>:
<itemizedlist> <itemizedlist>
<listitem> <listitem>
...@@ -1490,6 +1490,9 @@ SELECT * FROM some_func(); ...@@ -1490,6 +1490,9 @@ SELECT * FROM some_func();
<listitem> <listitem>
<para><literal>IF ... THEN ... ELSIF ... THEN ... ELSE</></> <para><literal>IF ... THEN ... ELSIF ... THEN ... ELSE</></>
</listitem> </listitem>
<listitem>
<para><literal>IF ... THEN ... ELSEIF ... THEN ... ELSE</></>
</listitem>
</itemizedlist> </itemizedlist>
</para> </para>
...@@ -1633,6 +1636,13 @@ END IF; ...@@ -1633,6 +1636,13 @@ END IF;
</programlisting> </programlisting>
</para> </para>
</sect3> </sect3>
<sect3>
<title><literal>IF-THEN-ELSEIF-ELSE</></title>
<para>
<literal>ELSEIF</> is an alias for <literal>ELSIF</>.
</para>
</sect2> </sect2>
<sect2 id="plpgsql-control-structures-loops"> <sect2 id="plpgsql-control-structures-loops">
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* procedural language * procedural language
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/pl/plpgsql/src/scan.l,v 1.37 2004/09/13 01:45:32 neilc Exp $ * $PostgreSQL: pgsql/src/pl/plpgsql/src/scan.l,v 1.38 2004/12/17 03:51:36 neilc Exp $
* *
* This software is copyrighted by Jan Wieck - Hamburg. * This software is copyrighted by Jan Wieck - Hamburg.
* *
...@@ -144,6 +144,7 @@ declare { return K_DECLARE; } ...@@ -144,6 +144,7 @@ declare { return K_DECLARE; }
default { return K_DEFAULT; } default { return K_DEFAULT; }
diagnostics { return K_DIAGNOSTICS; } diagnostics { return K_DIAGNOSTICS; }
else { return K_ELSE; } else { return K_ELSE; }
elseif { return K_ELSIF; }
elsif { return K_ELSIF; } elsif { return K_ELSIF; }
end { return K_END; } end { return K_END; }
exception { return K_EXCEPTION; } exception { return K_EXCEPTION; }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment