mirror of
https://github.com/postgres/postgres.git
synced 2025-07-02 09:02:37 +03:00
Show opclass and opfamily related information in psql
This commit provides psql commands for listing operator classes, operator families and its contents in psql. New commands will be useful for exploring capabilities of both builtin opclasses/opfamilies as well as opclasses/opfamilies defined in extensions. Discussion: https://postgr.es/m/1529675324.14193.5.camel%40postgrespro.ru Author: Sergey Cherkashin, Nikita Glukhov, Alexander Korotkov Reviewed-by: Michael Paquier, Alvaro Herrera, Arthur Zakirov Reviewed-by: Kyotaro Horiguchi, Andres Freund
This commit is contained in:
@ -510,6 +510,13 @@ static const SchemaQuery Query_for_list_of_partitioned_relations = {
|
||||
.result = "pg_catalog.quote_ident(c.relname)",
|
||||
};
|
||||
|
||||
static const SchemaQuery Query_for_list_of_operator_families = {
|
||||
.catname = "pg_catalog.pg_opfamily c",
|
||||
.viscondition = "pg_catalog.pg_opfamily_is_visible(c.oid)",
|
||||
.namespace = "c.opfnamespace",
|
||||
.result = "pg_catalog.quote_ident(c.opfname)",
|
||||
};
|
||||
|
||||
/* Relations supporting INSERT, UPDATE or DELETE */
|
||||
static const SchemaQuery Query_for_list_of_updatables = {
|
||||
.catname = "pg_catalog.pg_class c",
|
||||
@ -1462,7 +1469,8 @@ psql_completion(const char *text, int start, int end)
|
||||
"\\a",
|
||||
"\\connect", "\\conninfo", "\\C", "\\cd", "\\copy",
|
||||
"\\copyright", "\\crosstabview",
|
||||
"\\d", "\\da", "\\dA", "\\db", "\\dc", "\\dC", "\\dd", "\\ddp", "\\dD",
|
||||
"\\d", "\\da", "\\dA", "\\dAc", "\\dAf", "\\dAo", "\\dAp",
|
||||
"\\db", "\\dc", "\\dC", "\\dd", "\\ddp", "\\dD",
|
||||
"\\des", "\\det", "\\deu", "\\dew", "\\dE", "\\df",
|
||||
"\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl", "\\dL",
|
||||
"\\dm", "\\dn", "\\do", "\\dO", "\\dp", "\\dP", "\\dPi", "\\dPt",
|
||||
@ -3698,6 +3706,12 @@ psql_completion(const char *text, int start, int end)
|
||||
}
|
||||
else if (TailMatchesCS("\\da*"))
|
||||
COMPLETE_WITH_VERSIONED_SCHEMA_QUERY(Query_for_list_of_aggregates, NULL);
|
||||
else if (TailMatchesCS("\\dAc*", MatchAny) ||
|
||||
TailMatchesCS("\\dAf*", MatchAny))
|
||||
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_datatypes, NULL);
|
||||
else if (TailMatchesCS("\\dAo*", MatchAny) ||
|
||||
TailMatchesCS("\\dAp*", MatchAny))
|
||||
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_operator_families, NULL);
|
||||
else if (TailMatchesCS("\\dA*"))
|
||||
COMPLETE_WITH_QUERY(Query_for_list_of_access_methods);
|
||||
else if (TailMatchesCS("\\db*"))
|
||||
|
Reference in New Issue
Block a user