| От | Tom Lane |
|---|---|
| Тема | Re: function overloading / ambigous functions |
| Дата | |
| Msg-id | 21323.983833059@sss.pgh.pa.us обсуждение |
| Ответ на | function overloading / ambigous functions (Kyle <kaf@nwlink.com>) |
| Список | pgsql-general |
Kyle <kaf@nwlink.com> writes:
> 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.
Nope. Those numbers are int4 by default, not int2, and it won't coerce
downwards without guidance.
Consider declaring your integer version to take int4s instead of int2s,
and doing the narrowing internally if you really want it.
regards, tom lane
В списке pgsql-general по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера