1

I am trying to execute a Cypher query on my Apache AGE graph database using the cypher function in PostgreSQL, but I am encountering an error.

Here is the query I am trying to run:

SELECT * FROM cypher('g1', $$ MATCH (n) return n $$);

And here is the error message that I am getting:

ERROR:  function cypher(unknown, unknown) does not exist
LINE 1: SELECT * FROM cypher('g1', $$ MATCH (n) return n $$);
                      ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

I have already checked that I have installed the Apache AGE extension and added it to my database, and I am using the correct graph name (g1) in the query.

I double-checked and confirmed that the AGE extension is installed by running this query.

SELECT * FROM pg_extension WHERE extname = 'age';

How can I resolve this error and successfully execute my Cypher query in Apache AGE?

Omar Saad
  • 349
  • 3
  • 8

1 Answers1

1

Firstly there is an error in your query, the correct query is

SELECT * FROM cypher('<enter_graph_name_here>', $$ MATCH (n) return n $$)
AS (result agtype);

The above command will only execute correctly if you have set the search_path as

SET search_path to ag_catalog;

If you do not set the search_path as above and it is public be default, then modify the first query as

SELECT * FROM ag_catalog.cypher('<enter_graph_name_here>', $$ MATCH (n) return n $$)
AS (result agtype);

This is because cypher function is present in ag_catalog namespace and you need to either set the namespace to ag_catalog using search_path or prefix all the function names with ag_catalog. in all the queries.

Zainab Saad
  • 728
  • 1
  • 2
  • 8