Re: domains, case statements, functions: bug? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: domains, case statements, functions: bug?
Date
Msg-id 51DB5EE0.3050808@gmail.com
Whole thread Raw
In response to domains, case statements, functions: bug?  (Joe Van Dyk <joe@tanga.com>)
Responses Re: domains, case statements, functions: bug?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
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


pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Force ssl connection
Next
From: Tom Lane
Date:
Subject: Re: domains, case statements, functions: bug?