From 22270b7e8051a19435e9db5c5a7bf02c235fb1a6 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 25 Feb 2026 10:41:48 +0100 Subject: [PATCH 08/10] Fix dumping of property graph privileges --- src/bin/pg_dump/dumputils.c | 3 +++ src/bin/pg_dump/pg_dump.c | 16 ++++++++++++++-- src/bin/pg_dump/t/002_pg_dump.pl | 16 ++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/bin/pg_dump/dumputils.c b/src/bin/pg_dump/dumputils.c index 5bc77fed974..dfb1f603a43 100644 --- a/src/bin/pg_dump/dumputils.c +++ b/src/bin/pg_dump/dumputils.c @@ -510,6 +510,9 @@ do { \ /* UPDATE */ CONVERT_PRIV('w', "UPDATE"); } + else if (strcmp(type, "PROPERTY GRAPH") == 0 || + strcmp(type, "PROPERTY GRAPHS") == 0) + CONVERT_PRIV('r', "SELECT"); else if (strcmp(type, "FUNCTION") == 0 || strcmp(type, "FUNCTIONS") == 0) CONVERT_PRIV('X', "EXECUTE"); diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 73a860378b2..36284c71ddd 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -16904,8 +16904,20 @@ dumpTable(Archive *fout, const TableInfo *tbinfo) namecopy = pg_strdup(fmtId(tbinfo->dobj.name)); if (tbinfo->dobj.dump & DUMP_COMPONENT_ACL) { - const char *objtype = - (tbinfo->relkind == RELKIND_SEQUENCE) ? "SEQUENCE" : "TABLE"; + const char *objtype; + + switch (tbinfo->relkind) + { + case RELKIND_SEQUENCE: + objtype = "SEQUENCE"; + break; + case RELKIND_PROPGRAPH: + objtype = "PROPERTY GRAPH"; + break; + default: + objtype = "TABLE"; + break; + } tableAclDumpId = dumpACL(fout, tbinfo->dobj.dumpId, InvalidDumpId, diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl index 0ddf4acb754..b18aae7bd67 100644 --- a/src/bin/pg_dump/t/002_pg_dump.pl +++ b/src/bin/pg_dump/t/002_pg_dump.pl @@ -4455,6 +4455,22 @@ }, }, + 'GRANT SELECT ON PROPERTY GRAPH propgraph' => { + create_order => 21, + create_sql => + 'GRANT SELECT ON PROPERTY GRAPH dump_test.propgraph TO regress_dump_test_role;', + regexp => qr/^ + \QGRANT ALL ON PROPERTY GRAPH dump_test.propgraph TO regress_dump_test_role;\E + /xm, + like => + { %full_runs, %dump_test_schema_runs, section_pre_data => 1, }, + unlike => { + exclude_dump_test_schema => 1, + no_privs => 1, + only_dump_measurement => 1, + }, + }, + 'GRANT EXECUTE ON FUNCTION pg_sleep() TO regress_dump_test_role' => { create_order => 16, create_sql => 'GRANT EXECUTE ON FUNCTION pg_sleep(float8) -- 2.53.0