Skip to content

Neo4j 3.2 changelog

Neo Technology Build Agent edited this page Feb 26, 2019 · 29 revisions

3.2.14

Kernel

  • Backport: Removes accidental limitation of number of reltypes to 64K for high_limit format

Browser

  • Update icons

  • Introduce experimental features section in Settings

  • Enable fullscreen ability for :queries frame

  • Fix auto-completed relationships not showing in viz legend on first render

  • Fix nested :params bug

  • Update neo4j-driver to 1.7 and send transaction metadata with Cypher queries

  • Let the configuration initCmd be empty

  • Fix stream rendering issues in IE 11

  • Add Order to plan output if it exists

  • Update links to documentation in the docs sidebar

  • Show message if neo4j-browser is opened without an active graph in a Neo4j Desktop environment

  • Add support for GraSS selectors (node labels and rel types) containing a .

  • Remote guides - resovle config ’*’ to default whitelist

  • New format for tx metadata for logs

  • Fix application crash when killing a query from :queries frame

  • Support Neo4j Kerberos auth when in a Neo4j Desktop environment

  • Fix (extremely) slow data parsing in certain cases

  • Collapse manually expanded nodes in the viz

  • Replace and add more viz styling colors

  • Upgrade neo4j-driver to 1.7.2

  • Support deep links via Neo4j Desktop

  • Keep bolt connections alive in web workers

  • Fix hidden error on re-run when going from success -> error result

  • Fix :help keys in dark mode

    fixes: https://github.com/neo4j/neo4j-browser/issues/889

  • Add link :server user list to admin section of db sidebar

Misc

  • Updated Jetty version to 9.2.26.v20180806

3.2.13

Cypher

  • Take Query Parameters over default arguments. If you don't provide actual arguments, but query parameters instead (like in CALL org.neo4j.aNodeWithLabel params = Map("label" -> "Cat") ) this will from now on use the provided parameters and override any default arguments. It was preferring default arguments before, if they existed.

  • Reverts the restriction on passing unknown keys to the point function. Behaviour is now as it was before, allowing complex maps. Users need to take note of the fact that this means a map like {x:1,y:2,z:3} will create a 2D point in Neo4j 3.1-3.3, but a 3D point in Neo4j 3.4 and later.

  • Pattern comprehensions in other expressions were not planned correctly. Example:

    size([ (a)-->(b:B) WHERE (b)-->(:C) b.foo ]). This is now fixed.

  • Fixed issues with WRITE procedures interacting badly with their enclosing Cypher read queries by allowing authors to add an eager attribute to the @Procedure annotation.

  • Fixes https://github.com/neo4j/neo4j/issues/12017 so when solving an OR predicate, other predicates are only considered solved if they were solved in both underlying operators.

Causal Clustering

  • Check recovery status of store when bootstrapping cluster

Browser

  • Add support for multi-statement execution
  • In guides allow one dynamic field to update multiple elements
  • Fix :style / GraSS regressions
  • Show the total number of nodes and relationships in db meta sidebar
  • Fix issue where neo4j-browser kept allocating more and more disk space
  • Switch to React 16.4
  • Fix meta query to be more performant
  • Handle changelog url building in disconnected state
  • Fix crashing favorites sidebar when using non latin1 characters
  • Add toggle for multi statement cypher editor
  • Fix editor to handle string literals that contain new lines
  • Add :history clear command
  • Add pagecache hits and misses to plan output
  • Add complete support for bolt+routing://
  • Add Neo4j Community Forum link to sidebar
  • Enable users with non reader roles to connect
  • Fix :server switch bug in Neo4j Desktop environment
  • Fix username not updating in sidebar when disconnecting
  • Improve Cypher result rendering performance
  • Prepare for Neo4j Desktop distribution
  • Fix issue where editor buttons would overflow the viewport
  • Fetch fresh version of remote guides on every request
  • Fix neo4j-browser not working properly when db auth is disabled
  • Future proof Neo4j Desktop integration by using the url field in connection info.
  • Fix rare neo4j-browser crash when clicking on yellow Cypher warning triangle
  • Fix crashing :queries frame in clustered environments when all members couldn't be reached

3.2.12

Cypher

  • Fix bug in query cache key.
  • Make CompatibilityCache concurrency-safe
  • Fix bug in un-directed ProjectEndPoints when both end points are in scope
  • Fixes bug that caused the Unknown value type: STRUCT error with queries that use PERIODIC COMMIT over bolt and return whole nodes or relationships

High Availability

  • Failure to switch to master is no longer terminal

Browser

  • Add page cache hit ratio to :sysinfo frame
  • Make every type of Bolt transactions use web workers
  • Display driver result summary in code view
  • Support new Neo4j types (Neo4j 3.4)
  • Fix Cypher warning position in Warnings View
  • Display more store sizes if they exist (Neo4j > 3.2)
  • Add new param syntax to evaluate against the server
  • Upgrade neo4j-driver to 1.6.0
  • Render new types correctly in visualization
  • Show more information on operators in plan output
  • Fix docs links in sidebar to point to the connected version
  • Upgrade neo4j-driver to 1.6.1
  • Add auto refresh to sysinfo frame
  • Fix [object Object] output when returning paths with new types
  • Fix missing inspector items when spread over more than one line
  • Word break long values in db info drawer
  • Don’t add type hinting quotes on strings in CSV export

Cypher Shell

  • Assigning cypher expressions to parameters
  • update params display to show new params setting
  • Upgrade to 1.6.0-beta01
  • adding support for spatial and temporal datatype
  • update to 1.6 driver
  • upgrading to driver 1.6.1

3.2.11

Kernel

  • Fixes a CSV trim issue with fields containing only whitespace

Cypher

  • Fix bug with identical join hints on different optional matches
  • Fix issue with cost planning index seeks

Security

  • Replication benchmark security

Causal Clustering

  • Legacy policy create under synchronized
  • Synchronous download

Browser

  • Sync styling with Browser sync
  • Disable editor highlighting with config option
  • Add more detailed error messages for known Browser/OS issues
  • Fix issue of some queries getting stuck because of the shape of the result
  • Use latest released neo4j-driver
  • Update :sysinfo to display 'Store sizes' jmx values
  • Fix for clearing local data when not signed in to browser sync
  • Fix memory leak in background job

Cypher Shell

  • upgrading to latest version of driver

3.2.10

Kernel

  • Data snapshot query execution
  • CSV parser do not trim quoted strings
  • More detailed message on MultipleFoundException during findNode operation.
  • Traversal endpoint script execution is now disabled by default, by introducing the unsupported.dbms.security.script_enabled setting, and making it false by default.
  • 3.1 Resolved inc backup debug.logs wrong location
  • 3.2 Resolved inc backup debug.logs wrong location

Cypher

  • Don't throw error for n.prop = null

  • Do not return Object[] when querying for array property in Cypher.

  • Fix that MERGE did not enforce relationship uniqueness.

  • Fixes bug with missing results when a relationship created in the same transaction was not found by optional match or pattern comprehension

  • Bugfix so that the cost planner can now plan the following:

    REMOVE CASE WHEN ... THEN a ELSE b END.prop

  • Fixes planner bug with join hints on optional matches.

  • Fix bug in bytecode generation for multiple ands and ors

  • Fix offset bug in periodic commit

  • Close procedure streams on failures

  • Fix Node X not found exceptions arising when searching an explicit index which contains nodes that have been deleted.

Security

  • Fix ssl protocol config for ssl context

High Availability

  • Elector identification now happens more reliably

Causal Clustering

  • Raft pre elections should be compatible with refuse_to_be_leader
  • Fix cluster seeding failing in certain scenarios
  • Netty 4.1.21.Final
  • Disable hazelcast shutdown hook

Misc

  • Fixed error during upgrade from 3.1 on Debian

3.2.9

Kernel

  • Fix bugs in neo4j-shell CALL and trav commands
  • Add --pagecache parameter to the neo4j-admin backup command, with a default value of 8 MiB that now overrides the page cache setting in neo4j.conf.
  • Keeps fewer transactions in memory during recovery
  • Introduce volumetric check-pointing, where the check-point frequency is adjusted to avoid the transaction log retention policy falling too far behind.
  • Lower memory requirement of recovery

Cypher

  • Report statistics for changing node key constraints
  • Fixes issue with medium and large databases that might change relatively slowly from never having their Cypher queries replanned. This has been achieved by having the database statistics divergence threshold set by cypher.statistics_divergence_threshold shrink over time, by default from 75% to 10% over 7 hours. The decay is modelled using an inverse function that tends toward zero over many days, and so ultimately all queries will get replanned if even small changes occur.
  • Only open an InputStream in LoadCSV when needed
  • Solves problem around queries with many optional matches
  • Upgrade scala to 2.11.12

Security

  • [tls] disable client-initiated renegotiation

Causal Clustering

  • Implement a pre-election stage in Raft protocol

    This should reduce the incidence of unnecessary elections caused by a disruptive follower, for example rejoining the cluster after a network partition. This is a breaking change and must be explicitly enabled with causal_clustering.enable_pre_voting=true.

  • Upgrade to netty 4.1.17.Final

  • Fix seeding from backups

  • Raft heartbeat messages refresh election timeouts on receive rather than on process.

    This addresses unnecessary elections caused by the raft message processing being delayed and failing to reset election timeouts in a timely manner.

  • Monitoring of Raft message processing performance

  • Improved timer service

  • Release the storecopy mutex after the store copy

Browser

  • Enable thread to execute cypher on (web worker)
  • Fix issue where mapping cypher result to vis would break the app

3.2.8

Kernel

  • Fix a NullPointerException bug that could disrupt transactions if a transaction event handler was registered in between beforeCommit and afterCommit
  • Fix a bug that prevented page cache metrics from the Causal Cluster replication from being reported

Cypher

  • Properly handle filtering with empty properties map
  • Fixes bug in pattern matching around pruning var expand
  • Fixes #9492, so that PruningVarExpand after optional match will handle incoming null nodes
  • Fixes problem around equality and lists with single values
  • Improved error message for invalid regex syntax.

Causal Clustering

  • New cache for in-flight Raft entries
  • Add unified causal clustering REST endpoint

Bolt Server

  • Abandoned and timed out transactions are not released by bolt server

Misc

  • Fixed broken service installation for paths with spaces on Windows

3.2.7

Kernel

  • Fix online backup of read-only instances with schema and legacy indexes.
  • Fix a bug that would cause exceptions with the message The statement has been closed. when using the traversal API from inside procedures.
  • Fix a bug where an entity could be temporarily excluded from some index query results if another key indexed on the same entity were removed.

Cypher

  • Fix where multiple label predicates are combined with OR
  • Fixes #9685 so nested function calls in ELSE inside shorthand CASE works correctly
  • Fixes #8201 so shortestPath and allShortestPaths have the right type in WITH clauses
  • Fixes #2556 so that a sensible error message is generated when "not" is parsed as a function.
  • Fixes #3870 so that null values in a parameter map is ignored on CREATE.
  • Fixes #10021 so that we can concatenate and reverse lists of mixed types
  • Fixed bug in shortestPath with predicate depending on multiple patterns
  • Fixes #6568 so that the error message for missing a colon in the relationship type becomes more helpful.

Causal Clustering

  • Enable hazelcast logging through custom factory
  • Hazelcast bind any

Browser

  • Autologin to Browser Sync and obey server config browser.allow_outgoing_connections
  • Fix setting initial password over TLS when encryption is required
  • In query plan: show signature of the procedure that got called
  • In query plan: show the label that has been scanned
  • Fix viz bug where boolean captions didn't show up on graph elements
  • Add 3rd party LICENSES.txt and NOTICE.txt
  • Remove escaping of characters in tables views
  • Add visual feedback when adding new favourite, and enter 'edit favourite' mode.
  • Integrate with desktop API
  • Show Browser Sync banner when not accepted terms yet

Misc

  • Have systemd treat exit code 143 as success

    Since java exits with code 143 when stopped the service should treat this as a graceful exit.

3.2.6

Cypher

  • Only perform check on conflicting mode when @PerformsWrites is present
  • Shade ASM library to avoid version conflicts in embedded deployments

Causal Clustering

  • Fix store copy of growing files
  • Make topology address exception checked

Bolt Server

  • upgrade jetty server to 9.2

Cypher Shell

  • Updated Bolt driver to 1.4.3

3.2.5

Kernel

  • Close statement in node relationships iterable's
  • Importer option to disallow cache allocation on heap
  • Reduces peak memory required by importer by 40%
  • Procedures now close acquired KernelStatements
  • Transaction timeout monitor
  • Importer collects relationships with missing data
  • Validate type of fields added to legacy index.
  • Heavily reduces contention on generating ids
  • Store highId backwards scan happens only when necessary

Cypher

  • Removed unnecessary assertion in UNION
  • TransactionBoundQueryContext no longer creates new statements
  • dbms.killQueries now shows if it failed to kill a query
  • Make sure built-in procedures close resources when done

Security

  • Upgraded shiro-core version to 1.4.0 and commons-digester to commons-digester3 3.2.

    This upgrade is due to a security problem with commons-beanutils-1.8.3. See https://nvd.nist.gov/vuln/detail/CVE-2014-0114 for more details.

  • Latest netty and support OpenSSL

Causal Clustering

  • Introduce connect-randomly-to-server-group upstream selection strategy for read replicas.

    If used this is configured using the causal_clustering.connect-randomly-to-server-group setting.

  • Replication throttling

  • Free id keeper enhancement

Browser

  • Fix various bugs in editor Cypher parsing
  • Fix Browser not being able to run cypher queries when using TLS and self signed certs

Misc

  • neo4j.service now waits until network is available before starting

3.2.3

Kernel

  • The importer now accepts long values for the bad tolerance parameter.
  • Fix broken label scan store for read only slaves in HA
  • Add additional standard procedure dbms.getTXMetaData to access transactional metadata.
  • Fix bugs that prevented imports of more than 20 billion nodes from working, in environments where the amount of RAM available to the importer, was close to the amount of RAM required for the import.
  • The importer can now process datasets that are so big that even the external-to-internal ID map cannot fit in memory
  • Allow checkpoint finder to find transaction after checkpoint in large files
  • Open legacy index in writable mode for non single instance read only environments

Cypher

  • Fix an error that occurred for queries trying to query for an indexed list property in the compiled runtime.
  • Fixes bug which materializes as a None.get stacktrace, typically by Cypher queries involving nested distinct/list/map/pattern comprehensions.
  • Fix issue where a combination of SET, OPTIONAL MATCH and DISTINCT, caused the query to fail.
  • Added Procedure for checking if all indexes are online.
  • Make sure to LIMIT before EAGER

Security

  • Legacy SSL policy must have client_auth set to NONE

High Availability

  • Restore default HA pull interval to 10 seconds

Causal Clustering

  • IPv6 support in causal clustering
  • Remove disabling of logs in core topology service
  • Resolve on connect in NonBlockingChannel

Browser

  • Make whitelist config for Browser not edition dependent

Bolt Server

  • Mark UnavailableException with the correct status code

3.2.2

Kernel

  • Reduce the probability of getting false positive deadlocks from the Forseti lock manager used by default in Enterprise Edition
  • Consistency checker now check label scan store for missing entries
  • Added global page cache hit ratio to metrics
  • NativeLSS will redo population if did not complete first time
  • Wait for open calls to finish on index drop and close
  • Cleanup confusing import tool config related options.
  • Fixes issue where large import would try to allocate array larger than Integer.MAX_VALUE and fail. IdMapper memory usage slightly reduced for large imports too.
  • Don't throw on removing non existent property in batch inserter.

Cypher

  • Fix problem with the compiled runtime when solving OR predicates using two index seeks.
  • Extended isolateAggregations to handle all expressions with inner scopes
  • Fix bug around pattern comprehensions
  • Make sure to not use locking index seeks with read-only queries
  • Fix issue with the compiled runtimes handling of optional expand when the incoming bound node is null. This change removes support for optional expand entirely from the compiled runtime.
  • Fix issue with PruningVarExpander not checking for projected dependencies.
  • Fix issue where a combination of DELETE, OPTIONAL MATCH and DISTINCT, caused the query to fail.
  • Fix a null pointer error with InputPosition
  • Fix for queries combining limit and aggregation in the compiled runtime.

Security

  • Enable support for logging in with sAMAccountName (dbms.security.ldap.authentication.use_samaccountname=true) instead of distinguished name to ldap server , requires setting dbms.security.ldap.authorization.system_username and dbms.security.ldap.authorization.system_password
  • Unified SSL support and secure cluster communications

High Availability

  • HA IPv6 support

Causal Clustering

  • Fix discovery listen address ignored

Browser

  • Introduce fetching client configuration from a remote JSON file
  • Add cluster role, db filename and total store size to sidebar
  • Add dark theme
  • Only display truthy connection data in the browser title
  • Save/Edit favorite in editor
  • Add support for setting browser :config with objects
  • Fix sluggish experience when having hundreds of thousands meta items
  • Fix app break when no events in UDC state
  • Fixes mapping issue when using :sysinfo with HA
  • Honor url whitelist when fetching remote grass files
  • Bring back :style command
  • Don't add repeated executed commands to history

Misc

  • License Lucene Index Upgrade as GPL

3.2.1

Kernel

  • Parallel I/O in importer
  • Removes import stage calculating dense nodes
  • Allow concurrent index drops during indexes forcing operation
  • Cluster has ability to recover from half-applied constraint
  • Lowers batch size of input-reading stages in import
  • Force count store rebuild during store migration
  • Don't cache unchanged records in DirectRecordAccess
  • Close statement acquired during getRelationshipTypeById call in StandardRelationshipActions
  • Fix out-of-bounds issue when applying fixed-reference high-limit format records during recovery or cluster store-copy. Bumps transaction log version.
  • Additional log message and more verbose error message for count store.

Cypher

  • Fixed error with accessing maps and lists with null, so it now evaluates to null instead
  • Fixed error using pruning var-expand when relationship variable is referenced in predicate
  • Fixed error with START clauses in 3.2 caused by the removal of the rule planner.
  • Fixed error using pruning var expander with aggregation over path variable, and disallowed for maxlength=1 patterns.
  • Fixes bug which materializes as a None.get stacktrace, typically by Cypher queries involving nested list/map/pattern comprehensions.
  • Support USING INDEX for OR expressions
  • Fixed problems with planning non-equality predicates that are OR'd together and could be solved with index range seeks or scans.

Security

  • List correct roles for dbms procedures
  • User with expired credentials can only call procedure to change password and show current user

High Availability

  • Internal restarts no longer break bolt connections

Causal Clustering

  • Makes Hazelcast timeouts depend on leader_election_timeout
  • It is now possible to cleanly shutdown CC instances before they join the cluster
  • Fixes issue where a cluster seeded with an empty store would occasionally fail to start

Tools

  • Added additional arguments to neo4j-admin import to match capabilities in neo4j-import

Browser

  • Try to fetch guide remotely if not found locally
  • Fix slow loading of user and system info in database drawer
  • Read and act on server config retain_connection_credentials
  • Define URL to connect to with URL param 'connectURL'
  • Style table view and just show relevant information
  • Fix editor error when writing Cypher LOAD CSV or referencing non existing indexes
  • Fix failure to parse server config browser.remote_content_hostname_whitelist
  • Fix missing scrollbars in left drawer in some web browsers
  • Make the Browser commands case insensitive
  • Fix for collected graph items now showing up in viz
  • Bring back :server status command.
  • Present total db hits and time stats in PROFILE View
  • Backtick meta items in auto generated queries from drawer
  • Fix login for restricted users
  • Fix broken elapsed time in :queries frame
  • Add slider to text view statusbar
  • Listen for config maxFrames and enforce that limit in stream
  • Fix indicator being at start of line in error messages
  • Fix for sensitive dropdown menu closing too easy
  • Update document title with connected username and host
  • Add support for handling multiple commands from browser.post_connect_cmd
  • Escape backticks in meta item queries
  • Limit number of meta items shown in db drawer
  • Fix :help input with space
  • Fix unstable guide pagination
  • Fix missing auth headers on local :GET, :POST etc command requests
  • Fix cursor sometimes resetting to start position
  • Parse server config duration strings correctly

Bolt Server

  • Support for multiple bookmarks in Bolt server

Cypher Shell

  • Fix periodic commit statements
  • Fixed startup crash on Alpine Linux

Misc

  • Fixed output of 'time settings' in dbms.listConfig and JMX

3.2.0-rc2

Kernel

  • listQueries displays startime in UTC

Security

  • Enforced admin execute rights for some procedures:

    • dbms.listConfig requires admin privilege.
    • dbms.listActiveLocks can only be used on a query the user owns unless the user is admin.

Causal Clustering

  • Fix OOM during startup.

Config

  • changed default transaction log retention to 1 day in community edition

Cypher Shell

  • Fixed handling of pipes on Windows
  • updated to neo4j java driver 1.2
  • cypher-shell now available in standalone Debian and RPM packages
  • Added tabular output format
  • automatically select output format when terminal is interactive or not

3.2.0-rc1

Kernel

  • Resolves a deadlock scenario applying constraint
  • Avoid multiple attempt to open same index on log summary in IndexingService
  • Utilizes available off-heap memory and imports relationships for multiple types at a time. Maximum amount of memory is by default to use 90% of free memory on the machine, but can be explicitly overridden using --max-memory option in neo4j-import.
  • Disable IOLimiter on checkpoint scheduler stop

Cypher

  • Deprecated syntax for legacy patterns:

    • Binding a variable in a variable length pattern
    • Binding a variable when using colon for each relationship type in a pattern with multiple types
    • Inlining a property predicate when using colon for each relationship type in a pattern with multiple types
    • Using colon for each relationship type in a variable length pattern with multiple types
  • Only use online indexes in planning

  • Fixed an unnecessary error when loading an empty file using LOAD CSV WITH HEADERS

  • Properly materialize maps in compiled runtime

  • Make sure floating point comparisons are consistent across runtime and indexes

Tools

  • neo4j-import: Ability to configure import input data buffer size using --read-buffer-size

Browser

  • Pre-release of rewritten version of Neo4j Browser.

Misc

  • neo4j package now depends on cypher-shell package instead of bundling it

3.2.0-alpha08

Kernel

  • Overwriting property with same value no longer generates write command
  • More scalable index logging
  • Allow skip bad entries logging during import

Cypher

  • Improved cypher execution speed on variable length queries where only the distinct pairs of start and end node are of interest. One query to benefit would be MATCH (a)-[*4..5]->(b) RETURN DISTINCT a, b.
  • Allow more granular configuration of literals extraction
  • It is no longer possible to CREATE or DROP composite uniqueness constraints. To enforce composite uniqueness, we refer to the new NODE KEY constraint.
  • Use getDegree instead of expansion
  • Correct query type for procedures
  • Handle Ands with single value
  • Predicates on shortest path and optional match

Security

  • Added new role Editor that is allowed to read and write data but not allowed to create new tokens.

Causal Clustering

  • Improve transaction streaming

Tools

  • Added --version argument to neo4j-admin and neo4j commands
  • Renamed neo4j-admin version to neo4j-admin store-info

Misc

  • Show allocated memory and page hits/faults in dbms.listQueries

  • Removed neo4j-shared.sh. Functionality is now included in all wrapper scripts directly

  • Neo4j now exits with code 0 for SIGINT and SIGTERM

    • systemd will no longer report neo4j as failed after you do systemctl stop neo4j.
    • Hitting Ctrl-C when running neo4j console will no longer exit with error if shutdown was performed gracefully.

3.2.0-alpha07

Kernel

  • Publish page cache hits metric via metrics plugin

  • Creating composite indexes or constraints where the same property occurs in more than one position is no longer allowed

  • Composite uniqueness and NODE KEY

    • The existing uniqueness constraint has been generalized to multiple properties
    • A new NODE KEY constraint has been developed combining the features of a composite uniqueness constraint and property existence constraint over one or more properties
  • Always use latest available commit for lucene index snapshoting

Cypher

  • The Cypher planner now supports composite index seeks if there are equality predicates for all properties in the index

Security

  • Add security headers when returning static assets
  • Added support for whitelisting user-defined function. This allows a user to load only a specific user-defined function from a package of functions.
  • Revert change in #8621. Publisher will now be allowed to create new tokens.

High Availability

  • The master of a two instance cluster will now serve writes on slave failure
  • Cluster formation decision depends on initial_hosts contents

Causal Clustering

  • Decrease default topology refresh timeout from 1 minute to 5 seconds.
  • Switch on/off Multi Data Center with a single config line
  • Added Data Center-Local Catchup Strategy for Multi-DC Deployments.
  • Improve robustness of hazelcast usage.
  • User-defined Upstream Selection Strategy for Multi-DC Configuration without code.
  • Only log changes in read replica topology rather than the whole thing
  • Reduce spurious re-elections by improved timer handling.
  • Fix deadlock in catchup pool.

Tools

  • Fixed shutdown of neo4j-shell to unbind its port

  • Added additional memory and consistency parameters to neo4j-admin

    • neo4j-admin commands can now be given additional heap by specifying the HEAP_SIZE variable. This is mentioned in the output of neo4j-admin help as well.
    • tools.consistency_checker.* settings have been deprecated, replaced by commandline arguments in neo4j-admin check-consistency
    • added commandline arguments to neo4j-admin check-consistency and neo4j-admin backup to control which consistency checks are performed
  • Added ability to ignore bad data in neo4j-admin import

  • neo4j-admin backup now reports different error codes:

    • code 1: backup failed to run
    • code 2: backup succeeded but consistency check failed to run
    • code 3: backup succeeded but consistency check found inconsistencies
  • exit with error when unrecognized arguments are given to neo4j-admin

Misc

  • removed extra space from log messages

3.2.0-alpha06

Kernel

  • Improve legacy index restoreSortFields speed. Fix for GH issue #8840
  • dbms.listQueries would now report requestScheme as protocol.

Cypher

  • Cypher will no longer throw an exception when comparing values using the comparability operators <, <=, >=, and >
  • Throw exception when calling shortestPath with same start and end node
  • Using LIMIT with zero or a negative argument will never pull any rows.
  • Interpreted runtime will no longer throw an exception when ordering, for any combination of values, and ordering for lists now works as intended.
  • Fix bug where profile was reporting DB hits on the wrong pipe
  • Added a new config setting dbms.import.csv.legacy_quote_escaping to select whether to conform to the standard https://tools.ietf.org/html/rfc4180 for interpreting escaped quotation characters in CSV files loaded using LOAD CSV. Setting this to false will use the standard, interpreting repeated quotes '""' as a single in-lined quote, while true will use the legacy convention originally supported in Neo4j 3.0 and 3.1, allowing a backslash to include quotes in-lined in fields.
  • Cypher now reports the correct count for self-relationships (loops)
  • Cypher now supports an updated parameter syntax $param and it is no longer possible to start symbolic names (variables, property keys, parameter names) with a currency symbol
  • Update cost for filtering that uses property and label access.

Security

  • Added support for whitelisting procedures. This allows a user to load only a specific procedures from a package of procedures. The setting is to use is dbms.security.procedures.white_list
  • Added ProcedureTransaction , to allow procedures to terminate the transaction with out having access to the KernelTransaction API.
  • As a extension of #8753 we have now added sandboxing to user defined functions and user defined aggregation functions.

Causal Clustering

  • Fix issue recovering skips in raft log.
  • Core members can refuse to become leaders
  • Adds /db/server/core/read-only so load balancers can send reads to follower/candidate instances
  • Support tagging of servers and display it using the cluster overview procedure.
  • Update to hazelcast 3.7.5
  • update to latest netty on 4.1

Tools

  • neo4j start once again prints correct address on startup

Config

  • Log warnings about deprecated config settings

Misc

  • Fixes an issue where adding multiple key/value pairs for a node or relationship for a legacy index in separate transactions would duplicate some internal keys by mistake so that the lucene documents wouldn't be seen as empty when it really was empty later on. This would make such documents, which should have been removed, lingering in the index.
  • Fixes an issue where removing one key from a node or relationship which had multiple keys auto-indexed would remove all other keys for that entity from the auto-index too by mistake.
  • Fixed log rotation on Windows
  • Fixed location of logs on Windows
  • Fixed directories specified in Debian/RPM config
  • neo4j-admin help now has better formatting

3.2.0-alpha05

Kernel

  • Makes CSV backslash-escaped quotes parsing optional
  • 3.2 active queries improvements

Cypher

  • Move the compiled runtime to enterprise
  • Solves parsing bug for pattern comprehensions
  • Re-enable relationship counts from count store
  • Fix bug with combined aggregation and sorting

Security

  • Restrict access to unsecured components and add a configuration option to allow trusted procedures full access.
  • Extend GraphDatabaseService to allow procedures to start transactions in new threads

Causal Clustering

  • introduce filters and tags for server policy load balancing

Tools

  • Fixed neo4j-admin set-initial-password to exit with error when password already set
  • Fixed neo4j-admin set-default-admin to exit with error if user doesn't exist

Misc

  • Improved hostname resolution for Graphite connections
  • Package installation now creates a neo4j group

3.2.0-alpha04

Kernel

  • Update metrics plugin to resolve all it's external dependency during instantiation.
  • Storage of labels are generally faster and uses less memory due to a new and native label index. This index is set as the default, but can be changed using dbms.label_index setting. No migration is required, but the new label index will be automatically built on the next start-up of a db.
  • Fix an issue in batch importer where id duplication detection would miss some 1 in 10.000 ids
  • Remove ability to configure page size.

Cypher

  • Fixes #8587 maintaining empty array type when storing and retrieving from properties
  • Fixed cost planner ensuring concurrency guarantees on MERGE relationship
  • Fixed #6836 regarding incorrect error message for properties of arrays of arrays
  • Upgrade Neo4j 3.2 to support Cypher compiler for Neo4j 2.3.9 and Neo4j 3.1.1
  • Fixed shortestPath planning when preceded by unwind

Security

  • When using more than one auth provider, calling native user management procedures will produce a warning.

Causal Clustering

  • Block Device support in Causal Clustering
  • Move cluster state to data directory, was previously under graph.db.
  • Check-points can no longer run while store-copy is running, and vice versa. This to prevent a class of failures e.g. check-point pruning logs beyond starting point of store-copy and to better support native label indexing.
  • Fixes problem where running out of disk space when appending to the Raft log would cause recovery to fail.

Tools

  • Ensured queries executed through neo4j shell are logged

Procedures

  • Change listConfig procedure to use contains and not startsWith
  • neo4j-admin: added missing version command

3.2.0-alpha03

Cypher

  • Fix the error message for toBoolean, which was erroneously indicating that Number would be a correct input type.
  • Fixes #8606 - resolves a bug when using pattern comprehension and OPTIONAL MATCH
  • Fixed bug with relationship direction in create unique with path variable

Security

  • Fix erroneous LDAP authorization cache expiry in multi-provider setup

  • Added new permission level for handling creation of tokens

    • Default role given this permission is Architect and Admin
    • setting dbms.security.allow_publisher_create_token to true will give this permission to Publisher as well
  • Usernames may now contain all ASCII characters between ! and ~ except : and ,

  • dbms.security.showCurrentUser deprecated by dbms.showCurrentUser

Causal Clustering

  • Seeding a new member of an idle cluster using a backup from that idle cluster could fail.

Tools

  • neo4j-admin check-consistency: Added ability to run against a backup
  • Make sure that --help always prints help text for neo4j-admin commands
  • Added information about environment variables to neo4j-admin help

Procedures

  • Added procedure to list currently active config

Cypher Shell

  • empty password gives a more descriptive error message

Misc

  • Added native systemd service
  • Added RPM package

3.2.0-alpha02

Kernel

  • Fix a bug that on rare occasions could lead to leaking paged memory.
  • Include CPU active time, lock wait time, and query status in ListQueries

Cypher

  • User-defined aggregation functions

  • Increased use of NodeIndexSeek to wider range of cases.

    • Equality predicates on expressions of map literals and variables of map type
    • Index Nested Loop joins even when incoming horizon contained a query plan
  • Better error messages for property assignment to invalid collections

  • Attempting to apply STARTS WITH, ENDS WITH, or CONTAINS on a non-string now returns null

  • Make collections reversible.

  • Fix eagerness for labels() function

Security

  • Moved auth plugin api to separate module

  • Generated SSL certificate files should only be readable by owner.

  • Fix: logback conflict in enterprise security on embedded use

  • Corrected description for procedure security settings

  • Improved error messages for unsupported auth tokens

  • Fix of the LDAP auth provider when configured for authorization but not authentication, in which case it would never assign any roles to users regardless of their actual roles.

  • Improved LDAP Authorization support:

    • Augment dbms.security.showCurrentUser to show the active role set for the current user, regardless of the configured auth providers.
    • Fix a bug in the LDAP auth provider that causes authorization failures when LDAP authentication is disabled.

Tools

  • Fixed handling of paths with spaces in them on Windows

  • Implement new neo4j-admin backup surface

    • consistency-check, if specified, is run for both full and incremental backup
    • Exit with clear error messages on failures with exit code 1
    • If incremental backup fails, the old backup is moved, and then it falls back to full backup
    • fallback behavior can be disabled if desired, in which case failures are reported directly and old backup is not moved

Config

  • Improved parsing of configuration

    • added a significant amount of config validation to the startup process of neo4j. Any errors will prevent neo4j from starting but they will also have very helpful error messages attached to them.
    • added a new config option dbms.config.strict_validation which enables even stricter validation (false by default, will be true by default in 4.0).
    • added new methods to embedded graph database builder APIs which take a Config object instead of a StringMap.
    • deprecated several database builder API methods in favor of the new Config methods.

Bolt Server

  • Make bookmark await timeout configurable
  • Close network channel on Bolt handshake failure

Cypher Shell

  • Fixed incorrect handling of bangs [!] in usernames/passwords

3.2.0-alpha01

Kernel

  • Introduce lock acquisition timeout
  • Add validation of schema and legacy index values: do not allow nulls, values that over exceed lucene max term size, etc.
  • Use label scan store by default if possible for schema index population
  • Update legacy indexes to preserve documents sort fields on update
  • Lower default checkpoint system strain by changing checkpoint interval from 5m to 15m and iops limit from 1000 to 300.

Cypher

  • Allow Cypher to solve OR predicates with multiple leaf plans

  • Rewrite comparisons between literals into booleans when possible

  • Added the rewriter which removes unnecessary optional matches

    This is the 3.2 version of #8106

  • Introduce PruningVarExpand operator

  • Support count in compiled runtime

  • Remove RULE planner

  • Upgrade Cypher compiler dependency to 2.3.8

  • Teach the cost planner how to use legacy relationship indexes

Causal Clustering

  • Fix bug where network thread worker would stop if inbound channel queue was full
  • Fix for bug where we'd say that an index didn't exist in the range if it was in the last range being stored

Tools

  • neo4j-admin: added version command

    This command can be pointed against a store and reports information about its version.

    usage: neo4j-admin version --store=<path-to-dir>
    

    Two example outputs are

    • If store matches latest known version to the tool:
    Store format version:    v0.A.7
    Introduced in version:   3.0.0
    Current version:         3.0.5
    
    • If store is older than latest known version to the tool:
    Store format version:    v0.A.5
    Introduced in version:   2.2.0
    Superseded in version:   2.3.0
    Current version:         3.0.5
    

Browser

  • Update JS driver to 1.0.0
  • Update Neo4j JS Driver to 1.0.2
  • Update neo4j js driver to 1.0.3
  • Get Bolt address from server discovery service
  • Query parameter support added
  • Persist visualization auto-complete of relationships and add it to Settings Drawer.
  • Cypher frame now only loads ascii table results when required
  • Enable Bolt setting by default
  • List and kill running queries with the new command :qs
  • See Core-Edge cluster in :sysinfo and connect to individual members
  • Update neo4j-driver to 1.1.0
  • Bolt query execution time is now timed on the server side.
  • Update links to docs on pre-releases to 'beta'
  • Rename command :qs -> :queries
  • Include the server version in the beta docs url
  • Show 'beta' welcome frame for pre-releases to promote new features and how users can send us feedback.
  • Enable :queries command only when procedure is available
  • Sort user roles alphabetically in user admin frame
  • Add support for the bolt+routing protocol when in a Causal Cluster
  • Give users feedback when setting :param
  • Reuse connections for heartbeat to not flood the security log with login items

Cypher Shell

  • Added modes: verbose/plain. Verbose displays more information and is intended for interactive use. Plain displays only the data from queries, intended for scripting

  • Added multiline statement support

  • Added option (--encryption) to choose between encrypted and unencrypted communication with the server

  • Added option --debug to get additional information in case of errors

  • Made semicolons optional for shell commands

  • Added version of connected Neo4j to welcome message

  • Fixed lack of interactive detection on Windows

    • Now always uses interactive mode on Windows by default
    • If non-interactive mode is desired (for scripting) then a new flag --non-interactive has been added
  • Insist that username is not empty

  • Fallback to plain bolt:// when url scheme is bolt+routing://

Misc

  • Print a helpful message if JAVA_HOME is incorrectly defined
Clone this wiki locally