I just installed a fresh Postgres database. select version(); gives:
"PostgreSQL 8.1.5 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC)
3.4.2 (mingw-special)"
Normal statements like select * from sometable work fine.
I initiated the default databases, created the postgres user and I
tried to run the following query:
if 1 <> 1 then
select 1
else
select 2
end if;
The error was:
ERROR: syntax error at or near "if" at character 1
I added the language using 'createlang plpgsql', but this didn't help.
This is similar to what I read from
http://www.postgresql.org/docs/8.1/interactive/plpgsql-control-structures.html
I tried using the functions:
create function izitest() returns void as
'if 1 <> 1 then
select 1
else
select 2
end if;' language 'plpgsql'
where plpgsql is the name of the language I created. This gave the same
error:
ERROR: syntax error at or near "if" at character 45
Statements like this are executing normally on other database engines.
I am obviously missing something, probably something specific to
Postgres. I couldn't find anything on the Net or documentation itself
after a few hours search that will give me a hint why this is not
working. Any ideas about this?
Anyway, to pose another question about this. The reason I need the
above is to check whether the table exists (from
information_schema.tables) and drop it only in that case (dirty
exception handling). There might be a way to do it (in 8.1) in another
way then using ifs to check. The other question still stands, however.