On 05/23/2015 03:27 PM, Marcos Ortiz wrote:
Regards to all the list. First all the info about the system: O.S: CentOS 7 64 bits PostgreSQL version: SELECT version(); version -------------------------------------------------------------------------------------------------------------- PostgreSQL 9.2.7 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16), 64-bit (1 row) Neo4j version: 2.1.M Py2neo version: 2.0.8 Python version: python Python 2.7.5 (default, Jun 17 2014, 18:11:42) [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2 Now the problem: We are working here to integrate PostgreSQL with Neo4j through PL/Python using the py2neo module for it, and when we want to send sentences to Neo4j using port 7474, the executed code raises a SocketError [Errno 13] Permission denied.
Well first in the code below, if I am following correctly, the socket is 37474.
I tested the same code in a normal python script outside of PostgreSQL, and it works well, but the problem is when I use the code inside PostgreSQL with PL/Python.
Second the plpythonu code is running as the postgres user, so does that user have permissions on the socket.
This is the code of a simple function to search a node in the Neo4j graph: CREATE OR REPLACE FUNCTION search_professor_node(nombre_prof text) RETURNS text AS $BODY$ from py2neo import Graph from py2neo.cypher import CypherTransaction graph = Graph("http://neo4j:neo4j@10.8.45.136:37474/db/data") tx = graph.cypher.begin() statement = "MATCH (pf:Professor) WHERE pf.nombre = {name} RETURN pf;" , tx.append(statement, parameters={'name': nombre_prof}) professor= tx.commit() $BODY$ LANGUAGE plpythonu VOLATILE COST 100; and it can be used: SELECT search_professor_node('Max'); The completed error is: ********** Error ********** ERROR: py2neo.packages.httpstream.http.SocketError: Permission denied SQL state: XX000 Context: Traceback (most recent call last): PL/Python function "search_professor_node", line 6, in <module> tx = graph.cypher.begin() PL/Python function "search_professor_node", line 666, in cypher PL/Python function "search_professor_node", line 212, in metadata PL/Python function "search_professor_node", line 257, in get PL/Python function "search_professor_node", line 965, in get PL/Python function "search_professor_node", line 942, in __get_or_head PL/Python function "search_professor_node", line 432, in submit PL/Python function "search_professor_node", line 361, in submit PL/Python function "search_professor_node" Thanks a lot for your time, and I hope to find a suitable solution for it.
-- Adrian Klaver adrian.klaver@xxxxxxxxxxx -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general