From 63c1a871940c7c4798788e98fdb1a24408a49d05 Mon Sep 17 00:00:00 2001 From: Kevin Grittner Date: Mon, 12 Sep 2016 09:22:57 -0500 Subject: [PATCH] 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. --- src/bin/psql/tab-complete.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 "\