Revision history for Neo4j::Driver 1.02 2024-12-14 - Pass through Neo4j::Bolt values unchanged, reducing overhead. (GH #22) - Optimise parsing of Jolt result values and events, improving performance. (GH #23, #25) - Spin off net adapter module Neo4j::Driver::Net::HTTP::LWP into the separate distribution Neo4j-Driver-Plugin-LWP. The driver now defaults to HTTP::Tiny. This drops the dependency on libwww-perl. (GH #25) - Fix bug causing data() in Record to have extra or missing entries. (GH #21) - The properties() method of nodes and relationships now returns a reference to the internal hash. (GH #24) 1.01 2024-11-28 (TRIAL RELEASE) - Using Jolt byte array objects in string context now yields the class name. - Deprecate renamed methods summary() in Result, statement() in ResultSummary, version() in ServerInfo and config options 'tls' / 'tls_ca'. (GH #20) - Raise minimum supported versions to Neo4j::Bolt 0.4201, Neo4j::Types 2.00, Perl v5.14. Raise support target for Perl to v5.20. (GH #18) - Various internal changes affecting object structure, ResultColumns and more. 1.00 2024-11-21 (TRIAL RELEASE) - Disallow all deprecated features. (GH #19) 0.52 2024-11-21 - Minor documentation updates. - This is the last release in the 0.x branch of Neo4j::Driver. 0.51 2024-11-14 - Update documentation for the release of Neo4j::Bolt 0.5000. - Minor documentation fixes and clarifications. 0.50 2024-10-28 - Various documentation improvements: - Rewrite synopsis sections. - Clarifications regarding proper error handling using try/catch and HTTP result stream detachment. - Update for bugs and limitations. - Fix an issue that can cause CI failures in transaction.t when running the test suite live on Neo4j 5.23. 0.49 2024-04-15 - Issue a Perl warning if a broken Neo4j::Client version is detected. 0.48 2024-04-10 - The cypher_params config option now allows 'v2' as a synonym for v2. - Minor documentation updates. 0.47 2024-04-09 - Returning a Result object from a managed transaction function now issues a warning that the Result may not be valid outside the function. - Clarify in documentation that concurrent_tx is a legacy feature. - Minor documentation fixes. - Minor testing improvements. 0.46 2024-03-03 - Add support for byte array values via Bolt and Jolt (Neo4j::Types v2). - Fix Record->get() to not require its argument to be created as number when used as index, or created as string when used as field name. - Add check to prevent the HTTP-only concurrent_tx feature from being used with neo4j: URIs. - Add check to prevent plugin() after session(). - Update the "experimental" warning in the plug-in API documentation. - Calling list methods in scalar context is no longer experimental. - Avoid crash of types-temporal.t on Win32. 0.45 2024-02-16 - The boolean values used in HTTP query results are no longer chosen by the JSON coder. Perl core booleans are used on v5.36 and newer; on older Perl versions, JSON::PP booleans are used. (GH #16) 0.44 2024-02-06 - Result->peek() is no longer experimental. - Result->consume() is no longer experimental. - Result->summary() is discouraged in favour of consume(). - Internal change: Result->fetch() now detects an exhausted result stream immediately when the last record is retrieved. - Minor testing improvements. 0.43 2024-01-31 - Accept neo4j: URIs, converting them to bolt / http / https. - Change default URI from http://localhost to neo4j://127.0.0.1. 0.42 2023-12-14 - Add support for spatial and temporal Cypher values (Neo4j::Types v2). 0.41 2023-11-21 - Calling element_id() on nodes and relationships from Neo4j version 4 and earlier issues a warning. It will not become fatal. - New Neo4j::Driver::Types doc as an initial step towards Neo4j::Types v2. 0.40 2023-07-19 - Add documentation that calling element_id() on nodes and relationships from Neo4j version 4 and earlier might change to become a fatal error. 0.39 2023-07-06 - The concurrent_tx option is no longer experimental (now defaults to off). - Fix erroneous warnings for disabled concurrent transactions on HTTP. - Internal change: Store driver config options in a hash of their own. 0.38 2023-06-18 - Mitigate more test failures on slow machines and on Perl v5.14 and older. - Tests no longer fail for unexpected warnings, except during author testing. 0.37 2023-02-27 (TRIAL RELEASE) - Add deprecation warning to node and relationship id() methods on Neo4j 5 - Fix a bug introduced in 0.36 which prevented some Bolt server/network errors from being reported correctly. - Mitigate test failures on slow machines and on Perl v5.10 0.36 2023-02-05 - Add support for managed transaction functions. - Add "error" event, which makes details of server and network errors available to plug-ins as a Neo4j::Error object. (GH #7) 0.35 2023-01-24 - Fix an issue which could cause a Bolt v3/v4 session to report "Bolt error -1" and become unusable after a server-side statement evaluation failure inside an explicit transaction. 0.34 2023-01-22 - Refactor experimental plug-in API: - Rename PluginManager to Events, add_event_handler() to add_handler(), trigger_event() to trigger(). - Specify behaviour of HTTP adapters for internal error responses generated by the network library. - Deprecate adding plug-ins by module name; use plug-in instance instead. - Deprecate experimental internal http_timeout setting; use config() instead. - Fix support for non-standard database name in explicit transaction on Bolt - Fix support for transaction begin on Bolt v1/v2 0.33 2022-12-30 - Fix documentation to indicate that the Neo4j 5 non-numeric element ID for nodes and relationships is not yet supported with Bolt in Perl at this time. 0.32 2022-12-29 - Introduce Neo4j 5 non-numeric element ID for nodes and relationships - Fix test suite for Neo4j 5 - Improve IPv6 support - Add possible strategies to resolve HTTP connection problems when using dual-stack host names (e. g. localhost) to driver documentation 0.31 2022-06-13 - Replace experimental net_module config option with plug-in interface - The cypher_params config option is no longer experimental - Announce plan to switch from JSON::PP::Boolean to Perl distinguished booleans 0.30 2022-05-20 - Add experimental config option concurrent_tx to explicitly enable support for multiple concurrent transactions within the same HTTP session - Deprecate experimental config option jolt that allowed disabling Jolt - Deprecate experimental methods Result->attached() and Result->detach() - Deprecate method protocol() in experimental LWP net module - Rename method agent() to ua() in experimental LWP net module 0.28 2022-01-25 - Deprecate experimental return of results in JSON "graph" format - Deprecate experimental query statistics flag return_stats - Add deprecation warning for experimental config option ca_file - Fix constructor fallback to default uri (issue #14) - Improve session creation performance 0.27 2021-08-28 - Add config options for auth and uri - Allow config option hashes to be passed by reference - Allow passing config options to new() - Rename config option tls to encrypted - Rename config option tls_ca to trust_ca 0.26 2021-07-30 - Change in experimental feature behaviour: Most methods that return lists now yield item count when called in scalar context - deprecate experimental list context syntax for run() - deprecate experimental methods Node->deleted() and Relationship->deleted() - deprecate experimental method ServerInfo->protocol(); add method ServerInfo->protocol_version() as replacement - ServerInfo->version() is now a discouraged alias of ServerInfo->agent() - change syntax for experimental Cypher parameter conversion config option 0.25 2021-06-30 - deprecate experimental Cypher type system customisation - deprecate experimental run() with array of multiple statements 0.24 2021-06-21 (TRIAL RELEASE) - Jolt is enabled by default and no longer experimental - Bolt for Neo4j 4 is no longer experimental 0.23 2021-04-23 - work around breaking change in Neo4j 4.2.5 Jolt implementation 0.22 2021-02-11 - allow statements to begin with whitespace (fix issue #13) - fix test failing in old Perls with non-English locale (issue #12) 0.21 2021-02-06 - add experimental support for HTTP responses in Jolt format - add experimental option for custom networking modules - announce future switch from Neo4j::Driver::Type::* to Neo4j::Types::* - fix Node->labels() method, which could die on nodes without labels (issue #11) - declare Time::Piece 1.20 dependency (for Perl < 5.14) - remove REST::Client dependency 0.20 2021-01-10 - track timeout of HTTP transactions 0.19 2021-01-09 (TRIAL RELEASE) - add experimental support for newer Bolt protocol versions (for Neo4j 4) - add experimental protocol() method to ServerInfo - version discovery succeeds on Neo4j 1.x (which is otherwise unsupported) - rename StatementResult module to Result, in line with the Neo4j Driver API - internal redesign (removes private Transport modules) 0.18 2020-10-24 - fix handling of index/key collisions in field names - deprecate experimental Record->{column_keys} access - deprecate experimental Record->{meta} access - deprecate experimental Path->path() method - warn when accessing the internals of node/rel/path objects (see issue #8) 0.17 2020-10-12 - the Neo4j 4 default database name is reliably auto-detected (fix issue #6) - the option to select a database is no longer experimental - the option to select a database is now safely ignored on Neo4j 2/3 - fix rare assertion failure when retrieving nodes or relations on Neo4j 4 - get ServerInfo automatically when opening a new session - try to improve compatibility with outdated JSON module versions 0.16 2020-04-12 - add experimental option to select a database specified by name (Neo4j 4) - fix handling of outdated JSON module versions 0.15 2020-02-20 - support for secure communication using TLS encryption - add stable support for the Bolt protocol - remove XS dependency to support Pure Perl environments (HTTP only) - improve performance of running queries over HTTP - improve robustness of URL parsing - deprecate experimental mutability of auth credentials after session creation 0.14 2019-12-21 REMINDER: Neo4j::Driver 0.13 deprecated the old syntax to access nodes, relationships and paths. You need to use the new accessor methods introduced in 0.13, or else your code will fail with a future version of this software. - make Cypher type system customisable - add experimental filter to convert {param} to $param in Cypher queries - new syntax to specify the network timeout and other config options - allow strings containing just the protocol scheme be used as URIs - deprecate experimental close() method - deprecate experimental suppression of exceptions (die_on_error = 0) 0.13 2019-10-14 - declare API stable - add record streaming interface to StatementResult - implement Cypher type system, returning Neo4j entities as blessed objects - methods returning lists now expect to be called in list context - change HTTP transactions to make query statistics available by default - experimental support for HTTPS 0.12 2019-09-23 - slightly more robust Bolt support 0.11 2019-01-12 - repair broken list of dependencies 0.10 2019-01-11 - experimental support for Bolt 0.09 2018-12-03 - implement Record->data() and StatementResult->keys() - security fix: move ServerInfo from ResultSummary to Session - change get() to warn when omitting the field parameter leads to ambiguity - better error message for run() if called with an unblessed reference as query 0.08 2018-11-27 - track whether transactions are open or closed - support Perl 5.10 - add documentation and a test suite 0.07 2018-11-19 - add ResultSummary and SummaryCounters, deprecate stats() - deprecate get_bool() - improve error handling 0.06 2018-11-17 - change single() to die on failure rather than return undef - fix size() to avoid dying on results with no rows - allow REST::Neo4p::Query and Neo4j::Cypher::Abstract objects as queries 0.05 2018-04-23 - make HTTP timeout configurable 0.04 2018-04-23 - convert into a Dist::Zilla-compatible module - move supporting classes into Neo4j::Driver namespace - allow reuse under the terms of the Artistic License 2.0 0.03 2017-07-20 - improve handling of server errors 0.02 2017-01-28 - add Neo4j includeStats support - add method to handle boolean values specially 0.01 2016-11-19 - implement the Neo4j Driver API