Skip to content

Neo4j 4.2 changelog

Neo Technology Build Agent edited this page Aug 11, 2022 · 27 revisions

4.2.19

Cypher

  • Adds blocklist of ip addresses for cypher's outbound http requests

Packaging

  • Changed neo4j.service behaviour to stop neo4j getting stuck in an endless restart loop when neo4j consistently errors on startup (for example if the neo4j.conf is misconfigured).

Browser

  • Modernize background queries & remove use of deprectated syntax
  • Always send transaction metadata on cypher queries
  • Read cluster role from SHOW DATABASES rather than deprecated dbms.cluster.role
  • Make sure proper metadata is passed along with queries
  • Handle upcoming setting renames in neo4j 5.0
  • Fix PNG exports font
  • Use SHOW TRANSACTIONS instead of dbms.listQueries in :queries
  • Re-add metrics for successful queries
  • (*) in property panel now shows node count, rather than total label count
  • Add url param to preselect in connect frame

Docker

4.2.18

Cypher

  • Fixed Comparison method violates its general contract error during planning.

Browser

  • Export plan txt and make download dropdown context dependent
  • Set SSO as default if sso providers were present - NOTE only supported from Neo4j 4.4.
  • Fix bug causing autocomplete to no longer work

Misc

  • Fixed security issue with the HTTP Transactional API.

4.2.17

Browser

  • Export plan txt and make download dropdown context dependent
  • Set SSO as default if sso providers were present - NOTE only supported from Neo4j 4.4.
  • Fix bug causing autocomplete to no longer work

4.2.16

Kernel

  • Fixes a bug in neo4j-admin report command where using the heap classifier would make the command fail with Error: Failed to write heapdump.hprof

Cypher

  • Update java driver to 4.2.9

  • Fix bug in aggregations with LIMIT where query would fail with an array copy out of bounds error.

  • Fix cache properties invalidation when row does not match the predicate in optional expand

    cherry-picks: #14540

  • Map Factory timezone to UTC

  • Remove support for US/Pacific-New timezone. Existing values that use unsupported timezone will be interpreted as US/Pacific

  • Fixed a bug where matching on the same variable multiple times would trigger an exception during planning or produce incorrect results.

Security

  • Update jackson-databind from 2.12.6 to 2.13.2.2 (and thus also com.fasterxml.jackson.* from 2.12.6 to 2.13.2), to address CVE-2020-36518

Causal Clustering

  • Improve how long a booting node can be leader to a database before being available to process transactions by transferring leadership sooner.

    Cherry-picks #14408

Browser

  • Upgrade to D3 v7
  • Show hint about :auto on CALL {...} IN TRANSACTIONS
  • Add missing 4.4 keywords
  • Upgrade query plan view to D3 v7
  • Reduce icon size to avoid scroll on single line values in table
  • Display clustering data in :sysinfo frame again
  • Enable setting :params on multiple lines
  • Use shift, cmd or ctrl as mod key for wheel zoom
  • Add zoom to fit button
  • Bump driver to 4.4.2
  • Zoom mod key info message
  • Debounce writing to localstorage to improve performance
  • Remove hard limit of 1000 nodes for visualisation
  • Params template on missing paramters errors
  • Make max record setting user configurable
  • Handle null values in graph viz
  • Remove listConfig call in sys info frame causing error for non admins
  • Improve causal cluster detection

4.2.15

Cypher

  • Fix a memory leak of the runtime transactional context into the query plan cache

Misc

  • Update netty to 4.1.73.Final to address CVE-2021-43797. Whilst the affected code is not used, this will prevent it from incorrectly flagging it in security scanning tools.

4.2.14

Kernel

  • Update Log4j to 2.17 to address CVE-2021-45105
  • Update Log4j to 2.17.1 to address CVE-2021-44832

Security

  • During a rolling upgrade from 4.1 or earlier, roles don't have the privilege required to execute UDFs.

    These privileges are added to the PUBLIC role after the upgrade is done, but not during compatibility mode.

    This is the error when trying to execute a UDF:

    Executing a user defined function is not allowed for user 'XXX' with roles [PUBLIC, architect].
    

    This privilege is now in the list of temporary privileges which take effect during upgrades.

4.2.13

Kernel

  • Update Log4j to 2.16.0 CVE-2021-45046

Cypher

  • Fixed a bug where using values returned from a procedure would cause a type error like Type mismatch: expected Float, Integer or Duration but was Number.

4.2.12

Kernel

  • Fixes a bug in consistency checker for indexes backing constraints. Consistency checker could in some rare cases report inconsistencies for an index backing a constraint even though the index was consistent.

    The inconsistency would be for node 0 and look something like this: ERROR There is another node in the unique index with the same property value(s). Node[0, ...] Inconsistent with: Index( ... ) null 0

  • Fixes a bug in consistency checker where it could miss reporting inconsistencies in an index backing a constraint when running on limited memory.

  • Fixes an overflow issue for Duration properties where specific values could lead to failed transactions or transaction log corruption.

  • Fix bolt connections to respect dynamic setting of dbms.transaction.timeout

  • Fix false-positive "Potential direct memory leak"

  • CSV Import: add support for array data types point[], date[], time[], datetime[], localtime[], localdatetime[], duration[]

  • Update Log4j to 2.15.0 to address CVE-2021-44228

Cypher

  • Fixed a bug where using length() in CYPHER 3.5 mode through Fabric would result in an error.
  • fix issue with triadic selection in pipelined runtime
  • Fixes a bug where queries like MATCH (a:A) RETURN count(a.prop) would return the wrong results if there is a uniqueness constraint on label A and property prop.
  • Fix an issue where relationship traversal cursors could be improperly reused with the ExpandInto operator in pipelined runtime
  • Update java driver to 4.2.8
  • Bug fix: Neo4j now also accepts datetime expressions including an offset of times immediately after switching from summer time to winter time.

Security

  • Upgrade to Apache Shiro 1.8.0

Causal Clustering

  • Apoc export tries to write to the temp-bootstrap file of the last created database
  • Fix status endpoint and metric millisSinceLastLeaderMessage bug where an isolated node would think that it was receiving messages from a leader.

Browser

  • Updated the guides' sidebar
  • Properly normalize duration values
  • New Node Properties Panel
  • Include pathname in redirect to fix SSO
  • Make sure we always run :server connect when there's no connection
  • Rework product analytics consent
  • Fix :auto for multistatement queries
  • Ensure maxframes setting is respected
  • Fix bug where relationship type styling was not applied in sidebar and properties view
  • Limit initial maximum number of items shown in properties view (when large numbers of properties)
  • Support for Neo4j 4.4 SSO, including discovery and refresh tokens
  • Fix issue where fullscreen change didn't cause re-render
  • Add count to labels/relationship types in the node properties overview
  • Update neo4j driver to 4.4.0
  • Animate opening/closing of properties view
  • Truncate really long values in properties view
  • Store remote guides in Local Storage
  • Show current manuals instead of old if not connected to server
  • Fix change log badge/notification doesn't appear until sidebar is opened
  • Support new alias feature from neo4j 4.4
  • Add brackets around array type in properties view

Misc

  • Update netty to address CVE-2021-37136 and CVE-2021-37137

4.2.11

Kernel

  • Fixes an issue where neo4j-admin copy would not complete if there were "enough" deleted node records from the source database. The copy would hang in sorting the sourceDbNodeId --> targetDbNodeId data structure.
  • Fixes a bug in consistency checker for composite node indexes with lucene+native-3.0 index provider. Consistency checker reported index inconsistencies for all entries in the index even though the values were correctly indexed.
  • Set checkpoint log version field on recovery

Cypher

  • Fix error from query using OPTIONAL MATCH and predicate with a pattern expression, Github issue: neo4j/neo4j#12757
  • Fix memory problem for queries using OPTIONAL EXPAND and SKIP LIMIT
  • Avoid long overflow for queries like RETURN duration({years: 293})

Causal Clustering

  • Transform all hostname characters to lower case

Browser

  • Fix issues with trailing spaces in commands
  • Fix incorrect warnings about missing params in cypher queries
  • Fix main editor fullscreen resize bug

4.2.10

Kernel

  • Allow schema transaction to pass unconditionally with the snapshot execution engine
  • Preserve node ids in neo4j-admin copy by default
  • Add --compact-node-store to neo4j-admin copy command
  • Enable ids_in_use.relationship_type metric by default. The metric was turned off as default by mistake with the introduction of the metrics.filter setting.
  • Do not consider pre-allocated files corrupted
  • Fixes an issue with ID mappings in import/store-copy which could result in incomplete sorting in larger data sets.
  • Adds ability to further limit amount of memory allocated by the consistency checker. By default 90% of available memory is used.
  • Fixes issues with ID reuse where reusable IDs sometimes weren't prioritized during concurrent ID allocation and where allocating new IDs would happen instead, increasing the store file sizes unnecessarily.
  • Bump commons compress to 1.21 to address CVEs: CVE-2021-35515,CVE-2021-35516,CVE-2021-35517,CVE-2021-36090

Cypher

  • Fix a bug where querying for self-relationships (a relationship that connects a node to itself) in combination with asserting on relationship id (e.g. MATCH (n)-[r]->(n) WHERE id(r) = 7) could incorrectly return matches from non-self-relationships. The Cypher planner will now do necessary filtering to ensure that start and end nodes are bound to the same node variable when matching self-relationships in combination with asserting on relationship id.

  • 2 OPTIONAL MATCH fixes:

    • When performing an OPTIONAL MATCH, when returning distinct results (whether in the context of an aggregation or not), the results would be wrong. This could happen regardless of whether the query starts with the OPTIONAL MATCH or not. An example query that returned wrong results is: OPTIONAL MATCH (a:A)-[:KNOWS]->(b:B) RETURN count(DISTINCT a) AS count. This has been fixed.
    • When performing an OPTIONAL MATCH with 2 or more relationships of different relationship types, when returning DISTINCT results (whether in the context of an aggregation or not), the results could be wrong. An example query that returned wrong results is: OPTIONAL MATCH (a)-[r:R]->(b)-[r2:R2]->(c) RETURN count(DISTINCT a) as count. This has been fixed.
  • Allow to call length() with strings and lists in CYPHER 3.5 mode

  • Fix bug causing incorrect order of rows through a union subquery with pipelined runtime. Github issue: neo4j/neo4j#12760

Browser

  • Replace gifs with compressed mp4
  • Fix bug where whitespace was not preserved in result
  • Improve movement in wrapped lines
  • Improve table view
  • Refresh plan statistics after re-run the query
  • Add hash to filenames of webpack split/chunk bundles, to prevent crash on switching browser versions
  • Prevent crash on database connection lost
  • Increase zoom limits and individual steps
  • Fix css issues with fullscreen where bottom bar was hidden
  • Update csv export serializer to escape newlines
  • Fix sysinfo frame, by reading new neo4j settings
  • Preview of SSO for browser
  • Add export option to favorite folder
  • do not allow sysinfo command when using system db

Misc

  • Update netty to 4.1.66 to address vulnerabilities CVE-2021-21409 and CVE-2021-21295
  • Update jetty to 9.4.43.v2021062 to address CVE-2021-34429

4.2.9

Kernel

  • Update store copy to ignore broken 3_5 schema records
  • Fixes an issue that could prevent/slowdown lucene index drop
  • Fix issue with relationship belonging to dense nodes in the high-limit format that could cause corruptions. This affects relationship types with ids larger than 65535.

Cypher

  • Fix bug where the error "Can't change a seen value" could occur when planning a nested plan expression on an Apply-plan. Github issue: neo4j/graphql#225
  • Fix bug when counting multiple nodes with the same label.
  • Fix bug where queries that has a cartesian product of two node index seeks and IN/OR predicates can return incorrect property values and fail to honor query ordering.

Causal Clustering

  • 4.2 Test recovery from RO directory in cluster member

Browser

  • Re-add populating main editor with cmd+click
  • Improve styling of new sidebar guides
  • Fix issue where sandbox showed "Connecting.." banner even when connected
  • Frame UI updates including new frame button positions
  • Fix graph visualization performance issues for nodes with long captions
  • Bump driver to 4.3.1
  • Focus reusable editor on edit

4.2.8

Kernel

  • Update jersey to 2.34 to address CVE-2021-28168
  • Better handling of inconsistent property chains so that in the very unlikely event that a property record chain cannot be read properly a better failure will propagate to the user. It is also possible to delete entities with inconsistent property chains, at which point the entity's data will be logged to debug.log (only if user explicitly sets setting dbms.log_inconsistent_data_deletion=true.
  • Bump commons io to 2.9 to address VULNDB-239195
  • Fabric shutdown transaction timeout
  • Fixes a bug in consistency checker that prevented all node indexes from using the index checking variant designed for larger indexes.
  • Fixes an issue where enterprise fabric.graph.<name>.* settings would log warnings and be ignored

Cypher

  • Fixed a bug where running an aggregating query through Fabric would fail with namespacing error.

Security

  • Fix a bug where the security context on a transaction was being overridden to allow administration commands to be run, but was not properly being reset to the previous state.

Browser

  • Add support for home database
  • Add 4.3 cypher keywords
  • Upgrade to driver 4.3.0
  • Add support for browser.retain_editor_history setting

4.2.7

Kernel

  • Fixes an issue where the experimental consistency checker would incorrectly report "The first relationship group record has another node set as owner." inconsistencies.
  • Fixes an issue shutting down import after receiving panic
  • Removes accidental relationship type ID limitation in importer
  • Fixes an issue where an internal node cursor could sometimes claim to see a label that it didn't have, especially if the node had many labels. This could happen when asked whether or not the node had a label, not when getting all the node's labels.

Docker

  • add --expand-commands flag to neo4j-admin commands

4.2.6

Kernel

  • Locate JDK on windows in registry HKLM\SOFTWARE\JavaSoft\JDK

Cypher

  • Handle nulls in composite seeks in pipelined runtime, Github issue: neo4j/neo4j#12700

Browser

  • Add guides to sidebar
  • Remove "Are you sure you want to close this" modal
  • Give monaco search widget proper focus
  • Use last db instead of default db where possible
  • Add aura promotion in community
  • Neo4j Logo updates

Misc

  • Fix a bug where a transaction might be rolled back when performing multiple writes where the database catalog is changed concurrently.

    Fixes $12705

  • Fixes an issue with the length and size functions returning 1 instead of throwing an error for unsupported input values

4.2.5

Kernel

  • Correctly respects log level NONE (e.g at dbms.logs.debug.level)
  • Admin commands stop using the 'Xms' heap setting
  • The server will now start even if the total physical memory of the machine can not be determined.

Cypher

  • fix bug in parsing case when patterns

Security

  • Fix an issue where creating or altering a user and setting their username and password to the same parameter would fail

Causal Clustering

  • Update Netty to 4.1.60
  • Exclude Netty 3

Misc

  • cypher-shell update driver version to 4.2.4
  • Corrected the encoding of application/vnd.neo4j.jolt+json-seq
  • Update jetty to 9.4.39.v20210325 to address vulnerability CVE-2021-28165

4.2.4

Kernel

  • Fixes an issue where logging wouldn't work correctly for embedded users with a dependency on Log4j2
  • Fix issue with "standard-folding" fulltext index analyzer would not work with wildcard queries. Github issue: neo4j/neo4j#12662
  • Add support for --expand-commands to all neo4j-admin commands
  • Admin commands stop reusing the 'xms' heap setting from the server config
  • IDs of entities in routed queries should not be tagged
  • Fix some corner cases where unhelpful exceptions were thrown when a transaction would read a deleted entity lazily. The entity could have been deleted by this or some other concurrent transaction. We now throw ReadAndDeleteTransactionConflictException from the embedded API, and TransientException (which tells clients to retry their transactions) from the driver (Bolt) API.
  • Fix bug where neo4j-admin copy would fail when upgrading from 3.5 store if fulltext indexes where present.

Cypher

  • Fixes a bug where the order of results in a query with an ORDER BY could be wrong, if the query plan included a NodeLeftOuterHashJoin.

  • Fix issue with user-defined aggregation function with default values.

  • Fix bug with exists on nullable node or relationship property

  • Make SchemaReadRuntimeResult respect numberOfRecords

  • Fixed bug for cached properties in situations where renaming across unions

  • Remove DEBUG log messages: "Index not found for uniqueValueSelectivity No index was found"

  • Fixed a bug where count store lookup would be incorrectly planned for a pattern with a multi-labeled node.

  • Fix error Index cursor cannot have transaction state with values and without values simultaneously happening for some queries that used the index when there are updates in the transaction state. Github issue: neo4j/neo4j#12675.

  • Fix error that gives wrong results for queries with a limit on top of union, under an apply. Github issue: neo4j/neo4j#12673.

  • Fix bug where error Expected NO_VALUE to be a list could appear for some list comprehensions. Github issue: neo4j/neo4j#12677.

  • Fix a code generation bug in pipelined runtime that could cause a query to fail with NoSuchMethodError when a relationship property EXISTS-expression was evaluated in another pipeline separate from the pipeline matching the relationship.

  • Fix stack overflow error for reduce expressions that constructs big lists. Github issue: neo4j/neo4j#12683.

  • cypher-shell update driver version to 4.2.3

  • Fixes various bugs where the Eager operator was not being correctly planned.

    • Eager after an OR of label predicates was missing, e.g. in ... MATCH (b:B) WHERE b:B2 OR b:B3 SET a:B2 ...
    • Eager after an OPTIONAL MATCH was missing, e.g. in ...OPTIONAL MATCH (b:B) MATCH (c) SET c:B ...
    • Eager after any MATCH clause with a single starting point that does not solve the conflicting predicate was missing, e.g. in ... MATCH (n:N:M), (x) SET x:M ... when starting with a NodeByLabelScan on n:N.
    • Eager after shortestPath was missing, e.g. in ... MATCH p = shortestPath((a:A)-[:T*]-(b:B)), (c) CREATE (a)-[:T]->(c) ...

Security

  • Upgrade to Apache Shiro 1.7.1
  • Don't clear ldap auth cache on updates to system database

Causal Clustering

  • Fixed bug which caused instances to fail to restart after a database had been dropped with the DUMP DATA option.

Browser

  • Introducing new editor powered by Monaco
  • Make commands editable and re-usable
  • Fix bug on Bolt URL scheme changing on refresh
  • Improve performance when receiving large query results
  • Favorites ux refresh
  • Frame button interaction changes
  • Fix bug when closing a frame with a running query
  • Canny Support
  • Updated :play intro with new screenshots and text.
  • Fix dragging favorites outside of folders
  • Fix text view font issues
  • Auto-close single quotes in cypher editor
  • Fix favorites sidebar bug
  • Fix issue where Monaco command palette would be partially hidden
  • Improve cypher editor warnings positions
  • Fix regressions in editor font weight
  • Fix an issue with query history not being reset in some cases
  • Restore previous behavior for clicking to edit favorite content

Misc

  • Update jetty to address security vulnerability CVE-2020-27223 (#9199)
  • More explicit error message when failing to load jars with procedures

4.2.3

Kernel

  • dbms.listQueries procedure includes all queries part of nested queries in response
  • Fixes an issue where the query logger could not be enabled again after being disabled dynamically, e.g. using CALL dbms.setConfigValue

Cypher

  • Fix bug where we could get Should not reach await until tracking is complete for queries with

             optional match and aggregation.
    
  • Fixed a bug where an index scan would be used to solve an OPTIONAL MATCH incorrectly.

  • Fix bug where using aggregation in a reduce expression could lead to the wrong result.

  • Fixes a bug where parsing CREATE (:True) and similar queries resulted

    in an error. True and False can now be parsed as label names again.

Causal Clustering

  • Batching TxPullRequests in log

Browser

  • Fix for fullscreen not growing to full size
  • Add color to relationships in sidebar
  • Update connection form to better reflect aura usage
  • Disable test for feature not in aura
  • Fix issue where users couldn't be added when on a cluster
  • Update "create index" examples to use new syntax
  • Update cypher editor with new keywords
  • Removed information about creating a new db in :play movies
  • Allow zoom buttons on small frames (with settings config)
  • Update documentation drawer look & feel
  • Add :server disconnect link to the sidebar
  • Bump Neo4j driver to 4.2.2
  • Update how browser detects and behaves in different environments (Aura)

4.2.2

Kernel

  • neo4j-admin copy will now ignore configured record format
  • Fixes a record format store upgrade issue from standard to aligned format, where the property store wouldn't be migrated properly
  • Fixes an upgrade issue to high_limit format where some secondary unit record IDs may have ended up on the freelist
  • Fixes a problematic use of posix_fallocate(3) that can lead to corruptions on some filesystems.
  • Enable the jmx endpoint for metrics by default
  • Fixes further array-index-out-of-bounds issues iterating over all index entries in a lucene index during consistency check.
  • Memrec setting recommendation format fix
  • Fixes an issue with over-assigning threads during import which could lead to scheduling problems and sub-optimal performance
  • Fixes an issue in consistency checker where the checker would throw exception and fail if discovering a uniqueness index w/o any reference to the constraint

Cypher

  • Fixes a bug where the return clause was ignored for procedures executed on the system database.

  • Fix issue with compiled expressions where an error saying got NO_VALUE instead of expected input.

  • When an outer variable is used in a subclause, make sure it is forwarded as an argument, fixes neo4j/neo4j#12618

  • Fixes a bug where read-write queries with RelationshipByIdSeek could yield wrong result.

  • Fix possible multiple default database creation

  • Fix hanging OptionalExpand in pipelined runtime

  • Fixes $12641, the wrong result was returned in the

    interpreted runtime for predicates such as size((a)-->(b)) <= X

Security

  • Fix handling of old credentials format for neo4j-admin backup --included-metadata=all

Causal Clustering

  • Improved discovery system restart/timeout behaviour when instances are experiencing large Garbage Collection or Virtual Machine pauses.
  • FIxes a bug where neo4j-admin report on standalone would fail due to missing cluster data

Misc

  • Update jetty to address security vulnerability CVE-2020-27218

4.2.1

Kernel

  • Fixes an issue where an unexpected concurrent closing of a page cursor which was in the middle of doing page faulting might leave a latch unreleased, trapping all future cursors that wanted to look at that page.
  • Fixes issue specifying more complex regex patterns as CSV Input files to the importer.
  • Fixes an issue scanning records in high_limit format, where trying to read a record which happened to be a secondary unit would throw exception or read invalid data instead of observing it as unused
  • Allow cross-version copy in neo4j-admin copy

Cypher

  • Fixed an issue where dbms.listTransactions, dbms.listQueries and dbms.killQueries could fail if the server starts up with a database in the stopped state.
  • Fixed a bug where MERGE clause inside CALL subquery would always create a new node.
  • Cypher-shell version 4.2.2

Security

  • This fixes a bug where upgrading from 3.5 directly to 4.1 or 4.2 would result in no PUBLIC role being created.
  • Upgrade to Apache Shiro 1.7.0

Causal Clustering

  • Fixed bug where clusters could get stuck bootstrapping in the event of network issues or instance restarts.

4.2.0

Kernel

  • Add constraint on config parameter to not contain hyphens
  • Add Cypher commands and privileges for SHOW INDEXES and SHOW CONSTRAINTS. The commands replace the procedures db.indexes, db.indexDetails, db.constraints and db.schemaStatements.
  • Fix typo in database settings

Cypher

  • Adds new privileges EXECUTE FUNCTION and EXECUTE BOOSTED FUNCTION
  • Add procedure to set default database in cluster
  • Improved error message when an operation is denied by the system. The error message now provides information about the privilege that got denied or is missing e.g. Permission denied for START. Try executing SHOW USER PRIVILEGES to determine the missing or denied privileges. In case of missing privileges, they need to be granted (See GRANT). In case of denied privileges, they need to be revoked (See REVOKE) and granted.
  • Adds an OPTIONS clause to the create index and constraint commands to be able to set index provider and index configuration. This will replace the procedures db.createIndex, db.createNodeKey, and db.createUniquePropertyConstraint, which get deprecated.
  • Support testing for relationship types in WHERE
  • Added new administration command SHOW CURRENT USER which returns information about the current user and role in a similar fashion to SHOW USERS.
  • Privileges can now be output as Cypher commands.
  • Fix error where we could get an error Missing kernel to cypher mapping for index behavior: EVENTUALLY_CONSISTENT in Cypher.

Causal Clustering

  • Improved the Causal Clustering discovery service's ability to recover when a majority of cluster members are lost, partitioned or suffer from some other temporary failure.

  • Group topology change messages in the debug log for improved readability with many databases

    Batching loggs when same change happens to many databases

Browser

  • Add URL param support for populating editor with Cypher and parameters

  • Use GraphQL version of Relate-API when available (in Neo4j Desktop)

  • Enable database switching with :use xx in multi-statement command

  • Fix errors in community edition

  • Make neo4j-browser compatible with future versions of Neo4j

  • Only show each database once in :dbs output

  • Check if db exists before switching to it, throw if not

  • Format node/relationship counts in sidebar, inspector and legend

  • Update neo4j-driver to 4.0.0

  • Suggest strong passwords in change-password frame

  • Prefer bolt_routing URL from discovery if it exists

  • Update SchemaFrame styling

  • User feedback running system commands

  • Fix versioned links to external docs

  • Query plans view expanded by default

  • Update neo4j-driver to 4.0.1

  • Fix bug where NaN was displayed as null in result view

  • Add new Cypher syntax to :help cypher

  • Fixes viz bug when expand -> dismiss -> expand nodes.

  • Fix :param when returning an implicit object with newlines

  • Fix indexes not showing on 4.0 with the :schema command

  • Allow database names to be escaped with back ticks with the :use command

  • Use best practices driver transaction functions by default

  • Fix HTML rendering issues on query results

  • Correct tab order in change password form

  • Add :help auto + link to it from relevant errors and docs

  • Make node 12 the default (using .nvmrc file) build env

  • Fix re-run for Cypher queries to target original DB

  • Fix reacting to deep links when in Neo4j Desktop environment

  • Fix scroll to top bug when a frame was deleted

  • Auto-run :play commands when sent with URL params (deep-link)

  • Reuse :help and :play frames by building frame stacks from internal link clicks

  • Style start frame to look better in different resolutions

  • Fix initial load behavior when opened in Neo4j Desktop without an active db.

  • Enable multi statement mode in editor by default

  • Add a more performant result table

  • Use new plan field ‘Details’ to plan visualization (for Neo4j versions where it exists)

  • Fix so browser doesn't execute meta query on system db

  • More reliable connection status check

  • Support new bolt schemes

  • Add sidebar links to browser release, changelog, and developer pages

  • Fix reading username from connectURL param

  • Fix auth scheme error from driver when auth is disabled + reflect auth status on :server connect frame

  • Add re-run button to all frame types

  • Mdx guide support

  • Fix sending tx metadata with each query

  • Fix only executing relevant background queries (auth, cluster)

  • Add memory allocation to plan output if provided by Neo4j

  • Fix displaying large integers in new table correctly

  • Fix reading server configuration with the PUBLIC user role

  • Update the UI color schemes (dark, light, contrast)

    Example:

    Screenshot 2020-06-23 14 37 52
  • Vertical align result table cell values at row top

  • Upgrade neo4j-driver to 4.1.0

  • Fix integer rendering in table recursively + JSON export

  • Update change password form to avoid overlap with password manager icons

  • Fix comment issue in multi statement commands

  • Update UX on :style usage

  • Fix text position in GraphComponent for rtl languages

  • Improve editor view sizes (single-line, card view and fullscreen)

  • Add multi statement query warning when multi statement is disabled

  • Make editor a frame that has control buttons

  • Add new keyboard shortcut to toggle editor full-screen

  • Fix fullscreen issue in safari

  • Recognize new Neo4j Aura editions

  • Re-add esc as shortcut

  • Clear resets favorite

  • Update :server connect form to pick database

  • Add useragent when to neo4j-driver config

  • Add support for browser.remote_content_hostname_allowlist

  • Info about lack of some data in sysinfo for non-legacy community version

  • Add support for storing scripts as project files when in a desktop environment (for desktop versions that support it)

  • Add favorites and saved scripts from result frame

  • Initial Monaco Editor implementation

  • Do not store connection passwords in local storage before receiving neo4j config

Docker

  • Replaced curl with wget in the entrypoint
  • Add NEO4JLABS_PLUGINS support for neosemantics (n10s)
  • removed docker specific configuration overrides incompatible with windows networking
  • explicitly set neo4j uid and gid to 7474 in Docker

Misc

  • 4.2 Introduces a new HTTP JSON output format based around Jolt
  • The neo4j-admin push-to-cloud command has been re-enabled for Neo4j 4.x and now also does an early check for whether the database will fit the Aura instance before making the dump
  • Cypher-shell version 4.2.1

4.2.0-drop06

Kernel

  • A Kubernetes ConfigMap can be mounted as a directory in place of a regular neo4j.conf file

Cypher

  • Introduce blocking option for database administration commands. Any database administration command (CREATE, START, STOP, DROP) can now be made blocking by adding WAIT to the command. This will block whilst all known servers complete the transition. For example: "CREATE DATABASE FOO WAIT", if successful, means that database FOO is ready to serve transactions. Optionally, a timeout can be added as well. Default behaviour is still not to block (NOWAIT).

  • Fix bug where predicate in WHERE clause was ignored for queries combining

    variable length pattern and DISTINCT.

4.2.0-drop05

Kernel

  • ProduceResults now counts DBHits when it goes to the database
  • Improve error message when index key size limit is violated, include entity id index description.
  • Importer provides correct estimates for compressed csv files
  • Fixes a volumetric checkpoint triggering issue where database could be stuck in a state where checkpoint was made, but no logs were pruned and so checkpoints would be continued to be made even tho no transactions were committed
  • Prevent crash in dbms.killTransaction when log level is set to debug
  • Fixes an issue decrementing node degrees where deleting a relationship from a node could sometimes, if the node had self-relationships, decrement the degree twice

Cypher

  • Support RETURN in SHOW commands

  • Adds new privileges EXECUTE BOOSTED PROCEDURE and EXECUTE ADMIN PROCEDURES which are meant to replace the config settings dbms.security.procedures.roles and dbms.security.procedures.default_allowed.

    EXECUTE BOOSTED PROCEDURE grants the privilege to execute a procedure with elevated privileges. EXECUTE ADMIN PROCEDURES grants the privilege to execute all admin procedures with elevated privileges.

  • Provide more helpful error message when trying to merge on null property

  • Upgrade the dependency on SLF4j to latest stable version in order to mitigate security vulnerabilities.

  • Fix issue where queries like WITH *, count(a) AS c ORDER BY c RETURN a were failing with no variable a in scope.

  • Fixed a bug where aggregation followed by a map projection would cause a query to hang or fail with There was a cycle in names error.

  • Add command for creating (or altering) a user with an already encrypted password.

  • Fix bug with NullPointerException when reading properties

    from a non-existent relationship.

  • Fixes a scoping issue where nested pattern comprehensions were evaluated in the wrong scope leading to wrong results. An example of such a query:

    MATCH (f:F)<-[:A]-(p)
    WHERE
      ALL(condition IN [
        (p)-[:B]->(d:D)
        d.name CONTAINS 'foo'
      ] WHERE condition)
    RETURN p { .name }
    
  • Handle relationship property reads on missing relationships after OPTIONAL EXPAND.

Causal Clustering

  • With setting causal_clustering.cluster_allow_reads_on_leader to true the routing table will contain also the leader in the read endpoints.
  • With the setting dbms.directories.cluster_state the location of cluster-state directory can be placed in a custom location. This means also the raft-log can be put in a different location. Default is still <dbms.directories.data>/cluster-state.

Misc

  • Added unsupported.dbms.http_enabled_modules to configure which modules are loaded into the HTTP server. Defaults to all previous modules. To enable only the browser, set this to dbms.http_enabled_modules=BROWSER. Other supported values are TRANSACTIONAL_ENDPOINTS, UNMANAGED_EXTENSIONS and ENTERPRISE_MANAGEMENT_ENDPOINTS. Combinations thereof, separated with a , are supported. The empty list (unsupported.dbms.http_enabled_modules=) disables all modules.

4.2.0-drop04

Kernel

  • Leverage index order for index scans whenever there is an existence predicate or constraint
  • Config can now execute scripts to retrieve values
  • Can specify target home directory for StoreCopyCommand
  • Fix bug where indexes and constraint might be incorrectly migrated when upgrading from standard to high_limit format.
  • Fixes an ID allocation issue when importing a large amount of relationships so that double-record-unit allocation got enabled. This could result in some relationships getting one of their record units overwritten

Cypher

  • Fix a performance regression when using IN on large lists.
  • Prevent excess memory usage in OrLeafPlanner with many ORs
  • Fix bugs in planning (NOT) EXISTS subqueries within different horizons
  • Add semantic check to various places check for an ExistsSubClause
  • Accept dots in database names
  • Add privilege for executing procedures

Causal Clustering

  • increased the default time allowed for causal cluster cores to discover an existing cluster from 5s to 30s.
  • K8s discovery mechanism can be configured to use a custom Kubernetes domain by setting causal_clustering.kubernetes.cluster_domain
  • Provides combined cluster status endpoint
  • expose and document the causal_clustering.cluster_binding_timeout setting

4.2.0-drop03

Cypher

  • Fixed a bug where using node:Label check on a node returned from a procedure would result in a planner error.
  • Don't lose the solved hints from the RHS of an OR when solving with a union

4.2.0-drop02

Kernel

  • Fixes issue populating ID files during migration
  • Move connections, transactions and queries inspections procedures to CE
  • Make failed indexes restartable again

Cypher

  • Added more support for indexed-backed-order-by using equality predicates. A property with a single equality predicate will always have the same value and therefore already ordered. This is now taken into account to avoid the need to sort on that property when we get the order from the index.

  • Add CREATE IF NOT EXISTS and DROP IF EXISTS to the index and constraint management commands.

  • dbms.functions() output now includes additional column specifying function categories.

  • Fix an Implementation is missing error.

  • 4.2 planner cardinality fix for OPTIONAL MATCH under APPLY

  • Fixes a bug with composite index seeks in the pipelined runtime

    where a query like MATCH (a) WITH DISTINCT a MATCH (:N { a: 'a', b: 'b' }) would fail with a ClassCastException.

  • Fix issue where an error was thrown during planning for some complex COLLECT/UNWIND queries.

  • Fix bug which could end up in Can't coerce NO_VALUE to Path errors being thrown

    when using user-defined functions.

4.2.0-drop01

Kernel

  • Fixes issue where created indexes would stop being resampled after restart
  • Fix a bug where deleting a relationship would not remove its entry from any relevant full-text index on relationships such relationships.
  • Created Exception Status: org.neo4j.kernel.api.exceptions.Status.Transaction::TransientTransactionFailure for legacy TransientTransactionFailureExceptions.
  • Double default dbms.checkpoint.iops.limit from 300 to 600.

Cypher

  • Fix a bug in the code generation for pipelined runtime, that under certain rare plans could cause that not all the necessary variables in a row were copied between pipelines, leading to null pointer exceptions or unexpected results.

  • Fix a bug where pattern comprehension and predicates evaluating to null could

    lead to the wrong result. This also changes the result of pattern comprehensions with OPTIONAL MATCH. I.e., the query OPTIONAL MATCH (n:DoesNotExist) RETURN [(n)-->(p) | p] would previously return null, now it will return [] instead.

  • Move randomUUID from a user defined function to a builtin function

  • Fixed a bug where map projection inside a list or pattern comprehension would fail with Unknown variable error.

  • ALL ON DBMS grants execution of @admin procedures

  • Add default graph keyword for privilege administration

  • Check for aggregations in a list used for UNWIND

  • Extend Cypher round function with optional precision and mode

  • Cypher now interprets number literals starting with '0o' as octals. The old syntax (starting with '0') still works, but will be deprecated. Also, number literals starting with '0X' are still interpreted as hexadecimals, but will be deprecated and a warning has been added.

Packaging

  • Added APOC to neo4j packages under the folder /var/lib/neo4j/labs.
Clone this wiki locally