Skip to content

Releases: neo4j-contrib/neo4j-apoc-procedures

APOC Release 3.2.0.1

10 Mar 01:31
Compare
Choose a tag to compare
APOC Release 3.2.0.1 Pre-release
Pre-release

Thanks a ton for all feedback, issues and ideas.

Especially to @InverseFalcon and @sarmbruster for the contributions.

New Features

  • Upgrade to Neo4j 3.2.0-alpha06, see readme for details of changes (restricted, whitelisted procedures)
  • #156: implement automatic tracking of manual index changes
  • Updated documentation so that it's available for all 3 versions
  • Updates for apoc.periodic.iterate: iterateList:true, retries:5, automatic prefixing of inner statement
  • Added support for gzipped streams for load csv and load xml

New / Converted Functions & Procedures

  • Added new functions to apoc.coll - shuffle(), randomItem(), randomItems(). (#296)
  • turn bitwise operations into a function, fixes #309
  • Added new functions to apoc.coll - containsDuplicates(), duplicates(), duplicatesWithCount(), and occurrences() (#304)
  • Added new apoc.path procedures: subgraphNodes(), subgraphAll(), and spanningTree(). (#305)
  • apoc.text.format function, lpad, rpad functions fixes #269
  • Added functions for creating virtual nodes and virtual relationships
  • Added apoc.date.convert() and apoc.date.add() (#291)
  • Added new function apoc.test.regexGroups (#254)
  • Added some more add and remove procedures for nodes and relationships fixes #220

Bugfixes

  • Fix setting collections as properties fixes #210
  • Fix #295 keys come before graph element in graphml export
  • Fixes for TTL (better isolation, logging, writability check)
  • Fixes #256 (#257) apoc.load.xmlSimple/xml for mixed content (text nodes and child elements)

APOC Release 3.1.2.5

10 Mar 06:13
Compare
Choose a tag to compare

Latest Release for Neo4j 3.1.2

Thanks a ton for all feedback, issues and ideas.

Especially to @InverseFalcon and @sarmbruster for the contributions.

New Features

  • #156: implement automatic tracking of manual index changes
  • Updated documentation so that it's available for all 3 versions
  • Updates for apoc.periodic.iterate: iterateList:true, retries:5, automatic prefixing of inner statement
  • Added support for gzipped streams for load csv and load xml

New / Converted Functions & Procedures

  • Added new functions to apoc.coll - shuffle(), randomItem(), randomItems(). (#296)
  • turn bitwise operations into a function, fixes #309
  • Added new functions to apoc.coll - containsDuplicates(), duplicates(), duplicatesWithCount(), and occurrences() (#304)
  • Added new apoc.path procedures: subgraphNodes(), subgraphAll(), and spanningTree(). (#305)
  • apoc.text.format function, lpad, rpad functions fixes #269
  • Added functions for creating virtual nodes and virtual relationships
  • Added apoc.date.convert() and apoc.date.add() (#291)
  • Added new function apoc.test.regexGroups (#254)
  • Added some more add and remove procedures for nodes and relationships fixes #220

Bugfixes

  • Allow 3.1.2 server to start with APOC despite removed class
  • Fix setting collections as properties fixes #210
  • Fix #295 keys come before graph element in graphml export
  • Fixes for TTL (better isolation, logging, writability check)
  • Fixes #256 (#257) apoc.load.xmlSimple/xml for mixed content (text nodes and child elements)

APOC Release 3.1.0.4

10 Mar 06:12
Compare
Choose a tag to compare

Intermediate Release for 3.1.1 with all these changes

Thanks a ton for all feedback, issues and ideas.

Especially to @InverseFalcon and @sarmbruster for the contributions.

New Features

  • #156: implement automatic tracking of manual index changes
  • Updated documentation so that it's available for all 3 versions
  • Updates for apoc.periodic.iterate: iterateList:true, retries:5, automatic prefixing of inner statement
  • Added support for gzipped streams for load csv and load xml

New / Converted Functions & Procedures

  • Added new functions to apoc.coll - shuffle(), randomItem(), randomItems(). (#296)
  • turn bitwise operations into a function, fixes #309
  • Added new functions to apoc.coll - containsDuplicates(), duplicates(), duplicatesWithCount(), and occurrences() (#304)
  • Added new apoc.path procedures: subgraphNodes(), subgraphAll(), and spanningTree(). (#305)
  • apoc.text.format function, lpad, rpad functions fixes #269
  • Added functions for creating virtual nodes and virtual relationships
  • Added apoc.date.convert() and apoc.date.add() (#291)
  • Added new function apoc.test.regexGroups (#254)
  • Added some more add and remove procedures for nodes and relationships fixes #220

Bugfixes

  • Allow 3.1.2 server to start with APOC despite removed class
  • Fix setting collections as properties fixes #210
  • Fix #295 keys come before graph element in graphml export
  • Fixes for TTL (better isolation, logging, writability check)
  • Fixes #256 (#257) apoc.load.xmlSimple/xml for mixed content (text nodes and child elements)

APOC Release 3.0.8.5

10 Mar 01:34
Compare
Choose a tag to compare

Thanks a ton for all feedback, issues and ideas.

Especially to @sarmbruster for the contributions.

New Features

  • #156: implement automatic tracking of manual index changes
  • Updated documentation so that it's available for all 3 versions
  • Updates for apoc.periodic.iterate: iterateList:true, retries:5, automatic prefixing of inner statement
  • Added support for gzipped streams for load csv and load xml

Bugfixes

  • Fix NPE in BetweenessCentrality/PageRankWithCypher
  • Fix setting collections as properties fixes #210
  • Fix #295 keys come before graph element in graphml export
  • Fixes for TTL (better isolation, logging, writability check)
  • Fixes #256 (#257) apoc.load.xmlSimple/xml for mixed content (text nodes and child elements)

APOC Release 3.0.8.4

06 Jan 02:22
Compare
Choose a tag to compare

This release targets Neo4j 3.0.8 and later in the 3.0.x series, should also work with earlier versions after 3.0.4

Notable changes:

  • ed7a25a Add some more full text index add and remove procedures for nodes and relationships
  • 989b26a fix escaping of \ in export.cypher.* fixes #235
  • 7c5b7ea added apoc.map.fromNodes(label, property) fixes #217
  • 4cdc97c remove extra relationships from apoc.meta.graph(), quick variant from db-stats via apoc.meta.graphSample() fixes #209
  • 7a6c525 added apoc.refactor.invert(rel) to invert relationship-direction
  • 59e5234 documented apoc.json.get/setProperty added apoc.json.getPropertyMap
  • 67bdac6 Additional option parameters for apoc.index.addAllNodes (#158)
  • 2c9fc73 added new map procedures, added MapListResult for a map with list values
  • ab7afbf Added first stab at export to csv with apoc.export.csv.* #117
  • e8742a6 added apoc.date.systemTimezone() for 3.0 (#216)
  • d862f6b Make sortNodes return a list of nodes, added coll.sortMaps, fixes #213, #214
  • cbe17be added apoc.date.expire.in and added some docs to overview, should fix #196
  • 8437ece added parameters for concurrency and write-back property and logging to Algorithms
  • d138146 Fix error message für periodic iterate and commit: Caused by: java.util.IllegalFormatConversionException: d != java.lang.String

This release also contains quite a number of bugfixes and a few documentation updates.

Thanks a lot to everyone who provided feedback or sent in pull requests.

APOC Release 3.1.0.3

14 Dec 02:19
Compare
Choose a tag to compare

This is the newest release of APOC for the 3.1.x series of Neo4j, currently 3.1.0

Besides bug-fixes it contains these new procedures and functions.

  • remove extra relationships from apoc.meta.graph(), quick variant from db-stats via apoc.meta.graphSample() fixes #209
  • added apoc.map.fromNodes(label, property)
  • added apoc.refactor.invert(rel) to invert relationship-direction
  • added apoc.math.round(value, prec, mode)
  • documented apoc.json.get/setProperty added apoc.json.getPropertyMap
  • Additional option parameters for apoc.index.addAllNodes for index-configuration
  • apoc.map.mergeList([{maps}]) yield value | merges all maps in the list into one
  • apoc.map.groupBy([maps/nodes/relationships],'key') yield value | creates a map of the list keyed by the given property, with single values
  • apoc.map.groupByMulti([maps/nodes/relationships],'key') yield value | creates a map of the list keyed by the given property, with list values
  • added overview doc for apoc.text.regexp
  • Added first stab at export to csv with apoc.export.csv.*
  • Make sortNodes return a list of nodes, added coll.sortMaps
  • added apoc.date.expire.in and added some docs to overview
  • added apoc.date.systemTimezone() to retrieve the system timezone prog… (#215)

APOC Release 3.1.0.2

06 Nov 15:09
Compare
Choose a tag to compare
APOC Release 3.1.0.2 Pre-release
Pre-release

This is the new 3.1.0.2 release of APOC for Neo4j 3.1.0-M13-beta3 with a ton of new functionality and fixes.

We also started with a first set of guides for APOC, just try in your browser

:play http://guides.neo4j.com/apoc

Thanks so much to everyone, sorry if I forgot to mention you, for your contributions, feedback and ideas.

Please try out the new features and give us feedback. Also if you haven't used APOC so far, make sure to check out the intro articles on the Neo4j Blog and the documentation

And if you like it, please star the repository. Thanks!

New Procedures

  • apoc.map.merge(map1,map2) to merge two maps
  • apoc.map.setKey, apoc.map.setEntry, apoc.map.setPairs, apoc.map.setLists, apoc.map.setValues
  • apoc.number.format/parse procedures (Thanks @inserpio)
  • First stab at database triggers apoc.trigger.add
  • (WIP) a queue based apoc.cypher.mapParallel2 for sub-paralellization
  • apoc.config.list to list Neo4j configuration as admin
  • apoc.util.validate to raise exceptions
  • efficient apoc.node.relationship.exists that takes dense nodes into account
  • apoc.text.lpad/rpad, apoc.text.format (printf syntax)
  • apoc.create.set(Rel)Property for dynamic property names (and apoc.create.set(Rel)Properties)

Data Integration

  • Couchbase integration apoc.couchbase.* (Thanks @inserpio)
  • Import and Export for GraphML
  • Reading and Writing of files has to be enabled apoc.import/export.file.enabled=true

Graph Algorithms

  • algo.pageRankCypher on projected graphs (Thanks @atuljangra)
  • algo.betweenessCentralityCypher on projected graphs (Thanks @atuljangra)
  • improved and parallelized loading of projected graphs
  • pageRankStats for only execution and write-back no return of nodes

Documentation

  • In Browser Guides
  • Documentation updates
  • Documentation for manual indexes (thanks @rohankharwar)

Bugfixes & Improvements

  • fixed memory leak with all background transaction procedures like periodic.iterate or periodic.commit
  • fixed apoc.warmup.run, (Thanks @fpavageau)
  • performance improvements to periodic.iterate and periodic.commit
  • Auth information from URL turned into basic auth headers (thanks @ikwattro)
  • Hide passwords & credentials in error messages
  • apoc.meta.graph and apoc.meta.stats now use the transactional database statistics and are instant
  • procedure compiler (checker) update (thanks @fbiville)
  • increased jdbc fetch size
  • use id-generator for highest-node and rel-ids
  • fixes for algorithms esp. concurrency and correctness
  • fix for apoc.nodes.delete
  • fix to dijkstra for string cost properties

APOC Release 3.0.4.2

29 Oct 08:33
Compare
Choose a tag to compare

This is the new 3.0.4.2 release of APOC with a ton of new functionality and fixes.

We also started with a first set of guides for APOC, just try in your browser

:play http://guides.neo4j.com/apoc

Thanks so much to everyone, sorry if I forgot to mention you, for your contributions, feedback and ideas.

Please try out the new features and give us feedback. Also if you haven't used APOC so far, make sure to check out the intro articles on the Neo4j Blog and the documentation

And if you like it, please star the repository. Thanks!

New Procedures

  • apoc.map.merge(map1,map2) to merge two maps
  • apoc.map.setKey, apoc.map.setEntry, apoc.map.setPairs, apoc.map.setLists, apoc.map.setValues
  • apoc.number.format/parse procedures (Thanks @inserpio)
  • First stab at database triggers apoc.trigger.add
  • (WIP) a queue based apoc.cypher.mapParallel2 for sub-paralellization
  • apoc.config.list to list Neo4j configuration as admin
  • apoc.util.validate to raise exceptions
  • efficient apoc.node.relationship.exists that takes dense nodes into account
  • apoc.text.lpad/rpad, apoc.text.format (printf syntax)
  • apoc.create.set(Rel)Property for dynamic property names (and apoc.create.set(Rel)Properties)

Data Integration

  • Couchbase integration apoc.couchbase.* (Thanks @inserpio)
  • Import and Export for GraphML
  • Reading and Writing of files has to be enabled apoc.import/export.file.enabled=true

Graph Algorithms

  • algo.pageRankCypher on projected graphs (Thanks @atuljangra)
  • algo.betweenessCentralityCypher on projected graphs (Thanks @atuljangra)
  • improved and parallelized loading of projected graphs
  • pageRankStats for only execution and write-back no return of nodes

Documentation

  • In Browser Guides
  • Documentation updates
  • Documentation for manual indexes (thanks @rohankharwar)

Bugfixes & Improvements

  • fixed memory leak with all background transaction procedures like periodic.iterate or periodic.commit
  • fixed apoc.warmup.run, (Thanks @fpavageau)
  • performance improvements to periodic.iterate and periodic.commit
  • Auth information from URL turned into basic auth headers (thanks @ikwattro)
  • Hide passwords & credentials in error messages
  • apoc.meta.graph and apoc.meta.stats now use the transactional database statistics and are instant
  • procedure compiler (checker) update (thanks @fbiville)
  • increased jdbc fetch size
  • use id-generator for highest-node and rel-ids
  • fixes for algorithms esp. concurrency and correctness
  • fix for apoc.nodes.delete
  • fix to dijkstra for string cost properties

Preview Release for Neo4j 3.1.0-M10 with User Defined Functions

06 Oct 08:54
Compare
Choose a tag to compare

We already converted about 50 procedures into functions from the following areas:

package # of functions example function

date & time conversion

3

apoc.date.parse("time",["unit"],["format"])

number conversion

3

apoc.number.parse("number",["format"])

general type conversion

8

apoc.convert.toMap(value)

type information and checking

4

apoc.meta.type(value)

collection and map functions

25

apoc.map.fromList(["k1",v1,"k2",v2,"k3",v3])

JSON conversion

4

apoc.convert.toJson(value)

string functions

7

apoc.text.join(["s1","s2","s3"],"delim")

hash functions

2

apoc.util.md5(value)

We also started to add default values for parameters and deprecate procedures that required alternative names because of a wider parameter set.

We also moved the Description annotation from APOC's own to the one now provided within Neo4j, so you'll see the descriptions for all functions and procedures in dbms.procedures().

3.0.4.1 Release of Awesome Procedures On Cypher (APOC)

22 Aug 16:11
Compare
Choose a tag to compare

*NB: This release requires at least Neo4j 3.0.4. *

A ton of new procedures has been added, in total we do now have a collection of way more than 200 procedures.

Thanks to everyone who made that happen.