On 07/08/2013 10:26 AM, Joe Van Dyk wrote:
> create domain m numeric(5,2);
> create table t (c m);
> create function f(t) returns m as $ select case when true then $1.c end
> $ language sql;
>
>
> psql:/tmp/t1.sql:3: ERROR: return type mismatch in function declared to
> return m
> DETAIL: Actual return type is numeric.
> CONTEXT: SQL function "f"
Interesting:
test=> select case when true then t.c end from t;
case
-------
54.36
(1 row)
test=> create function f(t) returns m as $$ select case when true then
$1.c end $$ language sql;
ERROR: return type mismatch in function declared to return m
DETAIL: Actual return type is numeric.
CONTEXT: SQL function "f"
test=> create function f(t) returns numeric as $$ select case when true
then $1.c end $$ language sql;
CREATE FUNCTION
test=> select f(t);
ERROR: column "t" does not exist
LINE 1: select f(t);
I will admit I am at a loss. Maybe someone else can illuminate.
--
Adrian Klaver
adrian.klaver@gmail.com