Improve tab-completion for CREATE PUBLICATION.
authorFujii Masao <fujii@postgresql.org>
Wed, 1 Sep 2021 13:01:15 +0000 (22:01 +0900)
committerFujii Masao <fujii@postgresql.org>
Wed, 1 Sep 2021 13:01:15 +0000 (22:01 +0900)
Author: Peter Smith
Reviewed-by: Vignesh C
Discussion: https://postgr.es/m/CAHut+Ps-vkmnWAShWSRVCB3gx8aM=bFoDqWgBNTzofK0q1LpwA@mail.gmail.com

src/bin/psql/tab-complete.c

index 76462412db59a403d446c28ea7594dadef958640..75b867685a6524c318f452d4056eb571a03fb410 100644 (file)
@@ -2691,8 +2691,13 @@ psql_completion(const char *text, int start, int end)
        COMPLETE_WITH("FOR TABLE", "FOR ALL TABLES", "WITH (");
    else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR"))
        COMPLETE_WITH("TABLE", "ALL TABLES");
-   /* Complete "CREATE PUBLICATION <name> FOR TABLE <table>, ..." */
-   else if (HeadMatches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE"))
+   else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL"))
+       COMPLETE_WITH("TABLES");
+   else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES")
+            || Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE", MatchAny))
+       COMPLETE_WITH("WITH (");
+   /* Complete "CREATE PUBLICATION <name> FOR TABLE" with "<table>, ..." */
+   else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE"))
        COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL);
    /* Complete "CREATE PUBLICATION <name> [...] WITH" */
    else if (HeadMatches("CREATE", "PUBLICATION") && TailMatches("WITH", "("))