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
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 |