]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
doc: Add PROPERTY GRAPH to the access privilege tables
authorPeter Eisentraut <peter@eisentraut.org>
Tue, 4 Aug 2026 08:31:55 +0000 (10:31 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Tue, 4 Aug 2026 08:36:48 +0000 (10:36 +0200)
The SELECT privilege can be granted on a property graph, and its
privileges can be examined with psql's \dp command, but property
graphs were missing from both summary tables in the "Privileges"
section: the applicable object types for SELECT in the privilege
abbreviations table, and the per-object-type row in the summary of
access privileges table.  Add the missing entries so the tables match
the actual behavior described for the SELECT privilege and in GRANT.

While at it, also add a test for \dp on a property graph.

Author: Shinya Kato <shinya11.kato@gmail.com>
Reviewed-by: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/CAOzEurScgwLDXQmNFnDZANGAMMiva9GnLH_kO8qGtGVHUvVk2A%40mail.gmail.com

doc/src/sgml/ddl.sgml
src/test/regress/expected/privileges.out
src/test/regress/sql/privileges.sql

index 5e8c270ab3a8553ca6a5234fbba6ef5d6940a1dd..9006b947e74cdffd4a77f94b936b8606afc448eb 100644 (file)
@@ -2615,6 +2615,7 @@ REVOKE ALL ON accounts FROM PUBLIC;
       <entry><literal>r</literal> (<quote>read</quote>)</entry>
       <entry>
        <literal>LARGE OBJECT</literal>,
+       <literal>PROPERTY GRAPH</literal>,
        <literal>SEQUENCE</literal>,
        <literal>TABLE</literal> (and table-like objects),
        table column
@@ -2783,6 +2784,12 @@ REVOKE ALL ON accounts FROM PUBLIC;
       <entry>none</entry>
       <entry><literal>\dconfig+</literal></entry>
      </row>
+     <row>
+      <entry><literal>PROPERTY GRAPH</literal></entry>
+      <entry><literal>r</literal></entry>
+      <entry>none</entry>
+      <entry><literal>\dp</literal></entry>
+     </row>
      <row>
       <entry><literal>SCHEMA</literal></entry>
       <entry><literal>UC</literal></entry>
index fd18549e84efd2adee10bf1e64c6bb76a5c35aa7..5e3c9510490201c220386b576f881b2bf504078c 100644 (file)
@@ -3208,6 +3208,14 @@ select * from graph_table (ptg1 match (is atest5) COLUMNS (1 as value)) limit 0;
 
 grant select on property graph ptg1 to regress_priv_user2;
 set session role regress_priv_user2;
+\dp ptg1
+                                            Access privileges
+ Schema | Name |      Type      |            Access privileges            | Column privileges | Policies 
+--------+------+----------------+-----------------------------------------+-------------------+----------
+ public | ptg1 | property graph | regress_priv_user1=r/regress_priv_user1+|                   | 
+        |      |                | regress_priv_user2=r/regress_priv_user1 |                   | 
+(1 row)
+
 select * from graph_table (ptg1 match (is atest1) COLUMNS (1 as value)) limit 0; -- ok
  value 
 -------
index 6e0686da13186a24a511ad6cde2f3f5cffb1e48b..d3e87fa617fae21d904f2dcbc019ba380b83eeb5 100644 (file)
@@ -1892,6 +1892,7 @@ create property graph ptg1
 select * from graph_table (ptg1 match (is atest5) COLUMNS (1 as value)) limit 0; -- ok
 grant select on property graph ptg1 to regress_priv_user2;
 set session role regress_priv_user2;
+\dp ptg1
 select * from graph_table (ptg1 match (is atest1) COLUMNS (1 as value)) limit 0; -- ok
 -- select privileges on property graph but not table
 select * from graph_table (ptg1 match (is atest5) COLUMNS (1 as value)) limit 0; -- fails