From: | Robert Greimel <greimel(at)ing(dot)iac(dot)es> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: function overloading |
Date: | 2006-01-10 11:43:16 |
Message-ID: | 1136893396.1807.30.camel@neptune.ing.iac.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Mon, 2006-01-09 at 20:28, Tom Lane wrote:
> Robert Greimel <greimel(at)ing(dot)iac(dot)es> writes:
> > I have a question regarding function overloading:
>
> > assume that you have a function that takes several numeric arguments -
> > lets for example say 4 arguments: f(a,b,c,d)
>
> > Now further assume that internally in the function the first thing you
> > do is to convert the arguments to double precision, do your calculations
> > and return the result always in double precision.
>
> > In order to allow for all combinations of numeric
> > (int2,int4,int8,float4,float8) inputs one would now have to define and
> > write 5^4 = 625 functions !!!!!!!!!!!!!!!
>
> > Apart from forcing the function user to use casts, is there any other
> > way to avoid this madness of writing 625 functions ?
>
> I don't see why you need more than one function, taking all
> double-precision arguments ...
>
> regards, tom lane
You are right.
I got confused by the error message when I first tried to call the
function and had made the mistake to define it with less parameters than
it actually takes. The error for
select f(1,1.5,a,b) from table;
was
ERROR: Function 'f(int4, float8, float4, float4)' does not exist
Unable to identify a function that satisfies the given argument
types
You may need to add explicit typecasts
which made me think that I have to define a function for every possible
combination of numeric types. By the time I realized that I had missed a
parameter I already had added casts to all parameters in the query.
So it works as I would expect it - one function definition with all
arguments as double is sufficient as you note.
Greetings
Robert
From | Date | Subject | |
---|---|---|---|
Next Message | surabhi.ahuja | 2006-01-10 13:10:58 | regarding triggers |
Previous Message | Alban Hertroys | 2006-01-10 10:02:17 | Re: |