Обсуждение: How PG parser search (build-in) function?
Hi, I have a question... How PG parser select (build-in) function? Check parser function's arguments datetypes only or check returns value datetype too (for function searching in system cache ..etc)? I have function to_number(text, text) this function returns numeric datetype. Is possible (effective) write this function for more datatypes than for numeric? The function is always "to_number(text, text)", possible difference is in a returned datetype. (The function extract number from formated string and this number return, but how datetype we want return?) Karel PS. Sorry if my problem description is a litle mazy.. ---------------------------------------------------------------------- Karel Zak <zakkr@zf.jcu.cz> http://home.zf.jcu.cz/~zakkr/ Docs: http://docs.linux.cz (big docs archive) Kim Project: http://home.zf.jcu.cz/~zakkr/kim/ (process manager) FTP: ftp://ftp2.zf.jcu.cz/users/zakkr/ (C/ncurses/PgSQL) -----------------------------------------------------------------------
Karel Zak - Zakkr <zakkr@zf.jcu.cz> writes: > I have a question... How PG parser select (build-in) function? > Check parser function's arguments datetypes only or check returns value > datetype too (for function searching in system cache ..etc)? The argument types have to be different. In general, the parser doesn't *know* what the return type of the function is; it has to discover that by looking up the function. So you can't have two functions of the same name unless they differ in number and/or type of arguments. regards, tom lane
On Thu, 13 Jan 2000, Tom Lane wrote: > Karel Zak - Zakkr <zakkr@zf.jcu.cz> writes: > > I have a question... How PG parser select (build-in) function? > > Check parser function's arguments datetypes only or check returns value > > datetype too (for function searching in system cache ..etc)? > > The argument types have to be different. In general, the parser > doesn't *know* what the return type of the function is; it has to > discover that by looking up the function. So you can't have two > functions of the same name unless they differ in number and/or type > of arguments. Well, we must use the numeric version of to_number() only and parser must cast from numeric itself (but IMHO it is not effective convert in to_number() string to numeric and in parser convert numeric to other datetype. But if it not possible.. :-( Thank! Karel