Re: Resolving polymorphic functions with related datatypes - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Resolving polymorphic functions with related datatypes
Date
Msg-id 162867790807030322k1ee3e09dn4a9ba3e9cdc8ae2a@mail.gmail.com
Whole thread Raw
In response to Resolving polymorphic functions with related datatypes  (Simon Riggs <simon@2ndquadrant.com>)
Responses Re: Resolving polymorphic functions with related datatypes  (Simon Riggs <simon@2ndquadrant.com>)
List pgsql-hackers
2008/7/3 Simon Riggs <simon@2ndquadrant.com>:
> I'm using the nvl() function from the orafce package. It is defined as a
> polymorphic function so its function signature is
>  nvl(anyelement, anyelement)
>
> Now if I try to use the function in this very typical way
>  nvl(numeric_col, 0)
>
> we get
>
>  ERROR: function nvl(numeric, integer) does not exist
>
> The same error occurs if we have nvl(smallint, integer) etc
>
> This is a real shame 'cos polymorphic functions ought to be a great way
> of saving development time and catalog space, yet they seem to fall down
> a hole without implicit casting.
>
> What I'd like it to do is to recognise that the 0 should be cast
> implicitly to another datatype within the same family. I want and expect
>  nvl(char_column, 0)
> to fail, but I expect the various numeric/integer types we have to play
> nicely together without tears.
>
> If we can do it for indexes, can we do it for polymorphic functions also
> when there is no matching function?
>

+1

there is similar problem with literal constant.

Pavel Stehule

> --
>  Simon Riggs           www.2ndQuadrant.com
>  PostgreSQL Training, Services and Support
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>


pgsql-hackers by date:

Previous
From: Paul van den Bogaard
Date:
Subject: Attaching and using the Postgres shared memory segment
Next
From: Simon Riggs
Date:
Subject: Re: Resolving polymorphic functions with related datatypes