Re: tab completion for setting search_path

Поиск
Список
Период
Сортировка
От Jeff Janes
Тема Re: tab completion for setting search_path
Дата
Msg-id CAMkU=1yo97bcGR-z6wg-OJpHKfEcaaaS=X1N7xYGxcUAKV5r9g@mail.gmail.com
обсуждение исходный текст
Ответ на Re: tab completion for setting search_path  (Andres Freund <andres@2ndquadrant.com>)
Ответы Re: tab completion for setting search_path
Re: tab completion for setting search_path
Список pgsql-hackers
On Sat, May 3, 2014 at 1:11 AM, Andres Freund <andres@2ndquadrant.com> wrote:
On 2014-05-03 00:13:45 -0700, Jeff Janes wrote:
> On Friday, May 2, 2014, Jeff Janes <jeff.janes@gmail.com> wrote:
>
> > I've been working with an app that uses a schema name whose spelling is
> > hard to type, and the lack of tab completion for "SET search_path TO" was
> > bugging me.  So see attached.
> >
> > I filter out the system schemata, but not public.

That'd be nice.

> diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
> new file mode 100644
> index 6d26ffc..dec3d4a
> *** a/src/bin/psql/tab-complete.c
> --- b/src/bin/psql/tab-complete.c
> *************** psql_completion(const char *text, int st
> *** 3230,3235 ****
> --- 3230,3242 ----
>
>                       COMPLETE_WITH_LIST(my_list);
>               }
> +             else if (pg_strcasecmp(prev2_wd, "search_path") == 0)
> +             {
> +                     COMPLETE_WITH_QUERY(Query_for_list_of_schemas
> +                                                             " AND nspname not like 'pg\\_%%' "
> +                                                             " AND nspname not like 'information_schema' "
> +                                                             " UNION SELECT 'DEFAULT' ");
> +             }

Why should we exclude system schemata? That seems more likely to be
confusing than helpful? I can see a point in excluding another backend's
temp tables, but otherwise?

I've personally never had a need to set the search_path to a system schema, and I guess I was implicitly modelling this on what is returned by \dn, not by \dnS.   I wouldn't object much to including them; that would be better than not having any completion.  I just don't see much point.

And now playing a bit with the system ones, I think it would be more confusing to offer them.  pg_catalog and pg_temp_<appropriate> always get searched, whether you put them in the search_path or not.

Cheers,

Jeff

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: 9.4 release notes
Следующее
От: Andres Freund
Дата:
Сообщение: [PATCH] Fix use of free in walsender error handling after a sysid mismatch.