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.