On Tue, Sep 27, 2022 at 8:28 PM shiy.f...@fujitsu.com
<shiy.f...@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.


Reply via email to