Releases: neo4j-contrib/neo4j-apoc-procedures
APOC Fall Release 3.3.0.1
With the Neo4j 3.3.0 release, we're happy to also release a new version of APOC.
Thanks again to our friends from LARUS for their continuous support as well as some old and new contributors:
Brad Nussbaum, Marcin Cylke, Dávid Csákvári, Stefan Armbruster, Tomaz Bratanic, Johan Teleman, Will Lyon, Adam Cowley, Paul Jongsma, Kees Vegter, Michael Wolter.
There were quite a number of changes and additions, so let's get started.
New Features
-
added apoc.load.ldap
-
Allow accessing other databases via bolt
-
Added parallel degree distribution apoc.stats.degrees
-
Add apoc.cypher.runFirstColumn, apoc.coll.sortMulti, apoc.coll.flatten functions
-
implementing read locks
-
Added support for multi value JSON sources in apoc.load.json
-
Adding apoc.log.* with procedures for logging out messages
-
Adding apoc.date.currentTimestamp
-
add apoc.convert.toInteger, apoc.convert.toDouble functions
-
Added apoc.text.base64Encode, apoc.text.base64Decode functions
-
Added apoc.text.capitalize, apoc.text.capitalizeAll, apoc.text.decapitalize, apoc.text.swapCase, apoc.text.camelCase, apoc.text.snakeCase, apoc.text.toUpperCase functions
-
Added apoc.text.random(length, [valid_chars])
-
add apoc.text.split function that splits a string using a regexp
-
Added function apoc.convert.toListOf(value, type)
-
Add a apoc.version function
Bugfixes & Small Improvements
- Fix memory issue with periodic.iterate with too large tx-size
- Enable pipe as CSV arraySep character, fix
- Consistent Label order for CSV export
- Fixes #584 - Allow asterisk as node label filter
- Make default thread pool size configurable
- Parallelize Warmup
- Added aggregation to grouping nodes, made the implementation parallel
- Configurable pool size for Pools.SCHEDULED
- MongoDB compatible values flag for non-packable values
- Add exporting properties to gephi
- Add an
failOnError:false
option to load.json and friends
APOC Fall Release 3.2.3.5
With the Neo4j 3.3.0 release, we're happy to also release a new version of APOC.
Thanks again to our friends from LARUS for their continuous support as well as some old and new contributors:
Brad Nussbaum, Marcin Cylke, Dávid Csákvári, Stefan Armbruster, Tomaz Bratanic, Johan Teleman, Will Lyon, Adam Cowley, Paul Jongsma, Kees Vegter, Michael Wolter.
There were quite a number of changes and additions, so let's get started.
New Features
-
added apoc.load.ldap
-
Allow accessing other databases via bolt
-
Added parallel degree distribution apoc.stats.degrees
-
Add apoc.cypher.runFirstColumn, apoc.coll.sortMulti, apoc.coll.flatten functions
-
implementing read locks
-
Added support for multi value JSON sources in apoc.load.json
-
Adding apoc.log.* with procedures for logging out messages
-
Adding apoc.date.currentTimestamp
-
add apoc.convert.toInteger, apoc.convert.toDouble functions
-
Added apoc.text.base64Encode, apoc.text.base64Decode functions
-
Added apoc.text.capitalize, apoc.text.capitalizeAll, apoc.text.decapitalize, apoc.text.swapCase, apoc.text.camelCase, apoc.text.snakeCase, apoc.text.toUpperCase functions
-
Added apoc.text.random(length, [valid_chars])
-
add apoc.text.split function that splits a string using a regexp
-
Added function apoc.convert.toListOf(value, type)
-
Add a apoc.version function
Bugfixes & Small Improvements
- Fix memory issue with periodic.iterate with too large tx-size
- Enable pipe as CSV arraySep character, fix
- Consistent Label order for CSV export
- Fixes #584 - Allow asterisk as node label filter
- Make default thread pool size configurable
- Parallelize Warmup
- Added aggregation to grouping nodes, made the implementation parallel
- Configurable pool size for Pools.SCHEDULED
- MongoDB compatible values flag for non-packable values
- Add exporting properties to gephi
- Add an
failOnError:false
option to load.json and friends
Preview Release of APOC 3.2.0.5
- 298869c Add apoc.cypher.runFirstColumn, apoc.coll.sortMulti, apoc.coll.flatten functions
- b40e735 Fixes #597 - apoc.import.file.use_neo4j_config=true does not work as expected (#602)
- 886df44 Fixed Bolt Test
- 5c53203 Fixes #607 - add an
failOnError:false
option to load.json and friends (#613) - 9e1b6ed Added missing bolt driver to build.gradle
- 1737368 Fixes #483 - Allow accessing other databases via bolt
- 219d615 Issue #590 - test passing fine (#592)
- 61692cb implementing read locks (#601)
- 341d1ea Documentation for functions merged in #587
- 47b4eee Added apoc.text.capitalize, apoc.text.capitalizeAll, apoc.text.decapitalize, apoc.text.swapCase, apoc.text.camelCase, apoc.text.snakeCase, apoc.text.toUpperCase functions - #530
- 91b96a7 Added apoc.text.random(length, [valid_chars]) - Fixes #563
- f46da13 Fix memory issue with periodic.iterate with too large tx-size
- 14ed60e Fixes #584 - Allow asterisk as node label filter (#585)
- 9a0a5c5 Added support for multi value JSON sources in apoc.load.json
- 9ec76b8 Make default thread pool size configurable
- 0c48b17 Update exportCypher.adoc (#576)
- 88cd3a1 Parallelize Warmup
- d6d30ab Added aggregation to grouping nodes, made the implementation parallel
- cc82574 Adding apoc.log.* with procedures for logging out messages (#529)
- 1d8923a Revert "gradle task for automatic mapping between neo4j and apoc versions fixes #461 (#552)"
- b39d838 gradle task for automatic mapping between neo4j and apoc versions fixes #461 (#552)
- 78d24c6 Configurable pool size for Pools.SCHEDULED (#547)
- b0e55d8 Adding apoc.date.currentTimestamp (#554)
- 6ea5396 fixes #550 test call silent failure (#555)
- 9728992 KernelStatements in try() clause fixes #532 (#549)
- 6ef8318 MongoDB compatible values flag for non-packable values (#533)
- a442386 added apoc.load.ldap (#537)
- 087e6c9 upgrade to gradle 4.1 and gradle plugin updates
- bc7ecf8 shrinking pagecache for less memory consumption (#540)
- 2f3e124 Added function apoc.convert.toListOf(value, type)
- 34d3ced Added parallel degree distribution apoc.stats.degrees
- 4b0072d Removed debug log from Trigger, fixes #522
- 4afaead add apoc.text.split function that splits a string using a regexp (fixes #502) (#526)
- 1ebee7b fixes #523 - Add a apoc.version function (#524)
- d3c45be Fix Warmup for Neo4j 3.2
APOC Summer Release 3.2.0.4
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
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
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().
-
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
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().
-
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
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
, useiterateList: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
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
, useiterateList: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
Maintenance release for Neo4j 3.0.x
- Update to Neo4j 3.0.9
- Fix for auto-updating manual indexes