Releases: neo4j-contrib/neo4j-apoc-procedures
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
APOC Release 3.2.0.1
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
APOC Release 3.1.2.5
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
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)