Re: domains, case statements, functions: bug?

From: Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com>
To: Joe Van Dyk <joe(at)tanga(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: domains, case statements, functions: bug?
Date: 2013-07-09 00:52:48
Message-ID: 51DB5EE0.3050808@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(dot)klaver(at)gmail(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2013-07-09 01:58:14 Re: domains, case statements, functions: bug?
Previous Message Adrian Klaver 2013-07-09 00:46:29 Re: Force ssl connection