Hi, Improved tab completion for "ALTER DEFAULT PRIVILEGE" and "ALTER TABLE": 1) GRANT, REVOKE and FOR USER keyword was not displayed in tab completion of alter default privileges like the below statement: ALTER DEFAULT PRIVILEGES GRANT INSERT ON tables TO PUBLIC; ALTER DEFAULT PRIVILEGES REVOKE INSERT ON tables FROM PUBLIC; ALTER DEFAULT PRIVILEGES FOR USER vignesh revoke INSERT ON tables FROM dba1;
2) USER was not displayed for "ALTER DEFAULT PRIVILEGES IN SCHEMA public FOR " like in below statement: ALTER DEFAULT PRIVILEGES IN SCHEMA public FOR USER dba1 GRANT INSERT ON TABLES TO PUBLIC; 3) "FOR GRANT OPTION" was not display for "ALTER DEFAULT PRIVILEGES REVOKE " like in below statement: alter default privileges revoke grant option for select ON tables FROM dba1; 4) "DATA TYPE" was missing in "ALTER TABLE table-name ALTER COLUMN column-name SET" like in: ALTER TABLE t1 ALTER COLUMN c1 SET DATA TYPE text; Attached patch has the changes for the same. Regards, Vignesh
From de80163a02d5d528402b3547bec09f5207ead9d2 Mon Sep 17 00:00:00 2001 From: Vignesh C <vignes...@gmail.com> Date: Sun, 2 Jul 2023 19:35:46 +0530 Subject: [PATCH 1/2] Fix missing tab completion in "ALTER DEFAULT PRIVILEGES" GRANT, REVOKE and FOR USER keyword was not displayed in tab completion of alter default prvileges like the below statement: ALTER DEFAULT PRIVILEGES GRANT INSERT ON tables TO PUBLIC; ALTER DEFAULT PRIVILEGES REVOKE INSERT ON tables FROM PUBLIC; ALTER DEFAULT PRIVILEGES FOR USER vignesh revoke INSERT ON tables FROM vignesh; USER was not displayed for "ALTER DEFAULT PRIVILEGES IN SCHEMA public FOR " like in below statement: ALTER DEFAULT PRIVILEGES IN SCHEMA public FOR USER vignesh GRANT INSERT ON TABLES TO PUBLIC; "FOR GRANT OPTION" was not display for "ALTER DEFAULT PRIVILEGES REVOKE " like in below statement: alter default privileges revoke grant option for select ON tables FROM testdba; --- src/bin/psql/tab-complete.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 935bb9bd95..73502b0b95 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -2137,10 +2137,15 @@ psql_completion(const char *text, int start, int end) /* ALTER DEFAULT PRIVILEGES */ else if (Matches("ALTER", "DEFAULT", "PRIVILEGES")) - COMPLETE_WITH("FOR ROLE", "IN SCHEMA"); + COMPLETE_WITH("FOR", "GRANT", "IN SCHEMA", "REVOKE"); /* ALTER DEFAULT PRIVILEGES FOR */ else if (Matches("ALTER", "DEFAULT", "PRIVILEGES", "FOR")) - COMPLETE_WITH("ROLE"); + COMPLETE_WITH("ROLE", "USER"); + /* ALTER DEFAULT PRIVILEGES REVOKE */ + else if (Matches("ALTER", "DEFAULT", "PRIVILEGES", "REVOKE")) + COMPLETE_WITH("SELECT", "INSERT", "UPDATE", "DELETE", "TRUNCATE", + "REFERENCES", "TRIGGER", "CREATE", "EXECUTE", "USAGE", + "MAINTAIN", "ALL", "GRANT OPTION FOR"); /* ALTER DEFAULT PRIVILEGES IN */ else if (Matches("ALTER", "DEFAULT", "PRIVILEGES", "IN")) COMPLETE_WITH("SCHEMA"); @@ -2151,11 +2156,11 @@ psql_completion(const char *text, int start, int end) /* ALTER DEFAULT PRIVILEGES IN SCHEMA ... */ else if (Matches("ALTER", "DEFAULT", "PRIVILEGES", "IN", "SCHEMA", MatchAny)) - COMPLETE_WITH("GRANT", "REVOKE", "FOR ROLE"); + COMPLETE_WITH("GRANT", "REVOKE", "FOR"); /* ALTER DEFAULT PRIVILEGES IN SCHEMA ... FOR */ else if (Matches("ALTER", "DEFAULT", "PRIVILEGES", "IN", "SCHEMA", MatchAny, "FOR")) - COMPLETE_WITH("ROLE"); + COMPLETE_WITH("ROLE", "USER"); /* ALTER DEFAULT PRIVILEGES FOR ROLE|USER ... IN SCHEMA ... */ /* ALTER DEFAULT PRIVILEGES IN SCHEMA ... FOR ROLE|USER ... */ else if (Matches("ALTER", "DEFAULT", "PRIVILEGES", "FOR", "ROLE|USER", -- 2.34.1
From 7ff5cd41e5c1a33bcb91e1d32537556cb9808923 Mon Sep 17 00:00:00 2001 From: Vignesh C <vignes...@gmail.com> Date: Sun, 2 Jul 2023 19:53:50 +0530 Subject: [PATCH 2/2] Fix missing tab completion in "ALTER TABLE table-name ALTER COLUMN column-name SET" "DATA TYPE" was missing in "ALTER TABLE table-name ALTER COLUMN column-name SET" lke in: ALTER TABLE t1 ALTER COLUMN c1 SET DATA TYPE text; --- src/bin/psql/tab-complete.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 73502b0b95..c71235462a 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -2488,7 +2488,7 @@ psql_completion(const char *text, int start, int end) /* ALTER TABLE ALTER [COLUMN] <foo> SET */ else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny, "SET") || Matches("ALTER", "TABLE", MatchAny, "ALTER", MatchAny, "SET")) - COMPLETE_WITH("(", "COMPRESSION", "DEFAULT", "GENERATED", "NOT NULL", "STATISTICS", "STORAGE", + COMPLETE_WITH("(", "COMPRESSION", "DATA TYPE", "DEFAULT", "GENERATED", "NOT NULL", "STATISTICS", "STORAGE", /* a subset of ALTER SEQUENCE options */ "INCREMENT", "MINVALUE", "MAXVALUE", "START", "NO", "CACHE", "CYCLE"); /* ALTER TABLE ALTER [COLUMN] <foo> SET ( */ -- 2.34.1