avowkind commented on issue #365:
URL: https://github.com/apache/age/issues/365#issuecomment-2048586407
Using that query I get
"{""id"": 3096224744137123, ""label"": ""featureOfInterest"", ""end_id"":
1407374883553780, ""start_id"": 2533274790715811, ""properties"": {}}::edge"
"{""id"": 3096224744137124, ""label"": ""featureOfInterest"", ""end_id"":
1407374883553780, ""start_id"": 2533274790715812, ""properties"": {}}::edge"
"{""id"": 3096224744137125, ""label"": ""featureOfInterest"", ""end_id"":
1407374883555256, ""start_id"": 2533274790715813, ""properties"": {}}::edge”
Using this modified version
SELECT * FROM cypher('fishpond', $$
MATCH (o)-[edge:featureOfInterest]->(f)
where id(edge) > 3096224744137122
and id(edge) < 3096224744137126
RETURN o, edge, f ORDER BY id(edge) $$) as (o agtype, edge agtype, f agtype);
I get only 2 results
"{""id"": 2533274790715811, ""label"": ""Observation"", ""properties"":
{""id"": ""fde14e35"", ""result"": 6, ""parameters"": {""filename"": ""Class 18
2021 feeding records Nov 21 -.xlsx"", ""sheetname"": ""South pen (mix)""},
""resultTime"": ""2022-03-20T00:00:00Z"", ""phenomenonTime"":
""2022-03-20T00:00:00Z"", ""observedProperty"": ""mortality_fish_weight_g"",
""featureOfInterest"": ""pfr:nelson:tank:C09""}}::vertex""{""id"":
3096224744137123, ""label"": ""featureOfInterest"", ""end_id"":
1407374883553780, ""start_id"": 2533274790715811, ""properties"":
{}}::edge""{""id"": 1407374883553780, ""label"": ""Feature"", ""properties"":
{""id"": ""pfr:nelson:tank:C09"", ""name"": ""C09"", ""relations"": [{""id"":
""pfr:nelson:tank_group:C"", ""relation"": ""partOf""}], ""description"":
""C09"", ""featureGroup"": ""pfr:fg:tank""}}::vertex"
"{""id"": 2533274790715813, ""label"": ""Observation"", ""properties"":
{""id"": ""3de89087"", ""result"": 750, ""parameters"": {""Comments"": ""2mm
Japanese and 2.3mm skretting"", ""filename"": ""Class 18 2021 feeding records
Nov 21 -.xlsx"", ""food_type"": ""2.3mm EP02 Otohime (g)"", ""sheetname"":
""South pen (mix) (2)""}, ""resultTime"": ""2022-03-25T00:00:00Z"",
""phenomenonTime"": ""2022-03-25T00:00:00Z"", ""observedProperty"":
""fish_food_g"", ""featureOfInterest"":
""pfr:nelson:tank:seapen_south""}}::vertex""{""id"": 3096224744137125,
""label"": ""featureOfInterest"", ""end_id"": 1407374883555256, ""start_id"":
2533274790715813, ""properties"": {}}::edge""{""id"": 1407374883555256,
""label"": ""Feature"", ""properties"": {""id"":
""pfr:nelson:tank:seapen_south"", ""name"": ""Beatrix Bay South"",
""relations"": [{""id"": ""pfr:nelson:tank_group:beatrix_bay"", ""relation"":
""partOf""}], ""description"": ""South Pen"", ""featureGroup"":
""pfr:fg:tank""}}::vertex”
So the "{""id"": 3096224744137124, ""label"": ""featureOfInterest"",
""end_id"": 1407374883553780, ""start_id"": 2533274790715812, ""properties"":
{}}::edge”. Is the problem one.
Checking the start ID It does not exist.
select * from cypher('fishpond', $$
MATCH (o)
WHERE id(o) = 2533274790715812
RETURN o $$) as (o agtype);
While changing the id to 811 or 813 we get a result.
So we have a single observation record that is missing and a dangling edge.
Deleting the edge
SELECT * FROM cypher('fishpond', $$
MATCH ()-[edge:featureOfInterest]->()
where id(edge) = 3096224744137124
DELETE edge
RETURN edge ORDER BY id(edge) $$) as (edge agtype);
However I think there must be multiple examples of these deleted
observations that have dangling edges.
What would a cypher query look like to find them?
Thanks Andrew
> On 11 Apr 2024, at 10:45 AM, Andrew Watkins ***@***.***> wrote:
>
> To clarify
>
> This [edge:featureOfInterest] is the link between an observation and a
feature.
>
> Might it be the case that we have an observation that has been lost or
deleted somehow without the edge being removed. e.g .if someone did MATCH
DELETE without the DETACH?
>
> Or is it the feature end that is missing?
>
> Thanks Andrew
>
>> On 11 Apr 2024, at 8:41 AM, John Gemignani ***@***.***> wrote:
>>
>> ***@***.***(https://github.com/avowkind) I know why it fails and then
works -
>>
>> Technically speaking, it shouldn't work as that error is a fatal error,
that's why it fails the first run. However, the context isn't cleaned up, so it
works the second run because a context already exists and it doesn't need to
build a new one. As to why it is getting an edge that doesn't have a valid
start or end id and why that edge it got doesn't exist,... I'm still looking
into that.
>>
>> For me, it is failing on an edge found in "featureOfInterest" -
>>
>> (gdb) p {edge_id, edge_vertex_start_id, edge_vertex_end_id}
>> $4 = {3096224744137124, 2533274790715812, 1407374883553780}
>>
>> fishpond=# SELECT * FROM cypher('fishpond', $$MATCH
()-[edge:featureOfInterest]->() where id(edge) > 3096224744137122 and id(edge)
< 3096224744137126 RETURN edge ORDER BY id(edge) $$) as (edge agtype);
>> edge
>>
>>
------------------------------------------------------------------------------------------------------------------------------------
>> ------
>> {"id": 3096224744137123, "label": "featureOfInterest", "end_id":
1407374883553780, "start_id": 2533274790715811, "properties": {}}:
>> :edge
>> {"id": 3096224744137125, "label": "featureOfInterest", "end_id":
1407374883555256, "start_id": 2533274790715813, "properties": {}}:
>> :edge
>> (2 rows)
>>
>> fishpond=#
>>
>> —
>> Reply to this email directly, [view it on
GitHub](https://github.com/apache/age/issues/365#issuecomment-2048401215), or
[unsubscribe](https://github.com/notifications/unsubscribe-auth/AAMFYFLOHEUCESYI3TEYUXDY4WPY3AVCNFSM6AAAAAASIWFLLGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBYGQYDCMRRGU).
>> You are receiving this because you were mentioned.Message ID: ***@***.***>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]