function overloading / ambigous functions
| От | Kyle |
|---|---|
| Тема | function overloading / ambigous functions |
| Дата | |
| Msg-id | 15012.3276.14903.362526@ip146.usw5.rb1.bel.nwlink.com обсуждение исходный текст |
| Ответы |
Re: function overloading / ambigous functions
Re: function overloading / ambigous functions |
| Список | pgsql-general |
I'm having some difficulty with overloading functions. I've created a
function that normally takes int2's. This works fine, but then I
decided to overload it with a version that takes float8 as input. The
problem arises because the float8 version seems to be called every
time, unless an argument is explicitly cast to int2. Given:
CREATE FUNCTION my_search(int2, int2, int2, int2)
RETURNS int4 AS '/home/kaf/lib/my_search.so',
'my_search' LANGUAGE 'c';
CREATE FUNCTION my_search(float8, float8, float8, float8)
RETURNS int4 AS '/home/kaf/lib/my_search.so',
'my_search_float8' LANGUAGE 'c';
select my_search(7879,3727,3061,2502);
this uses the float8 implementation. I'd expect the int2
implementation to be used since none of the arguments contain floats.
Is this the expected behavior? Of course, if I explicitly cast any
argument to an int2, the int2 function is called.
Thanks,
-Kyle
В списке pgsql-general по дате отправления: