Improved tab completion for CLUSTER VERBOSE.

Jeff Janes
This commit is contained in:
Robert Haas 2012-08-20 16:45:44 -04:00
parent 68386fc15b
commit 029722ac8e
1 changed files with 28 additions and 2 deletions

View File

@ -1661,14 +1661,29 @@ psql_completion(char *text, int start, int end)
/* CLUSTER */
/*
* If the previous word is CLUSTER and not without produce list of tables
* If the previous word is CLUSTER and not WITHOUT produce list of tables
*/
else if (pg_strcasecmp(prev_wd, "CLUSTER") == 0 &&
pg_strcasecmp(prev2_wd, "WITHOUT") != 0)
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, "UNION SELECT 'VERBOSE'");
/*
* If the previous words are CLUSTER VERBOSE produce list of tables
*/
else if (pg_strcasecmp(prev_wd, "VERBOSE") == 0 &&
pg_strcasecmp(prev2_wd, "CLUSTER") == 0)
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL);
/* If we have CLUSTER <sth>, then add "USING" */
else if (pg_strcasecmp(prev2_wd, "CLUSTER") == 0 &&
pg_strcasecmp(prev_wd, "ON") != 0)
pg_strcasecmp(prev_wd, "ON") != 0 &&
pg_strcasecmp(prev_wd, "VERBOSE") != 0)
{
COMPLETE_WITH_CONST("USING");
}
/* If we have CLUSTER VERBOSE <sth>, then add "USING" */
else if (pg_strcasecmp(prev3_wd, "CLUSTER") == 0 &&
pg_strcasecmp(prev2_wd, "VERBOSE") == 0)
{
COMPLETE_WITH_CONST("USING");
}
@ -1683,6 +1698,17 @@ psql_completion(char *text, int start, int end)
COMPLETE_WITH_QUERY(Query_for_index_of_table);
}
/*
* If we have CLUSTER VERBOSE <sth> USING, then add the index as well.
*/
else if (pg_strcasecmp(prev4_wd, "CLUSTER") == 0 &&
pg_strcasecmp(prev3_wd, "VERBOSE") == 0 &&
pg_strcasecmp(prev_wd, "USING") == 0)
{
completion_info_charp = prev2_wd;
COMPLETE_WITH_QUERY(Query_for_index_of_table);
}
/* COMMENT */
else if (pg_strcasecmp(prev_wd, "COMMENT") == 0)
COMPLETE_WITH_CONST("ON");