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 по дате отправления: