2014-09-03 21:01 GMT+02:00 David G Johnston <david.g.johns...@gmail.com>:
> 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) postgres=# SELECT if(true, fx('msg1'), fx('msg2')); NOTICE: msg1 if ------ msg1 (1 row) Only necessary parameters are evaluated Pavel > David J. > > > > > -- > View this message in context: > http://postgresql.1045698.n5.nabble.com/PL-pgSQL-2-tp5817121p5817608.html > Sent from the PostgreSQL - hackers mailing list archive at Nabble.com. > > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers >