Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug when calling a procedure within a CALL { ... } sub-query #429

Open
karmenrabar opened this issue Dec 7, 2023 · 0 comments
Open

Bug when calling a procedure within a CALL { ... } sub-query #429

karmenrabar opened this issue Dec 7, 2023 · 0 comments
Labels
community community Effort - High Effort - High Frequency - Monthly Frequency - Monthly Priority - Later Priority - Later Reach - VeryFew Reach - VeryFew Severity - S3 Severity - S3

Comments

@karmenrabar
Copy link

karmenrabar commented Dec 7, 2023

There appears to be a bug when calling any procedure within a CALL { ... } sub-query, in the context of a loop (where cardinality/rows are greater than 1). The error message received is: "Query failed: Procedure 'algo.all_simple_paths' did not yield all fields as required by its signature."

Example dataset:

CREATE (:User {id: 1, name: 'Alice'})
CREATE (:User {id: 2, name: 'Bob'})
CREATE (:User {id: 3, name: 'Charlie'})

CREATE (alice)-[:FOLLOWS]->(bob)
CREATE (bob)-[:FOLLOWS]->(charlie)

Example queries that return error message:

  1. When the procedure is called within the CALL { ... } sub-query and is part of a loop, the error is encountered.
    It may be connected to the fact that MATCH (user:User) RETURN user returns three rows.
MATCH (user:User) 
CALL {
  with user
CALL algo.all_simple_paths(user, user, [], 2) 
YIELD path
return path
}
return path
  1. Limiting the rows to 1 in the CALL{...} sub-query returns an error:
MATCH (user:User)  
with user 
CALL {
  with user  limit 1
CALL algo.all_simple_paths(user, user, [], 2) 
YIELD path
return path
}
return path

Example dataset that work well:

MATCH (user:User) 
  with user
CALL algo.all_simple_paths(user, user, [], 2) 
YIELD path
return path
  1. When limiting the rows to 1 in the initial MATCH, there is no issue when executing queries:
MATCH (user:User)  
with user limit 1  // reduce cardinality to 1
CALL {
  with user  
CALL algo.all_simple_paths(user, user, [], 2) 
YIELD path
return path
}
return path
@karmenrabar karmenrabar added Importance - I3 Importance - I3 Severity - S3 Severity - S3 Effort - Unknown Effort - Unknown labels Dec 7, 2023
@DavIvek DavIvek added Effort - High Effort - High and removed Effort - Unknown Effort - Unknown labels Dec 18, 2023
@katarinasupe katarinasupe added the community community label Dec 27, 2023
@hal-eisen-MG hal-eisen-MG added Priority - Later Priority - Later and removed Priority - Later Priority - Later labels Feb 4, 2024
@hal-eisen-MG hal-eisen-MG added Priority - Later Priority - Later and removed Priority - Later Priority - Later labels Feb 18, 2024
@katarinasupe katarinasupe added Frequency - Monthly Frequency - Monthly Reach - VeryFew Reach - VeryFew and removed Importance - I3 Importance - I3 labels Feb 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community community Effort - High Effort - High Frequency - Monthly Frequency - Monthly Priority - Later Priority - Later Reach - VeryFew Reach - VeryFew Severity - S3 Severity - S3
Projects
Development

No branches or pull requests

4 participants