@lvca
I'm running some queries on stackoverflow dataset that I shared wtih you.
We are seeing what looks like a Cypher engine bug in embedded ArcadeDB, not a client binding issue.
Environment:
A co-occurrence query over a populated property graph sometimes returns an empty result set even though the graph clearly contains matching data.
Query under test:
MATCH (q:Question)-[:TAGGED_WITH]->(t1:Tag)
MATCH (q)-[:TAGGED_WITH]->(t2:Tag)
WHERE t1.Id < t2.Id
RETURN t1.TagName AS tag1, t2.TagName AS tag2, count(*) AS cooccurs
ORDER BY cooccurs DESC, tag1 ASC, tag2 ASC
LIMIT 10
Expected behavior:
- Return the top co-occurring tag pairs.
- On our dataset this result is non-empty.
Observed behavior:
- Neo4j and LadybugDB return the same non-empty top-10 result for this query.
- ArcadeDB has produced an empty result set for the same logical dataset and query shape.
Why this looks like an ArcadeDB issue:
- Two other graph engines, Neo4j and LadybugDB, return the same result.
- The graph is definitely populated.
- A manual reconstruction against the same ArcadeDB database produces the expected non-empty top-10 result.
- In a fresh repro, the exact same Cypher query can also return the correct result in ArcadeDB, which suggests the problem may be intermittent or state/plan dependent rather than a syntax issue.
Manual validation logic:
- Fetch all tags with their ids and names.
- Fetch all
(Question)-[:TAGGED_WITH]->(Tag) pairs.
- Group tags by question.
- Count unique ordered pairs
(t1, t2) where t1.Id < t2.Id.
- Sort by
cooccurs DESC, tag1 ASC, tag2 ASC.
- This produces the same non-empty top-10 result that Neo4j and LadybugDB return.
Additional note:
A different equivalent-looking formulation using collect()/UNWIND also produced obviously wrong output in ArcadeDB:
MATCH (q:Question)-[:TAGGED_WITH]->(t:Tag)
WITH q, collect(t) AS tags
UNWIND tags AS t1
UNWIND tags AS t2
WITH t1, t2
WHERE t1.Id < t2.Id
RETURN t1.TagName AS tag1, t2.TagName AS tag2, count(*) AS cooccurs
ORDER BY cooccurs DESC, tag1 ASC, tag2 ASC
LIMIT 10
In that case we observed a single row with null tag names and a large count, which also points to a Cypher execution issue around this pattern.
@lvca
I'm running some queries on stackoverflow dataset that I shared wtih you.
We are seeing what looks like a Cypher engine bug in embedded ArcadeDB, not a client binding issue.
Environment:
26.4.1-SNAPSHOTA co-occurrence query over a populated property graph sometimes returns an empty result set even though the graph clearly contains matching data.
Query under test:
Expected behavior:
Observed behavior:
Why this looks like an ArcadeDB issue:
Manual validation logic:
(Question)-[:TAGGED_WITH]->(Tag)pairs.(t1, t2)wheret1.Id < t2.Id.cooccurs DESC, tag1 ASC, tag2 ASC.Additional note:
A different equivalent-looking formulation using
collect()/UNWINDalso produced obviously wrong output in ArcadeDB:In that case we observed a single row with null tag names and a large count, which also points to a Cypher execution issue around this pattern.