英文:
Retrieving OID values for label relations in Apache-age graph using Postgres
问题
我目前正在处理一个Apache-age图,并需要检索图中标签关系的OID值。我正在使用Postgres来管理我的数据库,并尝试查询ag_labels模式,但似乎不包含标签关系的OID值。
到目前为止,我尝试过以下代码:
SELECT oid, relname FROM pg_class WHERE relkind = 'r' AND relname LIKE 'ag_labels_%';
这个查询返回了图中所有标签关系的relname值,但没有OID值。
我还尝试直接查询pg_catalog.pg_class表,但似乎也没有返回标签关系的OID值。
我想知道是否有其他表或模式可以查找Apache-age中标签关系的OID值。任何建议或见解都将不胜感激。
提前感谢!
英文:
I'm currently working on an Apache-age graph and need to retrieve the OID values for the label relations in the graph. I'm using Postgres to manage my database and have tried querying the ag_labels schema, but it doesn't seem to contain the OID values for the label relations.
Here's the code I've tried so far:
SELECT oid, relname FROM pg_class WHERE relkind = 'r' AND relname LIKE 'ag_labels_%';
This query returns the relname values for all label relations in my graph, but not the OID values.
I've also tried querying the pg_catalog.pg_class table directly, but this doesn't seem to return the OID values for the label relations either.
I'm wondering if there's another table or schema I should be looking at to retrieve the OID values for label relations in Apache-age. Any suggestions or insights would be greatly appreciated.
Thanks in advance!
答案1
得分: 0
我不认为有一个单独的查询可以查看所有现有标签的 OID。标签存储在 ag.label
表中,但这个表不包含关于 OID 的信息。您可以尝试首先查询所有标签:
SELECT * FROM ag_label;
然后运行:
SELECT oid, relname FROM pg_class WHERE relkind = 'r';
在返回的行中查找您要查找的标签的名称和 OID。
英文:
I dont think there is a single query you can run to see all the oids of the existing labels. The labels are stored in the ag.label
table but that doesn't hold information about the OID
. What you could try is first querying for all the labels with
SELECT * FROM ag_label;
and then run
SELECT oid, relname FROM pg_class WHERE relkind = 'r';
and in the returned rows find the names and oids of the labels you are looking for.
答案2
得分: 0
如果你运行以下查询:
SELECT oid, relname FROM pg_class WHERE relkind = 'r';
它将返回类似以下的oid:
postgres=# SELECT oid, relname FROM pg_class WHERE relkind = 'r';
oid | relname
-------+-------------------------
2619 | pg_statistic
1247 | pg_type
27575 | _ag_label_vertex
27585 | _ag_label_edge
35178 | ag_graph
35190 | ag_label
3118 | pg_foreign_table
35771 | _ag_label_vertex
1260 | pg_authid
35791 | Person
35781 | _ag_label_edge
35800 | RELTYPE
3429 | pg_statistic_ext_data
1418 | pg_user_mapping
6100 | pg_subscription
另一个条件 "relname LIKE 'ag_labels_%'" 可能是你没有得到期望结果的原因。
英文:
If you run the query:
SELECT oid, relname FROM pg_class WHERE relkind = 'r';
It will return oids as well like this:
postgres=# SELECT oid, relname FROM pg_class WHERE relkind = 'r';
oid | relname
-------+-------------------------
2619 | pg_statistic
1247 | pg_type
27575 | _ag_label_vertex
27585 | _ag_label_edge
35178 | ag_graph
35190 | ag_label
3118 | pg_foreign_table
35771 | _ag_label_vertex
1260 | pg_authid
35791 | Person
35781 | _ag_label_edge
35800 | RELTYPE
3429 | pg_statistic_ext_data
1418 | pg_user_mapping
6100 | pg_subscription
The other condition "relname LIKE 'ag_labels_%'" might be the reason you are not getting the desired results.
答案3
得分: 0
以下是已翻译的内容:
也许您正在寻找以下命令
SELECT oid, relation FROM ag_label;
它返回数据库中所有标签的 OID,类似于以下内容:
oid | relation
--------+------------------------------
803774 | test_graph._ag_label_vertex
803787 | test_graph._ag_label_edge
803799 | test_graph."Person"
803811 | test_graph."MARRIED_TO"
803823 | test_graph."PARENT_OF"
803835 | test_graph."BROTHER_OF"
(6 rows)
英文:
Perhaps you're looking for the command
SELECT oid, relation FROM ag_label;
It returns the OIDs of all the labels in your database, something like this:
oid | relation
--------+------------------------------
803774 | test_graph._ag_label_vertex
803787 | test_graph._ag_label_edge
803799 | test_graph."Person"
803811 | test_graph."MARRIED_TO"
803823 | test_graph."PARENT_OF"
803835 | test_graph."BROTHER_OF"
(6 rows)
答案4
得分: 0
Here is the translated text without the code:
尝试以下步骤:
-
打开Apache Age的配置文件。
-
其次,找到track-oid并将其打开。要添加它,可以执行以下操作:
autovacuum = on
track_oid = on -
现在保存该文件并重新启动服务器以应用更改。
完成上述所有步骤后,您现在可以使用以下查询进行检索:
SELECT oid, relname FROM pg_catalog.pg_class WHERE relkind = 'r' AND relname LIKE 'ag_labels_%';
英文:
Try these steps:
- open the configuration file oof apache-age
- Secondly find the track-oid and turn it on. And to add it you can do this:
> autovacuum = on
> track_oid = on
- Now save that fine and restart the server to apply changes.
After doing all the above steps , you can now use this query for the retrieval.
SELECT oid, relname FROM pg_catalog.pg_class WHERE relkind = 'r' AND relname LIKE 'ag_labels_%';
答案5
得分: 0
你可以运行此查询以检索特定图的所有边和顶点的ID和标签。
SELECT * FROM your_graph_name.your_label_name;
id | properties
-------------+-----------------------------------
844424930131971 | {name: 'A'}
844424930131972 | {name: 'B'}
844424930131973 | {name: 'C'}
(3 rows)
英文:
You can run this query to retrieve id's of all the edges and vertices of a specific graph and label.
SELECT * FROM test."Node";
id | properties
-----------------+-----------------------------------------------------------
844424930131971 | {name: 'A'}
844424930131972 | {name: 'B'}
844424930131973 | {name: 'C'}
(3 rows)
"test" is graph name and "Node" is label name. Replace it with you own data.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论