Re: Issue with GRANT/COMMENT ON FUNCTION with default

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Jim Nasby <jim(at)nasby(dot)net>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Issue with GRANT/COMMENT ON FUNCTION with default
Date: 2014-05-05 20:22:50
Message-ID: 20140505202250.GO6018@eldon.alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Jim Nasby wrote:
> Prior to default parameters on functions, GRANT and COMMENT accepted full parameter syntax. IE:
>
> GRANT EXECUTE ON test(t text) TO public
>
> as opposed to regprocedure, which only accepts the data types ( test(text), not test(t text) ).
>
> They do not accept DEFAULT though:
>
> GRANT EXECUTE ON FUNCTION test(t text DEFAULT '') to public;
> ERROR: syntax error at or near "DEFAULT"
> LINE 1: GRANT EXECUTE ON FUNCTION test(t text DEFAULT '') to public;
>
> Presumably this is just an oversight?

I have to say that accepting DEFAULT there seems pretty odd to me. What
if you specify the wrong default? Do you get a "no such function"
error? That would be pretty unhelpful. But then accepting it ignoring
the fact that the default is wrong would be rather strange.

> Related to that, is it intentional that the regprocedure cast
> disallows *any* decorators to the function, other than type? If
> regprocedure at least accepted the full function parameter definition
> you could use it to get a definitive reference to a function.

Does pg_identify_object() give you what you want?

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2014-05-05 20:31:59 Re: 9.4 release notes
Previous Message Peter Geoghegan 2014-05-05 20:17:32 Re: 9.4 release notes