On Fri, Mar 4, 2011 at 1:48 PM, Bosco Rama <postgres@xxxxxxxxxxxxx> wrote:
Matt Warner wrote:This looks like you defined the function in template1 *after* you created the
> No luck:
>
> *** as postgres
> postgres=# GRANT all on function nvl(anyelement,anyelement) to public;
> GRANT
> postgres=#
>
> *** as unprivileged user
> offload=> select nvl(0,1);
> ERROR: function nvl(integer, integer) does not exist
> LINE 1: select nvl(0,1);
> ^
> HINT: No function matches the given name and argument types. You might need
> to add explicit type casts.
user's DB. Or never defined it there at all.
Try defining the function in the user's DB itself or, if able, recreate the
user's DB after defining it in template1.
HTH.
Bosco.
The function cannot be defined in the user's DB because "language C" is considered a security risk, so only the superuser can do that. Or that's what I get from reading anyway...
Recreating the user DB is problematic because there are already tables in place.
Matt