From 480777e56cb56d16b91656dac505e6e664c3aad9 Mon Sep 17 00:00:00 2001 From: Neil Conway Date: Fri, 17 Dec 2004 03:51:36 +0000 Subject: [PATCH] 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. --- doc/src/sgml/plpgsql.sgml | 14 ++++++++++++-- src/pl/plpgsql/src/scan.l | 3 ++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml index 443d82f63f..596ef7971f 100644 --- a/doc/src/sgml/plpgsql.sgml +++ b/doc/src/sgml/plpgsql.sgml @@ -1,5 +1,5 @@ @@ -1475,7 +1475,7 @@ SELECT * FROM some_func(); IF statements let you execute commands based on - certain conditions. PL/pgSQL has four forms of + certain conditions. PL/pgSQL has five forms of IF: @@ -1490,6 +1490,9 @@ SELECT * FROM some_func(); IF ... THEN ... ELSIF ... THEN ... ELSE + + IF ... THEN ... ELSEIF ... THEN ... ELSE + @@ -1633,6 +1636,13 @@ END IF; + + + <literal>IF-THEN-ELSEIF-ELSE</> + + + ELSEIF is an alias for ELSIF. + diff --git a/src/pl/plpgsql/src/scan.l b/src/pl/plpgsql/src/scan.l index 9b2615df10..5e92ba7690 100644 --- a/src/pl/plpgsql/src/scan.l +++ b/src/pl/plpgsql/src/scan.l @@ -4,7 +4,7 @@ * procedural language * * 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. * @@ -144,6 +144,7 @@ declare { return K_DECLARE; } default { return K_DEFAULT; } diagnostics { return K_DIAGNOSTICS; } else { return K_ELSE; } +elseif { return K_ELSIF; } elsif { return K_ELSIF; } end { return K_END; } exception { return K_EXCEPTION; } -- 2.40.0