Skip to content

Releases: neo4j-contrib/neo4j-apoc-procedures

APOC Summer Release 3.2.0.4

22 Jul 09:40
Compare
Choose a tag to compare

It's summertime, but that doesn't mean we're less active building cool stuff for you to use with Neo4j.
About 3 months with almost 50 new features and fixes to APOC after our spring-release we're happy to announce two new releases for Neo4j 3.1 and 3.2.

Thank You

Of course my thanks goes to the people contributing to APOC, foremost Alberto, Angelo, Daniele, Omar, and Lorenzo from Larus Italy, who did most of the work.

Ron van Weverwijk, Brad Nussbaum, Stefan Armbruster, Valentino Maiorca, Max de Marzi, Andrew Bowman also worked on new features.

And we got fixes and improvements for code and documentation from Gabor Szarnyas, Chris Willemsen, John Bodley, Elad Wiess, and Nicholas Schiestel.

Highlights

  • improvements in the Cypher export procedures
  • detailed output of schema indexes and constraints
  • nested (sampled) schema listing
  • merge nodes and relationships with dynamic labels
  • functions for working with large decimal numbers
  • atomic operations on properties
  • update tree structures
  • updates in relational databases
  • connection test of dense nodes
  • XPath to access a subset of a XML document
  • fuzzy matching and Levensthein distance
  • virtual graph grouping

Bugfixes

  • warmup had a bug that made it fail with graphs with more than 2bn nodes or relationships
  • Periodic.iterate should now better report nested errors.
  • Improved error messages for missing database drivers
  • Dropping the exisiting schema in schema.assert is now optional
  • Faster turnaround in paralellization
  • apoc.convert.toMap now also works for nodes and relationships

Feedback

And of course APOC cannot improve if you don't provide your feedback, so please let us know if you like it and find it useful (best on Twitter).

If you find any issues or have ideas for improvements don't hesitate to send us issues

Of course, the best thing is to get a pull request with a bug fix or improvement.
So don't be afraid and give it a try.

APOC Summer Release 3.1.3.8

22 Jul 09:39
Compare
Choose a tag to compare

It's summertime, but that doesn't mean we're less active building cool stuff for you to use with Neo4j.
About 3 months with almost 50 new features and fixes to APOC after our spring-release we're happy to announce two new releases for Neo4j 3.1 and 3.2.

Thank You

Of course my thanks goes to the people contributing to APOC, foremost Alberto, Angelo, Daniele, Omar, and Lorenzo from Larus Italy who did most of the work.

Ron van Weverwijk, Brad Nussbaum, Stefan Armbruster, Valentino Maiorca, Max de Marzi, Andrew Bowman also worked on new features.

And we got fixes and improvements for code and documentation from Gabor Szarnyas, Chris Willemsen, John Bodley, Elad Wiess, and Nicholas Schiestel.

Highlights

  • improvements in the Cypher export procedures
  • detailed output of schema indexes and constraints
  • nested (sampled) schema listing
  • merge nodes and relationships with dynamic labels
  • functions for working with large decimal numbers
  • atomic operations on properties
  • update tree structures
  • updates in relational databases
  • connection test of dense nodes
  • XPath to access a subset of a XML document
  • fuzzy matching and Levensthein distance
  • virtual graph grouping

Bugfixes

  • warmup had a bug that made it fail with graphs with more than 2bn nodes or relationships
  • Periodic.iterate should now better report nested errors.
  • Improved error messages for missing database drivers
  • Dropping the exisiting schema in schema.assert is now optional
  • Faster turnaround in paralellization
  • apoc.convert.toMap now also works for nodes and relationships

Feedback

And of course APOC cannot improve if you don't provide your feedback, so please let us know if you like it and find it useful (best on Twitter).

If you find any issues or have ideas for improvements don't hesitate to send us issues

Of course, the best thing is to get a pull request with a bug fix or improvement.
So don't be afraid and give it a try.

APOC Release 3.2.0.3 for Neo4j 3.2.x

15 May 07:28
Compare
Choose a tag to compare

This is the first final release for Neo4j 3.2.0

It also contains required API changes for this new Neo4j release.

Please note that some APOC procedures now for security reasons have to be whitelisted as unrestricted, because they use internal APIs:

dbms.security.procedures.unrestricted=apoc.meta.*,apoc.node.* (or apoc.* for all).

Thanks a lot to every APOC user for the great feedback and reporting issues. Join us on neo4j.com/slack in the #apoc channel.

Big kudos to everyone who contributed to this release: @fbiville @InverseFalcon @tomasonjo @sarmbruster @jansta @Arslanale @bradnussbaum

And the very productive team from Larus-BA, Italy: @albertodelazzari @AngeloBusato @DanielBerton @inserpio @omarlarus

This release contains the following updates:

  • update to Neo4j 3.2.0, Procedure Compiler 1.2

Especially cool are the new conditional procedures and the many improvements in export.

New Features:

  • property record loading for warmup, apoc.warmup.run(true)

  • Added conditional cypher execution: apoc.when(pred, then-stmt[, else-stmt]), apoc.do.when(), apoc.case([pred,stmt,pred,stmt],else), and apoc.do.case().

  • Add ability to pause / resume triggers (#437) Fixes #403

  • use export config quotes in CSVWriter (#417) issue #388

  • new procedures to rename property, rename label, rename reltype (#371) Fixes #302

  • procedure apoc.math.regr implemented Issue #316

  • function apoc.text.slug (#369)

  • Cypher export now optionally creates 3 different files fixes #270 (#374)

  • allowed "optional" config param in path expander procedures (#422)

Fixes:

  • Fix for apoc.load.jdbc Also explicitely close the connection, not just the statement, should fix #418
  • Adding support for java.sql.Date and java.util.Date in JDBC to convert to String (#411)
  • Fixes #395 - Apoc.trigger.propertiesByKey adding a dynamic label based on newValue vs oldValue does not work (#434)
  • Fixes #334 - make sure that manual index operations are read-only (#412) (#429)
  • #367: fix IllegalStateException when removing properties (#401)
  • Fixes #303 - constraint issue (create before delete) with mergeNodes (#389)
  • Allowed negative time parameter to apoc.date.format() (#393)
  • ElasticSearch: more general encoding for _search fixes #372 (#373)
  • Prevent path expander termination filter from filtering below minLevel (#379)
  • MongoDB ObjectId can be packed, it will be converted to String fixes #355 (#368)
  • Util method for transaction termination checking (algo and warmup) fixes #211 (#366)
  • Fixed path expander 'limit' interaction with 'minLevel' (#363)

Documentation Updates

  • Update documentation for procedures that have converted to functions (#427)
  • Fixes #331 - missing detailed documentation for some procedures (#432)
  • Fixes #176 - Additional documentation on apoc.triggers (#431)
  • added-gephi-export-weighted-network-docs
  • Added documentation for conditional cypher execution procedures
  • Fixes #399 - Missing detailed documentation for Graph Refactoring procedures (#402)
  • fixes #187 - docs example for XML (#400)
  • Fixes #387 - add example for apoc.load.jdbcParams to docs (#390)
  • fixes #252 - docs should explain export config (#386)
  • Fixes #253 - docs statement on default config values not correct (#385)
  • Add documentation to readme for installing APOC for Neo4j Desktop so that the kernel extension is started (and configuration read). #313
  • fixes #321 apoc.json.setJsonProperty doesn't exist (#381)
  • Fixed omission of a parameter in apoc.coll.occurrences documentation. (#370)

APOC Release 3.1.3.7 for Neo4j 3.1.x

15 May 07:23
Compare
Choose a tag to compare

Thanks a lot to every APOC user for the great feedback and reporting issues. Join us on neo4j.com/slack in the #apoc channel.

Big kudos to everyone who contributed to this release: @fbiville @InverseFalcon @tomasonjo @sarmbruster @jansta @Arslanale @bradnussbaum

and the very productive team from Larus-BA, Italy: @albertodelazzari @AngeloBusato @DanielBerton @inserpio @omarlarus

This release contains the following updates:

  • update to Neo4j 3.1.4, Procedure Compiler 1.2

Especially cool are the new conditional procedures and the many improvements in export.

New Features:

  • property record loading for warmup, apoc.warmup.run(true)

  • Added conditional cypher execution: apoc.when(pred, then-stmt[, else-stmt]), apoc.do.when(), apoc.case([pred,stmt,pred,stmt],else), and apoc.do.case().

  • Add ability to pause / resume triggers (#437) Fixes #403

  • use export config quotes in CSVWriter (#417) issue #388

  • new procedures to rename property, rename label, rename reltype (#371) Fixes #302

  • procedure apoc.math.regr implemented Issue #316

  • function apoc.text.slug (#369)

  • Cypher export now optionally creates 3 different files fixes #270 (#374)

  • allowed "optional" config param in path expander procedures (#422)

Fixes:

  • Fix for apoc.load.jdbc Also explicitely close the connection, not just the statement, should fix #418
  • Adding support for java.sql.Date and java.util.Date in JDBC to convert to String (#411)
  • Fixes #395 - Apoc.trigger.propertiesByKey adding a dynamic label based on newValue vs oldValue does not work (#434)
  • Fixes #334 - make sure that manual index operations are read-only (#412) (#429)
  • #367: fix IllegalStateException when removing properties (#401)
  • Fixes #303 - constraint issue (create before delete) with mergeNodes (#389)
  • Allowed negative time parameter to apoc.date.format() (#393)
  • ElasticSearch: more general encoding for _search fixes #372 (#373)
  • Prevent path expander termination filter from filtering below minLevel (#379)
  • MongoDB ObjectId can be packed, it will be converted to String fixes #355 (#368)
  • Util method for transaction termination checking (algo and warmup) fixes #211 (#366)
  • Fixed path expander 'limit' interaction with 'minLevel' (#363)

Documentation Updates

  • Update documentation for procedures that have converted to functions (#427)
  • Fixes #331 - missing detailed documentation for some procedures (#432)
  • Fixes #176 - Additional documentation on apoc.triggers (#431)
  • added-gephi-export-weighted-network-docs
  • Added documentation for conditional cypher execution procedures
  • Fixes #399 - Missing detailed documentation for Graph Refactoring procedures (#402)
  • fixes #187 - docs example for XML (#400)
  • Fixes #387 - add example for apoc.load.jdbcParams to docs (#390)
  • fixes #252 - docs should explain export config (#386)
  • Fixes #253 - docs statement on default config values not correct (#385)
  • Add documentation to readme for installing APOC for Neo4j Desktop so that the kernel extension is started (and configuration read). #313
  • fixes #321 apoc.json.setJsonProperty doesn't exist (#381)
  • Fixed omission of a parameter in apoc.coll.occurrences documentation. (#370)

APOC Release 3.2.0.2

03 Apr 02:36
Compare
Choose a tag to compare
APOC Release 3.2.0.2 Pre-release
Pre-release

Spring Release with many updates

See the blog post for more details

  • Update to Neo4j 3.2.0-alpha07
  • Documentation update, now uses generated includes for procedure overviews. Thanks @fbiville
  • @sarmbruster worked on automatizing the "manual" index update
  • He also added support for mixed content to apoc.load.xml,
  • and provided the apoc.test.regexGroups functions for extracting parts of regular expressions.

@InverseFalcon started his first contributions last month but already added:

  • apoc.coll functions: shuffle(), randomItem(), randomItems(), containsDuplicates(), duplicates(), duplicatesWithCount(), occurrences(), reverse()

  • apoc.path procedures: subgraphNodes(), subgraphAll(), and spanningTree()

  • apoc.date functions: convert() and add()

  • apoc.algo functions: cosineSimilarity(), euclideanDistance(), euclideanSimilarity()

  • He also extended the capabilities for the apoc.path.expand procedure with new operators for filtering end nodes, limits, excluding start node from filters and more.

  • @tomasonjo submitted including a weight property as an improvement to the Gephi Streaming capability

Here are the things, I @jexp worked on:

  • improve the performance of apoc.periodic.iterate, use iterateList:true

  • Prefixing your inner statement with WITH {foo} AS foo for each return value is also no longer necessary.

  • conflicting queries, you can now for instance use retries:5

  • Added json-path support to APOCs load.json procedure and the different json functions.

  • Some bugfixes: graphml export, TTL, setting array properties, more robust startup

  • improved documentation, now there are independent versions of the docs published for the different versions.

  • Bitwise operations were turned into a function

  • Added apoc.text.format, .lpad, .rpad

  • Added new functions for creating virtual nodes and relationships.

  • Some missing procedures for updating/removing labels, properties, and relationships were also added.

  • Added support for gzipped streams for load csv and load xml

The @neo4j-contrib/larus team worked on

  • honour neo4j import restriction settings
  • handling large ElasticSearch results and scroll support
  • follow redirects for load

APOC Release 3.1.3.6

03 Apr 08:19
Compare
Choose a tag to compare

Spring Release with many updates

See the blog post for more details

  • Update to Neo4j 3.1.3 (don't use Neo4j 3.1.2)
  • Documentation update, now uses generated includes for procedure overviews. Thanks @fbiville
  • @sarmbruster worked on automatizing the "manual" index update
  • He also added support for mixed content to apoc.load.xml,
  • and provided the apoc.test.regexGroups functions for extracting parts of regular expressions.

@InverseFalcon started his first contributions last month but already added:

  • apoc.coll functions: shuffle(), randomItem(), randomItems(), containsDuplicates(), duplicates(), duplicatesWithCount(), occurrences(), reverse()

  • apoc.path procedures: subgraphNodes(), subgraphAll(), and spanningTree()

  • apoc.date functions: convert() and add()

  • apoc.algo functions: cosineSimilarity(), euclideanDistance(), euclideanSimilarity()

  • He also extended the capabilities for the apoc.path.expand procedure with new operators for filtering end nodes, limits, excluding start node from filters and more.

  • @tomasonjo submitted including a weight property as an improvement to the Gephi Streaming capability

Here are the things, I @jexp worked on:

  • improve the performance of apoc.periodic.iterate, use iterateList:true

  • Prefixing your inner statement with WITH {foo} AS foo for each return value is also no longer necessary.

  • conflicting queries, you can now for instance use retries:5

  • Added json-path support to APOCs load.json procedure and the different json functions.

  • Some bugfixes: graphml export, TTL, setting array properties, more robust startup

  • improved documentation, now there are independent versions of the docs published for the different versions.

  • Bitwise operations were turned into a function

  • Added apoc.text.format, .lpad, .rpad

  • Added new functions for creating virtual nodes and relationships.

  • Some missing procedures for updating/removing labels, properties, and relationships were also added.

  • Added support for gzipped streams for load csv and load xml

The @neo4j-contrib/larus team worked on

  • honour neo4j import restriction settings
  • handling large ElasticSearch results and scroll support
  • follow redirects for load

APOC Release 3.0.8.6

03 Apr 02:15
Compare
Choose a tag to compare

Maintenance release for Neo4j 3.0.x

  • Update to Neo4j 3.0.9
  • Fix for auto-updating manual indexes

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)