Dear Ivan: On Mon, 10 May 2004, 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 > > 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. Is this the literal function? If so, try changing the "elseif" to "elsif". No 2nd 'e'. -frank ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)