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)