Обсуждение: tab completion of IMPORT FOREIGN SCHEMA

Поиск
Список
Период
Сортировка

tab completion of IMPORT FOREIGN SCHEMA

От
Jeff Janes
Дата:
I use IMPORT FOREIGN SCHEMA a bit to set up systems for testing.  But not enough that I can ever remember whether INTO or FROM SERVER comes first in the syntax.

Here is an improvement to the tab completion, so I don't have to keep looking it up in the docs.

It accidentally (even before this patch) completes "IMPORT FOREIGN SCHEMA" with a list of local schemas.  This is probably wrong, but I find this convenient as I often do this in a loop-back setup where the list of foreign schema would be the same as the local ones.  So I don't countermand that behavior here.

Cheers,

Jeff
Вложения

Re: tab completion of IMPORT FOREIGN SCHEMA

От
Tom Lane
Дата:
Jeff Janes <jeff.janes@gmail.com> writes:
> It accidentally (even before this patch) completes "IMPORT FOREIGN SCHEMA"
> with a list of local schemas.  This is probably wrong, but I find this
> convenient as I often do this in a loop-back setup where the list of
> foreign schema would be the same as the local ones.  So I don't countermand
> that behavior here.

I don't see how psql could obtain a "real" list of foreign schemas
from an arbitrary FDW, even if it magically knew which server the
user would specify later in the command.  So this behavior seems fine.
It has some usefulness, while not completing at all would have none.

It might be a good idea to figure out where that completion is
happening and annotate it about this point.

            regards, tom lane



Re: tab completion of IMPORT FOREIGN SCHEMA

От
Michael Paquier
Дата:
On Sun, Aug 09, 2020 at 12:33:43PM -0400, Tom Lane wrote:
> I don't see how psql could obtain a "real" list of foreign schemas
> from an arbitrary FDW, even if it magically knew which server the
> user would specify later in the command.  So this behavior seems fine.
> It has some usefulness, while not completing at all would have none.

Sounds fine to me as well.  The LIMIT TO and EXCEPT clauses are
optional, so using TailMatches() looks fine.

+   else if (TailMatches("FROM", "SERVER", MatchAny, "INTO", MatchAny))
+       COMPLETE_WITH("OPTIONS")
Shouldn't you complete with "OPTIONS (" here?

It would be good to complete with "FROM SERVER" after specifying
EXCEPT or LIMIT TO, you can just use "(*)" to include the list of
tables in the list of elements checked.
--
Michael

Вложения

Re: tab completion of IMPORT FOREIGN SCHEMA

От
Michael Paquier
Дата:
On Mon, Aug 17, 2020 at 02:15:34PM +0900, Michael Paquier wrote:
> Sounds fine to me as well.  The LIMIT TO and EXCEPT clauses are
> optional, so using TailMatches() looks fine.
>
> +   else if (TailMatches("FROM", "SERVER", MatchAny, "INTO", MatchAny))
> +       COMPLETE_WITH("OPTIONS")
> Shouldn't you complete with "OPTIONS (" here?
>
> It would be good to complete with "FROM SERVER" after specifying
> EXCEPT or LIMIT TO, you can just use "(*)" to include the list of
> tables in the list of elements checked.

I have complete the patch with those parts as per the attached.  If
there are any objections or extra opinions, please feel free.
--
Michael

Вложения

Re: tab completion of IMPORT FOREIGN SCHEMA

От
Michael Paquier
Дата:
On Tue, Sep 15, 2020 at 02:56:40PM +0900, Michael Paquier wrote:
> I have completed the patch with those parts as per the attached.  If
> there are any objections or extra opinions, please feel free.

And done with 7307df1.
--
Michael

Вложения