Re: nested elseif woes - Mailing list pgsql-general

From Ron St-Pierre
Subject Re: nested elseif woes
Date
Msg-id 409FD3C7.4070909@syscor.com
Whole thread Raw
In response to nested elseif woes  (Ivan Sergio Borgonovo <mail@webthatworks.it>)
List pgsql-general
Ivan Sergio Borgonovo wrote:

>First thanks to Tom Lane who helped me promptly.
>
>Now let's come to the problem:
>
>create or replace function testa( )
>    returns char(32) as
>'
>begin
>    if 1=2 then
>        if 1=2 then
>            select 1;
>        elseif 1=3 then
>            select 2;
>        elseif 1=4 then
>            if 1=5 then
>                select 3;
>            else
>                select 4;
>            end if;
>        end if;
>    end if;
>    return md5(''aaaa'');
>end;
>' language plpgsql;
>
>test1=# select * from testa();
>ERROR:  syntax error at or near "if"
>CONTEXT:  compile of PL/pgSQL function "testa" near line 14
>
>
This is odd, I replaced the else ifs with elsif and it worked on 7.4. My
7.3 documentation says that else if and elsif are equivalent.
imp=# select * from testa();
              testa
----------------------------------
 74b87337454200d4d33f80c4663dc5e5
(1 row)

My test code (yours, slightly modified):
    drop function testa( );


    create or replace function testa( )
        returns char(32) as
    '
    begin
        if 1=2 then
            if 1=2 then
                select 1;
            elsif 1=3 then
                select 2;
            elsif 1=4 then
                if 1=5 then
                    select 3;
                else
                    select 4;
                end if;
            end if;
        end if;
        return md5(''aaaa'');
    end;
    ' language plpgsql;


    select * from testa();

>I made several test functions with similar structure with no
>improvements.
>I can't even figure a pattern. I get errors on if, else, and elseif.
>Till now the culprit seems to be elseif. Whenever I write test
>functions without elseif I get no errors.
>Did I misinterpreted the docs (37.7.2.4)?
>
>I really can't see the problem.
>
>I'm running 7.4.2-1 on Debian Sarge.
>
>
>To be less annoying to the list, could anyone point me to somewhere
>where I could look at functions written by others.
>Any good project with enough complicated functions to be useful to
>learn.
>
>
>thx
>
>---------------------------(end of broadcast)---------------------------
>TIP 6: Have you searched our list archives?
>
>               http://archives.postgresql.org
>
>
>
>
Ron


pgsql-general by date:

Previous
From: Kris Jurka
Date:
Subject: Re: Rows to columns query
Next
From: Ron St-Pierre
Date:
Subject: [Fwd: Re: nested elseif woes]