Skip to content

Latest commit

 

History

History
61 lines (37 loc) · 2.68 KB

40_notes.adoc

File metadata and controls

61 lines (37 loc) · 2.68 KB

list of removed functions and procedures for 4.0

All freetext/fulltext stuff has been removed in favour of 3.5+ productized fulltext indexes.

procedures

apoc.index.relatedNodes (index feature ootb) apoc.index.orderedRange (index feature ootb)

apoc.algo.* (use separate graph algo package instead)

apoc.static.get (proc deleted, function exists) apoc.static.getAll (proc deleted, function exists)

apoc.monitor.locks() (proc deleted, cannot get information via api)

functions

changed behaviour

  • apoc.agg.statistics on an empty list returns null for min and max. Used to be 0 previously

  • all apoc* configuration option needs to be moved to apoc.conf

    • apoc.initializer.cypher

    • *apoc.initializer.cypher.<anything>`

    • mongo calls use compatibleValue:true by default. Reason: 4.0 doesn’t support java.util.Date as nested value in a map returned from a procedures. Side effect: date values are returned as millis since epoc.

changes done 3.5 → 4.0

Note
the following list is incomplete
  • Neo4j config does no longer allow adhoc dynamic settings - which apoc uses a lot. Therefore APOC 4.0 uses it’s own apoc.conf, see ApocConfig.java.

  • moving global core API actions from GraphDatabaseService to Transaction - e.g. tx.createNode(…​)

  • removal of graph properties. UUIDHandler, CypherProcedures and Triggers used them in APOC. Instead APOC 4.0 uses systemdb, e.g. we maintain a separate node for each trigger: CREATE (n:ApocTrigger{database: <dbname>}, …​)

  • refactoring lots of static datastructure in APOC into LifeCycles, so they can exist on a per-database level

  • all calls to AlgoFactory require now a ExecutionContext (aka db + tx)

  • TransactionTemplate has been removed from Neo4j

  • org.neo4j.cypher.export.SubGraphExporter et.al have been removed in Neo4j → we add the latest version of the sources to apoc

  • using ImpermanentDatabaseRule instead of TestGraphDatabaseFactory…​

  • ImpermanentDatabaseRule.withSetting() takes now typed values instead of strings

  • curly braces syntax for Cypher parameters no longer supported : $param instead of {param}

  • cypher’s length functions doesn’t work on strings any longer. use size instead

  • TransactionEventHandler renamed to TransactionListener

  • TransactionListener.beforeCommit gets an additional parameter Transaction

  • apoc.periodic.iterate might return different error messages.

  • on API level a IndexDefinition could have multiple labels. Apoc’s Schema should reflect that - to be discussed.

  • nodes/rels acquired in one tx need to be rebound when used in another tx tx.getNodeByid(node.getId())

todos

  • make test (esp. for export functions) independent of internal node ids.