neo4j-contrib / neo4j-apoc-procedures

Awesome Procedures On Cypher for Neo4j - codenamed "apoc"                     If you like it, please ★ above ⇧            
https://neo4j.com/labs/apoc
Apache License 2.0
1.71k stars 493 forks source link

Delete overload procedure problem #1850

Open conker84 opened 3 years ago

conker84 commented 3 years ago

Reported by @cg122 in https://github.com/neo4j-contrib/neo4j-apoc-procedures/issues/1555#issuecomment-815208614

I am using neo4j from docker, with neo4j:latest (4.2.4):

docker run -d \
    --name neo4j \
    --publish=7474:7474 --publish=7687:7687 \
    --env NEO4JLABS_PLUGINS='["graph-data-science","apoc"]' \
    --env NEO4J_apoc_export_file_enabled=true \
    --env NEO4J_apoc_import_file_enabled=true \
    --env NEO4J_apoc_import_file_use__neo4j__config=true \
    --env NEO4J_AUTH=neo4j/neo4j \
    neo4j:latest

From neo4j browser:

type name description mode statement inputs outputs forceSingle
1 "procedure" "test_ghost" "" "read" "RETURN $count as result" [["count", "integer"]] [["result", "integer"]] null

-- 1 | 15


- run 'test_ghost' without parameter:

call custom.test_ghost

-- 1 | { "result": 100 }


- remove procedure

call apoc.custom.removeProcedure('test_ghost')

- run 'test_ghost' without parameter still get the result

call custom.test_ghost

-- 1 | { "result": 100 }


- run 'test_ghost' with parameter get the error

call custom.test_ghost(15)

There is no procedure with the name custom.test_ghost registered for this database instance. Please ensure you've spelled the procedure name correctly and that the procedure is properly deployed.


Seems only the last registered procedure is removed, the 'overwritten' one is still somewhere functioning.
conker84 commented 3 years ago

@vga91 is this fixed?

tomocesnik commented 2 years ago

I see there were some code changes implemented for this issue. Are there any plans on where this will be merged and released?