Fixes #3610: Add advanced SQL analytics to streaming cypher rows before returning results to the client #4339
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #3610
Overview
Fixes
https://github.com/neo4j-contrib/neo4j-apoc-procedures/issues/3610
Created an
apoc.jdbc.analytics(<cypherQuery>, <jdbcUrl>, <sqlQueryOverTemporaryTable>, <paramsList>, $config)
procedure.Imho is better than use an aggregation function, because it's more customizable, since I can choose what results to get and how to get them, otherwise to do something like below, with movies_count I should put e.g. a parameter
aggKeys
and increase the complexity.The procedure executes 3 steps:
<cypherQuery>
param<sqlQuery>
param (which can be an complex analytics query) and returns dataChanges implemented
apoc.load.jdbc*
for DuckDB inextended/src/test/java/apoc/load/DuckDBJdbcTest.java
jdbc:duckdb:
URL. Therefore added fallback here to allow it.apoc.load.jdbc.analytics
tests for:To evaluate