Improve ALTER POLICY tab completion.
authorRobert Haas
Thu, 10 Dec 2015 17:28:46 +0000 (12:28 -0500)
committerRobert Haas
Thu, 10 Dec 2015 17:34:56 +0000 (12:34 -0500)
Complete "ALTER POLICY" with a policy name, as we do for DROP POLICY.
And, complete "ALTER POLICY polname ON" with a table name that has such
a policy, as we do for DROP POLICY, rather than with any table name
at all.

Masahiko Sawada

src/bin/psql/tab-complete.c

index 77af953003b1a64f6601047fed8993fb3136a1ab..303e23fa06d9a6e68df4297b31e4e6fccc7a3723 100644 (file)
@@ -1426,6 +1426,10 @@ psql_completion(const char *text, int start, int end)
        COMPLETE_WITH_LIST(list_ALTERMATVIEW);
    }
 
+   /* ALTER POLICY  */
+   else if (pg_strcasecmp(prev2_wd, "ALTER") == 0 &&
+            pg_strcasecmp(prev_wd, "POLICY") == 0)
+       COMPLETE_WITH_QUERY(Query_for_list_of_policies);
    /* ALTER POLICY  ON */
    else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
             pg_strcasecmp(prev2_wd, "POLICY") == 0)
@@ -1434,7 +1438,10 @@ psql_completion(const char *text, int start, int end)
    else if (pg_strcasecmp(prev4_wd, "ALTER") == 0 &&
             pg_strcasecmp(prev3_wd, "POLICY") == 0 &&
             pg_strcasecmp(prev_wd, "ON") == 0)
-       COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL);
+   {
+       completion_info_charp = prev2_wd;
+       COMPLETE_WITH_QUERY(Query_for_list_of_tables_for_policy);
+   }
    /* ALTER POLICY  ON  - show options */
    else if (pg_strcasecmp(prev5_wd, "ALTER") == 0 &&
             pg_strcasecmp(prev4_wd, "POLICY") == 0 &&