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.