tab completion of IMPORT FOREIGN SCHEMA

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

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

foreign_schema_tab_complete.patch (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: tab completion of IMPORT FOREIGN SCHEMA

Tom Lane-2
Jeff Janes <[hidden email]> 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


Reply | Threaded
Open this post in threaded view
|

Re: tab completion of IMPORT FOREIGN SCHEMA

Michael Paquier-2
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

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: tab completion of IMPORT FOREIGN SCHEMA

Michael Paquier-2
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

foreign_schema_tab_complete_v2.patch (996 bytes) Download Attachment
signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: tab completion of IMPORT FOREIGN SCHEMA

Michael Paquier-2
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

signature.asc (849 bytes) Download Attachment