I am having problems creating functions with PgAdmin. I have searched the
lists at archives.postgresql.org/pgadmin-support, but didn't find anything
about it.
The basic problem appears to be that PgAdmin may not be setting the
search_path properly when it issues its updates. The scenario is this:
I am working in a schema which is neither the public schema nor the name of
the current user. When I try create functions that take arguments that are
table names, postgres says it can't find the table. For example, if the
user is xxx and the schema is sss, the following should work
create or replace function sss.doit(sss.mytable) ...
If I create this function using psql, it works just fine. However, when I
look at the function in PgAdmin, I see this
create or replace function sss.doit(mytable)
(mytable has lost its schema prefix). Mods to the doit function using PgAdmin
result in the following error:
ERROR: Type "packet_tbl" does not exist.
A similar problem occurs when creating triggers. If doit (above) were a
trigger function (ie, returns trigger), PgAdmin lists it in the pulldown
when creating the trigger, but when it tries to create the trigger, the
following error occurs:
ERROR: CreateTrigger: function doit() does not exist.
I think it might be a search path issue that the GUI isn't handling properly.
Any help would be appreciated.
---
Michael