RAISE seems to be quite wonky.
The below function fails to compile due to the function call in the
arguement.
create function test(text) returns bool as '
begin raise exception ''test %'', quote_literal($1); return false;
end;
' language plpgsql;
Likewise, the below fails to compile due to error message being an
expression. I know this one used to work not all that long ago.
Digging through 7.0 docs even found an example of it.
create function test2(text) returns bool as '
begin raise exception ''test '' || ''more...''; return false;
end;
' language plpgsql;
Any thoughts on how to fix the first, and if the second could be
reverted? It's a pain for long messages that they cannot be broken.
Yes, I could write an error handling routine which passes nice messages
to elog(), but I think thats a silly thing to do.