Re: Fix some newly modified tab-complete changes - Mailing list pgsql-hackers

From Peter Smith
Subject Re: Fix some newly modified tab-complete changes
Date
Msg-id CAHut+PvidpNEYjWmO7jqENn35dwCNmPgFXGmDdHzd-LgdDwQ4w@mail.gmail.com
Whole thread Raw
In response to Fix some newly modified tab-complete changes  ("shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>)
Responses Re: Fix some newly modified tab-complete changes
List pgsql-hackers
On Tue, Sep 27, 2022 at 8:28 PM shiy.fnst@fujitsu.com
<shiy.fnst@fujitsu.com> wrote:
>
> Hi hackers,
>
> I saw a problem when using tab-complete for "GRANT", "TABLES IN SCHEMA" should
> be "ALL TABLES IN SCHEMA" in the following case.
>
> postgres=# grant all on
> ALL FUNCTIONS IN SCHEMA   DATABASE                  FUNCTION                  PARAMETER                 SCHEMA
           TABLESPACE 
> ALL PROCEDURES IN SCHEMA  DOMAIN                    information_schema.       PROCEDURE                 SEQUENCE
           tbl 
> ALL ROUTINES IN SCHEMA    FOREIGN DATA WRAPPER      LANGUAGE                  public.                   TABLE
           TYPE 
> ALL SEQUENCES IN SCHEMA   FOREIGN SERVER            LARGE OBJECT              ROUTINE                   TABLES IN
SCHEMA
>
> I found that it is related to the recent commit 790bf615dd, and maybe it's
> better to fix it. I also noticed that some comments should be modified according
> to this new syntax. Attach a patch to fix them.
>

Thanks for the patch! Below are my review comments.

The patch looks good to me but I did find some other tab-completion
anomalies. IIUC these are unrelated to your work, but since I found
them while testing your patch I am reporting them here.

Perhaps you want to fix them in the same patch, or just raise them
again separately?

======

1. tab complete for CREATE PUBLICATION

I don’t think this is any new bug, but I found that it is possible to do this...

test_pub=# create publication p for ALL TABLES IN SCHEMA <tab>
information_schema  pg_catalog          pg_toast            public

or, even this...

test_pub=# create publication p for XXX TABLES IN SCHEMA <tab>
information_schema  pg_catalog          pg_toast            public

======

2. tab complete for GRANT

test_pub=# grant <tab>
ALL                        EXECUTE
pg_execute_server_program  pg_read_server_files       postgres
          TRIGGER
ALTER SYSTEM               GRANT                      pg_monitor
          pg_signal_backend          REFERENCES
TRUNCATE
CONNECT                    INSERT                     pg_read_all_data
          pg_stat_scan_tables        SELECT                     UPDATE
CREATE                     pg_checkpoint
pg_read_all_settings       pg_write_all_data          SET
          USAGE
DELETE                     pg_database_owner
pg_read_all_stats          pg_write_server_files      TEMPORARY

2a.
grant "GRANT" ??

~

2b.
grant "TEMPORARY" but not "TEMP" ??

------
Kind Regards,
Peter Smith.
Fujitsu Australia.



pgsql-hackers by date:

Previous
From: Dilip Kumar
Date:
Subject: Re: longfin and tamandua aren't too happy but I'm not sure why
Next
From: Michael Paquier
Date:
Subject: Re: Avoid memory leaks during base backups