Thread: Tab completion for CREATE TABLE ... AS

Tab completion for CREATE TABLE ... AS

From
Gilles Darold
Date:
Hi,


Look like the tab completion for CREATE TABLE ... AS is not proposed.


gilles=# CREATE TABLE test
(             OF            PARTITION OF

  The attached patch fix that and also propose the further completion 
after the AS keyword.


gilles=# CREATE TABLE test
(             AS            OF            PARTITION OF
gilles=# CREATE TABLE test AS
SELECT  WITH

Adding the patch to current commitfest.


Best regards,

-- 
Gilles Darold
http://www.darold.net/

Attachment

Re: Tab completion for CREATE TABLE ... AS

From
Jim Jones
Date:
Hi

On 02.11.23 17:27, Gilles Darold wrote:
> Hi,
>
>
> Look like the tab completion for CREATE TABLE ... AS is not proposed.
>
>
> gilles=# CREATE TABLE test
> (             OF            PARTITION OF
>
>  The attached patch fix that and also propose the further completion
> after the AS keyword.
>
>
> gilles=# CREATE TABLE test
> (             AS            OF            PARTITION OF
> gilles=# CREATE TABLE test AS
> SELECT  WITH
>
> Adding the patch to current commitfest.
>
>
> Best regards,
>

Thanks for the patch!
It applies and builds cleanly, and it works as expected

"AS" is suggested after "CREATE TABLE t":

postgres=# CREATE TABLE t <TAB><TAB>
(             AS            OF            PARTITION OF


-- 
Jim




Re: Tab completion for CREATE TABLE ... AS

From
Michael Paquier
Date:
On Thu, Nov 02, 2023 at 07:27:02PM +0300, Gilles Darold wrote:
> Look like the tab completion for CREATE TABLE ... AS is not
> proposed.
>
> +    /* Complete CREATE TABLE <name> AS with list of keywords */
> +    else if (TailMatches("CREATE", "TABLE", MatchAny, "AS") ||
> +             TailMatches("CREATE", "TEMP|TEMPORARY|UNLOGGED", "TABLE", MatchAny, "AS"))
> +        COMPLETE_WITH("SELECT", "WITH");

There is a bit more than SELECT and WITH as possible query for a CTAS.
How about VALUES, TABLE or even EXECUTE (itself able to handle a
SELECT, TABLE or VALUES)?
--
Michael

Attachment

Re: Tab completion for CREATE TABLE ... AS

From
Gilles Darold
Date:
Le 15/11/2023 à 03:58, Michael Paquier a écrit :
> On Thu, Nov 02, 2023 at 07:27:02PM +0300, Gilles Darold wrote:
>> Look like the tab completion for CREATE TABLE ... AS is not
>> proposed.
>>
>> +    /* Complete CREATE TABLE <name> AS with list of keywords */
>> +    else if (TailMatches("CREATE", "TABLE", MatchAny, "AS") ||
>> +             TailMatches("CREATE", "TEMP|TEMPORARY|UNLOGGED", "TABLE", MatchAny, "AS"))
>> +        COMPLETE_WITH("SELECT", "WITH");
> There is a bit more than SELECT and WITH as possible query for a CTAS.
> How about VALUES, TABLE or even EXECUTE (itself able to handle a
> SELECT, TABLE or VALUES)?
> --
> Michael

Right, I don't know how I have missed the sql-createtableas page in the 
documentation.

Patched v2 fixes the keyword list, I have also sorted by alphabetical 
order the CREATE TABLE completion (AS was at the end of the list).

It has also been re-based on current master.

-- 
Gilles Darold
http://www.darold.net/

Attachment

Re: Tab completion for CREATE TABLE ... AS

From
Michael Paquier
Date:
On Wed, Nov 15, 2023 at 05:26:58PM +0300, Gilles Darold wrote:
> Right, I don't know how I have missed the sql-createtableas page in the
> documentation.
>
> Patched v2 fixes the keyword list, I have also sorted by alphabetical order
> the CREATE TABLE completion (AS was at the end of the list).
>
> It has also been re-based on current master.

Fun.  It has failed to apply here.

Anyway, I can see that a comment update has been forgotten.  A second
thing is that it requires two more lines to add the query keywords for
the case where a CTAS has a list of column names.  I've added both
changes, and applied the patch on HEAD.  That's not all the patterns
possible, but this covers the most useful ones.
--
Michael

Attachment