postgres.git / summary / log / commit / refs
commit 2a7e95b659df2903420e27542e9127c50e8f2a17
Author: Peter Eisentraut <peter@eisentraut.org>
Date: Tue Jun 23 06:58:16 2026 +0000
Readable identity strings for property graph objects
The "identity" column of pg_identify_object() for property graph
objects can be long string of names connected by "of", e.g. "a of l of
e of g". The type of the first named object is given by column
"type". But the types of intermediate objects are not easy to find
from the identity string especially when some of them share the same
name. Some objects, like user mappings or authorization identifier
members, add types of objects other than the first one in the identity
string. Do the same for property graph objects.
Author: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://www.postgresql.org/message-id/flat/aej1DkLwhyZWmtxJ%40bdtpg
src/backend/catalog/objectaddress.c | 10 ++---
.../regress/expected/create_property_graph.out | 50 +++++++++++-----------
2 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index de3ab11dd34..af0e4703616 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -6172,7 +6172,7 @@ getObjectIdentityParts(const ObjectAddress *object,
break;
}
pge = (Form_pg_propgraph_element) GETSTRUCT(tup);
- appendStringInfo(&buffer, "%s of ", quote_identifier(NameStr(pge->pgealias)));
+ appendStringInfo(&buffer, "%s of property graph ", quote_identifier(NameStr(pge->pgealias)));
getRelationIdentity(&buffer, pge->pgepgid, objname, false);
if (objname)
@@ -6196,7 +6196,7 @@ getObjectIdentityParts(const ObjectAddress *object,
}
pgl = (Form_pg_propgraph_label) GETSTRUCT(tup);
- appendStringInfo(&buffer, "%s of ", quote_identifier(NameStr(pgl->pgllabel)));
+ appendStringInfo(&buffer, "%s of property graph ", quote_identifier(NameStr(pgl->pgllabel)));
getRelationIdentity(&buffer, pgl->pglpgid, objname, false);
if (objname)
*objname = lappend(*objname, pstrdup(NameStr(pgl->pgllabel)));
@@ -6218,7 +6218,7 @@ getObjectIdentityParts(const ObjectAddress *object,
}
pgp = (Form_pg_propgraph_property) GETSTRUCT(tup);
- appendStringInfo(&buffer, "%s of ", quote_identifier(NameStr(pgp->pgpname)));
+ appendStringInfo(&buffer, "%s of property graph ", quote_identifier(NameStr(pgp->pgpname)));
getRelationIdentity(&buffer, pgp->pgppgid, objname, false);
if (objname)
*objname = lappend(*objname, pstrdup(NameStr(pgp->pgpname)));
@@ -6251,7 +6251,7 @@ getObjectIdentityParts(const ObjectAddress *object,
pgelform = (Form_pg_propgraph_element_label) GETSTRUCT(tup);
labelname = get_propgraph_label_name(pgelform->pgellabelid);
- appendStringInfo(&buffer, "%s of ", quote_identifier(labelname));
+ appendStringInfo(&buffer, "%s of element ", quote_identifier(labelname));
ObjectAddressSet(oa, PropgraphElementRelationId, pgelform->pgelelid);
appendStringInfoString(&buffer, getObjectIdentityParts(&oa, objname,
objargs, false));
@@ -6289,7 +6289,7 @@ getObjectIdentityParts(const ObjectAddress *object,
plpform = (Form_pg_propgraph_label_property) GETSTRUCT(tup);
propname = get_propgraph_property_name(plpform->plppropid);
- appendStringInfo(&buffer, "%s of ", quote_identifier(propname));
+ appendStringInfo(&buffer, "%s of label ", quote_identifier(propname));
ObjectAddressSet(oa, PropgraphElementLabelRelationId, plpform->plpellabelid);
appendStringInfoString(&buffer, getObjectIdentityParts(&oa, objname,
objargs, false));
diff --git a/src/test/regress/expected/create_property_graph.out b/src/test/regress/expected/create_property_graph.out
index 86c0957dcc7..2f06c7ce5a8 100644
--- a/src/test/regress/expected/create_property_graph.out
+++ b/src/test/regress/expected/create_property_graph.out
@@ -751,31 +751,31 @@ SELECT (pg_identify_object_as_address(classid, objid, objsubid)).*
SELECT (pg_identify_object(classid, objid, objsubid)).*
FROM (SELECT DISTINCT classid, objid, objsubid FROM deps_tree)
ORDER BY 1, 2, 3, 4;
- type | schema | name | identity
--------------------------------+--------+------+-------------------------------------------------
- property graph element | | | e of create_property_graph_tests.gt
- property graph element | | | v1 of create_property_graph_tests.gt
- property graph element | | | v2 of create_property_graph_tests.gt
- property graph element label | | | e of e of create_property_graph_tests.gt
- property graph element label | | | v1 of v1 of create_property_graph_tests.gt
- property graph element label | | | v2 of v2 of create_property_graph_tests.gt
- property graph label | | | e of create_property_graph_tests.gt
- property graph label | | | v1 of create_property_graph_tests.gt
- property graph label | | | v2 of create_property_graph_tests.gt
- property graph label property | | | a of v1 of v1 of create_property_graph_tests.gt
- property graph label property | | | b of v1 of v1 of create_property_graph_tests.gt
- property graph label property | | | c of e of e of create_property_graph_tests.gt
- property graph label property | | | k1 of e of e of create_property_graph_tests.gt
- property graph label property | | | k2 of e of e of create_property_graph_tests.gt
- property graph label property | | | m of v2 of v2 of create_property_graph_tests.gt
- property graph label property | | | n of v2 of v2 of create_property_graph_tests.gt
- property graph property | | | a of create_property_graph_tests.gt
- property graph property | | | b of create_property_graph_tests.gt
- property graph property | | | c of create_property_graph_tests.gt
- property graph property | | | k1 of create_property_graph_tests.gt
- property graph property | | | k2 of create_property_graph_tests.gt
- property graph property | | | m of create_property_graph_tests.gt
- property graph property | | | n of create_property_graph_tests.gt
+ type | schema | name | identity
+-------------------------------+--------+------+------------------------------------------------------------------------------
+ property graph element | | | e of property graph create_property_graph_tests.gt
+ property graph element | | | v1 of property graph create_property_graph_tests.gt
+ property graph element | | | v2 of property graph create_property_graph_tests.gt
+ property graph element label | | | e of element e of property graph create_property_graph_tests.gt
+ property graph element label | | | v1 of element v1 of property graph create_property_graph_tests.gt
+ property graph element label | | | v2 of element v2 of property graph create_property_graph_tests.gt
+ property graph label | | | e of property graph create_property_graph_tests.gt
+ property graph label | | | v1 of property graph create_property_graph_tests.gt
+ property graph label | | | v2 of property graph create_property_graph_tests.gt
+ property graph label property | | | a of label v1 of element v1 of property graph create_property_graph_tests.gt
+ property graph label property | | | b of label v1 of element v1 of property graph create_property_graph_tests.gt
+ property graph label property | | | c of label e of element e of property graph create_property_graph_tests.gt
+ property graph label property | | | k1 of label e of element e of property graph create_property_graph_tests.gt
+ property graph label property | | | k2 of label e of element e of property graph create_property_graph_tests.gt
+ property graph label property | | | m of label v2 of element v2 of property graph create_property_graph_tests.gt
+ property graph label property | | | n of label v2 of element v2 of property graph create_property_graph_tests.gt
+ property graph property | | | a of property graph create_property_graph_tests.gt
+ property graph property | | | b of property graph create_property_graph_tests.gt
+ property graph property | | | c of property graph create_property_graph_tests.gt
+ property graph property | | | k1 of property graph create_property_graph_tests.gt
+ property graph property | | | k2 of property graph create_property_graph_tests.gt
+ property graph property | | | m of property graph create_property_graph_tests.gt
+ property graph property | | | n of property graph create_property_graph_tests.gt
(23 rows)
\a\t