This is more of an SQL request the pl/pgsql but is/has there been thought to adding the ternary if/then opeator? Something like:
boolean_exp ?> val_if_true : val_if_false
using "?" by itself would be OK but not ideal - and the addition of the ">" doesn't seem hateful...
Sorry if this is deemed off-topic but I just went to write
CASE WHEN boolean_exp THEN val_if_true ELSE val_if_false END
And the fact there is as much standard code as there is custom bothered me just as is being discussed on this thread.
I'm going to go write a "ifthen(bool, anyelement, anyelement)" function now....
if you use a SQL (SQL macro, then it can be effective)
postgres=# CREATE OR REPLACE FUNCTION if(bool, anyelement, anyelement) RETURNS anyelement AS $$SELECT CASE WHEN $1 THEN $2 ELSE $3 END $$ LANGUAGE sql; CREATE FUNCTION postgres=# CREATE OR REPLACE FUNCTION fx(text) RETURNS text AS $$ BEGIN RAISE NOTICE '%', $1; RETURN $1; END$$ LANGUAGE plpgsql; CREATE FUNCTION postgres=# SELECT if(false, fx('msg1'), fx('msg2')); NOTICE: msg2 if ------ msg2 (1 row)