vignesh C <vignes...@gmail.com> writes: > Hi, > > There were a couple of tab completion issues present: > a) \dRp and \dRs tab completion displays tables instead of displaying > publications and subscriptions. > b) "ALTER ... OWNER TO" does not include displaying of CURRENT_ROLE, > CURRENT_USER and SESSION_USER. > > The attached patch has the changes to handle the same.
Good catches! Just a few comments: > + else if (TailMatchesCS("\\dRp*")) > + COMPLETE_WITH_QUERY(Query_for_list_of_publications[0].query); > + else if (TailMatchesCS("\\dRs*")) > + COMPLETE_WITH_QUERY(Query_for_list_of_subscriptions[0].query); These are version-specific queries, so should be passed in their entirety to COMPLETE_WITH_VERSIONED_QUERY() so that psql can pick the right version, and avoid sending the query at all if the server is too old. > +/* add these to Query_for_list_of_roles in OWNER TO contexts */ > +#define Keywords_for_list_of_owner_to_roles \ > +"CURRENT_ROLE", "CURRENT_USER", "SESSION_USER" I think this would read better without the TO, both in the comment and the constant name, similar to the below only having GRANT without TO: > /* add these to Query_for_list_of_roles in GRANT contexts */ > #define Keywords_for_list_of_grant_roles \ > "PUBLIC", "CURRENT_ROLE", "CURRENT_USER", "SESSION_USER" - ilmari