]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Improve tab-completion for ALTER MATERIALIZED VIEW.
authorFujii Masao <fujii@postgresql.org>
Thu, 21 Nov 2019 10:22:37 +0000 (19:22 +0900)
committerFujii Masao <fujii@postgresql.org>
Thu, 21 Nov 2019 10:22:37 +0000 (19:22 +0900)
Author: Takao Fujii
Reviewed-by: Fujii Masao
Discussion: https://postgr.es/m/f9dcdef78c124517edc9e5e5880f651e@oss.nttdata.com

src/bin/psql/tab-complete.c

index 98c917bf7aefd98483296d52d7e5ca57d1d0ed81..1578568a91cf96ab10d448d82e1801ca4d6d2034 100644 (file)
@@ -1801,9 +1801,22 @@ psql_completion(const char *text, int start, int end)
                                          "SET SCHEMA");
        /* ALTER MATERIALIZED VIEW <name> */
        else if (Matches("ALTER", "MATERIALIZED", "VIEW", MatchAny))
-               COMPLETE_WITH("ALTER COLUMN", "OWNER TO", "RENAME TO",
-                                         "SET SCHEMA");
-
+               COMPLETE_WITH("ALTER COLUMN", "CLUSTER ON", "DEPENDS ON EXTENSION",
+                                         "OWNER TO", "RENAME", "RESET (", "SET");
+       /* ALTER MATERIALIZED VIEW xxx RENAME */
+       else if (Matches("ALTER", "MATERIALIZED", "VIEW", MatchAny, "RENAME"))
+               COMPLETE_WITH_ATTR(prev2_wd, " UNION SELECT 'COLUMN' UNION SELECT 'TO'");
+       else if (Matches("ALTER", "MATERIALIZED", "VIEW", MatchAny, "ALTER|RENAME", "COLUMN"))
+               COMPLETE_WITH_ATTR(prev3_wd, "");
+       /* ALTER MATERIALIZED VIEW xxx RENAME yyy */
+       else if (Matches("ALTER", "MATERIALIZED", "VIEW", MatchAny, "RENAME", MatchAnyExcept("TO")))
+               COMPLETE_WITH("TO");
+       /* ALTER MATERIALIZED VIEW xxx RENAME COLUMN yyy */
+       else if (Matches("ALTER", "MATERIALIZED", "VIEW", MatchAny, "RENAME", "COLUMN", MatchAnyExcept("TO")))
+               COMPLETE_WITH("TO");
+       /* ALTER MATERIALIZED VIEW xxx SET */
+       else if (Matches("ALTER", "MATERIALIZED", "VIEW", MatchAny, "SET"))
+               COMPLETE_WITH("(", "SCHEMA", "TABLESPACE", "WITHOUT CLUSTER");
        /* ALTER POLICY <name> */
        else if (Matches("ALTER", "POLICY"))
                COMPLETE_WITH_QUERY(Query_for_list_of_policies);