Skip to content

Latest commit

 

History

History
32 lines (24 loc) · 1.19 KB

neo4j_and_redisgraph.rst

File metadata and controls

32 lines (24 loc) · 1.19 KB

Neo4j/Redisgraph

Cypher query parameters

RedisGraph doesn't support query parameters, so we perform manual parameter interpolation in the graphql_to_redisgraph_cypher function. However, for Neo4j, we can use Neo4j's client to do parameter interpolation on its own so that we don't reinvent the wheel.

The function insert_arguments_into_query does so based on the query language, which isn't fine-grained enough here-- for Cypher backends, we only want to insert parameters if the backend is RedisGraph, but not if it's Neo4j.

Instead, the correct approach for Neo4j Cypher is as follows, given a Neo4j Python client called neo4j_client:

common_schema_info = CommonSchemaInfo(schema, type_equivalence_hints)
compilation_result = compile_graphql_to_cypher(common_schema_info, graphql_query)
with neo4j_client.driver.session() as session:
    result = session.run(compilation_result.query, parameters)