RedisGraph / redisgraph-py

RedisGraph python client
https://redisgraph.io
BSD 3-Clause "New" or "Revised" License
189 stars 49 forks source link

No support for nested multi bulk replies with depth > 7 #86

Closed SeekPoint closed 3 years ago

SeekPoint commented 4 years ago

ub16_prj/redisLab % python demoGraph.py +-----------+----------+--------------+-----------+ | b'p.name' | b'p.age' | b'v.purpose' | b'c.name' | +-----------+----------+--------------+-----------+ | John Doe | 33 | pleasure | Japan | +-----------+----------+--------------+-----------+

Cached execution 0.0 internal execution time 0.47 +-----------+----------+--------------+-----------+ | b'p.name' | b'p.age' | b'v.purpose' | b'c.name' | +-----------+----------+--------------+-----------+ | John Doe | 33 | pleasure | Japan | +-----------+----------+--------------+-----------+

Cached execution 0.0 internal execution time 0.332 Traceback (most recent call last): File "demoGraph.py", line 78, in result = redis_graph.query(query) File "/usr/local/lib/python3.8/site-packages/redisgraph/graph.py", line 130, in query response = self.redis_con.execute_command("GRAPH.QUERY", self.name, q, "--compact") File "/usr/local/lib/python3.8/site-packages/redis/client.py", line 901, in execute_command return self.parse_response(conn, command_name, **options) File "/usr/local/lib/python3.8/site-packages/redis/client.py", line 915, in parse_response response = connection.read_response() File "/usr/local/lib/python3.8/site-packages/redis/connection.py", line 739, in read_response response = self._parser.read_response() File "/usr/local/lib/python3.8/site-packages/redis/connection.py", line 471, in read_response response = self._reader.gets() redis.exceptions.InvalidResponse: No support for nested multi bulk replies with depth > 7 ub16_prj/redisLab %

the code are same as example in readme.md:

redis_graph = Graph('social', r)

john = Node(label='person', properties={'name': 'John Doe', 'age': 33, 'gender': 'male', 'status': 'single'}) redis_graph.add_node(john)

japan = Node(label='country', properties={'name': 'Japan'}) redis_graph.add_node(japan)

edge = Edge(john, 'visited', japan, properties={'purpose': 'pleasure'}) redis_graph.add_edge(edge)

redis_graph.commit()

query = """MATCH (p:person)-[v:visited {purpose:"pleasure"}]->(c:country) RETURN p.name, p.age, v.purpose, c.name"""

result = redis_graph.query(query)

Print resultset

result.pretty_print()

swilly22 commented 3 years ago

Please make sure you're running hiredis version >= 2.0.0 will add it as one of the dependencies