@@ -3988,6 +3988,8 @@ psql_completion(const char *text, int start, int end)
3988
3988
COMPLETE_WITH_QUERY (Query_for_list_of_fdws );
3989
3989
else if (TailMatchesCS ("\\df*" ))
3990
3990
COMPLETE_WITH_VERSIONED_SCHEMA_QUERY (Query_for_list_of_functions ,NULL );
3991
+ else if (HeadMatchesCS ("\\df*" ))
3992
+ COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_datatypes ,NULL );
3991
3993
3992
3994
else if (TailMatchesCS ("\\dFd*" ))
3993
3995
COMPLETE_WITH_QUERY (Query_for_list_of_ts_dictionaries );
@@ -4005,6 +4007,9 @@ psql_completion(const char *text, int start, int end)
4005
4007
COMPLETE_WITH_QUERY (Query_for_list_of_languages );
4006
4008
else if (TailMatchesCS ("\\dn*" ))
4007
4009
COMPLETE_WITH_QUERY (Query_for_list_of_schemas );
4010
+ /* no support for completing operators, but we can complete types: */
4011
+ else if (HeadMatchesCS ("\\do*" ,MatchAny ))
4012
+ COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_datatypes ,NULL );
4008
4013
else if (TailMatchesCS ("\\dp" )|| TailMatchesCS ("\\z" ))
4009
4014
COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_grantables ,NULL );
4010
4015
else if (TailMatchesCS ("\\dPi*" ))