Re: psql \sf doesn't show it's SQL when ECHO_HIDDEN is on
От | Andrew Dunstan |
---|---|
Тема | Re: psql \sf doesn't show it's SQL when ECHO_HIDDEN is on |
Дата | |
Msg-id | 546F9E7C.5070209@dunslane.net обсуждение исходный текст |
Ответ на | Re: psql \sf doesn't show it's SQL when ECHO_HIDDEN is on (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On 11/21/2014 02:44 PM, Tom Lane wrote: > Andrew Dunstan <andrew@dunslane.net> writes: >> Well, now we get things like this: >> ERROR: more than one function named "abc" >> LINE 1: SELECT 'abc'::pg_catalog.regproc::pg_catalog.oid >> whereas minimal_error_message suppressed the second line. If we want to >> preserve that older behaviour we'll have to abandon use of PSQLexec. But >> it's not so complex that that would be a huge issue. > Yeah, the reason why we wrote that code to begin with was that there > were a bunch of user-facing error cases that would be reported by > regproc_in/regprocedure_in, and we didn't want to clutter those error > reports with the underlying queries. > > I'm not sure how I feel about changing this. Making these queries subject > to ECHO_HIDDEN seems like we're exposing them to users to some extent > anyway, and maybe it's not worth dozens of lines of code (and duplicating > large parts of PSQLexec) to avoid the extra output. On the other hand > this output doesn't seem very nice from a fit-and-finish standpoint. Here's a patch that I think does what you want. I didn't have to borrow too much code from PSQLexec(). Sample session: andrew=# \sf abc ERROR: more than one function named "abc" andrew=# \sf blurfl ERROR: function "blurfl" does not exist andrew=# \sf abc() CREATE OR REPLACE FUNCTION public.abc() RETURNS integer LANGUAGE sql AS $function$ select 1$function$ andrew=# \set ECHO_HIDDEN 1 andrew=# \sf abc() ********* QUERY ********** SELECT 'abc()'::pg_catalog.regprocedure::pg_catalog.oid ************************** ********* QUERY ********** SELECT pg_catalog.pg_get_functiondef(16385) ************************** CREATE OR REPLACE FUNCTION public.abc() RETURNS integer LANGUAGE sql AS $function$ select 1$function$ andrew=# \sf abc ********* QUERY ********** SELECT 'abc'::pg_catalog.regproc::pg_catalog.oid ************************** ERROR: more than one function named "abc" andrew=# cheers andrew
Вложения
В списке pgsql-hackers по дате отправления: