From: Kevin Grittner Date: Mon, 12 Sep 2016 14:22:57 +0000 (-0500) Subject: Fix recent commit for tab-completion of database template. X-Git-Tag: REL_10_BETA1~1730 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=63c1a871940c7c4798788e98fdb1a24408a49d05;p=postgresql Fix recent commit for tab-completion of database template. The details of commit 52803098ab26051c0c9802f3c19edffc90de8843 were based on a misunderstanding of the role inheritance allowing use of a database for a template. While the CREATEDB privilege is not inherited, the database ownership is privileges are. Pointed out by Vitaly Burovoy and Tom Lane. Fix provided by Tom Lane, reviewed by Vitaly Burovoy. --- diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 3e2f0846e7..50a45eb928 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -601,9 +601,8 @@ static const SchemaQuery Query_for_list_of_matviews = { #define Query_for_list_of_template_databases \ "SELECT pg_catalog.quote_ident(d.datname) "\ " FROM pg_catalog.pg_database d "\ -" JOIN pg_catalog.pg_roles r ON r.rolname = CURRENT_USER "\ " WHERE substring(pg_catalog.quote_ident(d.datname),1,%d)='%s' "\ -" AND (d.datistemplate OR r.rolsuper OR d.datdba = r.oid)" +" AND (d.datistemplate OR pg_catalog.pg_has_role(d.datdba, 'USAGE'))" #define Query_for_list_of_databases \ "SELECT pg_catalog.quote_ident(datname) FROM pg_catalog.pg_database "\