Releases: neo4j-contrib/neo4j-apoc-procedures
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)
APOC Release 3.0.8.5
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
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
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
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 mapsapoc.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 (andapoc.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
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 mapsapoc.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 (andapoc.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
We already converted about 50 procedures into functions from the following areas:
package | # of functions | example function |
---|---|---|
date & time conversion |
3 |
|
number conversion |
3 |
|
general type conversion |
8 |
|
type information and checking |
4 |
|
collection and map functions |
25 |
|
JSON conversion |
4 |
|
string functions |
7 |
|
hash functions |
2 |
|
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)
*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.