BUG #3695: Pgsql does not report non existing function
The following bug has been logged online:
Bug reference: 3695
Logged by: Roger
Email address: ramoloney@hotmail.com
PostgreSQL version: 8.3
Operating system: Windows
Description: Pgsql does not report non existing function
Details:
I've looked at 8.3 on windows and I'm using 8.2.5 actively for a large
company project on linux.
I have a big problem with Postgres not reporting functions that do not
exist. It makes developing on large projects very very awkward.
For example, if I have a pgsql function which makes a call to
x := DAY(timestamp);
This is not reported. It does not exist. Likewise, if I had a function
MyFunc which does exist which requires 3 parameters, the following also are
not reported:
x := myfunc();
x := myfunc(p1)
x := myfunc(p2);
Sureley, the plgsql parser SHOULD report this. It occurs frequently when
porting to postgres from existing database systems.
Am I missing some switch that I can turn on ?
Thanks in advance.
"Roger" <ramoloney@hotmail.com> writes:
Description: Pgsql does not report non existing function
Works fine for me:
regression=# create function foo() returns int as $$
regression$# declare x int;
regression$# begin
regression$# x := nosuchfunc(42);
regression$# end$$ language plpgsql;
CREATE FUNCTION
regression=# select foo();
ERROR: function nosuchfunc(integer) does not exist
LINE 1: SELECT nosuchfunc(42)
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
QUERY: SELECT nosuchfunc(42)
CONTEXT: PL/pgSQL function "foo" line 3 at assignment
regression=#
regards, tom lane