Search Postgresql Archives

[Fwd: Re: nested elseif woes]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ivan Sergio Borgonovo wrote:

I just re-checked the docs and see that ELSE IF requires an END for each ELSE IF:
	if 1=2 then
		if 1=2 then
			select 1;
		else
if 1=3 then
select 2;
END IF;
else
if 1=4 then
				if 1=5 then
					select 3;					
END IF;
				else
					select 4;
				end if;			
END IF;
		end if;
	end if;



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




---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux