From fa3667ddaf66e17131165fb5a7395607da080a19 Mon Sep 17 00:00:00 2001
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: Wed, 27 Oct 2021 04:53:36 +0000
Subject: [PATCH v1] add docs and error test case for
 pg_log_backend_memory_contexts

The commit f0b051e322 missed to add docs related to permissions
and an error test case. This patch adds both of them.
---
 doc/src/sgml/func.sgml                       | 2 ++
 src/test/regress/expected/misc_functions.out | 4 ++++
 src/test/regress/sql/misc_functions.sql      | 4 ++++
 3 files changed, 10 insertions(+)

diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 4b49dff2ff..5be1d75063 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -25332,6 +25332,8 @@ SELECT collation for ('foo' COLLATE "de_DE");
         (See <xref linkend="runtime-config-logging"/> for more information),
         but will not be sent to the client regardless of
         <xref linkend="guc-client-min-messages"/>.
+        This function is restricted to superusers by default, but other users
+        can be granted EXECUTE to run the function.
        </para></entry>
       </row>
 
diff --git a/src/test/regress/expected/misc_functions.out b/src/test/regress/expected/misc_functions.out
index 71d316cad3..525d1e19c6 100644
--- a/src/test/regress/expected/misc_functions.out
+++ b/src/test/regress/expected/misc_functions.out
@@ -155,6 +155,10 @@ SELECT has_function_privilege('regress_log_memory',
  f
 (1 row)
 
+SET ROLE regress_log_memory;
+SELECT pg_log_backend_memory_contexts(pg_backend_pid()); -- ERROR
+ERROR:  permission denied for function pg_log_backend_memory_contexts
+RESET ROLE;
 GRANT EXECUTE ON FUNCTION pg_log_backend_memory_contexts(integer)
   TO regress_log_memory;
 SELECT has_function_privilege('regress_log_memory',
diff --git a/src/test/regress/sql/misc_functions.sql b/src/test/regress/sql/misc_functions.sql
index 8c23874b3f..c3cfd96046 100644
--- a/src/test/regress/sql/misc_functions.sql
+++ b/src/test/regress/sql/misc_functions.sql
@@ -46,6 +46,10 @@ CREATE ROLE regress_log_memory;
 SELECT has_function_privilege('regress_log_memory',
   'pg_log_backend_memory_contexts(integer)', 'EXECUTE'); -- no
 
+SET ROLE regress_log_memory;
+SELECT pg_log_backend_memory_contexts(pg_backend_pid()); -- ERROR
+RESET ROLE;
+
 GRANT EXECUTE ON FUNCTION pg_log_backend_memory_contexts(integer)
   TO regress_log_memory;
 
-- 
2.25.1

