Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Improve psql tab completion for options of subcriptions and publications
authorMichael Paquier <michael@paquier.xyz>
Fri, 11 Jun 2021 06:46:18 +0000 (15:46 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 11 Jun 2021 06:46:18 +0000 (15:46 +0900)
The list of options provided by the tab completion was outdated for the
following commands:
- ALTER SUBSCRIPTION
- CREATE SUBSCRIPTION
- ALTER PUBLICATION
- CREATE PUBLICATION

Author: Vignesh C
Reviewed-by: Bharath Rupireddy
Discussion: https://postgr.es/m/CALDaNm18oHDFu6SFCHE=ZbiO153Fx7E-L1MG0YyScbaDV--U+A@mail.gmail.com

src/bin/psql/tab-complete.c

index 32c1bdfdca74312e74e98a58a27e687621307e6c..bd8e9ea2f8aaaaed0a06c28adc80b01bf1a187ef 100644 (file)
@@ -1646,7 +1646,7 @@ psql_completion(const char *text, int start, int end)
        COMPLETE_WITH("(", "TABLE");
    /* ALTER PUBLICATION <name> SET ( */
    else if (HeadMatches("ALTER", "PUBLICATION", MatchAny) && TailMatches("SET", "("))
-       COMPLETE_WITH("publish");
+       COMPLETE_WITH("publish", "publish_via_partition_root");
    /* ALTER SUBSCRIPTION <name> */
    else if (Matches("ALTER", "SUBSCRIPTION", MatchAny))
        COMPLETE_WITH("CONNECTION", "ENABLE", "DISABLE", "OWNER TO",
@@ -1665,7 +1665,7 @@ psql_completion(const char *text, int start, int end)
        COMPLETE_WITH("(", "PUBLICATION");
    /* ALTER SUBSCRIPTION <name> SET ( */
    else if (HeadMatches("ALTER", "SUBSCRIPTION", MatchAny) && TailMatches("SET", "("))
-       COMPLETE_WITH("slot_name", "synchronous_commit");
+       COMPLETE_WITH("binary", "slot_name", "streaming", "synchronous_commit");
    /* ALTER SUBSCRIPTION <name> SET PUBLICATION */
    else if (HeadMatches("ALTER", "SUBSCRIPTION", MatchAny) && TailMatches("SET", "PUBLICATION"))
    {
@@ -2638,7 +2638,7 @@ psql_completion(const char *text, int start, int end)
        COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL);
    /* Complete "CREATE PUBLICATION <name> [...] WITH" */
    else if (HeadMatches("CREATE", "PUBLICATION") && TailMatches("WITH", "("))
-       COMPLETE_WITH("publish");
+       COMPLETE_WITH("publish", "publish_via_partition_root");
 
 /* CREATE RULE */
    /* Complete "CREATE [ OR REPLACE ] RULE <sth>" with "AS ON" */
@@ -2758,8 +2758,9 @@ psql_completion(const char *text, int start, int end)
        COMPLETE_WITH("WITH (");
    /* Complete "CREATE SUBSCRIPTION <name> ...  WITH ( <opt>" */
    else if (HeadMatches("CREATE", "SUBSCRIPTION") && TailMatches("WITH", "("))
-       COMPLETE_WITH("copy_data", "connect", "create_slot", "enabled",
-                     "slot_name", "synchronous_commit");
+       COMPLETE_WITH("binary", "connect", "copy_data", "create_slot",
+                     "enabled", "slot_name", "streaming",
+                     "synchronous_commit");
 
 /* CREATE TRIGGER --- is allowed inside CREATE SCHEMA, so use TailMatches */