When writing some serverside code I ran into an oddity that I
managed to boil down to this:

-------------------------------------------------------
create or replace function fubar() returns varchar as '
declare
  l integer;
begin
  l = 38;
  if l < 38 then
    return ''< 38'';
  elseif l >= 38 then
    return ''>= 38'';
  else
    return ''this is not possible'';
  end if;
end;'
language 'plpgsql';
-------------------------------------------------------

But I can't understand or solve it. The function always returns
'this is not possible'. Can someone tell me what I'm overlooking?
Thanks!

Documentation says you should use "elsif" rather than "elseif". In your case everything between "return <38" and "else" is discarded as unreachable code. The same sense will have function below:


create or replace function fubar() returns varchar as '
declare
  l integer;
begin
  l = 38;
  if l < 38 then
    return ''< 38'';
  bleblbebleblebe sfdsdf;
  nothing special;
  else
    return ''this is not possible'';
  end if;
end;'
language 'plpgsql';
select fubar();

Regards,
Tomasz Myrta

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
     subscribe-nomail command to [EMAIL PROTECTED] so that your
     message can get through to the mailing list cleanly

Reply via email to