]> granicus.if.org Git - postgresql/commitdiff
Improve ALTER POLICY tab completion.
authorRobert Haas <rhaas@postgresql.org>
Thu, 10 Dec 2015 17:28:46 +0000 (12:28 -0500)
committerRobert Haas <rhaas@postgresql.org>
Thu, 10 Dec 2015 17:28:46 +0000 (12:28 -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 b58ec14418f233c2b53196b455b2b78633ad7771..8c4888119d861e586395889a066e2df8a67981c4 100644 (file)
@@ -1459,6 +1459,10 @@ psql_completion(const char *text, int start, int end)
                COMPLETE_WITH_LIST(list_ALTERMATVIEW);
        }
 
+       /* ALTER POLICY <name> */
+       else if (pg_strcasecmp(prev2_wd, "ALTER") == 0 &&
+                        pg_strcasecmp(prev_wd, "POLICY") == 0)
+               COMPLETE_WITH_QUERY(Query_for_list_of_policies);
        /* ALTER POLICY <name> ON */
        else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
                         pg_strcasecmp(prev2_wd, "POLICY") == 0)
@@ -1467,7 +1471,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 <name> ON <table> - show options */
        else if (pg_strcasecmp(prev5_wd, "ALTER") == 0 &&
                         pg_strcasecmp(prev4_wd, "POLICY") == 0 &&