@@ -3988,6 +3988,8 @@ psql_completion(const char *text, int start, int end)
39883988COMPLETE_WITH_QUERY (Query_for_list_of_fdws );
39893989else if (TailMatchesCS ("\\df*" ))
39903990COMPLETE_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 );
39913993
39923994else if (TailMatchesCS ("\\dFd*" ))
39933995COMPLETE_WITH_QUERY (Query_for_list_of_ts_dictionaries );
@@ -4005,6 +4007,9 @@ psql_completion(const char *text, int start, int end)
40054007COMPLETE_WITH_QUERY (Query_for_list_of_languages );
40064008else if (TailMatchesCS ("\\dn*" ))
40074009COMPLETE_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 );
40084013else if (TailMatchesCS ("\\dp" )|| TailMatchesCS ("\\z" ))
40094014COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_grantables ,NULL );
40104015else if (TailMatchesCS ("\\dPi*" ))