From 943a07ae8ec7e5d033e8c1c181dde3b223391f4c Mon Sep 17 00:00:00 2001 From: Stefano Ottolenghi Date: Mon, 9 Dec 2024 15:50:15 +0100 Subject: [PATCH 01/32] Version to 2025. --- antora.yml | 8 ++++---- package.json | 2 +- preview.yml | 4 ++-- publish.yml | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/antora.yml b/antora.yml index b13b62440..51d116ceb 100644 --- a/antora.yml +++ b/antora.yml @@ -1,11 +1,11 @@ name: cypher-manual title: Cypher Manual -version: '5' +version: '2025' start_page: ROOT:introduction/index.adoc nav: - modules/ROOT/content-nav.adoc asciidoc: attributes: - neo4j-version: '5' - neo4j-version-minor: '5.26' - neo4j-version-exact: '5.26.0' + neo4j-version: '2025' + neo4j-version-minor: '2025.01' + neo4j-version-exact: '2025.01' diff --git a/package.json b/package.json index 527fcd494..dfdc0ac45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cypher-manual", - "version": "5.0.0", + "version": "2025", "description": "Neo4j Cypher Manual", "main": "server.js", "scripts": { diff --git a/preview.yml b/preview.yml index fa119684c..50f2281c1 100644 --- a/preview.yml +++ b/preview.yml @@ -25,7 +25,7 @@ urls: antora: extensions: - require: "@neo4j-antora/antora-modify-sitemaps" - sitemap_version: '5' + sitemap_version: '2025' sitemap_loc_version: 'current' move_sitemaps_to_components: true @@ -53,7 +53,7 @@ asciidoc: includePDF: false nonhtmloutput: "" experimental: '' - copyright: "2024 Neo4j, Inc." + copyright: "2025 Neo4j, Inc." common-license-page-uri: https://neo4j.com/docs/license/ docs-base-uri: https://neo4j.com/docs check-mark: icon:check[] diff --git a/publish.yml b/publish.yml index 1184d3ccc..d321d30c6 100644 --- a/publish.yml +++ b/publish.yml @@ -25,7 +25,7 @@ urls: antora: extensions: - require: "@neo4j-antora/antora-modify-sitemaps" - sitemap_version: '5' + sitemap_version: '2025' sitemap_loc_version: 'current' move_sitemaps_to_components: true @@ -45,7 +45,7 @@ asciidoc: page-search-site: Reference Docs page-canonical-root: /docs page-pagination: true - page-no-canonical: true + page-no-canonical: true page-origin-private: false page-hide-toc: false page-mixpanel: 4bfb2414ab973c741b6f067bf06d5575 @@ -53,7 +53,7 @@ asciidoc: includePDF: false nonhtmloutput: "" experimental: '' - copyright: "2024 Neo4j, Inc." + copyright: "2025 Neo4j, Inc." common-license-page-uri: https://neo4j.com/docs/license/ docs-base-uri: https://neo4j.com/docs check-mark: icon:check[] @@ -66,4 +66,4 @@ asciidoc: page-ad-description: Your input matters! Share your Feedback page-ad-underline-role: button page-ad-underline: Start Here - page-ad-link: https://neo4j.typeform.com/to/E6yOZ2Py?utm_source=GA&utm_medium=blurb&utm_campaign=survey \ No newline at end of file + page-ad-link: https://neo4j.typeform.com/to/E6yOZ2Py?utm_source=GA&utm_medium=blurb&utm_campaign=survey From 9b2a5f12a363b731b54dde7b737f0de7afbb2e8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 13:33:43 +0100 Subject: [PATCH 02/32] Bump the prod-dependencies group with 2 updates (#1131) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the prod-dependencies group with 2 updates: [@antora/cli](https://gitlab.com/antora/antora) and [@antora/site-generator-default](https://gitlab.com/antora/antora). Updates `@antora/cli` from 3.1.9 to 3.1.10
Changelog

Sourced from @​antora/cli's changelog.

= Antora Changelog

This document provides a summary of all notable changes to the core Antora components by release. For a detailed view of what's changed, refer to the repository's https://gitlab.com/antora/antora/commits/main[commit history].

This project utilizes semantic versioning.

== 3.2.0-alpha.8 (2024-12-05)

=== Changed

  • content-aggregator: Don't apply camelCase transformation to descendant keys of the ext key in component version descriptor (#1145)
  • content-aggregator: Include - segment in edit URL for file hosted on gitlab.com to avoid redirct
  • Apply code formatting changes to comply with biome toolchain (#1157)
  • Add directory property to repository entry in package files
  • Upgrade @​antora/expand-path-helper to 3.0.x (content-aggregator, ui-loader, file-publisher, logger)
  • Upgrade @​antora/user-require-helper to 3.0.x (content-aggregator, asciidoc-loader, file-publisher, site-generator, cli)

=== Fixed

  • content-aggregator: Gracefully handle case when value of nav key in component version descriptor is not an array (#1147)
  • page-composer: Use navtitle as content of orphan breadcrumb entry instead of doctitle (aka page title) (#1159)
  • site-generator: Fully support static register method on Class or Object exported by extension (#1158)

== 3.2.0-alpha.7 (2024-12-05)

Release failed.

== 3.2.0-alpha.6 (2024-07-23)

=== Changed

  • Replace "AsciiDoc extension" with "Asciidoctor extension" in log messages

=== Fixed

  • file-publisher: Wrap legacy stream on file when preparing files for output providers; remove listeners limit (#1139)

== 3.2.0-alpha.5 (2024-06-25)

=== Added

  • playbook-builder: Add git.fetch_depth key to control how many recent commits Antora fetches from a remote repository (#1090)
  • content-classifier: Allow component name and version to be referenced by attributes in antora.yml as antora-component-name and antora-component-version attributes, respectively (#1106)
  • asciidoc-loader: Detect (and skip) Antora extension that's been registered as an AsciiDoc extension and log a warning (#1084)
  • site-generator: Detect (and skip) AsciiDoc extension registered as an Antora extension and log a warning (#1104)

=== Changed

  • content-aggregator: Use worktree from local repository even if repository has no commits (#298)

... (truncated)

Commits

Updates `@antora/site-generator-default` from 3.1.9 to 3.1.10
Changelog

Sourced from @​antora/site-generator-default's changelog.

= Antora Changelog

This document provides a summary of all notable changes to the core Antora components by release. For a detailed view of what's changed, refer to the repository's https://gitlab.com/antora/antora/commits/main[commit history].

This project utilizes semantic versioning.

== 3.2.0-alpha.8 (2024-12-05)

=== Changed

  • content-aggregator: Don't apply camelCase transformation to descendant keys of the ext key in component version descriptor (#1145)
  • content-aggregator: Include - segment in edit URL for file hosted on gitlab.com to avoid redirct
  • Apply code formatting changes to comply with biome toolchain (#1157)
  • Add directory property to repository entry in package files
  • Upgrade @​antora/expand-path-helper to 3.0.x (content-aggregator, ui-loader, file-publisher, logger)
  • Upgrade @​antora/user-require-helper to 3.0.x (content-aggregator, asciidoc-loader, file-publisher, site-generator, cli)

=== Fixed

  • content-aggregator: Gracefully handle case when value of nav key in component version descriptor is not an array (#1147)
  • page-composer: Use navtitle as content of orphan breadcrumb entry instead of doctitle (aka page title) (#1159)
  • site-generator: Fully support static register method on Class or Object exported by extension (#1158)

== 3.2.0-alpha.7 (2024-12-05)

Release failed.

== 3.2.0-alpha.6 (2024-07-23)

=== Changed

  • Replace "AsciiDoc extension" with "Asciidoctor extension" in log messages

=== Fixed

  • file-publisher: Wrap legacy stream on file when preparing files for output providers; remove listeners limit (#1139)

== 3.2.0-alpha.5 (2024-06-25)

=== Added

  • playbook-builder: Add git.fetch_depth key to control how many recent commits Antora fetches from a remote repository (#1090)
  • content-classifier: Allow component name and version to be referenced by attributes in antora.yml as antora-component-name and antora-component-version attributes, respectively (#1106)
  • asciidoc-loader: Detect (and skip) Antora extension that's been registered as an AsciiDoc extension and log a warning (#1084)
  • site-generator: Detect (and skip) AsciiDoc extension registered as an Antora extension and log a warning (#1104)

=== Changed

  • content-aggregator: Use worktree from local repository even if repository has no commits (#298)

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 452 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 228 insertions(+), 228 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7111aee2d..03743c620 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "cypher-manual", - "version": "5.0.0", + "version": "2025", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cypher-manual", - "version": "5.0.0", + "version": "2025", "license": "ISC", "dependencies": { - "@antora/cli": "^3.1.9", - "@antora/site-generator-default": "^3.1.9", + "@antora/cli": "^3.1.10", + "@antora/site-generator-default": "^3.1.10", "@neo4j-antora/antora-add-notes": "^0.3.1", "@neo4j-antora/antora-modify-sitemaps": "^0.4.4", "@neo4j-antora/antora-page-roles": "^0.3.1", @@ -26,12 +26,12 @@ } }, "node_modules/@antora/asciidoc-loader": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.1.9.tgz", - "integrity": "sha512-flE27T2yI8TX7rUNjbBHWN3iR6s+kBuRBbUPncUFcWjx6mXzll8JLiTkxnc8JXHGzgKlveT+t5AkPYGACLfasg==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.1.10.tgz", + "integrity": "sha512-np0JkOV37CK7V4eDZUZXf4fQuCKYW3Alxl8FlyzBevXi2Ujv29O82JLbHbv1cyTsvGkGNNB+gzJIx9XBsQ7+Nw==", "dependencies": { - "@antora/logger": "3.1.9", - "@antora/user-require-helper": "~2.0", + "@antora/logger": "3.1.10", + "@antora/user-require-helper": "~3.0", "@asciidoctor/core": "~2.2" }, "engines": { @@ -39,13 +39,13 @@ } }, "node_modules/@antora/cli": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.1.9.tgz", - "integrity": "sha512-kCUqWX3G/9Pvf8SWZ45ioHwWdOc9uamy2E5/FFwyGiTeu4ubNbadOauLVvMzSZHUxVDnGxXwCsmmQ2HwM919ew==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.1.10.tgz", + "integrity": "sha512-gp8u9aVM0w1DtWSsB5PwvEfFYKrooPENLhN58RAfdgTrcsTsWw+CDysFZPgEaHB0Y1ZbanR82ZH/f6JVKGcZfQ==", "dependencies": { - "@antora/logger": "3.1.9", - "@antora/playbook-builder": "3.1.9", - "@antora/user-require-helper": "~2.0", + "@antora/logger": "3.1.10", + "@antora/playbook-builder": "3.1.10", + "@antora/user-require-helper": "~3.0", "commander": "~11.1" }, "bin": { @@ -56,13 +56,13 @@ } }, "node_modules/@antora/content-aggregator": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.1.9.tgz", - "integrity": "sha512-g+UzevPSm5c4R0j1U9uysJfdIUfp++QOHIEBmqjhfx/aIEnOL70zA+WF55Mm+syAfzU3877puI27sOp8qtPglw==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.1.10.tgz", + "integrity": "sha512-OT6ZcCA7LrtNfrAZUr3hFh+Z/1isKpsfnqFjCDC66NEMqIyzJO99jq0CM66rYlYhyX7mb5BwEua8lHcwpOXNow==", "dependencies": { - "@antora/expand-path-helper": "~2.0", - "@antora/logger": "3.1.9", - "@antora/user-require-helper": "~2.0", + "@antora/expand-path-helper": "~3.0", + "@antora/logger": "3.1.10", + "@antora/user-require-helper": "~3.0", "braces": "~3.0", "cache-directory": "~2.0", "fast-glob": "~3.3", @@ -92,12 +92,12 @@ } }, "node_modules/@antora/content-classifier": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.1.9.tgz", - "integrity": "sha512-PVJqwp5uvZE1PlpeJtb0p6al75fN+fmXGIC6DHcKysRnr0xo+sgz8X2r4mnNWdTWRqum2yVigMmmuXYTg3cJlQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.1.10.tgz", + "integrity": "sha512-3JJl4IIiTX00v/MirK603NoqIcHjGYAaRWt3Q4U03tI1Fv2Aho/ypO3FE45069jFf0Dx2uDJfp5kapb9gaIjdQ==", "dependencies": { - "@antora/asciidoc-loader": "3.1.9", - "@antora/logger": "3.1.9", + "@antora/asciidoc-loader": "3.1.10", + "@antora/logger": "3.1.10", "mime-types": "~2.1", "vinyl": "~3.0" }, @@ -106,31 +106,31 @@ } }, "node_modules/@antora/document-converter": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.1.9.tgz", - "integrity": "sha512-pH7tQaIjcPsFdYkaBEAvA/5ki04IQwQGHoR+2jadKdMl6P+J5KA1VzNnMgyIL6gHn7auJIkoOKadfItRB9lHGQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.1.10.tgz", + "integrity": "sha512-qi9ctgcKal8tZtWflVo66w+4zCJoBmUKRV+eA9aRRR09KDdU9r514vu1adWNgniPppISr90zD13V5l2JUy/2CQ==", "dependencies": { - "@antora/asciidoc-loader": "3.1.9" + "@antora/asciidoc-loader": "3.1.10" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@antora/expand-path-helper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-2.0.0.tgz", - "integrity": "sha512-CSMBGC+tI21VS2kGW3PV7T2kQTM5eT3f2GTPVLttwaNYbNxDve08en/huzszHJfxo11CcEs26Ostr0F2c1QqeA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-3.0.0.tgz", + "integrity": "sha512-7PdEIhk97v85/CSm3HynCsX14TR6oIVz1s233nNLsiWubE8tTnpPt4sNRJR+hpmIZ6Bx9c6QDp3XIoiyu/WYYA==", "engines": { - "node": ">=10.17.0" + "node": ">=16.0.0" } }, "node_modules/@antora/file-publisher": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.1.9.tgz", - "integrity": "sha512-C0VwVjuFbE1CVpZDgwYR1gZCNr1tMw5vueyF9wHZH0KCqAsp9iwo7bwj8wKWMPogxcxdYhnAvtDJnYmYFCuDWQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.1.10.tgz", + "integrity": "sha512-DPR/0d1P+kr3qV4T0Gh81POEO/aCmNWIp/oLUYAhr0HHOcFzgpTUUoLStgcYynZPFRIB7EYKSab+oYSCK17DGA==", "dependencies": { - "@antora/expand-path-helper": "~2.0", - "@antora/user-require-helper": "~2.0", + "@antora/expand-path-helper": "~3.0", + "@antora/user-require-helper": "~3.0", "vinyl": "~3.0", "yazl": "~2.5" }, @@ -139,11 +139,11 @@ } }, "node_modules/@antora/logger": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.1.9.tgz", - "integrity": "sha512-MKuANodcX0lfRyiB+Rxl/Kv7UOxc2glzTYFoIoBB7uzxF0A+AhvUJDmpGQFRFN2ihxy99N3nLJmZpDebwXyE+A==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.1.10.tgz", + "integrity": "sha512-WSuIxEP2tVrhWtTj/sIrwBDjpi4ldB/1Kpiu4PXmY4/qeWP8thW6u8nXdwdDcWss5zqkZWjourvWKwVq7y8Wjg==", "dependencies": { - "@antora/expand-path-helper": "~2.0", + "@antora/expand-path-helper": "~3.0", "pino": "~9.2", "pino-pretty": "~11.2", "sonic-boom": "~4.0" @@ -153,22 +153,22 @@ } }, "node_modules/@antora/navigation-builder": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.1.9.tgz", - "integrity": "sha512-zyl2yNjK31Dl6TRJgnoFb4Czwt9ar3wLTycAdMeZ+U/8YcAUHD8z7NCssPFFvZ0BbUr00NP+gbqDmCr6yz32NQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.1.10.tgz", + "integrity": "sha512-aLMK49nYsSB3mEZbLkmUXDAUYmscv2AFWu+5c3eqVGkQ6Wgyd79WQ6Bz3/TN9YqkzGL+PqGs0G39F0VQzD23Hw==", "dependencies": { - "@antora/asciidoc-loader": "3.1.9" + "@antora/asciidoc-loader": "3.1.10" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@antora/page-composer": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.1.9.tgz", - "integrity": "sha512-X6Qj+J5dfFAGXoCAOaA+R6xRp8UoNMDHsRsB1dUTT2QNzk1Lrq6YkYyljdD2cxkWjLVqQ/pQSP+BJVNFGbqDAQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.1.10.tgz", + "integrity": "sha512-JoEg8J8HVsnPmAgUrYSGzf0C8rQefXyCi/18ucy0utyfUvlJNsZvUbGUPx62Het9p0JP0FkAz2MTLyDlNdArVg==", "dependencies": { - "@antora/logger": "3.1.9", + "@antora/logger": "3.1.10", "handlebars": "~4.7", "require-from-string": "~2.0" }, @@ -177,9 +177,9 @@ } }, "node_modules/@antora/playbook-builder": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.1.9.tgz", - "integrity": "sha512-MJ/OWz4pReC98nygGTXC5bOL/TDDtCYpSkHFBz2ST4L6tuM8rv9c5+cp//JkwY/QlTOvcuJ0f2xq4a7a5nI7Qw==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.1.10.tgz", + "integrity": "sha512-UB8UmRYfkKgActTUlotdVS4FKGjaZgTnSXE7Fns1xb3/3HRanWvI+Yze1OmCkGC33cTpoQFnSYp7ySEH8LaiBw==", "dependencies": { "@iarna/toml": "~2.2", "convict": "~6.2", @@ -191,9 +191,9 @@ } }, "node_modules/@antora/redirect-producer": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.1.9.tgz", - "integrity": "sha512-9OLwoMhqifsBxTebInh/5W16GdDsdj+YkKG3TiCASlAOYsDbuhbeRPFUlyKKSRkMrtKKnFgHR0Z3DNPXYlH2NQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.1.10.tgz", + "integrity": "sha512-IbWJGh6LmsxJQ821h0B9JfooofFZBgFLZxsbp/IoTLkBFGLFAY5tDRvB6rvubfNLRoSjM8VjEUXGqVLlwZOb+g==", "dependencies": { "vinyl": "~3.0" }, @@ -202,46 +202,46 @@ } }, "node_modules/@antora/site-generator": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.1.9.tgz", - "integrity": "sha512-YYESPG22tGX1CxRPSAr6acKILCO8JfGkM1OYc7Sw3D7ZvCy1YgZMAaTYK0T5yl9LXg+l/UZi1xq/Ej0qHnYQiw==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.1.10.tgz", + "integrity": "sha512-NCULYtwUjIyr5FGCymhfG/zDVUmZ6pfmCPorka8mAzo4/GDx1T7bgaRL9rEIyf2AMqcm7apQiAz03mpU4kucsw==", "dependencies": { - "@antora/asciidoc-loader": "3.1.9", - "@antora/content-aggregator": "3.1.9", - "@antora/content-classifier": "3.1.9", - "@antora/document-converter": "3.1.9", - "@antora/file-publisher": "3.1.9", - "@antora/logger": "3.1.9", - "@antora/navigation-builder": "3.1.9", - "@antora/page-composer": "3.1.9", - "@antora/playbook-builder": "3.1.9", - "@antora/redirect-producer": "3.1.9", - "@antora/site-mapper": "3.1.9", - "@antora/site-publisher": "3.1.9", - "@antora/ui-loader": "3.1.9", - "@antora/user-require-helper": "~2.0" + "@antora/asciidoc-loader": "3.1.10", + "@antora/content-aggregator": "3.1.10", + "@antora/content-classifier": "3.1.10", + "@antora/document-converter": "3.1.10", + "@antora/file-publisher": "3.1.10", + "@antora/logger": "3.1.10", + "@antora/navigation-builder": "3.1.10", + "@antora/page-composer": "3.1.10", + "@antora/playbook-builder": "3.1.10", + "@antora/redirect-producer": "3.1.10", + "@antora/site-mapper": "3.1.10", + "@antora/site-publisher": "3.1.10", + "@antora/ui-loader": "3.1.10", + "@antora/user-require-helper": "~3.0" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@antora/site-generator-default": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-3.1.9.tgz", - "integrity": "sha512-m/QCv2o/24VmWZaeqtc6nNEky///GTLLx/pyyihP7uWKvZ0AhGPp6Agv1yaShjKIthBzHJ3JozaMPev2leor+A==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-3.1.10.tgz", + "integrity": "sha512-dMhjbklthysj3espwYNkTkADm2Z3EbWThq9gJv/ZuSXGZSXVSwt8b3mBpCTwxOeAKIldnj3fc1pzQxei/7PC2w==", "dependencies": { - "@antora/site-generator": "3.1.9" + "@antora/site-generator": "3.1.10" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@antora/site-mapper": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.1.9.tgz", - "integrity": "sha512-9FCObL+JIjBoby8z+beu2uuvAtCjm5EsEQt+16gCIMX1ktVP3W3gVsdRSvVcGcVEpizILFhMawkcQknZPUp5mg==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.1.10.tgz", + "integrity": "sha512-KY1j/y0uxC2Y7RAo4r4yKv9cgFm8aZoRylZXEODJnwj3tffbZ2ZdRzSWHp6fN0QX/Algrr9JNd9CWrjcj2f3Zw==", "dependencies": { - "@antora/content-classifier": "3.1.9", + "@antora/content-classifier": "3.1.10", "vinyl": "~3.0" }, "engines": { @@ -249,22 +249,22 @@ } }, "node_modules/@antora/site-publisher": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.1.9.tgz", - "integrity": "sha512-L5To8f4QswZliXu6yB6O7O8CuBbLctjNbxZqP3m0FP7VaOONp85ftzEq1BFEm4BXXSwH1n4ujZx1qGBHP9ooOQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.1.10.tgz", + "integrity": "sha512-G4xcUWvgth8oeEQwiu9U1cE0miQtYHwKHOobUbDBt2Y6LlC5H31zQQmAyvMwTsGRlvYRgLVtG6j9d6JBwQ6w9Q==", "dependencies": { - "@antora/file-publisher": "3.1.9" + "@antora/file-publisher": "3.1.10" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@antora/ui-loader": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.1.9.tgz", - "integrity": "sha512-g0/9dRE5JVMYukIU3x+Rvr41bPdK3sUD2xQIAniRjE6usIZs1mEsTGshVKVEoOqqnSekXE85HVhybjNHsC+qbQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.1.10.tgz", + "integrity": "sha512-H1f5wI5a5HjLuE/Wexvc8NZy8w83Bhqjka7t1DbwOOqP+LyxFGLx/QbBVKdTtgFNDHVMtNBlplQq0ixeoTSh0A==", "dependencies": { - "@antora/expand-path-helper": "~2.0", + "@antora/expand-path-helper": "~3.0", "braces": "~3.0", "cache-directory": "~2.0", "fast-glob": "~3.3", @@ -292,14 +292,14 @@ } }, "node_modules/@antora/user-require-helper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@antora/user-require-helper/-/user-require-helper-2.0.0.tgz", - "integrity": "sha512-5fMfBZfw4zLoFdDAPMQX6Frik90uvfD8rXOA4UpXPOUikkX4uT1Rk6m0/4oi8oS3fcjiIl0k/7Nc+eTxW5TcQQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/user-require-helper/-/user-require-helper-3.0.0.tgz", + "integrity": "sha512-KIXb8WYhnrnwH7Jj21l1w+et9k5GvcgcqvLOwxqWLEd0uVZOiMFdqFjqbVm3M+zcrs1JXWMeh2LLvxBbQs3q/Q==", "dependencies": { - "@antora/expand-path-helper": "~2.0" + "@antora/expand-path-helper": "~3.0" }, "engines": { - "node": ">=10.17.0" + "node": ">=16.0.0" } }, "node_modules/@asciidoctor/core": { @@ -494,9 +494,9 @@ } }, "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==" }, "node_modules/balanced-match": { "version": "1.0.2", @@ -504,9 +504,9 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/bare-events": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", - "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", "optional": true }, "node_modules/base64-js": { @@ -1291,9 +1291,9 @@ ] }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "engines": { "node": ">= 4" } @@ -1478,9 +1478,9 @@ } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -2317,9 +2317,9 @@ } }, "node_modules/streamx": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz", - "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.0.tgz", + "integrity": "sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==", "dependencies": { "fast-fifo": "^1.3.2", "queue-tick": "^1.0.1", @@ -2369,9 +2369,9 @@ } }, "node_modules/text-decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz", - "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.2.tgz", + "integrity": "sha512-/MDslo7ZyWTA2vnk1j7XoDVfXsGk3tp+zFEJHJGm0UjIlQifonVFwlVbQDFh8KJzTBnT8ie115TYqir6bclddA==", "dependencies": { "b4a": "^1.6.4" } @@ -2430,9 +2430,9 @@ } }, "node_modules/uglify-js": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.1.tgz", - "integrity": "sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -2557,34 +2557,34 @@ }, "dependencies": { "@antora/asciidoc-loader": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.1.9.tgz", - "integrity": "sha512-flE27T2yI8TX7rUNjbBHWN3iR6s+kBuRBbUPncUFcWjx6mXzll8JLiTkxnc8JXHGzgKlveT+t5AkPYGACLfasg==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.1.10.tgz", + "integrity": "sha512-np0JkOV37CK7V4eDZUZXf4fQuCKYW3Alxl8FlyzBevXi2Ujv29O82JLbHbv1cyTsvGkGNNB+gzJIx9XBsQ7+Nw==", "requires": { - "@antora/logger": "3.1.9", - "@antora/user-require-helper": "~2.0", + "@antora/logger": "3.1.10", + "@antora/user-require-helper": "~3.0", "@asciidoctor/core": "~2.2" } }, "@antora/cli": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.1.9.tgz", - "integrity": "sha512-kCUqWX3G/9Pvf8SWZ45ioHwWdOc9uamy2E5/FFwyGiTeu4ubNbadOauLVvMzSZHUxVDnGxXwCsmmQ2HwM919ew==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.1.10.tgz", + "integrity": "sha512-gp8u9aVM0w1DtWSsB5PwvEfFYKrooPENLhN58RAfdgTrcsTsWw+CDysFZPgEaHB0Y1ZbanR82ZH/f6JVKGcZfQ==", "requires": { - "@antora/logger": "3.1.9", - "@antora/playbook-builder": "3.1.9", - "@antora/user-require-helper": "~2.0", + "@antora/logger": "3.1.10", + "@antora/playbook-builder": "3.1.10", + "@antora/user-require-helper": "~3.0", "commander": "~11.1" } }, "@antora/content-aggregator": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.1.9.tgz", - "integrity": "sha512-g+UzevPSm5c4R0j1U9uysJfdIUfp++QOHIEBmqjhfx/aIEnOL70zA+WF55Mm+syAfzU3877puI27sOp8qtPglw==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.1.10.tgz", + "integrity": "sha512-OT6ZcCA7LrtNfrAZUr3hFh+Z/1isKpsfnqFjCDC66NEMqIyzJO99jq0CM66rYlYhyX7mb5BwEua8lHcwpOXNow==", "requires": { - "@antora/expand-path-helper": "~2.0", - "@antora/logger": "3.1.9", - "@antora/user-require-helper": "~2.0", + "@antora/expand-path-helper": "~3.0", + "@antora/logger": "3.1.10", + "@antora/user-require-helper": "~3.0", "braces": "~3.0", "cache-directory": "~2.0", "fast-glob": "~3.3", @@ -2607,73 +2607,73 @@ } }, "@antora/content-classifier": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.1.9.tgz", - "integrity": "sha512-PVJqwp5uvZE1PlpeJtb0p6al75fN+fmXGIC6DHcKysRnr0xo+sgz8X2r4mnNWdTWRqum2yVigMmmuXYTg3cJlQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.1.10.tgz", + "integrity": "sha512-3JJl4IIiTX00v/MirK603NoqIcHjGYAaRWt3Q4U03tI1Fv2Aho/ypO3FE45069jFf0Dx2uDJfp5kapb9gaIjdQ==", "requires": { - "@antora/asciidoc-loader": "3.1.9", - "@antora/logger": "3.1.9", + "@antora/asciidoc-loader": "3.1.10", + "@antora/logger": "3.1.10", "mime-types": "~2.1", "vinyl": "~3.0" } }, "@antora/document-converter": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.1.9.tgz", - "integrity": "sha512-pH7tQaIjcPsFdYkaBEAvA/5ki04IQwQGHoR+2jadKdMl6P+J5KA1VzNnMgyIL6gHn7auJIkoOKadfItRB9lHGQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.1.10.tgz", + "integrity": "sha512-qi9ctgcKal8tZtWflVo66w+4zCJoBmUKRV+eA9aRRR09KDdU9r514vu1adWNgniPppISr90zD13V5l2JUy/2CQ==", "requires": { - "@antora/asciidoc-loader": "3.1.9" + "@antora/asciidoc-loader": "3.1.10" } }, "@antora/expand-path-helper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-2.0.0.tgz", - "integrity": "sha512-CSMBGC+tI21VS2kGW3PV7T2kQTM5eT3f2GTPVLttwaNYbNxDve08en/huzszHJfxo11CcEs26Ostr0F2c1QqeA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-3.0.0.tgz", + "integrity": "sha512-7PdEIhk97v85/CSm3HynCsX14TR6oIVz1s233nNLsiWubE8tTnpPt4sNRJR+hpmIZ6Bx9c6QDp3XIoiyu/WYYA==" }, "@antora/file-publisher": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.1.9.tgz", - "integrity": "sha512-C0VwVjuFbE1CVpZDgwYR1gZCNr1tMw5vueyF9wHZH0KCqAsp9iwo7bwj8wKWMPogxcxdYhnAvtDJnYmYFCuDWQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.1.10.tgz", + "integrity": "sha512-DPR/0d1P+kr3qV4T0Gh81POEO/aCmNWIp/oLUYAhr0HHOcFzgpTUUoLStgcYynZPFRIB7EYKSab+oYSCK17DGA==", "requires": { - "@antora/expand-path-helper": "~2.0", - "@antora/user-require-helper": "~2.0", + "@antora/expand-path-helper": "~3.0", + "@antora/user-require-helper": "~3.0", "vinyl": "~3.0", "yazl": "~2.5" } }, "@antora/logger": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.1.9.tgz", - "integrity": "sha512-MKuANodcX0lfRyiB+Rxl/Kv7UOxc2glzTYFoIoBB7uzxF0A+AhvUJDmpGQFRFN2ihxy99N3nLJmZpDebwXyE+A==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.1.10.tgz", + "integrity": "sha512-WSuIxEP2tVrhWtTj/sIrwBDjpi4ldB/1Kpiu4PXmY4/qeWP8thW6u8nXdwdDcWss5zqkZWjourvWKwVq7y8Wjg==", "requires": { - "@antora/expand-path-helper": "~2.0", + "@antora/expand-path-helper": "~3.0", "pino": "~9.2", "pino-pretty": "~11.2", "sonic-boom": "~4.0" } }, "@antora/navigation-builder": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.1.9.tgz", - "integrity": "sha512-zyl2yNjK31Dl6TRJgnoFb4Czwt9ar3wLTycAdMeZ+U/8YcAUHD8z7NCssPFFvZ0BbUr00NP+gbqDmCr6yz32NQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.1.10.tgz", + "integrity": "sha512-aLMK49nYsSB3mEZbLkmUXDAUYmscv2AFWu+5c3eqVGkQ6Wgyd79WQ6Bz3/TN9YqkzGL+PqGs0G39F0VQzD23Hw==", "requires": { - "@antora/asciidoc-loader": "3.1.9" + "@antora/asciidoc-loader": "3.1.10" } }, "@antora/page-composer": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.1.9.tgz", - "integrity": "sha512-X6Qj+J5dfFAGXoCAOaA+R6xRp8UoNMDHsRsB1dUTT2QNzk1Lrq6YkYyljdD2cxkWjLVqQ/pQSP+BJVNFGbqDAQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.1.10.tgz", + "integrity": "sha512-JoEg8J8HVsnPmAgUrYSGzf0C8rQefXyCi/18ucy0utyfUvlJNsZvUbGUPx62Het9p0JP0FkAz2MTLyDlNdArVg==", "requires": { - "@antora/logger": "3.1.9", + "@antora/logger": "3.1.10", "handlebars": "~4.7", "require-from-string": "~2.0" } }, "@antora/playbook-builder": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.1.9.tgz", - "integrity": "sha512-MJ/OWz4pReC98nygGTXC5bOL/TDDtCYpSkHFBz2ST4L6tuM8rv9c5+cp//JkwY/QlTOvcuJ0f2xq4a7a5nI7Qw==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.1.10.tgz", + "integrity": "sha512-UB8UmRYfkKgActTUlotdVS4FKGjaZgTnSXE7Fns1xb3/3HRanWvI+Yze1OmCkGC33cTpoQFnSYp7ySEH8LaiBw==", "requires": { "@iarna/toml": "~2.2", "convict": "~6.2", @@ -2682,65 +2682,65 @@ } }, "@antora/redirect-producer": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.1.9.tgz", - "integrity": "sha512-9OLwoMhqifsBxTebInh/5W16GdDsdj+YkKG3TiCASlAOYsDbuhbeRPFUlyKKSRkMrtKKnFgHR0Z3DNPXYlH2NQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.1.10.tgz", + "integrity": "sha512-IbWJGh6LmsxJQ821h0B9JfooofFZBgFLZxsbp/IoTLkBFGLFAY5tDRvB6rvubfNLRoSjM8VjEUXGqVLlwZOb+g==", "requires": { "vinyl": "~3.0" } }, "@antora/site-generator": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.1.9.tgz", - "integrity": "sha512-YYESPG22tGX1CxRPSAr6acKILCO8JfGkM1OYc7Sw3D7ZvCy1YgZMAaTYK0T5yl9LXg+l/UZi1xq/Ej0qHnYQiw==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.1.10.tgz", + "integrity": "sha512-NCULYtwUjIyr5FGCymhfG/zDVUmZ6pfmCPorka8mAzo4/GDx1T7bgaRL9rEIyf2AMqcm7apQiAz03mpU4kucsw==", "requires": { - "@antora/asciidoc-loader": "3.1.9", - "@antora/content-aggregator": "3.1.9", - "@antora/content-classifier": "3.1.9", - "@antora/document-converter": "3.1.9", - "@antora/file-publisher": "3.1.9", - "@antora/logger": "3.1.9", - "@antora/navigation-builder": "3.1.9", - "@antora/page-composer": "3.1.9", - "@antora/playbook-builder": "3.1.9", - "@antora/redirect-producer": "3.1.9", - "@antora/site-mapper": "3.1.9", - "@antora/site-publisher": "3.1.9", - "@antora/ui-loader": "3.1.9", - "@antora/user-require-helper": "~2.0" + "@antora/asciidoc-loader": "3.1.10", + "@antora/content-aggregator": "3.1.10", + "@antora/content-classifier": "3.1.10", + "@antora/document-converter": "3.1.10", + "@antora/file-publisher": "3.1.10", + "@antora/logger": "3.1.10", + "@antora/navigation-builder": "3.1.10", + "@antora/page-composer": "3.1.10", + "@antora/playbook-builder": "3.1.10", + "@antora/redirect-producer": "3.1.10", + "@antora/site-mapper": "3.1.10", + "@antora/site-publisher": "3.1.10", + "@antora/ui-loader": "3.1.10", + "@antora/user-require-helper": "~3.0" } }, "@antora/site-generator-default": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-3.1.9.tgz", - "integrity": "sha512-m/QCv2o/24VmWZaeqtc6nNEky///GTLLx/pyyihP7uWKvZ0AhGPp6Agv1yaShjKIthBzHJ3JozaMPev2leor+A==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-3.1.10.tgz", + "integrity": "sha512-dMhjbklthysj3espwYNkTkADm2Z3EbWThq9gJv/ZuSXGZSXVSwt8b3mBpCTwxOeAKIldnj3fc1pzQxei/7PC2w==", "requires": { - "@antora/site-generator": "3.1.9" + "@antora/site-generator": "3.1.10" } }, "@antora/site-mapper": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.1.9.tgz", - "integrity": "sha512-9FCObL+JIjBoby8z+beu2uuvAtCjm5EsEQt+16gCIMX1ktVP3W3gVsdRSvVcGcVEpizILFhMawkcQknZPUp5mg==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.1.10.tgz", + "integrity": "sha512-KY1j/y0uxC2Y7RAo4r4yKv9cgFm8aZoRylZXEODJnwj3tffbZ2ZdRzSWHp6fN0QX/Algrr9JNd9CWrjcj2f3Zw==", "requires": { - "@antora/content-classifier": "3.1.9", + "@antora/content-classifier": "3.1.10", "vinyl": "~3.0" } }, "@antora/site-publisher": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.1.9.tgz", - "integrity": "sha512-L5To8f4QswZliXu6yB6O7O8CuBbLctjNbxZqP3m0FP7VaOONp85ftzEq1BFEm4BXXSwH1n4ujZx1qGBHP9ooOQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.1.10.tgz", + "integrity": "sha512-G4xcUWvgth8oeEQwiu9U1cE0miQtYHwKHOobUbDBt2Y6LlC5H31zQQmAyvMwTsGRlvYRgLVtG6j9d6JBwQ6w9Q==", "requires": { - "@antora/file-publisher": "3.1.9" + "@antora/file-publisher": "3.1.10" } }, "@antora/ui-loader": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.1.9.tgz", - "integrity": "sha512-g0/9dRE5JVMYukIU3x+Rvr41bPdK3sUD2xQIAniRjE6usIZs1mEsTGshVKVEoOqqnSekXE85HVhybjNHsC+qbQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.1.10.tgz", + "integrity": "sha512-H1f5wI5a5HjLuE/Wexvc8NZy8w83Bhqjka7t1DbwOOqP+LyxFGLx/QbBVKdTtgFNDHVMtNBlplQq0ixeoTSh0A==", "requires": { - "@antora/expand-path-helper": "~2.0", + "@antora/expand-path-helper": "~3.0", "braces": "~3.0", "cache-directory": "~2.0", "fast-glob": "~3.3", @@ -2761,11 +2761,11 @@ } }, "@antora/user-require-helper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@antora/user-require-helper/-/user-require-helper-2.0.0.tgz", - "integrity": "sha512-5fMfBZfw4zLoFdDAPMQX6Frik90uvfD8rXOA4UpXPOUikkX4uT1Rk6m0/4oi8oS3fcjiIl0k/7Nc+eTxW5TcQQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/user-require-helper/-/user-require-helper-3.0.0.tgz", + "integrity": "sha512-KIXb8WYhnrnwH7Jj21l1w+et9k5GvcgcqvLOwxqWLEd0uVZOiMFdqFjqbVm3M+zcrs1JXWMeh2LLvxBbQs3q/Q==", "requires": { - "@antora/expand-path-helper": "~2.0" + "@antora/expand-path-helper": "~3.0" } }, "@asciidoctor/core": { @@ -2924,9 +2924,9 @@ "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" }, "b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==" }, "balanced-match": { "version": "1.0.2", @@ -2934,9 +2934,9 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "bare-events": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", - "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", "optional": true }, "base64-js": { @@ -3494,9 +3494,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==" + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==" }, "ignore-by-default": { "version": "1.0.1", @@ -3632,9 +3632,9 @@ "dev": true }, "micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "requires": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -4220,9 +4220,9 @@ "dev": true }, "streamx": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz", - "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.0.tgz", + "integrity": "sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==", "requires": { "bare-events": "^2.2.0", "fast-fifo": "^1.3.2", @@ -4261,9 +4261,9 @@ } }, "text-decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz", - "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.2.tgz", + "integrity": "sha512-/MDslo7ZyWTA2vnk1j7XoDVfXsGk3tp+zFEJHJGm0UjIlQifonVFwlVbQDFh8KJzTBnT8ie115TYqir6bclddA==", "requires": { "b4a": "^1.6.4" } @@ -4310,9 +4310,9 @@ } }, "uglify-js": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.1.tgz", - "integrity": "sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "optional": true }, "undefsafe": { diff --git a/package.json b/package.json index dfdc0ac45..37f14c2c4 100644 --- a/package.json +++ b/package.json @@ -19,8 +19,8 @@ "author": "Neo4j", "license": "ISC", "dependencies": { - "@antora/cli": "^3.1.9", - "@antora/site-generator-default": "^3.1.9", + "@antora/cli": "^3.1.10", + "@antora/site-generator-default": "^3.1.10", "@neo4j-antora/antora-add-notes": "^0.3.1", "@neo4j-antora/antora-modify-sitemaps": "^0.4.4", "@neo4j-antora/antora-page-roles": "^0.3.1", From c1cf1393dbd6f1ccdb299b44cac3403054aee7e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 13:46:22 +0100 Subject: [PATCH 03/32] Bump the dev-dependencies group across 1 directory with 2 updates (#1134) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the dev-dependencies group with 2 updates in the / directory: [express](https://github.com/expressjs/express) and [nodemon](https://github.com/remy/nodemon). Updates `express` from 4.21.1 to 4.21.2
Release notes

Sourced from express's releases.

4.21.2

What's Changed

Full Changelog: https://github.com/expressjs/express/compare/4.21.1...4.21.2

Changelog

Sourced from express's changelog.

4.21.2 / 2024-11-06

  • deps: path-to-regexp@0.1.12
    • Fix backtracking protection
  • deps: path-to-regexp@0.1.11
    • Throws an error on invalid path values
Commits
Maintainer changes

This version was pushed to npm by jonchurch, a new releaser for express since your current version.


Updates `nodemon` from 3.1.7 to 3.1.9
Release notes

Sourced from nodemon's releases.

v3.1.9

3.1.9 (2024-12-13)

Bug Fixes

  • maintain backward support for exitcrash (9c9de6e)

v3.1.8

3.1.8 (2024-12-13)

Bug Fixes

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jens Pryce-Åklundh <112686610+JPryce-Aklundh@users.noreply.github.com> --- package-lock.json | 48 +++++++++++++++++++++++++---------------------- package.json | 4 ++-- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 03743c620..8df8e1944 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,8 +21,8 @@ "asciidoctor-kroki": "^0.18.1" }, "devDependencies": { - "express": "^4.21.1", - "nodemon": "^3.1.7" + "express": "^4.21.2", + "nodemon": "^3.1.9" } }, "node_modules/@antora/asciidoc-loader": { @@ -933,9 +933,9 @@ } }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dev": true, "dependencies": { "accepts": "~1.3.8", @@ -957,7 +957,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -972,6 +972,10 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/fast-copy": { @@ -1601,9 +1605,9 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/nodemon": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz", - "integrity": "sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", "dev": true, "dependencies": { "chokidar": "^3.5.2", @@ -1738,9 +1742,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "dev": true }, "node_modules/pend": { @@ -3234,9 +3238,9 @@ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dev": true, "requires": { "accepts": "~1.3.8", @@ -3258,7 +3262,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -3714,9 +3718,9 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "nodemon": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz", - "integrity": "sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", "dev": true, "requires": { "chokidar": "^3.5.2", @@ -3808,9 +3812,9 @@ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "dev": true }, "pend": { diff --git a/package.json b/package.json index 37f14c2c4..c37ea79ab 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,8 @@ "asciidoctor-kroki": "^0.18.1" }, "devDependencies": { - "express": "^4.21.1", - "nodemon": "^3.1.7" + "express": "^4.21.2", + "nodemon": "^3.1.9" }, "overrides": { "@antora/site-generator-default": { From 49d4013a52e50c733eb51536374d083e8662cb95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Thu, 19 Dec 2024 09:59:50 +0100 Subject: [PATCH 04/32] Several small fixes to query plan ascii and links (#1136) --- ...ions-additions-removals-compatibility.adoc | 2 +- .../operators/operators-detail.adoc | 133 +++++++++--------- 2 files changed, 66 insertions(+), 69 deletions(-) diff --git a/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc b/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc index 12273391f..50047fdc6 100644 --- a/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc +++ b/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc @@ -253,7 +253,7 @@ CREATE (n:$(line.label) {name: line.Name}) ---- | Added the ability to dynamically reference node labels and relationship types in xref:clauses/match.adoc#dynamic-match[`MATCH`], xref:clauses/create.adoc#dynamic-create[`CREATE`], and xref:clauses/merge.adoc#dynamic-merge[`MERGE`] clauses. -Also introduced the ability to specify CSV columns dynamically when using xref:clauses/load-csv.adoc#dynamic-load[`LOAD CSV`]. +Also introduced the ability to specify CSV columns dynamically when using xref:clauses/load-csv.adoc#dynamic-columns[`LOAD CSV`]. |=== diff --git a/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc b/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc index fb0284afc..a96b96d08 100644 --- a/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc +++ b/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc @@ -4406,26 +4406,25 @@ Runtime SLOTTED Runtime version {neo4j-version-minor} -+-------------------+----------------------------------------+----------------+------+---------+------------------------+ -| Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | -+-------------------+----------------------------------------+----------------+------+---------+------------------------+ -| +ProduceResults | `other.name` | 4 | 24 | 0 | 0/0 | -| | +----------------------------------------+----------------+------+---------+------------------------+ -| +Projection | other.name AS `other.name` | 4 | 24 | 24 | 1/0 | -| | +----------------------------------------+----------------+------+---------+------------------------+ -| +Filter | not anon_2 = anon_4 | 16 | 24 | 0 | 0/0 | -| | +----------------------------------------+----------------+------+---------+------------------------+ -| +TriadicSelection | WHERE NOT (me)--(other) | 4 | 24 | 0 | 0/0 | -| |\ +----------------------------------------+----------------+------+---------+------------------------+ -| | | +----------------------------------------+----------------+------+---------+------------------------+ -| | +Expand(All) | (anon_3)-[anon_4:FRIENDS_WITH]-(other) | 16 | 48 | 98 | 48/0 | -| | | +----------------------------------------+----------------+------+---------+------------------------+ -| | +Argument | anon_3, anon_2 | 24 | 24 | 0 | 0/0 | -| | +----------------------------------------+----------------+------+---------+------------------------+ -| +Expand(All) | (me)-[anon_2:FRIENDS_WITH]-(anon_3) | 24 | 24 | 53 | 28/0 | -| | +----------------------------------------+----------------+------+---------+------------------------+ -| +NodeByLabelScan | me:Person | 15 | 15 | 16 | 1/0 | -+-------------------+----------------------------------------+----------------+------+---------+------------------------+ ++-------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | ++-------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +ProduceResults | 0 | `other.name` | 15 | 24 | 0 | 0 | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +Projection | 1 | other.name AS `other.name` | 15 | 24 | 24 | | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +Filter | 2 | NOT anon_2 = anon_0 | 15 | 24 | 0 | | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +TriadicSelection | 3 | WHERE NOT (me)--(other) | 15 | 48 | 0 | | 0/0 | +| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| | +Expand(All) | 4 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | 0/0 | +| | | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| | +Argument | 5 | anon_1, anon_0 | 24 | 24 | 0 | | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +Expand(All) | 6 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | 2/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +NodeByLabelScan | 7 | me:Person | 14 | 14 | 15 | | 1/0 | ++-------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ Total database accesses: 246, total allocated memory: 64 ---- @@ -4466,30 +4465,29 @@ Runtime version {neo4j-version-minor} Batch size 128 -+-----------------+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| Operator | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | -+-----------------+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +ProduceResults | `other.name` | 4 | 24 | 0 | | 0/0 | 0.133 | | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +Projection | other.name AS `other.name` | 4 | 24 | 48 | | 2/0 | 0.056 | | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Filter | not anon_2 = anon_4 | 16 | 24 | 0 | | | | | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +TriadicFilter | WHERE NOT (me)--(other) | 4 | 24 | 0 | 4136 | 0/0 | 0.195 | In Pipeline 3 | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Apply | | 16 | 24 | 0 | | 0/0 | | | -| |\ +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| | | +----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | (anon_3)-[anon_4:FRIENDS_WITH]-(other) | 16 | 48 | 98 | | | | | -| | | +----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Argument | anon_3, anon_2 | 24 | 24 | 0 | 4200 | 0/0 | 0.397 | Fused in Pipeline 2 | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +TriadicBuild | (me)--(anon_3) | 24 | 24 | 0 | 888 | 0/0 | 1.427 | In Pipeline 1 | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Expand(All) | (me)-[anon_2:FRIENDS_WITH]-(anon_3) | 24 | 24 | 39 | | | | | -| | +----------------------------------------+----------------+------+---------+----------------+ | | | -| +NodeByLabelScan| me:Person | 15 | 15 | 16 | 120 | 3/0 | 0,200 | Fused in Pipeline 0 | -+-----------------+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +ProduceResults | 0 | `other.name` | 15 | 24 | 0 | 0 | 0/0 | 0.230 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +Projection | 1 | other.name AS `other.name` | 15 | 24 | 48 | | 0/0 | 0.424 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +Filter | 2 | NOT anon_2 = anon_0 | 15 | 24 | 0 | | 0/0 | 0.731 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +TriadicFilter | 10 | WHERE NOT (me)--(other) | 15 | 48 | 0 | 7216 | 0/0 | 0.690 | In Pipeline 3 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Apply | 9 | | 16 | 48 | 0 | | 0/0 | | | +| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| | +Expand(All) | 4 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | | | | +| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| | +Argument | 5 | anon_1, anon_0 | 24 | 24 | 0 | 4464 | 0/0 | 1.143 | Fused in Pipeline 2 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +TriadicBuild | 8 | (me)--(anon_1) | 24 | 24 | 0 | 1080 | 0/0 | 5.317 | In Pipeline 1 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Expand(All) | 6 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | | | | +| | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| +NodeByLabelScan | 7 | me:Person | 14 | 14 | 15 | 376 | 3/0 | 2.444 | Fused in Pipeline 0 | ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ Total database accesses: 256, total allocated memory: 7376 ---- @@ -4530,30 +4528,29 @@ Runtime version {neo4j-version-minor} Batch size 128 -+-----------------+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| Operator | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | -+-----------------+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +ProduceResults | `other.name` | 4 | 24 | 0 | | 0/0 | 0.189 | | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +Projection | other.name AS `other.name` | 4 | 24 | 48 | | 2/0 | 0.381 | | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Filter | not anon_2 = anon_4 | 16 | 24 | 0 | | | | | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +TriadicFilter | WHERE NOT (me)--(other) | 4 | 24 | 0 | 4136 | 0/0 | 0.685 | In Pipeline 3 | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Apply | | 16 | 24 | 0 | | 0/0 | | | -| |\ +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| | | +----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | (anon_3)-[anon_4:FRIENDS_WITH]-(other) | 16 | 48 | 98 | | | | | -| | | +----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Argument | anon_3, anon_2 | 24 | 24 | 0 | 4200 | 0/0 | 0.496 | Fused in Pipeline 2 | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +TriadicBuild | (me)--(anon_3) | 24 | 24 | 0 | 888 | 0/0 | 3.268 | In Pipeline 1 | -| | +----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Expand(All) | (me)-[anon_2:FRIENDS_WITH]-(anon_3) | 24 | 24 | 39 | | | | | -| | +----------------------------------------+----------------+------+---------+----------------+ | | | -| +NodeByLabelScan| me:Person | 15 | 15 | 16 | 120 | 3/0 | 0,481 | Fused in Pipeline 0 | -+-----------------+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +ProduceResults | 0 | `other.name` | 15 | 24 | 0 | 0 | 0/0 | 0.460 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +Projection | 1 | other.name AS `other.name` | 15 | 24 | 48 | | 0/0 | 0.437 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +Filter | 2 | NOT anon_2 = anon_0 | 15 | 24 | 0 | | 0/0 | 0.377 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +TriadicFilter | 10 | WHERE NOT (me)--(other) | 15 | 48 | 0 | 7216 | 0/0 | 0.337 | In Pipeline 3 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Apply | 9 | | 16 | 48 | 0 | | 0/0 | | | +| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| | +Expand(All) | 4 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | | | | +| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| | +Argument | 5 | anon_1, anon_0 | 24 | 24 | 0 | 4464 | 0/0 | 0.608 | Fused in Pipeline 2 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +TriadicBuild | 8 | (me)--(anon_1) | 24 | 24 | 0 | 1080 | 0/0 | 0.540 | In Pipeline 1 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Expand(All) | 6 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | | | | +| | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| +NodeByLabelScan | 7 | me:Person | 14 | 14 | 15 | 376 | 3/0 | 0.459 | Fused in Pipeline 0 | ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ Total database accesses: 256, total allocated memory: 7376 ---- From 87dc9689f5794bd351b1ea082457089d118060e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Thu, 19 Dec 2024 15:22:30 +0100 Subject: [PATCH 05/32] Add Performance caveats section to Merge/Match dynamic labels section (#1137) --- modules/ROOT/pages/clauses/load-csv.adoc | 5 +++ modules/ROOT/pages/clauses/match.adoc | 12 ++++-- modules/ROOT/pages/clauses/merge.adoc | 48 +++++++++++++++++++++--- 3 files changed, 56 insertions(+), 9 deletions(-) diff --git a/modules/ROOT/pages/clauses/load-csv.adoc b/modules/ROOT/pages/clauses/load-csv.adoc index 6a8986945..ebf126222 100644 --- a/modules/ROOT/pages/clauses/load-csv.adoc +++ b/modules/ROOT/pages/clauses/load-csv.adoc @@ -342,6 +342,11 @@ RETURN n AS bandNodes Added 4 nodes, Set 4 properties, Added 4 labels |=== +[NOTE] +`MERGE` queries using dynamic values may not be as performant as those using static values. +This is because the xref:planning-and-tuning/execution-plans.adoc[Cypher planner] uses statically available information when planning queries to determine whether to use an xref:indexes/search-performance-indexes/overview.adoc[index] or not, and this is not possible when using dynamic values. +For more information, see xref:clauses/merge.adoc#dynamic-merge-caveats[`MERGE` using dynamic node labels and relationship types -> Performance caveats]. + === Import compressed CSV files `LOAD CSV` can read local CSV files compressed with ZIP or gzip. diff --git a/modules/ROOT/pages/clauses/match.adoc b/modules/ROOT/pages/clauses/match.adoc index bc81ff811..dbf136f4a 100644 --- a/modules/ROOT/pages/clauses/match.adoc +++ b/modules/ROOT/pages/clauses/match.adoc @@ -532,10 +532,6 @@ The expression must evaluate to a `STRING NOT NULL | LIST NOT N If you use a `LIST` with more than one item in a relationship pattern with dynamic relationship types, no results will be returned. This is because a relationship can only have exactly one type. -[NOTE] -Queries using dynamic values may not be as performant as those using static values. -This is because the xref:planning-and-tuning/execution-plans.adoc[Cypher planner] uses statically available information when planning queries to determine whether to use an xref:indexes/search-performance-indexes/overview.adoc[index] or not, and this is not possible when using dynamic values. - .Match labels dynamically [source, cypher] ---- @@ -630,3 +626,11 @@ RETURN relationshipType, count(r) AS relationshipCount 2+d|Rows: 2 |=== +[[dynamic-match-caveats]] +=== Performance caveats + +`MATCH` queries using dynamic values may not be as performant as those using static values. +This is because the xref:planning-and-tuning/execution-plans.adoc[Cypher planner] uses statically available information when planning queries to determine whether to use an xref:indexes/search-performance-indexes/overview.adoc[index] or not, and this is not possible when using dynamic values. + +As a result, `MATCH` queries using dynamic values cannot leverage xref:planning-and-tuning/operators/operators-detail.adoc#leaf-operators[index scans or seeks] and must instead use the xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-all-nodes-scan[`AllNodesScan`] operator, which reads all nodes from the node store and is therefore more costly. + diff --git a/modules/ROOT/pages/clauses/merge.adoc b/modules/ROOT/pages/clauses/merge.adoc index 2f56bc1d6..1110bd445 100644 --- a/modules/ROOT/pages/clauses/merge.adoc +++ b/modules/ROOT/pages/clauses/merge.adoc @@ -703,10 +703,6 @@ The expression must evaluate to a `STRING NOT NULL | LIST NOT N Using a `LIST` with more than one item when merging a relationship using dynamic relationship types will fail. This is because a relationship can only have exactly one type. -[NOTE] -Queries using dynamic values may not be as performant as those using static values. -This is because the xref:planning-and-tuning/execution-plans.adoc[Cypher planner] uses statically available information when planning queries to determine whether to use an xref:indexes/search-performance-indexes/overview.adoc[index] or not, and this is not possible when using dynamic values. - .Parameters [source, parameters] ---- @@ -730,7 +726,7 @@ RETURN greta.name AS name, labels(greta) AS labels, type(rel) AS relType, collec // end::clauses_merge_dynamic_merge[] .Result -[role="queryresult",options="footer",cols="3* Date: Tue, 7 Jan 2025 09:51:19 +0100 Subject: [PATCH 06/32] Bump @neo4j-antora/antora-modify-sitemaps from 0.4.4 to 0.5.0 in the prod-dependencies group (#1142) Bumps the prod-dependencies group with 1 update: @neo4j-antora/antora-modify-sitemaps. Updates `@neo4j-antora/antora-modify-sitemaps` from 0.4.4 to 0.5.0 [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@neo4j-antora/antora-modify-sitemaps&package-manager=npm_and_yarn&previous-version=0.4.4&new-version=0.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8df8e1944..f615e80c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@antora/cli": "^3.1.10", "@antora/site-generator-default": "^3.1.10", "@neo4j-antora/antora-add-notes": "^0.3.1", - "@neo4j-antora/antora-modify-sitemaps": "^0.4.4", + "@neo4j-antora/antora-modify-sitemaps": "^0.5.0", "@neo4j-antora/antora-page-roles": "^0.3.1", "@neo4j-antora/antora-table-footnotes": "^0.3.2", "@neo4j-antora/mark-terms": "1.1.0", @@ -327,9 +327,9 @@ "integrity": "sha512-0zapKJr9U+cNBaz5m342Zqb5+1VuaFuybhGtSzEdiG4MRmvsAZunxLX7lSG0cWm6L4DlQa0jzOKYYzpkqoap/g==" }, "node_modules/@neo4j-antora/antora-modify-sitemaps": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-modify-sitemaps/-/antora-modify-sitemaps-0.4.4.tgz", - "integrity": "sha512-IkXoilOJquZPB5G5ZhrgfSN6U3E2YToWakehtF55RA+CNQS0KboTAB2vUH01+Tkmkd8K6UElf41A6cGnnrvs0g==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-modify-sitemaps/-/antora-modify-sitemaps-0.5.0.tgz", + "integrity": "sha512-JC2yT8M+GndKgDiidikYcVE0C4GI73YQTQR4x7kVHcPfS1ENxWOlO5bvqLRNqkYFETxw8BckvCoec2T1S6uH4A==" }, "node_modules/@neo4j-antora/antora-page-roles": { "version": "0.3.2", @@ -2792,9 +2792,9 @@ "integrity": "sha512-0zapKJr9U+cNBaz5m342Zqb5+1VuaFuybhGtSzEdiG4MRmvsAZunxLX7lSG0cWm6L4DlQa0jzOKYYzpkqoap/g==" }, "@neo4j-antora/antora-modify-sitemaps": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-modify-sitemaps/-/antora-modify-sitemaps-0.4.4.tgz", - "integrity": "sha512-IkXoilOJquZPB5G5ZhrgfSN6U3E2YToWakehtF55RA+CNQS0KboTAB2vUH01+Tkmkd8K6UElf41A6cGnnrvs0g==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-modify-sitemaps/-/antora-modify-sitemaps-0.5.0.tgz", + "integrity": "sha512-JC2yT8M+GndKgDiidikYcVE0C4GI73YQTQR4x7kVHcPfS1ENxWOlO5bvqLRNqkYFETxw8BckvCoec2T1S6uH4A==" }, "@neo4j-antora/antora-page-roles": { "version": "0.3.2", diff --git a/package.json b/package.json index c37ea79ab..cede3ed38 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "@antora/cli": "^3.1.10", "@antora/site-generator-default": "^3.1.10", "@neo4j-antora/antora-add-notes": "^0.3.1", - "@neo4j-antora/antora-modify-sitemaps": "^0.4.4", + "@neo4j-antora/antora-modify-sitemaps": "^0.5.0", "@neo4j-antora/antora-page-roles": "^0.3.1", "@neo4j-antora/antora-table-footnotes": "^0.3.2", "@neo4j-antora/mark-terms": "1.1.0", From c20fe4a2789dfeb27cc88dd73ef3ea0d44d5719f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Tue, 7 Jan 2025 11:15:02 +0100 Subject: [PATCH 07/32] Add dynamically referenced labels and types to allowed parameters (#1143) --- modules/ROOT/pages/clauses/where.adoc | 11 +++++++++-- modules/ROOT/pages/syntax/parameters.adoc | 12 +++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/modules/ROOT/pages/clauses/where.adoc b/modules/ROOT/pages/clauses/where.adoc index 90334ffab..a021f9c0d 100644 --- a/modules/ROOT/pages/clauses/where.adoc +++ b/modules/ROOT/pages/clauses/where.adoc @@ -185,12 +185,19 @@ The `name`, `age` and `email` values for `Peter` are returned because `Andy` has To filter on a property using a dynamically computed name, use square bracket syntax: +.Parameters +[source, parameters] +---- +{ + "propname": "age" +} +---- + .Query [source, cypher] ---- -WITH 'AGE' AS propname MATCH (n:Person) -WHERE n[toLower(propname)] < 30 +WHERE n[$propname] < 30 RETURN n.name, n.age ---- diff --git a/modules/ROOT/pages/syntax/parameters.adoc b/modules/ROOT/pages/syntax/parameters.adoc index 41a006e10..06a4f0605 100644 --- a/modules/ROOT/pages/syntax/parameters.adoc +++ b/modules/ROOT/pages/syntax/parameters.adoc @@ -15,14 +15,16 @@ Additionally, parameters make caching of execution plans much easier for Cypher, Parameters can be used for: -* literals and expressions -* node and relationship ids +* Literals and expressions. +* Node and relationship ids. +* Properties, when referenced dynamically (for more information, see xref:clauses/where.adoc#filter-on-dynamic-property[Filter on dynamically-computed node property]). +* Node labels and relationship types, when referenced dynamically (for more information, see xref:clauses/match.adoc#dynamic-match[`MATCH` using dynamic node labels and relationship types]). label:new[Introduced in 5.26] Parameters cannot be used for the following constructs, as these form part of the query structure that is compiled into a query plan: -* property keys; so `MATCH (n) WHERE n.$param = 'something'` is invalid -* relationship types; so `MATCH (n)-[:$param]->(m)` is invalid -* labels; so `MATCH (n:$param)` is invalid +* Property keys; `MATCH (n) WHERE n.$param = 'something'` is invalid. +* Relationship types; `MATCH (n)-[:$param]->(m)` is invalid. +* Node labels; `MATCH (n:$param)` is invalid. Parameters may consist of letters and numbers, and any combination of these, but cannot start with a number or a currency symbol. From d5aeaecfd65cb162dd6e74f6b5a749365b1237f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nadja=20M=C3=BCller?= <73830555+nadja-muller@users.noreply.github.com> Date: Tue, 7 Jan 2025 15:26:22 +0100 Subject: [PATCH 08/32] document deprecation of graph names with unesacped dots in USE clauses (#1145) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jens Pryce-Åklundh <112686610+JPryce-Aklundh@users.noreply.github.com> --- ...eprecations-additions-removals-compatibility.adoc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc b/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc index 50047fdc6..1b97862d8 100644 --- a/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc +++ b/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc @@ -150,6 +150,18 @@ CREATE DATABASE db OPTIONS { storeFormat: 'high_limit' } | The `standard` and `high_limit` store formats have been deprecated. Creating databases with these formats is therefore also deprecated. For more information on the deprecation of these formats, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/store-formats/#format-deprecations[Store formats -> Format deprecations]. + +a| +label:functionality[] +label:deprecated[] +[source, cypher, role="noheader"] +---- +USE my.db ... + +---- +| In xref:clauses/use.adoc[`USE`] clauses, databases and aliases with unquoted `.` are deprecated unless the `.` is used to indicate that the database or alias belongs to a composite database. +Names containing `.` should be quoted using backticks. +For example, `USE `my.db`` is valid. |=== From 702f2af3cb7da1d0be8977860dfa163836452193 Mon Sep 17 00:00:00 2001 From: Jennifer Reif Date: Thu, 9 Jan 2025 02:09:34 -0600 Subject: [PATCH 09/32] Correct genai batchEncode example syntax (#1148) --- modules/ROOT/pages/genai-integrations.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/pages/genai-integrations.adoc b/modules/ROOT/pages/genai-integrations.adoc index 5168f0d01..2773b4848 100644 --- a/modules/ROOT/pages/genai-integrations.adoc +++ b/modules/ROOT/pages/genai-integrations.adoc @@ -185,7 +185,7 @@ WITH collect(m) AS moviesList // <1> 100 AS batchSize // <2> UNWIND range(0, total, batchSize) AS batchStart // <3> CALL (moviesList, batchStart, batchSize) { // <4> - WITH [movie IN moviesList[batchStart .. batchStart + batchSize] | movie.title || ': ' || movie.plot] AS resources // <5> + WITH [movie IN moviesList[batchStart .. batchStart + batchSize] | movie.title || ': ' || movie.plot] AS batch // <5> CALL genai.vector.encodeBatch(batch, 'OpenAI', { token: $token }) YIELD index, vector CALL db.create.setNodeVectorProperty(moviesList[batchStart + index], 'embedding', vector) // <6> } IN TRANSACTIONS OF 1 ROW <7> @@ -199,7 +199,7 @@ Too large a batch size may also exceed the provider's threshold. <4> A xref:subqueries/subqueries-in-transactions.adoc[`CALL` subquery] executes a separate transaction for each batch. Note that this `CALL` subquery uses a xref:subqueries/call-subquery.adoc#variable-scope-clause[variable scope clause] (introduced in Neo4j 5.23) to import variables. If you are using an older version of Neo4j, use an xref:subqueries/call-subquery.adoc#importing-with[importing `WITH` clause] instead. -<5> `resources` is a list of strings, each being the concatenation of `title` and `plot` of one movie. +<5> `batch` is a list of strings, each being the concatenation of `title` and `plot` of one movie. <6> The procedure sets `vector` as value for the property named `embedding` for the node at position `batchStart + index` in the `moviesList`. <7> Set to `1` the amount of batches to be processed at once. From 912325ecad5111ac1d7c95cd661fc4aacef96af6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastien=20Lou=C3=ABrat?= Date: Thu, 9 Jan 2025 11:22:21 +0100 Subject: [PATCH 10/32] The Cypher query option `eagerAnalyzer` is deprecated (#1147) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jens Pryce-Åklundh <112686610+JPryce-Aklundh@users.noreply.github.com> --- ...ions-additions-removals-compatibility.adoc | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc b/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc index 1b97862d8..78da37687 100644 --- a/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc +++ b/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc @@ -16,6 +16,36 @@ New features are added to the language continuously, and occasionally, some feat This section lists all of the features that have been removed, deprecated, added, or extended in different Cypher versions. Replacement syntax for deprecated and removed features are also indicated. +[[cypher-deprecations-additions-removals-2025.01]] +== Neo4j 2025.01 + +=== Deprecated features + +[cols="2", options="header"] +|=== +| Feature +| Details + +a| +label:functionality[] +label:deprecated[] +[source, cypher, role="noheader"] +---- +CYPHER eagerAnalyzer=ir MATCH (a)-->(b) DELETE b RETURN a +---- + +[source, cypher, role="noheader"] +---- +CYPHER eagerAnalyzer=lp MATCH (a)-->(b) DELETE b RETURN a +---- +a| + +The Cypher query option `eagerAnalyzer` is deprecated and will be removed without a replacement. +Eagerness analysis is systematically performed on the logical plan regardless of the value provided. + +|=== + + [[cypher-deprecations-additions-removals-5.26]] == Neo4j 5.26 @@ -162,6 +192,7 @@ USE my.db ... | In xref:clauses/use.adoc[`USE`] clauses, databases and aliases with unquoted `.` are deprecated unless the `.` is used to indicate that the database or alias belongs to a composite database. Names containing `.` should be quoted using backticks. For example, `USE `my.db`` is valid. + |=== From d3adebdc5c0782f30b51ace1855bc6371f99acd4 Mon Sep 17 00:00:00 2001 From: dogofbrian Date: Thu, 9 Jan 2025 15:15:05 +0000 Subject: [PATCH 11/32] Fix examples in Patterns / Syntax and semantics / shortestPaths (#1151) The examples in Patterns / Syntax and semantics / shortestPaths / Examples mix legacy shortest path and QPPs, which is disallowed. This PR changes them to variable-length relationships. It also improves the header "Restricted to variable length". QPPs are disallowed but also variable length. What they are not are variable-length relationships. --- modules/ROOT/pages/patterns/reference.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/ROOT/pages/patterns/reference.adoc b/modules/ROOT/pages/patterns/reference.adoc index d9da89346..f75ac88c9 100644 --- a/modules/ROOT/pages/patterns/reference.adoc +++ b/modules/ROOT/pages/patterns/reference.adoc @@ -1399,7 +1399,7 @@ Note that it is possible to pass a fixed length path pattern (with a single rela === Rules [[shortest-functions-rules-var-length-restriction]] -==== Restricted to variable length +==== Restricted to variable-length relationships The pattern in the path selector function must be a variable-length relationship and not a quantified path pattern. @@ -1470,14 +1470,14 @@ Return a single shortest path for each distinct pair of nodes matching `(:A)` an [source, role=noheader] ---- -MATCH shortestPath((:A)-[:R]->{0,10}(:B)) +MATCH shortestPath((:A)-[:R*0..10]->(:B)) ---- Return all paths equal to the shortest path length for each distinct pair of nodes matching `(:A)` and `(:B)`: [source, role=noheader] ---- -MATCH allShortestPaths((:A)-[:R]->{0,10}(:B)) +MATCH allShortestPaths((:A)-[:R*0..10]->(:B)) ---- [[graph-patterns]] From 13bfb4ca4554659beb909bdbac28c7c6be3242e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Fri, 10 Jan 2025 12:54:22 +0100 Subject: [PATCH 12/32] Explain trigram indexing for text-2.0 provider (#1152) --- .../managing-indexes.adoc | 14 +++++++++++++- .../search-performance-indexes/using-indexes.adoc | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/pages/indexes/search-performance-indexes/managing-indexes.adoc b/modules/ROOT/pages/indexes/search-performance-indexes/managing-indexes.adoc index 53b35afa8..c523f2b77 100644 --- a/modules/ROOT/pages/indexes/search-performance-indexes/managing-indexes.adoc +++ b/modules/ROOT/pages/indexes/search-performance-indexes/managing-indexes.adoc @@ -216,7 +216,7 @@ As of Neo4j 5.17, an informational notification is instead returned. Creating a text index can be done with the `CREATE TEXT INDEX` command. Note that the index name must be unique. -Text indexes have no supported index configuration and, as of Neo4j 5.1, they have two index providers available, `text-2.0` (default) and `text-1.0` (deprecated). +Text indexes have no supported index configuration and, as of Neo4j 5.1, they have two index providers available, `text-2.0` (default -- see xref:indexes/search-performance-indexes/managing-indexes.adoc#text-indexes-trigram-indexes[Trigram indexing] below for more information) and `text-1.0` (deprecated). [[text-indexes-supported-predicates]] [discrete] @@ -286,6 +286,18 @@ See the section about xref:indexes/search-performance-indexes/using-indexes.adoc [TIP] Text indexes are only used for exact query matches. To perform approximate matches (including, for example, variations and typos), and to compute a similarity score between `STRING` values, use semantic xref:indexes/semantic-indexes/full-text-indexes.adoc[full-text indexes] instead. +[[text-indexes-trigram-indexes]] +==== Trigram indexing + +The default text index provider, `text-2.0`, uses trigram indexing. +This means that `STRING` values are indexed into overlapping trigrams, each containing three Unicode code points. +For example, the word `"developer"` would be indexed by the following trigrams: `["dev", "eve", "vel", "elo", "lop", "ope", "per"]`. + +This makes text indexes particularly suitable for substring (`CONTAINS`) and suffix (`ENDS WITH`) searches, as well as prefix searches (`STARTS WITH`). +For example, searches like `CONTAINS "vel"` or `ENDS WITH "per"` can be efficiently performed by directly looking up the relevant trigrams in the index. +By comparison, range indexes, which indexes `STRING` values lexicographically (see xref:indexes/search-performance-indexes/using-indexes.adoc#range-index-backed-order-by[Range index-backed `ORDER BY`] for more information) and are therefore more suited for prefix searches, would need to scan through all indexed values to check if `"vel"` existed anywhere within the text. +For more information, see xref:indexes/search-performance-indexes/using-indexes.adoc#text-indexes[The impact of indexes on query performance -> Text indexes]. + [discrete] [[text-indexes-examples]] ==== Examples diff --git a/modules/ROOT/pages/indexes/search-performance-indexes/using-indexes.adoc b/modules/ROOT/pages/indexes/search-performance-indexes/using-indexes.adoc index 7a163a8f1..e8c4eee44 100644 --- a/modules/ROOT/pages/indexes/search-performance-indexes/using-indexes.adoc +++ b/modules/ROOT/pages/indexes/search-performance-indexes/using-indexes.adoc @@ -232,7 +232,7 @@ Total database accesses: 7, total allocated memory: 312 This is because range indexes store `STRING` values alphabetically. This means that, while they are very efficient for retrieving exact matches of a `STRING`, or for prefix matching, they are less efficient for suffix and contains searches, where they have to scan all relevant properties to filter any matches. -Text indexes do not store `STRING` properties alphabetically, and are instead optimized for suffix and contains searches. +Text indexes do not store `STRING` properties alphabetically, and are instead optimized for suffix and contains searches (for more information, see xref:indexes/search-performance-indexes/managing-indexes.adoc#text-indexes-trigram-indexes[Create a text index -> Trigram indexing]). That said, if no range index had been present on the name property, the previous query would still have been able to utilize the text index. It would have done so less efficiently than a range index, but it still would have been useful. From 57ae186448600526836ebe4aba3bf44332f475f0 Mon Sep 17 00:00:00 2001 From: Wilco <162103508+WilcoNeo@users.noreply.github.com> Date: Fri, 10 Jan 2025 13:35:26 +0100 Subject: [PATCH 13/32] Document lower bound restriction for shortestPath() and allShortestPath() functions (#1146) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Document that the shortestPath() and allShortestPath() functions can only have a lower bound of 0 or 1 for its variable length pattern. This is not allowed: ` MATCH p=shortestPath((a:A)-[:R*2..]->(b:B)) RETURN 1` A lower bound can be specified using a filter, but might lead to executing a possibly very slow fallback plan. ` MATCH p=shortestPath((a:A)-[:R*]->(b:B)) WHERE length(p)>2 RETURN 1` The possibly very slow fallback plan is this part: ``` | | +Top | 3 | anon_1 ASC LIMIT 1 | 1 | In Pipeline 6 | | | | +----+-------------------------------------------------------+----------------+---------------------+ | | +Projection | 4 | length(p) AS anon_1 | 1 | | | | | +----+-------------------------------------------------------+----------------+ | | | +Filter | 5 | length(p) > $autoint_0 | 1 | | | | | +----+-------------------------------------------------------+----------------+ | | | +Projection | 6 | (a)-[anon_0*]->(b) AS p | 4 | | | | | +----+-------------------------------------------------------+----------------+ | | | +VarLengthExpand(Into) | 7 | (a)-[anon_0:R*]->(b) | 4 | | | | | +----+-------------------------------------------------------+----------------+ | | | +Argument | 8 | a, b | 100 | Fused in Pipeline 5 | | | +----+-------------------------------------------------------+----------------+---------------------+ ``` Within this query plan: ``` +--------------------------+----+-------------------------------------------------------+----------------+---------------------+ | Operator | Id | Details | Estimated Rows | Pipeline | +--------------------------+----+-------------------------------------------------------+----------------+---------------------+ | +ProduceResults | 0 | `1` | 30 | | | | +----+-------------------------------------------------------+----------------+ | | +Projection | 1 | $autoint_1 AS `1` | 30 | | | | +----+-------------------------------------------------------+----------------+ | | +AntiConditionalApply | 2 | | 30 | Fused in Pipeline 7 | | |\ +----+-------------------------------------------------------+----------------+---------------------+ | | +Top | 3 | anon_1 ASC LIMIT 1 | 1 | In Pipeline 6 | | | | +----+-------------------------------------------------------+----------------+---------------------+ | | +Projection | 4 | length(p) AS anon_1 | 1 | | | | | +----+-------------------------------------------------------+----------------+ | | | +Filter | 5 | length(p) > $autoint_0 | 1 | | | | | +----+-------------------------------------------------------+----------------+ | | | +Projection | 6 | (a)-[anon_0*]->(b) AS p | 4 | | | | | +----+-------------------------------------------------------+----------------+ | | | +VarLengthExpand(Into) | 7 | (a)-[anon_0:R*]->(b) | 4 | | | | | +----+-------------------------------------------------------+----------------+ | | | +Argument | 8 | a, b | 100 | Fused in Pipeline 5 | | | +----+-------------------------------------------------------+----------------+---------------------+ | +Apply | 9 | | 100 | | | |\ +----+-------------------------------------------------------+----------------+---------------------+ | | +Optional | 10 | a, b | 100 | In Pipeline 4 | | | | +----+-------------------------------------------------------+----------------+---------------------+ | | +ShortestPath | 11 | p = (a)-[anon_0:R*]->(b) WHERE length(p) > $autoint_0 | 30 | | | | | +----+-------------------------------------------------------+----------------+ | | | +Argument | 12 | a, b | 100 | Fused in Pipeline 3 | | | +----+-------------------------------------------------------+----------------+---------------------+ | +CartesianProduct | 13 | | 100 | In Pipeline 2 | | |\ +----+-------------------------------------------------------+----------------+---------------------+ | | +NodeByLabelScan | 14 | b:B | 10 | In Pipeline 1 | | | +----+-------------------------------------------------------+----------------+---------------------+ | +NodeByLabelScan | 15 | a:A | 10 | In Pipeline 0 | +--------------------------+----+-------------------------------------------------------+----------------+---------------------+ ``` Better is to use the keyword-based SHORTEST. `MATCH p = SHORTEST 1 (a:A)-[:R]->{2,}(b:B) RETURN 1` --------- Co-authored-by: Jens Pryce-Åklundh <112686610+JPryce-Aklundh@users.noreply.github.com> --- modules/ROOT/pages/patterns/reference.adoc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/patterns/reference.adoc b/modules/ROOT/pages/patterns/reference.adoc index f75ac88c9..af68fc22a 100644 --- a/modules/ROOT/pages/patterns/reference.adoc +++ b/modules/ROOT/pages/patterns/reference.adoc @@ -1372,6 +1372,7 @@ They are similar to `SHORTEST 1` and `ALL SHORTEST`, but with several difference * The path pattern is passed as an argument to the functions. * The path pattern is limited to a single relationship pattern. * To return results where the first and last node in the path are the same requires a change to the configuration setting link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_dbms.cypher.forbid_shortestpath_common_nodes[`dbms.cypher.forbid_shortestpath_common_nodes`]. +* The minimum path length, also called the lower bound of the variable length relationship pattern, should be 0 or 1. Both functions will continue to be available, but they are not xref:appendix/gql-conformance/index.adoc[GQL conformant]. @@ -1414,7 +1415,7 @@ shortestPath((:A)-->+(:B)) [[shortest-functions-rules-path-pattern-length]] ==== Path pattern length -There must be exactly one relationship pattern in the path pattern. +There must be exactly one relationship pattern in the path pattern, and the lower bound should be 0 or 1. .Allowed [source] @@ -1427,6 +1428,8 @@ shortestPath((a)-[:R*1..5]-(b)) ---- shortestPath((a)-[:R*1..5]-(b)-->(:X)) +shortestPath((a)-[:R*2..5]-(b)) + shortestPath((:A)) allShortestPaths((a:A)-[:S*]->(:B), (a)-[:R*1..3]->(:C)) From 612137cbbd68cc97142064fc9ba3dbc0be789974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Fri, 10 Jan 2025 15:57:18 +0100 Subject: [PATCH 14/32] Hyphenation (#1154) --- modules/ROOT/pages/clauses/where.adoc | 2 +- modules/ROOT/pages/patterns/fixed-length-patterns.adoc | 6 +++--- modules/ROOT/pages/patterns/reference.adoc | 6 +++--- modules/ROOT/pages/patterns/variable-length-patterns.adoc | 2 +- modules/ROOT/pages/planning-and-tuning/query-tuning.adoc | 2 +- modules/ROOT/pages/queries/basic.adoc | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/ROOT/pages/clauses/where.adoc b/modules/ROOT/pages/clauses/where.adoc index a021f9c0d..f57792c60 100644 --- a/modules/ROOT/pages/clauses/where.adoc +++ b/modules/ROOT/pages/clauses/where.adoc @@ -793,7 +793,7 @@ RETURN r.since |Rows: 1 |=== -However, it cannot be used inside of variable length relationships, as this would lead to an error. +However, it cannot be used inside of variable-length relationships, as this would lead to an error. For example: .Query diff --git a/modules/ROOT/pages/patterns/fixed-length-patterns.adoc b/modules/ROOT/pages/patterns/fixed-length-patterns.adoc index 78c4056ca..c6ceb9ad1 100644 --- a/modules/ROOT/pages/patterns/fixed-length-patterns.adoc +++ b/modules/ROOT/pages/patterns/fixed-length-patterns.adoc @@ -1,7 +1,7 @@ :description: Information about node, relationship, and path patterns. -= Fixed length patterns += Fixed-length patterns -The most basic form of graph pattern matching in Cypher involves the matching of fixed length patterns. +The most basic form of graph pattern matching in Cypher involves the matching of fixed-length patterns. This includes node patterns, relationship patterns, and path patterns. [[node-patterns]] @@ -123,7 +123,7 @@ See the xref:patterns/reference.adoc#relationship-patterns[relationship patterns == Path patterns Any valid path starts and ends with a node, with relationships between each node (if there is more than one node). -Fixed length path patterns have the same restrictions, and for all valid path patterns the following are true: +Fixed-length path patterns have the same restrictions, and for all valid path patterns the following are true: * They have at least one node pattern. * They begin and end with a node pattern. diff --git a/modules/ROOT/pages/patterns/reference.adoc b/modules/ROOT/pages/patterns/reference.adoc index af68fc22a..04f985752 100644 --- a/modules/ROOT/pages/patterns/reference.adoc +++ b/modules/ROOT/pages/patterns/reference.adoc @@ -717,7 +717,7 @@ MATCH ((x:A)-[:R]->(z:B WHERE z.h > 2)){1,5} RETURN [n in x | n.h] AS x_h, [n in z | n.h] AS z_h ---- -Compared to the fixed length quantifier `\{2}`, this also matches paths of length one and three, but no matches exist for length greater than three: +Compared to the fixed-length quantifier `\{2}`, this also matches paths of length one and three, but no matches exist for length greater than three: [options="header",cols="2* Syntax and semantics -> Variable length relationships]. +For more information, see xref::patterns/reference.adoc#variable-length-relationships[Patterns -> Syntax and semantics -> Variable-length relationships]. The xref:patterns/shortest-paths.adoc[`SHORTEST`] keyword can be used to find a variation of the shortest paths between two nodes. In this example, `ALL SHORTEST` paths between the two nodes `Keanu Reeves` and `Tom Cruise` are found. From e1047a2f168605e39c2ce98bc5c054be4ef45360 Mon Sep 17 00:00:00 2001 From: Hannes Voigt <30618026+hvub@users.noreply.github.com> Date: Mon, 13 Jan 2025 11:26:09 +0100 Subject: [PATCH 15/32] Keyword priority (#1130) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Docs update regarding https://github.com/neo-technology/neo4j/pull/28493 (plus a little clarification w.r.t. variable scope in subqueries). --------- Co-authored-by: Richard Sill <156673635+rsill-neo4j@users.noreply.github.com> Co-authored-by: Jens Pryce-Åklundh <112686610+JPryce-Aklundh@users.noreply.github.com> --- modules/ROOT/content-nav.adoc | 2 +- .../unsupported-mandatory.adoc | 2 +- modules/ROOT/pages/syntax/index.adoc | 2 +- modules/ROOT/pages/syntax/keywords.adoc | 394 ++++++++++++++++++ modules/ROOT/pages/syntax/reserved.adoc | 117 ------ modules/ROOT/pages/syntax/variables.adoc | 8 +- 6 files changed, 404 insertions(+), 121 deletions(-) create mode 100644 modules/ROOT/pages/syntax/keywords.adoc delete mode 100644 modules/ROOT/pages/syntax/reserved.adoc diff --git a/modules/ROOT/content-nav.adoc b/modules/ROOT/content-nav.adoc index 35d451b4d..d6ea0bd0d 100644 --- a/modules/ROOT/content-nav.adoc +++ b/modules/ROOT/content-nav.adoc @@ -116,7 +116,7 @@ ** xref:syntax/parsing.adoc[] ** xref:syntax/naming.adoc[] ** xref:syntax/variables.adoc[] -** xref:syntax/reserved.adoc[] +** xref:syntax/keywords.adoc[] ** xref:syntax/parameters.adoc[] ** xref:syntax/operators.adoc[] ** xref:syntax/comments.adoc[] diff --git a/modules/ROOT/pages/appendix/gql-conformance/unsupported-mandatory.adoc b/modules/ROOT/pages/appendix/gql-conformance/unsupported-mandatory.adoc index 98c143dcb..019c73efc 100644 --- a/modules/ROOT/pages/appendix/gql-conformance/unsupported-mandatory.adoc +++ b/modules/ROOT/pages/appendix/gql-conformance/unsupported-mandatory.adoc @@ -41,5 +41,5 @@ Cypher Shell also offers specific link:{neo4j-docs-base-uri}/operations-manual/{ | 21.3 | , , and | GQL specifies a list of link:https://standards.iso.org/iso-iec/39075/ed-1/en/ISO_IEC_39075(en).bnf.txt[reserved words] that cannot be used for unquoted variable names, labels, and property names. -Cypher also specifies a list of xref:syntax/reserved.adoc[reserved keywords], but it differs from GQL's. +Cypher also specifies a list of xref:syntax/keywords.adoc[reserved keywords], but it differs from GQL's. |=== \ No newline at end of file diff --git a/modules/ROOT/pages/syntax/index.adoc b/modules/ROOT/pages/syntax/index.adoc index 498839606..04a664be0 100644 --- a/modules/ROOT/pages/syntax/index.adoc +++ b/modules/ROOT/pages/syntax/index.adoc @@ -8,7 +8,7 @@ Further information can be found in the following sections: * xref::syntax/parsing.adoc[Parsing] * xref::syntax/naming.adoc[Naming rules and recommendations] * xref::syntax/variables.adoc[Variables] -* xref::syntax/reserved.adoc[Reserved keywords] +* xref::syntax/keywords.adoc[Keywords] * xref::syntax/parameters.adoc[Parameters] * xref::syntax/operators.adoc[Operators] * xref::syntax/comments.adoc[Comments] diff --git a/modules/ROOT/pages/syntax/keywords.adoc b/modules/ROOT/pages/syntax/keywords.adoc new file mode 100644 index 000000000..aafb711f2 --- /dev/null +++ b/modules/ROOT/pages/syntax/keywords.adoc @@ -0,0 +1,394 @@ +:description: This section contains a list of reserved keywords in Cypher. + +[[cypher-keywords]] += Keywords + +Keywords are words with a predefined meaning in Cypher. + +Keywords are not recommended to be used as identifiers in the following contexts: + +* Variables +* Labels +* Relationship types +* Function names +* Procedure names + +If a snippet of Cypher can both be a keyword and an unquoted identifier, it is interpreted as a keyword. + +For instance in the following, `true` could be the variable `true` or the Boolean literal value `true`. Since `true` is a keyword, the query returns a single Boolean `true` value. + +.Query +[source, cypher, role=test-result-skip] +---- +WITH 123 AS true +RETURN true AS x +---- + +.Result +[role="queryresult",options="header,footer",cols="1* Date: Tue, 14 Jan 2025 09:43:10 +0100 Subject: [PATCH 16/32] Clarify YIELD (#1157) Co-authored-by: Therese Magnusson --- modules/ROOT/pages/clauses/call.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/clauses/call.adoc b/modules/ROOT/pages/clauses/call.adoc index d600d0bd4..658127b3a 100644 --- a/modules/ROOT/pages/clauses/call.adoc +++ b/modules/ROOT/pages/clauses/call.adoc @@ -189,6 +189,8 @@ CALL db.labels() YIELD * If the procedure has deprecated return columns, those columns are also returned. Note that `YIELD *` is only valid in standalone procedure calls. +Variables must be explicitly named in a `YIELD` clause if other clauses than a single procedure `CALL` are present. +This restriction simplifies query logic and protects against output variables from the procedure accidentally clashing with other query variables. For example, the following is not valid: .Not allowed @@ -204,7 +206,7 @@ RETURN count(*) AS results ==== `YIELD` can be used to filter for specific results. -This requires knowing the names of the arguments within a procedure's signature, which can either be found in the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/[Operations Manual -> Procedures] or returned by a `SHOW PROCEDURES` query. +This requires knowing the names of the arguments within a procedure's signature, which can either be found in the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/[Operations Manual -> Procedures] or in the `signature` column returned by a `SHOW PROCEDURES` command (see example below). .Find the argument names of `db.propertyKeys` [source, cypher] From fca175bdfc932441d681da6a2dcd72eea036999b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 09:58:44 +0100 Subject: [PATCH 17/32] Bump @neo4j-antora/antora-modify-sitemaps from 0.5.0 to 0.6.0 in the prod-dependencies group (#1158) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the prod-dependencies group with 1 update: @neo4j-antora/antora-modify-sitemaps. Updates `@neo4j-antora/antora-modify-sitemaps` from 0.5.0 to 0.6.0 [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@neo4j-antora/antora-modify-sitemaps&package-manager=npm_and_yarn&previous-version=0.5.0&new-version=0.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jens Pryce-Åklundh <112686610+JPryce-Aklundh@users.noreply.github.com> --- package-lock.json | 73 ++++++++++++----------------------------------- package.json | 2 +- 2 files changed, 20 insertions(+), 55 deletions(-) diff --git a/package-lock.json b/package-lock.json index f615e80c8..759f2eed3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@antora/cli": "^3.1.10", "@antora/site-generator-default": "^3.1.10", "@neo4j-antora/antora-add-notes": "^0.3.1", - "@neo4j-antora/antora-modify-sitemaps": "^0.5.0", + "@neo4j-antora/antora-modify-sitemaps": "^0.6.0", "@neo4j-antora/antora-page-roles": "^0.3.1", "@neo4j-antora/antora-table-footnotes": "^0.3.2", "@neo4j-antora/mark-terms": "1.1.0", @@ -327,9 +327,12 @@ "integrity": "sha512-0zapKJr9U+cNBaz5m342Zqb5+1VuaFuybhGtSzEdiG4MRmvsAZunxLX7lSG0cWm6L4DlQa0jzOKYYzpkqoap/g==" }, "node_modules/@neo4j-antora/antora-modify-sitemaps": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-modify-sitemaps/-/antora-modify-sitemaps-0.5.0.tgz", - "integrity": "sha512-JC2yT8M+GndKgDiidikYcVE0C4GI73YQTQR4x7kVHcPfS1ENxWOlO5bvqLRNqkYFETxw8BckvCoec2T1S6uH4A==" + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-modify-sitemaps/-/antora-modify-sitemaps-0.6.0.tgz", + "integrity": "sha512-QdlLZoN4jL9X39RwphNQOx6FnjFYzZIdm7OhBaf7FpP31eaGXgeyfMquWQm3yNPrqrut1ax4ogGrQNeRBmAxVg==", + "dependencies": { + "semver": "^7.6.3" + } }, "node_modules/@neo4j-antora/antora-page-roles": { "version": "0.3.2", @@ -1434,18 +1437,6 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -2106,13 +2097,9 @@ "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -2524,12 +2511,6 @@ "node": ">=4" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", @@ -2792,9 +2773,12 @@ "integrity": "sha512-0zapKJr9U+cNBaz5m342Zqb5+1VuaFuybhGtSzEdiG4MRmvsAZunxLX7lSG0cWm6L4DlQa0jzOKYYzpkqoap/g==" }, "@neo4j-antora/antora-modify-sitemaps": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-modify-sitemaps/-/antora-modify-sitemaps-0.5.0.tgz", - "integrity": "sha512-JC2yT8M+GndKgDiidikYcVE0C4GI73YQTQR4x7kVHcPfS1ENxWOlO5bvqLRNqkYFETxw8BckvCoec2T1S6uH4A==" + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-modify-sitemaps/-/antora-modify-sitemaps-0.6.0.tgz", + "integrity": "sha512-QdlLZoN4jL9X39RwphNQOx6FnjFYzZIdm7OhBaf7FpP31eaGXgeyfMquWQm3yNPrqrut1ax4ogGrQNeRBmAxVg==", + "requires": { + "semver": "^7.6.3" + } }, "@neo4j-antora/antora-page-roles": { "version": "0.3.2", @@ -3603,15 +3587,6 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -4074,13 +4049,9 @@ "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" }, "send": { "version": "0.19.0", @@ -4380,12 +4351,6 @@ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", "integrity": "sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==" }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", diff --git a/package.json b/package.json index cede3ed38..290d1c494 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "@antora/cli": "^3.1.10", "@antora/site-generator-default": "^3.1.10", "@neo4j-antora/antora-add-notes": "^0.3.1", - "@neo4j-antora/antora-modify-sitemaps": "^0.5.0", + "@neo4j-antora/antora-modify-sitemaps": "^0.6.0", "@neo4j-antora/antora-page-roles": "^0.3.1", "@neo4j-antora/antora-table-footnotes": "^0.3.2", "@neo4j-antora/mark-terms": "1.1.0", From 09ee930ba27839209c5ec13e657024522b48f840 Mon Sep 17 00:00:00 2001 From: Richard Sill <156673635+rsill-neo4j@users.noreply.github.com> Date: Tue, 14 Jan 2025 11:24:21 +0100 Subject: [PATCH 18/32] tags for READ query section (#1133) --- modules/ROOT/pages/clauses/match.adoc | 10 ++++++++++ .../ROOT/pages/clauses/optional-match.adoc | 2 ++ modules/ROOT/pages/clauses/return.adoc | 12 +++++++++++ modules/ROOT/pages/clauses/union.adoc | 4 ++++ modules/ROOT/pages/clauses/where.adoc | 20 +++++++++++++++++++ modules/ROOT/pages/clauses/with.adoc | 4 ++++ 6 files changed, 52 insertions(+) diff --git a/modules/ROOT/pages/clauses/match.adoc b/modules/ROOT/pages/clauses/match.adoc index dbf136f4a..3dffc1a0c 100644 --- a/modules/ROOT/pages/clauses/match.adoc +++ b/modules/ROOT/pages/clauses/match.adoc @@ -45,11 +45,13 @@ For more information about finding node patterns, see xref:patterns/fixed-length By specifying a pattern with a single node and no labels, all nodes in the graph will be returned. .Find all nodes in a graph +// tag::clauses_match_all_nodes[] [source, cypher] ---- MATCH (n) RETURN n ---- +// end::clauses_match_all_nodes[] .Result [role="queryresult",options="header,footer",cols="1*() RETURN type(r) AS relType ---- +// end::clauses_match_relationship_types[] [NOTE] The above query uses the xref:functions/scalar.adoc#functions-type[`type()` function]. @@ -244,11 +250,13 @@ RETURN a, b It is possible to specify the type of a relationship in a relationship pattern by using a colon (`:`) before the relationship type. .Relationship pattern filtering on the `ACTED_IN` relationship type +// tag::clauses_match_relationship[] [source, cypher] ---- MATCH (:Movie {title: 'Wall Street'})<-[:ACTED_IN]-(actor:Person) RETURN actor.name AS actor ---- +// end::clauses_match_relationship[] .Result [source, role="queryresult",options="header,footer",cols="1*(movie:Movie) RETURN path ---- +// end::clauses_match_path[] .Result [role="queryresult",options="header,footer",cols="1*() RETURN p.name, r ---- +// end::clauses_optional_match[] .Result [role="queryresult",options="header,footer",cols="2*(m) RETURN type(r) ---- +// end::clauses_return_relationship_type[] .Result [role="queryresult",options="header,footer",cols="1*(m) RETURN * ---- +// end::clauses_return_all_elements[] This returns the two nodes, and the two possible paths between them. @@ -149,11 +157,13 @@ d|Rows: 1 Names of returned columns can be renamed using the `AS` operator: .Query +// tag::clauses_return_with_column_alias[] [source, cypher] ---- MATCH (p:Person {name: 'Keanu Reeves'}) RETURN p.nationality AS citizenship ---- +// end::clauses_return_with_column_alias[] Returns the `nationality` property of `'Keanu Reeves'`, but the column is renamed to `citizenship`. @@ -220,11 +230,13 @@ Returns a predicate, a literal and function call with a pattern expression param `DISTINCT` retrieves only unique rows for the columns that have been selected for output. .Query +// tag::clauses_return_distinct[] [source, cypher] ---- MATCH (p:Person {name: 'Keanu Reeves'})-->(m) RETURN DISTINCT m ---- +// end::clauses_return_distinct[] The `Movie` node `'Man of Tai Chi'` is returned by the query, but only once (without the `DISTINCT` operator it would have been returned twice because there are two relationships going to it from `'Keanu Reeves'`): diff --git a/modules/ROOT/pages/clauses/union.adoc b/modules/ROOT/pages/clauses/union.adoc index 2df4687aa..89c9746a8 100644 --- a/modules/ROOT/pages/clauses/union.adoc +++ b/modules/ROOT/pages/clauses/union.adoc @@ -45,6 +45,7 @@ CREATE (johnny:Actor {name: 'Johnny Depp'}), Combining the results from two queries is done using `UNION ALL`. .Query +// tag::clauses_union_all[] [source, cypher] ---- MATCH (n:Actor) @@ -53,6 +54,7 @@ UNION ALL MATCH (n:Movie) RETURN n.title AS name ---- +// end::clauses_union_all[] The combined result is returned, including duplicates. @@ -74,6 +76,7 @@ The combined result is returned, including duplicates. By not including `ALL` in the `UNION`, duplicates are removed from the combined result set. .Query +// tag::clauses_union[] [source, cypher] ---- MATCH (n:Actor) @@ -82,6 +85,7 @@ UNION MATCH (n:Movie) RETURN n.title AS name ---- +// end::clauses_union[] The combined result is returned, without duplicates. diff --git a/modules/ROOT/pages/clauses/where.adoc b/modules/ROOT/pages/clauses/where.adoc index f57792c60..c0487cb30 100644 --- a/modules/ROOT/pages/clauses/where.adoc +++ b/modules/ROOT/pages/clauses/where.adoc @@ -46,12 +46,14 @@ CREATE `WHERE` can appear inside a node pattern in a `MATCH` clause or a pattern comprehension: .Query +// tag::clauses_where_in_match_clause[] [source, cypher] ---- WITH 30 AS minAge MATCH (a:Person WHERE a.name = 'Andy')-[:KNOWS]->(b:Person WHERE b.age > minAge) RETURN b.name ---- +// end::clauses_where_in_match_clause[] .Result [role="queryresult",options="header,footer",cols="1*(b WHERE b:Person) | b.name] AS friends ---- +// end::clauses_where_pattern_comprehension[] .Result [role="queryresult",options="header,footer",cols="1*(f) WHERE k.since < 2000 RETURN f.name, f.age, f.email ---- +// end::clauses_where_relationship_property[] The `name`, `age` and `email` values for `Peter` are returned because `Andy` has known him since before 2000: @@ -218,12 +230,14 @@ The `name` and `age` values for `Timothy` are returned because he is less than 3 Use the `IS NOT NULL` predicate to only include nodes or relationships in which a property exists: .Query +// tag::clauses_where_property_existence[] [source, cypher] ---- MATCH (n:Person) WHERE n.belt IS NOT NULL RETURN n.name, n.belt ---- +// end::clauses_where_property_existence[] The `name` and `belt` values for `Andy` are returned because he is the only one with a `belt` property: @@ -242,6 +256,7 @@ The `name` and `belt` values for `Andy` are returned because he is the only one As `WHERE` is not considered a clause in its own right, its scope is not limited by a `WITH` directly before it. .Query +// tag::clauses_where_with[] [source, cypher] ---- MATCH (n:Person) @@ -249,6 +264,7 @@ WITH n.name as name WHERE n.age = 25 RETURN name ---- +// end::clauses_where_with[] .Result [role="queryresult",options="header,footer",cols="1*(timothy) RETURN other.name, other.age ---- +// end::clauses_where_patterns[] The `name` and `age` values for nodes that have an outgoing relationship to `Timothy` are returned: @@ -618,12 +636,14 @@ To check if an element exists in a list, use the `IN` operator. The below query checks whether a property exists in a literal list: .Query +// tag::clauses_where_lists[] [source, cypher] ---- MATCH (a:Person) WHERE a.name IN ['Peter', 'Timothy'] RETURN a.name, a.age ---- +// end::clauses_where_lists[] .Result [role="queryresult",options="header,footer",cols="2*(otherPerson) WITH *, type(r) AS connectionType RETURN person.name, otherPerson.name, connectionType ---- +// end::clauses_with_wildcard[] This query returns the names of all related persons and the type of relationship between them. From d20cb4b8aafbf76872d5bb2100123212a743b1d8 Mon Sep 17 00:00:00 2001 From: Richard Sill <156673635+rsill-neo4j@users.noreply.github.com> Date: Tue, 14 Jan 2025 11:29:38 +0100 Subject: [PATCH 19/32] tags for clause section (#1138) --- modules/ROOT/pages/clauses/finish.adoc | 4 +- modules/ROOT/pages/clauses/foreach.adoc | 48 +++++++++++++++++++++++- modules/ROOT/pages/clauses/limit.adoc | 4 ++ modules/ROOT/pages/clauses/load-csv.adoc | 16 +++++++- modules/ROOT/pages/clauses/order-by.adoc | 8 ++++ modules/ROOT/pages/clauses/skip.adoc | 6 +++ modules/ROOT/pages/clauses/unwind.adoc | 6 +++ modules/ROOT/pages/clauses/use.adoc | 6 ++- 8 files changed, 94 insertions(+), 4 deletions(-) diff --git a/modules/ROOT/pages/clauses/finish.adoc b/modules/ROOT/pages/clauses/finish.adoc index b233b4896..2d3315e13 100644 --- a/modules/ROOT/pages/clauses/finish.adoc +++ b/modules/ROOT/pages/clauses/finish.adoc @@ -3,17 +3,19 @@ [[query-finish]] = FINISH -A query ending in `FINISH` — instead of `RETURN` — has no result but executes all its side effects. +A query ending in `FINISH` -- instead of `RETURN` -- has no result but executes all its side effects. `FINISH` was introduced as part of Cypher's xref:appendix/gql-conformance/index.adoc[]. The following read query successfully executes but has no results: .Query +// tag::clauses_finish_match[] [source, cypher] ---- MATCH (p:Person) FINISH ---- +// end::clauses_finish_match[] The following query has no result but creates one node with the label `Person`: diff --git a/modules/ROOT/pages/clauses/foreach.adoc b/modules/ROOT/pages/clauses/foreach.adoc index b594ecace..2132954e6 100644 --- a/modules/ROOT/pages/clauses/foreach.adoc +++ b/modules/ROOT/pages/clauses/foreach.adoc @@ -33,15 +33,17 @@ CREATE [[foreach-mark-all-nodes-along-a-path]] == Mark all nodes along a path -This query will set the property `marked` to `true` on all nodes along a path. +This query sets the property `marked` to `true` on all nodes along a path. .Query +// tag::clauses_foreach_node[] [source, cypher, indent=0] ---- MATCH p=(start)-[*]->(finish) WHERE start.name = 'A' AND finish.name = 'D' FOREACH (n IN nodes(p) | SET n.marked = true) ---- +// end::clauses_foreach_node[] .Result [role="queryresult",options="footer",cols="1*(finish) +WHERE start.name = 'A' AND finish.name = 'D' +FOREACH ( r IN relationships(p) | SET r.marked = true ) +---- +// end::clauses_foreach_relationship[] + +.Result +[role="queryresult",options="footer",cols="1* Date: Tue, 14 Jan 2025 11:42:12 +0100 Subject: [PATCH 20/32] Alias to new keywords page (#1160) --- modules/ROOT/pages/syntax/keywords.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ROOT/pages/syntax/keywords.adoc b/modules/ROOT/pages/syntax/keywords.adoc index aafb711f2..4e7a24477 100644 --- a/modules/ROOT/pages/syntax/keywords.adoc +++ b/modules/ROOT/pages/syntax/keywords.adoc @@ -1,4 +1,5 @@ :description: This section contains a list of reserved keywords in Cypher. +:page-aliases: syntax/reserved.adoc [[cypher-keywords]] = Keywords From ce32664f7a89b0ebe85980df520cdf0375568039 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Wed, 15 Jan 2025 11:30:15 +0100 Subject: [PATCH 21/32] Property type rephrase (#1163) --- .../pages/values-and-types/property-structural-constructed.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/values-and-types/property-structural-constructed.adoc b/modules/ROOT/pages/values-and-types/property-structural-constructed.adoc index a08608f9e..6b4e1657b 100644 --- a/modules/ROOT/pages/values-and-types/property-structural-constructed.adoc +++ b/modules/ROOT/pages/values-and-types/property-structural-constructed.adoc @@ -13,7 +13,7 @@ This section will first provide a brief overview of each type, and then go into A property type value is one that can be stored as a node or relationship property. -The following data types are included in the property types category: `BOOLEAN`, `DATE`, `DURATION`, `FLOAT`, `INTEGER`, `LIST`, `LOCAL DATETIME`, `LOCAL TIME`, `POINT`, `STRING`, `ZONED DATETIME`, and `ZONED TIME`. +Property types are the most primitive types in Cypher and include the following: `BOOLEAN`, `DATE`, `DURATION`, `FLOAT`, `INTEGER`, `LIST`, `LOCAL DATETIME`, `LOCAL TIME`, `POINT`, `STRING`, `ZONED DATETIME`, and `ZONED TIME`. * Property types can be returned from Cypher queries. * Property types can be used as xref::syntax/parameters.adoc[parameters]. From 32ccca07ec44cd98a1c0810a587c0c2eba40fb5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Wed, 15 Jan 2025 11:51:35 +0100 Subject: [PATCH 22/32] fix antora for 2025.01 (#1164) --- antora.yml | 4 ++-- preview.yml | 7 ------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/antora.yml b/antora.yml index 51d116ceb..43779c5ed 100644 --- a/antora.yml +++ b/antora.yml @@ -1,11 +1,11 @@ name: cypher-manual title: Cypher Manual -version: '2025' +version: '5' start_page: ROOT:introduction/index.adoc nav: - modules/ROOT/content-nav.adoc asciidoc: attributes: - neo4j-version: '2025' + neo4j-version: '2025.01' neo4j-version-minor: '2025.01' neo4j-version-exact: '2025.01' diff --git a/preview.yml b/preview.yml index 50f2281c1..b70cd4e8a 100644 --- a/preview.yml +++ b/preview.yml @@ -22,13 +22,6 @@ ui: urls: html_extension_style: indexify -antora: - extensions: - - require: "@neo4j-antora/antora-modify-sitemaps" - sitemap_version: '2025' - sitemap_loc_version: 'current' - move_sitemaps_to_components: true - asciidoc: extensions: - "@neo4j-documentation/remote-include" From be0343d0409e95efd7929ec0d1ee9a6902a88de6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Thu, 16 Jan 2025 08:58:38 +0100 Subject: [PATCH 23/32] Fix failing query plans (#1166) --- .../operators/operators-detail.adoc | 236 +++++++++--------- 1 file changed, 123 insertions(+), 113 deletions(-) diff --git a/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc b/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc index a96b96d08..c283399c8 100644 --- a/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc +++ b/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc @@ -4118,30 +4118,32 @@ Runtime version {neo4j-version-minor} Batch size 128 -+------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | -+------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +ProduceResults | 0 | me, friend | 2 | 34 | 136 | 0 | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +Filter | 1 | friend:Person | 2 | 34 | 68 | | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +NullifyMetadata | 9 | | 2 | 34 | 0 | | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +Repeat(Trail) | 2 | (me) (...){1, 2} (friend) | 2 | 34 | 0 | 29792 | 0/0 | 1.696 | Fused in Pipeline 2 | -| |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| | +Filter | 3 | NOT anon_5 = anon_3 AND (NOT cache[a.name] = cache[c.name] AND NOT cache[b.name] = cache[c.name]) AN | 1 | 34 | 92 | | | | | -| | | | | D isRepeatTrailUnique(anon_5) | | | | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | 4 | (b)-[anon_5:FRIENDS_WITH]-(c) | 3 | 92 | 138 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Filter | 5 | NOT cache[a.name] = cache[b.name] AND isRepeatTrailUnique(anon_3) | 5 | 46 | 198 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | 6 | (a)-[anon_3:FRIENDS_WITH]-(b) | 10 | 66 | 100 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Argument | 7 | a | 15 | 34 | 0 | 15672 | 2/0 | 3.245 | Fused in Pipeline 1 | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +NodeByLabelScan | 8 | me:Person | 14 | 14 | 15 | 376 | 1/0 | 0.107 | In Pipeline 0 | -+------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ ++--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | ++--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +ProduceResults | 0 | me, friend | 3 | 34 | 136 | 0 | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +Filter | 1 | friend:Person | 3 | 34 | 68 | | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +NullifyMetadata | 10 | | 3 | 34 | 0 | | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +Repeat(Trail) | 2 | (me) (...){1, 2} (friend) | 3 | 34 | 0 | 30000 | 0/0 | 5.379 | Fused in Pipeline 2 | +| |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| | +Filter | 3 | NOT anon_5 = anon_3 AND (NOT cache[a.name] = cache[c.name] AND NOT cache[b.name] = cache[c.name]) AN | 6 | 34 | 92 | | | | | +| | | | | D isRepeatTrailUnique(anon_5) | | | | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Expand(All) | 4 | (b)-[anon_5:FRIENDS_WITH]-(c) | 26 | 92 | 138 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Filter | 5 | NOT cache[a.name] = cache[b.name] AND isRepeatTrailUnique(anon_3) | 15 | 46 | 132 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Expand(All) | 6 | (a)-[anon_3:FRIENDS_WITH]-(b) | 31 | 66 | 100 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +CacheProperties | 7 | cache[a.name] | 18 | 34 | 68 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Argument | 8 | a | 18 | 34 | 0 | 15880 | 2/0 | 5.556 | Fused in Pipeline 1 | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +NodeByLabelScan | 9 | me:Person | 14 | 14 | 15 | 376 | 1/0 | 0.727 | In Pipeline 0 | ++--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ Total database accesses: 747, total allocated memory: 45832 ---- @@ -4177,30 +4179,32 @@ Runtime version {neo4j-version-minor} Batch size 128 -+------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | -+------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +ProduceResults | 0 | me, friend | 2 | 34 | 136 | 0 | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +Filter | 1 | friend:Person | 2 | 34 | 68 | | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +NullifyMetadata | 9 | | 2 | 34 | 0 | | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +Repeat(Trail) | 2 | (me) (...){1, 2} (friend) | 2 | 34 | 0 | 29792 | 0/0 | 1.696 | Fused in Pipeline 2 | -| |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| | +Filter | 3 | NOT anon_5 = anon_3 AND (NOT cache[a.name] = cache[c.name] AND NOT cache[b.name] = cache[c.name]) AN | 1 | 34 | 92 | | | | | -| | | | | D isRepeatTrailUnique(anon_5) | | | | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | 4 | (b)-[anon_5:FRIENDS_WITH]-(c) | 3 | 92 | 138 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Filter | 5 | NOT cache[a.name] = cache[b.name] AND isRepeatTrailUnique(anon_3) | 5 | 46 | 198 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | 6 | (a)-[anon_3:FRIENDS_WITH]-(b) | 10 | 66 | 100 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Argument | 7 | a | 15 | 34 | 0 | 15672 | 2/0 | 3.245 | Fused in Pipeline 1 | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +NodeByLabelScan | 8 | me:Person | 14 | 14 | 15 | 376 | 1/0 | 0.107 | In Pipeline 0 | -+------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ ++--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | ++--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +ProduceResults | 0 | me, friend | 3 | 34 | 136 | 0 | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +Filter | 1 | friend:Person | 3 | 34 | 68 | | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +NullifyMetadata | 10 | | 3 | 34 | 0 | | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +Repeat(Trail) | 2 | (me) (...){1, 2} (friend) | 3 | 34 | 0 | 30000 | 0/0 | 5.379 | Fused in Pipeline 2 | +| |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| | +Filter | 3 | NOT anon_5 = anon_3 AND (NOT cache[a.name] = cache[c.name] AND NOT cache[b.name] = cache[c.name]) AN | 6 | 34 | 92 | | | | | +| | | | | D isRepeatTrailUnique(anon_5) | | | | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Expand(All) | 4 | (b)-[anon_5:FRIENDS_WITH]-(c) | 26 | 92 | 138 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Filter | 5 | NOT cache[a.name] = cache[b.name] AND isRepeatTrailUnique(anon_3) | 15 | 46 | 132 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Expand(All) | 6 | (a)-[anon_3:FRIENDS_WITH]-(b) | 31 | 66 | 100 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +CacheProperties | 7 | cache[a.name] | 18 | 34 | 68 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Argument | 8 | a | 18 | 34 | 0 | 15880 | 2/0 | 5.556 | Fused in Pipeline 1 | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +NodeByLabelScan | 9 | me:Person | 14 | 14 | 15 | 376 | 1/0 | 0.727 | In Pipeline 0 | ++--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ Total database accesses: 747, total allocated memory: 45832 ---- @@ -4406,25 +4410,27 @@ Runtime SLOTTED Runtime version {neo4j-version-minor} -+-------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | -+-------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +ProduceResults | 0 | `other.name` | 15 | 24 | 0 | 0 | 0/0 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +Projection | 1 | other.name AS `other.name` | 15 | 24 | 24 | | 0/0 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +Filter | 2 | NOT anon_2 = anon_0 | 15 | 24 | 0 | | 0/0 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +TriadicSelection | 3 | WHERE NOT (me)--(other) | 15 | 48 | 0 | | 0/0 | -| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| | +Expand(All) | 4 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | 0/0 | -| | | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| | +Argument | 5 | anon_1, anon_0 | 24 | 24 | 0 | | 0/0 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +Expand(All) | 6 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | 2/0 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +NodeByLabelScan | 7 | me:Person | 14 | 14 | 15 | | 1/0 | -+-------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ ++--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | ++--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +ProduceResults | 0 | `other.name` | 35 | 24 | 0 | 0 | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +Projection | 1 | cache[other.name] AS `other.name` | 35 | 24 | 0 | | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +TriadicSelection | 2 | WHERE NOT (me)--(other) | 35 | 24 | 0 | | 0/0 | +| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| | +CacheProperties | 3 | cache[other.name] | 16 | 24 | 24 | | 0/0 | +| | | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| | +Filter | 4 | NOT anon_2 = anon_0 | 16 | 24 | 0 | | 0/0 | +| | | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| | +Expand(All) | 5 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | 0/0 | +| | | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| | +Argument | 6 | anon_1, anon_0 | 24 | 24 | 0 | | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +Expand(All) | 7 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | 2/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +NodeByLabelScan | 8 | me:Person | 14 | 14 | 15 | | 1/0 | ++--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ Total database accesses: 246, total allocated memory: 64 ---- @@ -4465,29 +4471,31 @@ Runtime version {neo4j-version-minor} Batch size 128 -+------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | -+------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +ProduceResults | 0 | `other.name` | 15 | 24 | 0 | 0 | 0/0 | 0.230 | | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +Projection | 1 | other.name AS `other.name` | 15 | 24 | 48 | | 0/0 | 0.424 | | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +Filter | 2 | NOT anon_2 = anon_0 | 15 | 24 | 0 | | 0/0 | 0.731 | | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +TriadicFilter | 10 | WHERE NOT (me)--(other) | 15 | 48 | 0 | 7216 | 0/0 | 0.690 | In Pipeline 3 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Apply | 9 | | 16 | 48 | 0 | | 0/0 | | | -| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| | +Expand(All) | 4 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | | | | -| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Argument | 5 | anon_1, anon_0 | 24 | 24 | 0 | 4464 | 0/0 | 1.143 | Fused in Pipeline 2 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +TriadicBuild | 8 | (me)--(anon_1) | 24 | 24 | 0 | 1080 | 0/0 | 5.317 | In Pipeline 1 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Expand(All) | 6 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | | | | -| | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| +NodeByLabelScan | 7 | me:Person | 14 | 14 | 15 | 376 | 3/0 | 2.444 | Fused in Pipeline 0 | -+------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ ++--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | ++--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +ProduceResults | 0 | `other.name` | 35 | 24 | 0 | 0 | 0/0 | 0.180 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +Projection | 1 | cache[other.name] AS `other.name` | 35 | 24 | 0 | | 0/0 | 0.064 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +TriadicFilter | 11 | WHERE NOT (me)--(other) | 35 | 24 | 0 | 7512 | 0/0 | 0.303 | In Pipeline 3 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Apply | 10 | | 16 | 24 | 0 | | 0/0 | | | +| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| | +CacheProperties | 3 | cache[other.name] | 16 | 24 | 48 | | | | | +| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| | +Filter | 4 | NOT anon_2 = anon_0 | 16 | 24 | 0 | | | | | +| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| | +Expand(All) | 5 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | | | | +| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| | +Argument | 6 | anon_1, anon_0 | 24 | 24 | 0 | 4464 | 0/0 | 0.575 | Fused in Pipeline 2 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +TriadicBuild | 9 | (me)--(anon_1) | 24 | 24 | 0 | 1080 | 0/0 | 1.608 | In Pipeline 1 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Expand(All) | 7 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | | | | +| | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| +NodeByLabelScan | 8 | me:Person | 14 | 14 | 15 | 376 | 3/0 | 0.559 | Fused in Pipeline 0 | ++--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ Total database accesses: 256, total allocated memory: 7376 ---- @@ -4528,29 +4536,31 @@ Runtime version {neo4j-version-minor} Batch size 128 -+------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | -+------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +ProduceResults | 0 | `other.name` | 15 | 24 | 0 | 0 | 0/0 | 0.460 | | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +Projection | 1 | other.name AS `other.name` | 15 | 24 | 48 | | 0/0 | 0.437 | | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +Filter | 2 | NOT anon_2 = anon_0 | 15 | 24 | 0 | | 0/0 | 0.377 | | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +TriadicFilter | 10 | WHERE NOT (me)--(other) | 15 | 48 | 0 | 7216 | 0/0 | 0.337 | In Pipeline 3 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Apply | 9 | | 16 | 48 | 0 | | 0/0 | | | -| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| | +Expand(All) | 4 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | | | | -| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Argument | 5 | anon_1, anon_0 | 24 | 24 | 0 | 4464 | 0/0 | 0.608 | Fused in Pipeline 2 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +TriadicBuild | 8 | (me)--(anon_1) | 24 | 24 | 0 | 1080 | 0/0 | 0.540 | In Pipeline 1 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Expand(All) | 6 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | | | | -| | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| +NodeByLabelScan | 7 | me:Person | 14 | 14 | 15 | 376 | 3/0 | 0.459 | Fused in Pipeline 0 | -+------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ ++--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | ++--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +ProduceResults | 0 | `other.name` | 35 | 24 | 0 | 0 | 0/0 | 0.198 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +Projection | 1 | cache[other.name] AS `other.name` | 35 | 24 | 0 | | 0/0 | 0.095 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +TriadicFilter | 11 | WHERE NOT (me)--(other) | 35 | 24 | 0 | 7512 | 0/0 | 0.176 | In Pipeline 3 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Apply | 10 | | 16 | 24 | 0 | | 0/0 | | | +| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| | +CacheProperties | 3 | cache[other.name] | 16 | 24 | 48 | | | | | +| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| | +Filter | 4 | NOT anon_2 = anon_0 | 16 | 24 | 0 | | | | | +| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| | +Expand(All) | 5 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | | | | +| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| | +Argument | 6 | anon_1, anon_0 | 24 | 24 | 0 | 4464 | 0/0 | 0.990 | Fused in Pipeline 2 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +TriadicBuild | 9 | (me)--(anon_1) | 24 | 24 | 0 | 1080 | 0/0 | 0.304 | In Pipeline 1 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Expand(All) | 7 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | | | | +| | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| +NodeByLabelScan | 8 | me:Person | 14 | 14 | 15 | 376 | 3/0 | 0.399 | Fused in Pipeline 0 | ++--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ Total database accesses: 256, total allocated memory: 7376 ---- From fc34537a4ab14017518fa0eafef9939474eb769e Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Thu, 16 Jan 2025 08:20:58 +0000 Subject: [PATCH 24/32] Table fixes, remove sitemap extension from playbook (#1167) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jens Pryce-Åklundh <112686610+JPryce-Aklundh@users.noreply.github.com> --- modules/ROOT/pages/clauses/call.adoc | 6 +++--- modules/ROOT/pages/clauses/where.adoc | 2 +- modules/ROOT/pages/functions/aggregating.adoc | 2 +- modules/ROOT/pages/syntax/operators.adoc | 4 ++-- modules/ROOT/pages/values-and-types/temporal.adoc | 1 - publish.yml | 7 ------- 6 files changed, 7 insertions(+), 15 deletions(-) diff --git a/modules/ROOT/pages/clauses/call.adoc b/modules/ROOT/pages/clauses/call.adoc index 658127b3a..6f2e40205 100644 --- a/modules/ROOT/pages/clauses/call.adoc +++ b/modules/ROOT/pages/clauses/call.adoc @@ -86,7 +86,7 @@ CALL dbms.checkConfigValue('server.bolt.enabled', 'true') | "valid" | "message" | true | "requires restart" -1+d|Rows: 2 +2+d|Rows: 2 |=== ==== @@ -118,7 +118,7 @@ CALL dbms.checkConfigValue($setting, $value) | "valid" | "message" | true | "requires restart" -1+d|Rows: 2 +2+d|Rows: 2 |=== [NOTE] @@ -153,7 +153,7 @@ CALL dbms.checkConfigValue($setting, 'true') | "valid" | "message" | true | "requires restart" -1+d|Rows: 2 +2+d|Rows: 2 |=== ==== diff --git a/modules/ROOT/pages/clauses/where.adoc b/modules/ROOT/pages/clauses/where.adoc index c0487cb30..060b49136 100644 --- a/modules/ROOT/pages/clauses/where.adoc +++ b/modules/ROOT/pages/clauses/where.adoc @@ -384,7 +384,7 @@ For more information, see the section about the xref:syntax/operators.adoc#match | 'Andy' | 'Timothy' | 'Peter' -2+|Rows: 1 +1+|Rows: 3 |=== Note that the `IS NORMALIZED` operator returns `null` when used on a non-`STRING` value. diff --git a/modules/ROOT/pages/functions/aggregating.adoc b/modules/ROOT/pages/functions/aggregating.adoc index 76ae6984c..9bb8d535f 100644 --- a/modules/ROOT/pages/functions/aggregating.adoc +++ b/modules/ROOT/pages/functions/aggregating.adoc @@ -312,7 +312,7 @@ The `Guy Pearce` node will, therefore, get counted twice when not using `DISTINC | friendOfFriend.name | count(friendOfFriend) | count(ALL friendOfFriend) | count(DISTINCT friendOfFriend) | "Guy Pearce" | 2 | 2 | 1 -2+d|Rows: 1 +4+d|Rows: 1 |=== diff --git a/modules/ROOT/pages/syntax/operators.adoc b/modules/ROOT/pages/syntax/operators.adoc index b6ce384ab..599ccf677 100644 --- a/modules/ROOT/pages/syntax/operators.adoc +++ b/modules/ROOT/pages/syntax/operators.adoc @@ -605,7 +605,7 @@ RETURN "the \u212B char" IS NORMALIZED AS normalized |=== | normalized | false -2+|Rows: 1 +1+|Rows: 1 |=== Because the given `STRING` contains a non-normalized Unicode character (`\u212B`), `false` is returned. @@ -632,7 +632,7 @@ RETURN "the \u212B char" IS NOT NORMALIZED AS notNormalized |=== | notNormalized | true -2+|Rows: 1 +1+|Rows: 1 |=== Because the given `STRING` contains a non-normalized Unicode character (`\u212B`), and is not normalized, `true` is returned. diff --git a/modules/ROOT/pages/values-and-types/temporal.adoc b/modules/ROOT/pages/values-and-types/temporal.adoc index bba317da5..546668428 100644 --- a/modules/ROOT/pages/values-and-types/temporal.adoc +++ b/modules/ROOT/pages/values-and-types/temporal.adoc @@ -505,7 +505,6 @@ For more information, see the xref::values-and-types/temporal.adoc#cypher-tempor | | | -| |=== diff --git a/publish.yml b/publish.yml index d321d30c6..dbff37d99 100644 --- a/publish.yml +++ b/publish.yml @@ -22,13 +22,6 @@ ui: urls: html_extension_style: indexify -antora: - extensions: - - require: "@neo4j-antora/antora-modify-sitemaps" - sitemap_version: '2025' - sitemap_loc_version: 'current' - move_sitemaps_to_components: true - asciidoc: extensions: - "@neo4j-documentation/remote-include" From 0f8ffbd6a2748bb021db2d6c7444e6fb1814e0d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Thu, 16 Jan 2025 09:30:43 +0100 Subject: [PATCH 25/32] Remove redundant antora attributes (#1168) --- antora.yml | 2 - .../tutorials/advanced-query-tuning.adoc | 10 +- .../tutorials/basic-query-tuning.adoc | 6 +- .../tutorials/shortestpath-planning.adoc | 6 +- .../index-hints.adoc | 26 +- .../operators/operators-detail.adoc | 292 +++++++++--------- .../runtimes/concepts.adoc | 6 +- 7 files changed, 173 insertions(+), 175 deletions(-) diff --git a/antora.yml b/antora.yml index 43779c5ed..92fdbdc87 100644 --- a/antora.yml +++ b/antora.yml @@ -7,5 +7,3 @@ nav: asciidoc: attributes: neo4j-version: '2025.01' - neo4j-version-minor: '2025.01' - neo4j-version-exact: '2025.01' diff --git a/modules/ROOT/pages/appendix/tutorials/advanced-query-tuning.adoc b/modules/ROOT/pages/appendix/tutorials/advanced-query-tuning.adoc index 2546d7b8a..9db47e053 100644 --- a/modules/ROOT/pages/appendix/tutorials/advanced-query-tuning.adoc +++ b/modules/ROOT/pages/appendix/tutorials/advanced-query-tuning.adoc @@ -669,7 +669,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -711,7 +711,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -776,7 +776,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -823,7 +823,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -878,7 +878,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 diff --git a/modules/ROOT/pages/appendix/tutorials/basic-query-tuning.adoc b/modules/ROOT/pages/appendix/tutorials/basic-query-tuning.adoc index 6b30f55a0..170ac0111 100644 --- a/modules/ROOT/pages/appendix/tutorials/basic-query-tuning.adoc +++ b/modules/ROOT/pages/appendix/tutorials/basic-query-tuning.adoc @@ -623,7 +623,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -680,7 +680,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -747,7 +747,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 diff --git a/modules/ROOT/pages/appendix/tutorials/shortestpath-planning.adoc b/modules/ROOT/pages/appendix/tutorials/shortestpath-planning.adoc index 64b0a5233..96887c531 100644 --- a/modules/ROOT/pages/appendix/tutorials/shortestpath-planning.adoc +++ b/modules/ROOT/pages/appendix/tutorials/shortestpath-planning.adoc @@ -81,7 +81,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -158,7 +158,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 1024 @@ -261,7 +261,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 diff --git a/modules/ROOT/pages/indexes/search-performance-indexes/index-hints.adoc b/modules/ROOT/pages/indexes/search-performance-indexes/index-hints.adoc index 75540eccf..93d9cec90 100644 --- a/modules/ROOT/pages/indexes/search-performance-indexes/index-hints.adoc +++ b/modules/ROOT/pages/indexes/search-performance-indexes/index-hints.adoc @@ -72,7 +72,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -173,7 +173,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -226,7 +226,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -267,7 +267,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -318,7 +318,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -362,7 +362,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -419,7 +419,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -477,7 +477,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -534,7 +534,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -587,7 +587,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -645,7 +645,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -704,7 +704,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -741,7 +741,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 diff --git a/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc b/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc index c283399c8..fb1cfb99f 100644 --- a/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc +++ b/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc @@ -130,7 +130,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -173,7 +173,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -216,7 +216,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -260,7 +260,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -300,7 +300,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -343,7 +343,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -386,7 +386,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -428,7 +428,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -467,7 +467,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -509,7 +509,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -558,7 +558,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -602,7 +602,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -652,7 +652,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -696,7 +696,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -739,7 +739,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -781,7 +781,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -826,7 +826,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -870,7 +870,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -922,7 +922,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -979,7 +979,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1030,7 +1030,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1079,7 +1079,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1124,7 +1124,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1169,7 +1169,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1207,7 +1207,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1248,7 +1248,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1284,7 +1284,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1325,7 +1325,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1367,7 +1367,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1412,7 +1412,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1453,7 +1453,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1497,7 +1497,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1542,7 +1542,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1590,7 +1590,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1635,7 +1635,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1681,7 +1681,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1731,7 +1731,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1775,7 +1775,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1817,7 +1817,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1861,7 +1861,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1912,7 +1912,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -1956,7 +1956,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2000,7 +2000,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2044,7 +2044,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2088,7 +2088,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2132,7 +2132,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2176,7 +2176,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2220,7 +2220,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2263,7 +2263,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2305,7 +2305,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2348,7 +2348,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2391,7 +2391,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2442,7 +2442,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2488,7 +2488,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2534,7 +2534,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2580,7 +2580,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2633,7 +2633,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2683,7 +2683,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-----------------+-------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -2739,7 +2739,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-------------------+--------------------------------------------------------+----------------+------+---------+----------------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | @@ -2797,7 +2797,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +--------------------+-----------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -2860,7 +2860,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +--------------------+-----------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | +--------------------+-----------------------------------------+----------------+------+---------+------------------------+ @@ -2921,7 +2921,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -2978,7 +2978,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3037,7 +3037,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-----------------------+-----------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -3098,7 +3098,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +---------------------------+-----------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -3157,7 +3157,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-----------------+-----------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -3215,7 +3215,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3263,7 +3263,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3322,7 +3322,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +--------------------+----+---------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ | Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | @@ -3377,7 +3377,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3435,7 +3435,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3494,7 +3494,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3547,7 +3547,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3612,7 +3612,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3673,7 +3673,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3720,7 +3720,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3766,7 +3766,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3817,7 +3817,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3865,7 +3865,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3911,7 +3911,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -3957,7 +3957,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4010,7 +4010,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4065,7 +4065,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4114,7 +4114,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4175,7 +4175,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4239,7 +4239,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4296,7 +4296,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4347,7 +4347,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4408,7 +4408,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ | Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | @@ -4467,7 +4467,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4532,7 +4532,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4601,7 +4601,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4663,7 +4663,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4715,7 +4715,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4762,7 +4762,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4807,7 +4807,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4852,7 +4852,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4896,7 +4896,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4938,7 +4938,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -4980,7 +4980,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-----------------+--------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -5033,7 +5033,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5082,7 +5082,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5125,7 +5125,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5178,7 +5178,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5228,7 +5228,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5271,7 +5271,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5313,7 +5313,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5356,7 +5356,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5405,7 +5405,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5454,7 +5454,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5502,7 +5502,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5553,7 +5553,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5598,7 +5598,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5645,7 +5645,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5691,7 +5691,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5746,7 +5746,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5790,7 +5790,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5836,7 +5836,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5887,7 +5887,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5934,7 +5934,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -5989,7 +5989,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-----------------+---------------------------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -6035,7 +6035,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -6090,7 +6090,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -6138,7 +6138,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -6183,7 +6183,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -6228,7 +6228,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -6273,7 +6273,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -6319,7 +6319,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -6363,7 +6363,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -6410,7 +6410,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -6463,7 +6463,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -6526,7 +6526,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +---------------------------------+-------------------------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -6578,7 +6578,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-------------------------------------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+------------------------+ | Operator | Id | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -6641,7 +6641,7 @@ Planner ADMINISTRATION Runtime SCHEMA -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-------------------+------------------------------------------------------------------+ | Operator | Details | @@ -6682,7 +6682,7 @@ Planner ADMINISTRATION Runtime SCHEMA -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +--------------------------------+------------------------------------------------------------------+ | Operator | Details | @@ -6721,7 +6721,7 @@ Planner ADMINISTRATION Runtime SCHEMA -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-----------------+---------------------------------+ | Operator | Details | @@ -6758,7 +6758,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +------------------+-------------------------------------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -6801,7 +6801,7 @@ Planner ADMINISTRATION Runtime SCHEMA -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +--------------+-----------------------------------------------+ | Operator | Details | @@ -6842,7 +6842,7 @@ Planner ADMINISTRATION Runtime SCHEMA -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +---------------------------+----------------------------------------------------+ | Operator | Details | @@ -6880,7 +6880,7 @@ Planner ADMINISTRATION Runtime SCHEMA -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +------------+---------------+ | Operator | Details | @@ -6917,7 +6917,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-----------------+-------------------------------------------------------------------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -6959,7 +6959,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-----------------+-----------------------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -6998,7 +6998,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-----------------+----------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -7035,7 +7035,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-----------------+---------------------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -7073,7 +7073,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-------------------+-----------------------------------------------------------------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | @@ -7112,7 +7112,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +------------------------+--------------------------------------------------------+----------------+------+---------+------------------------+ | Operator | Details | Estimated Rows | Rows | DB Hits | Page Cache Hits/Misses | diff --git a/modules/ROOT/pages/planning-and-tuning/runtimes/concepts.adoc b/modules/ROOT/pages/planning-and-tuning/runtimes/concepts.adoc index 060c5646f..d99788eaa 100644 --- a/modules/ROOT/pages/planning-and-tuning/runtimes/concepts.adoc +++ b/modules/ROOT/pages/planning-and-tuning/runtimes/concepts.adoc @@ -73,7 +73,7 @@ Planner COST Runtime SLOTTED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} +-------------------+----+------------------------------------------------------------------------+----------------+ | Operator | Id | Details | Estimated Rows | @@ -165,7 +165,7 @@ Planner COST Runtime PIPELINED -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 @@ -267,7 +267,7 @@ Planner COST Runtime PARALLEL -Runtime version {neo4j-version-minor} +Runtime version {neo4j-version} Batch size 128 From e493ce1794ab8ffde53f2e13b4113d8472c56b37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Thu, 16 Jan 2025 12:13:36 +0100 Subject: [PATCH 26/32] Clarify DETACH DELETE (#1156) --- modules/ROOT/pages/clauses/delete.adoc | 31 ++++++++++++++++++++------ modules/ROOT/pages/queries/basic.adoc | 4 +++- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/modules/ROOT/pages/clauses/delete.adoc b/modules/ROOT/pages/clauses/delete.adoc index 0f6c13678..18669961e 100644 --- a/modules/ROOT/pages/clauses/delete.adoc +++ b/modules/ROOT/pages/clauses/delete.adoc @@ -127,9 +127,9 @@ For more information, see link:{neo4j-docs-base-uri}/operations-manual/{page-ver [[delete-all-nodes-and-relationships]] == Delete all nodes and relationships -It is possible to delete all nodes and relationships in a graph. +It is possible to delete all nodes and relationships in a graph. -.Query +.Delete all nodes and relationships [source, cypher, indent=0] ---- MATCH (n) @@ -142,8 +142,25 @@ DETACH DELETE n Deleted 3 nodes, deleted 1 relationship ---- -[TIP] -==== -`DETACH DELETE` is not suitable for deleting large amounts of data, but is useful when experimenting with small example datasets. -To delete large amounts of data, instead use xref::subqueries/subqueries-in-transactions.adoc#delete-with-call-in-transactions[CALL subqueries in transactions]. -==== \ No newline at end of file +`DETACH DELETE` is useful when experimenting with small example datasets, but it is not suitable for deleting large amounts of data, nor does it delete xref:indexes/search-performance-indexes/overview.adoc[indexes] and xref:constraints/index.adoc[constraints]. + +To delete large amounts of data without deleting indexes and constraints, use xref::subqueries/subqueries-in-transactions.adoc#delete-with-call-in-transactions[CALL subqueries in transactions] instead. + +.Delete all nodes and relationships using `CALL` subqueries +[source, cypher] +---- +MATCH (n) +CALL (n) { + DETACH DELETE n +} IN TRANSACTIONS +---- + +To remove all data, including indexes and constraints, recreate the database using the following command: `CREATE OR REPLACE DATABASE name`. + +.Delete a database and recreate it +[source, cypher] +---- +CREATE OR REPLACE DATABASE neo4j +---- + +For more information, see the link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/standard-databases/create-databases/#_create_databases_with_if_not_exists_or_or_replace[Operations Manual -> Create databases with `IF NOT EXISTS` or `OR REPLACE`]. \ No newline at end of file diff --git a/modules/ROOT/pages/queries/basic.adoc b/modules/ROOT/pages/queries/basic.adoc index 2ab239466..cb6d57af4 100644 --- a/modules/ROOT/pages/queries/basic.adoc +++ b/modules/ROOT/pages/queries/basic.adoc @@ -901,4 +901,6 @@ MATCH (n) DETACH DELETE n ---- -For more information, see the section on the xref:clauses/delete.adoc[] clause. +[NOTE] +`DETACH DELETE` is not suitable for deleting large amounts of data, nor does it delete xref:indexes/search-performance-indexes/overview.adoc[indexes] and xref:constraints/index.adoc[constraints]. +For more information, and alternatives to `DETACH DELETE`, see xref:clauses/delete.adoc#delete-all-nodes-and-relationships[`DELETE` -> Delete all nodes and relationships]. From 2b2241a9146ba4c9472773d70e6d7fa2ec33e5d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 10:42:11 +0100 Subject: [PATCH 27/32] Bump @neo4j-antora/antora-table-footnotes from 0.3.2 to 0.3.3 in the prod-dependencies group (#1171) Bumps the prod-dependencies group with 1 update: @neo4j-antora/antora-table-footnotes. Updates `@neo4j-antora/antora-table-footnotes` from 0.3.2 to 0.3.3 [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@neo4j-antora/antora-table-footnotes&package-manager=npm_and_yarn&previous-version=0.3.2&new-version=0.3.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 32 +++++++++++++++++++------------- package.json | 2 +- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 759f2eed3..690453aee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@neo4j-antora/antora-add-notes": "^0.3.1", "@neo4j-antora/antora-modify-sitemaps": "^0.6.0", "@neo4j-antora/antora-page-roles": "^0.3.1", - "@neo4j-antora/antora-table-footnotes": "^0.3.2", + "@neo4j-antora/antora-table-footnotes": "^0.3.3", "@neo4j-antora/mark-terms": "1.1.0", "@neo4j-documentation/macros": "^1.0.4", "@neo4j-documentation/remote-include": "^1.0.0", @@ -303,9 +303,10 @@ } }, "node_modules/@asciidoctor/core": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.6.tgz", - "integrity": "sha512-TmB2K5UfpDpSbCNBBntXzKHcAk2EA3/P68jmWvmJvglVUdkO9V6kTAuXVe12+h6C4GK0ndwuCrHHtEVcL5t6pQ==", + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.8.tgz", + "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", + "license": "MIT", "dependencies": { "asciidoctor-opal-runtime": "0.3.3", "unxhr": "1.0.1" @@ -340,9 +341,13 @@ "integrity": "sha512-RqmMHcTyM87lJAhjSPdkoUzFxQCjsM2N4+ryVK4GIahAJyNV9OYydBrsjGrDbIh6F4YS+LWG+SXyvLD2zJ1keQ==" }, "node_modules/@neo4j-antora/antora-table-footnotes": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-table-footnotes/-/antora-table-footnotes-0.3.2.tgz", - "integrity": "sha512-DXEGVHMJumoKiY/ZCaGRTXl2OhPziPCHT+arj18TmpU50sUs+hyjOPuTkUXUvBwNZwm109Nm1PJPvKLVIJCZSg==" + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-table-footnotes/-/antora-table-footnotes-0.3.3.tgz", + "integrity": "sha512-0vKB9nMJpfZdKTJc5vOJrNCFTcae61rnw9XyPQX2aibJN4vUTEeKhIS6IaVJWW5M1CflVIU3LoZDpDzeA/GEHw==", + "license": "MIT", + "peerDependencies": { + "@asciidoctor/core": "2.2.8" + } }, "node_modules/@neo4j-antora/mark-terms": { "version": "1.1.0", @@ -2754,9 +2759,9 @@ } }, "@asciidoctor/core": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.6.tgz", - "integrity": "sha512-TmB2K5UfpDpSbCNBBntXzKHcAk2EA3/P68jmWvmJvglVUdkO9V6kTAuXVe12+h6C4GK0ndwuCrHHtEVcL5t6pQ==", + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.8.tgz", + "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", "requires": { "asciidoctor-opal-runtime": "0.3.3", "unxhr": "1.0.1" @@ -2786,9 +2791,10 @@ "integrity": "sha512-RqmMHcTyM87lJAhjSPdkoUzFxQCjsM2N4+ryVK4GIahAJyNV9OYydBrsjGrDbIh6F4YS+LWG+SXyvLD2zJ1keQ==" }, "@neo4j-antora/antora-table-footnotes": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-table-footnotes/-/antora-table-footnotes-0.3.2.tgz", - "integrity": "sha512-DXEGVHMJumoKiY/ZCaGRTXl2OhPziPCHT+arj18TmpU50sUs+hyjOPuTkUXUvBwNZwm109Nm1PJPvKLVIJCZSg==" + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@neo4j-antora/antora-table-footnotes/-/antora-table-footnotes-0.3.3.tgz", + "integrity": "sha512-0vKB9nMJpfZdKTJc5vOJrNCFTcae61rnw9XyPQX2aibJN4vUTEeKhIS6IaVJWW5M1CflVIU3LoZDpDzeA/GEHw==", + "requires": {} }, "@neo4j-antora/mark-terms": { "version": "1.1.0", diff --git a/package.json b/package.json index 290d1c494..bcbab81bb 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@neo4j-antora/antora-add-notes": "^0.3.1", "@neo4j-antora/antora-modify-sitemaps": "^0.6.0", "@neo4j-antora/antora-page-roles": "^0.3.1", - "@neo4j-antora/antora-table-footnotes": "^0.3.2", + "@neo4j-antora/antora-table-footnotes": "^0.3.3", "@neo4j-antora/mark-terms": "1.1.0", "@neo4j-documentation/macros": "^1.0.4", "@neo4j-documentation/remote-include": "^1.0.0", From 899b365411ee51ccadcb2c050a8aeb24a2ba6820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:18:26 +0100 Subject: [PATCH 28/32] Fix external links (#1172) The page-version attribute between Cypher and other manuals wont work with the release of 2025.01 --- modules/ROOT/pages/administration/index.adoc | 10 ++-- .../gql-conformance/additional-cypher.adoc | 12 ++-- .../gql-conformance/supported-mandatory.adoc | 2 +- .../unsupported-mandatory.adoc | 2 +- .../tutorials/advanced-query-tuning.adoc | 6 +- .../tutorials/basic-query-tuning.adoc | 4 +- .../tutorials/shortestpath-planning.adoc | 2 +- modules/ROOT/pages/clauses/call.adoc | 12 ++-- modules/ROOT/pages/clauses/delete.adoc | 4 +- modules/ROOT/pages/clauses/index.adoc | 6 +- .../ROOT/pages/clauses/listing-functions.adoc | 10 ++-- .../pages/clauses/listing-procedures.adoc | 16 ++--- .../ROOT/pages/clauses/listing-settings.adoc | 6 +- modules/ROOT/pages/clauses/load-csv.adoc | 16 ++--- .../pages/clauses/transaction-clauses.adoc | 8 +-- modules/ROOT/pages/clauses/use.adoc | 2 +- .../constraints/managing-constraints.adoc | 6 +- modules/ROOT/pages/constraints/syntax.adoc | 8 +-- ...ions-additions-removals-compatibility.adoc | 50 ++++++++-------- modules/ROOT/pages/functions/graph.adoc | 8 +-- modules/ROOT/pages/functions/index.adoc | 4 +- modules/ROOT/pages/functions/scalar.adoc | 2 +- .../ROOT/pages/functions/user-defined.adoc | 6 +- modules/ROOT/pages/genai-integrations.adoc | 4 +- .../managing-indexes.adoc | 6 +- .../using-indexes.adoc | 2 +- .../semantic-indexes/full-text-indexes.adoc | 12 ++-- .../semantic-indexes/vector-indexes.adoc | 46 +++++++------- modules/ROOT/pages/indexes/syntax.adoc | 8 +-- .../ROOT/pages/introduction/cypher-aura.adoc | 4 +- .../ROOT/pages/introduction/cypher-neo4j.adoc | 20 +++---- .../pages/introduction/cypher-overview.adoc | 2 +- modules/ROOT/pages/introduction/index.adoc | 4 +- modules/ROOT/pages/patterns/reference.adoc | 2 +- .../planning-and-tuning/execution-plans.adoc | 2 +- .../operators/operators-detail.adoc | 8 +-- .../planning-and-tuning/query-tuning.adoc | 6 +- .../runtimes/reference.adoc | 60 +++++++++---------- modules/ROOT/pages/query-caches/index.adoc | 8 +-- .../query-caches/unified-query-caches.adoc | 4 +- .../subqueries-in-transactions.adoc | 4 +- modules/ROOT/pages/syntax/naming.adoc | 2 +- modules/ROOT/pages/syntax/parameters.adoc | 4 +- modules/ROOT/pages/values-and-types/maps.adoc | 2 +- .../ROOT/pages/values-and-types/temporal.adoc | 2 +- 45 files changed, 207 insertions(+), 207 deletions(-) diff --git a/modules/ROOT/pages/administration/index.adoc b/modules/ROOT/pages/administration/index.adoc index cac8d8e33..fa9d6119b 100644 --- a/modules/ROOT/pages/administration/index.adoc +++ b/modules/ROOT/pages/administration/index.adoc @@ -1,6 +1,6 @@ = Administration -The pages previously in this chapter have been moved to the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/[Operations Manual]. +The pages previously in this chapter have been moved to the link:{neo4j-docs-base-uri}/operations-manual/current/[Operations Manual]. More specific information about the content relocation is listed in the table: @@ -9,13 +9,13 @@ More specific information about the content relocation is listed in the table: | Content | New location in Operations Manual -| Database management | link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/[Database administration] +| Database management | link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/[Database administration] -| Alias management | link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/aliases/manage-aliases-standard-databases/[Managing aliases] +| Alias management | link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/aliases/manage-aliases-standard-databases/[Managing aliases] -| Server management | link:{neo4j-docs-base-uri}/operations-manual/{page-version}/clustering/[Managing servers in a cluster] +| Server management | link:{neo4j-docs-base-uri}/operations-manual/current/clustering/[Managing servers in a cluster] -| Access control | link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/[Authentication and authorization] +| Access control | link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/[Authentication and authorization] |=== diff --git a/modules/ROOT/pages/appendix/gql-conformance/additional-cypher.adoc b/modules/ROOT/pages/appendix/gql-conformance/additional-cypher.adoc index 32f648563..fd877826e 100644 --- a/modules/ROOT/pages/appendix/gql-conformance/additional-cypher.adoc +++ b/modules/ROOT/pages/appendix/gql-conformance/additional-cypher.adoc @@ -208,7 +208,7 @@ REMOVE n:$($label) | xref:functions/graph.adoc#functions-graph-by-elementid[`graph.byElementId()`] | Returns the graph reference with the given element id. It is only supported in the xref:clauses/use.adoc[`USE`] clause. -As of Neo4j 5.26, it is supported on both link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/[standard and composite databases]. +As of Neo4j 5.26, it is supported on both link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/[standard and composite databases]. On earlier versions, it is only supported on composite databases. | xref:functions/graph.adoc#functions-graph-byname[`graph.byName()`] @@ -658,23 +658,23 @@ For more information, see xref:planning-and-tuning/query-tuning.adoc[Query optio == Administration [NOTE] -The documentation for Cypher's administration commands is located in Neo4j's link:{neo4j-docs-base-uri}/operations-manual/{page-version}/[Operation Manual]. +The documentation for Cypher's administration commands is located in Neo4j's link:{neo4j-docs-base-uri}/operations-manual/current/[Operation Manual]. [options="header", cols="2a,5a"] |=== | Cypher feature | Description -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/[Database management] +| link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/[Database management] | Commands to `CREATE`, `SHOW`, `ALTER`, and `DROP` standard and composite databases. -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/aliases/manage-aliases-standard-databases/[Alias management] +| link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/aliases/manage-aliases-standard-databases/[Alias management] | Commands to `CREATE`, `SHOW`, `ALTER`, and `DROP` database aliases. -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/clustering/[Server management] +| link:{neo4j-docs-base-uri}/operations-manual/current/clustering/[Server management] | Commands to administer servers in a cluster and the databases allocated to them. -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/[Authentication and authorization] +| link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/[Authentication and authorization] | Commands to manage users, roles, and privileges. |=== \ No newline at end of file diff --git a/modules/ROOT/pages/appendix/gql-conformance/supported-mandatory.adoc b/modules/ROOT/pages/appendix/gql-conformance/supported-mandatory.adoc index 6a8299b0e..4551dd8f6 100644 --- a/modules/ROOT/pages/appendix/gql-conformance/supported-mandatory.adoc +++ b/modules/ROOT/pages/appendix/gql-conformance/supported-mandatory.adoc @@ -155,7 +155,7 @@ This is currently not available in Cypher. | | | GQL defines the `SESSION_USER` value expression, which enables accessing a user’s username within a query. -In Cypher, current user details can be seen using the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/manage-users/#access-control-current-users[`SHOW CURRENT USER` command]. +In Cypher, current user details can be seen using the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/manage-users/#access-control-current-users[`SHOW CURRENT USER` command]. | 20.7 | diff --git a/modules/ROOT/pages/appendix/gql-conformance/unsupported-mandatory.adoc b/modules/ROOT/pages/appendix/gql-conformance/unsupported-mandatory.adoc index 019c73efc..c81f453a5 100644 --- a/modules/ROOT/pages/appendix/gql-conformance/unsupported-mandatory.adoc +++ b/modules/ROOT/pages/appendix/gql-conformance/unsupported-mandatory.adoc @@ -28,7 +28,7 @@ Neo4j offers session management through the link:{neo4j-docs-base-uri}/create-ap | GQL defines the following transaction commands: `START TRANSACTION`, `COMMIT`, and `ROLLBACK`. Neo4j offers transaction management through the link:{neo4j-docs-base-uri}/create-applications[driver] transaction API. -Cypher Shell also offers specific link:{neo4j-docs-base-uri}/operations-manual/{page-version}/tools/cypher-shell/#cypher-shell-commands[commands] to manage transactions. +Cypher Shell also offers specific link:{neo4j-docs-base-uri}/operations-manual/current/tools/cypher-shell/#cypher-shell-commands[commands] to manage transactions. | 11.1 | Graph expressions diff --git a/modules/ROOT/pages/appendix/tutorials/advanced-query-tuning.adoc b/modules/ROOT/pages/appendix/tutorials/advanced-query-tuning.adoc index 9db47e053..5d5816465 100644 --- a/modules/ROOT/pages/appendix/tutorials/advanced-query-tuning.adoc +++ b/modules/ROOT/pages/appendix/tutorials/advanced-query-tuning.adoc @@ -16,7 +16,7 @@ Let's explain how to use these features with a more advanced query tuning exampl [NOTE] ==== If you are upgrading an existing store, it may be necessary to drop and re-create existing indexes. -For information on native index support and upgrade considerations regarding indexes, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/performance/index-configuration[Operations Manual -> Performance -> Index configuration]. +For information on native index support and upgrade considerations regarding indexes, see link:{neo4j-docs-base-uri}/operations-manual/current/performance/index-configuration[Operations Manual -> Performance -> Index configuration]. ==== @@ -540,8 +540,8 @@ It assumes that your current work directory is the __ directory of t [NOTE] ==== -* For the default directory of other installations see, link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/file-locations[Operations Manual -> File locations]. -* The import location can be configured with link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings#config_server.directories.import[Operations Manual -> `server.directories.import`]. +* For the default directory of other installations see, link:{neo4j-docs-base-uri}/operations-manual/current/configuration/file-locations[Operations Manual -> File locations]. +* The import location can be configured with link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings#config_server.directories.import[Operations Manual -> `server.directories.import`]. ==== == Importing the data diff --git a/modules/ROOT/pages/appendix/tutorials/basic-query-tuning.adoc b/modules/ROOT/pages/appendix/tutorials/basic-query-tuning.adoc index 170ac0111..faa961fe0 100644 --- a/modules/ROOT/pages/appendix/tutorials/basic-query-tuning.adoc +++ b/modules/ROOT/pages/appendix/tutorials/basic-query-tuning.adoc @@ -525,8 +525,8 @@ It assumes that your current work directory is the __ directory of t [NOTE] ==== -* For the default directory of other installations see, link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/file-locations[Operations Manual -> File locations]. -* The import location can be configured with link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings#config_server.directories.import[Operations Manual -> `server.directories.import`]. +* For the default directory of other installations see, link:{neo4j-docs-base-uri}/operations-manual/current/configuration/file-locations[Operations Manual -> File locations]. +* The import location can be configured with link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings#config_server.directories.import[Operations Manual -> `server.directories.import`]. ==== == Importing the data diff --git a/modules/ROOT/pages/appendix/tutorials/shortestpath-planning.adoc b/modules/ROOT/pages/appendix/tutorials/shortestpath-planning.adoc index 96887c531..40df8bc60 100644 --- a/modules/ROOT/pages/appendix/tutorials/shortestpath-planning.adoc +++ b/modules/ROOT/pages/appendix/tutorials/shortestpath-planning.adoc @@ -20,7 +20,7 @@ When the exhaustive search is planned, it is still only executed when the fast a The fast algorithm is always executed first, since it is possible that it can find a valid path even though that could not be guaranteed at planning time. Please note that falling back to the exhaustive search may prove to be a very time consuming strategy in some cases; such as when there is no shortest path between two nodes. -Therefore, in these cases, it is recommended to set `cypher.forbid_exhaustive_shortestpath` to `true`, as explained in link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings#config_dbms.cypher.forbid_exhaustive_shortestpath[Operations Manual -> Configuration settings]. +Therefore, in these cases, it is recommended to set `cypher.forbid_exhaustive_shortestpath` to `true`, as explained in link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings#config_dbms.cypher.forbid_exhaustive_shortestpath[Operations Manual -> Configuration settings]. == Shortest path -- fast algorithm diff --git a/modules/ROOT/pages/clauses/call.adoc b/modules/ROOT/pages/clauses/call.adoc index 6f2e40205..283b594d2 100644 --- a/modules/ROOT/pages/clauses/call.adoc +++ b/modules/ROOT/pages/clauses/call.adoc @@ -12,9 +12,9 @@ For information about how to list procedures, see xref:clauses/listing-procedure [NOTE] Neo4j comes with a number of built-in procedures. -For a list of these, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures[Operations Manual -> Procedures]. +For a list of these, see link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures[Operations Manual -> Procedures]. Users can also develop custom procedures and deploy to the database. -See link:{neo4j-docs-base-uri}/java-reference/{page-version}/extending-neo4j/procedures#extending-neo4j-procedures[Java Reference -> User-defined procedures] for details. +See link:{neo4j-docs-base-uri}/java-reference/current/extending-neo4j/procedures#extending-neo4j-procedures[Java Reference -> User-defined procedures] for details. [[example-graph]] == Example graph @@ -42,7 +42,7 @@ CREATE (andy:Developer {name: 'Andy', born: 1991}), .`CALL` a procedure without arguments ==== -This example calls the built-in procedure link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_labels[`db.labels()`], which lists all labels used in the database. +This example calls the built-in procedure link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_labels[`db.labels()`], which lists all labels used in the database. .Query [source, cypher] @@ -72,7 +72,7 @@ Omission of parentheses is available only in a so-called standalone procedure ca ==== -This example calls the procedure link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_dbms_checkconfigvalue[`dbms.checkConfigValue()`], which checks the validity of a configuration setting value, using literal arguments. +This example calls the procedure link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_dbms_checkconfigvalue[`dbms.checkConfigValue()`], which checks the validity of a configuration setting value, using literal arguments. .Query [source, cypher] @@ -206,7 +206,7 @@ RETURN count(*) AS results ==== `YIELD` can be used to filter for specific results. -This requires knowing the names of the arguments within a procedure's signature, which can either be found in the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/[Operations Manual -> Procedures] or in the `signature` column returned by a `SHOW PROCEDURES` command (see example below). +This requires knowing the names of the arguments within a procedure's signature, which can either be found in the link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/[Operations Manual -> Procedures] or in the `signature` column returned by a `SHOW PROCEDURES` command (see example below). .Find the argument names of `db.propertyKeys` [source, cypher] @@ -271,7 +271,7 @@ Similar to xref:clauses/optional-match.adoc[`OPTIONAL MATCH`] any empty rows pro .Difference between using `CALL` and `OPTIONAL CALL` ==== -This query uses the link:{neo4j-docs-base-uri}/apoc/{page-version}/overview/apoc.neighbors/apoc.neighbors.tohop[`apoc.neighbors.tohop()`] procedure (part of Neo4j's link:{neo4j-docs-base-uri}/apoc/{page-version}/[APOC Core library]), which returns all nodes connected by the given relationship type within the specified distance (1 hop, in this case) and direction. +This query uses the link:{neo4j-docs-base-uri}/apoc/current/overview/apoc.neighbors/apoc.neighbors.tohop[`apoc.neighbors.tohop()`] procedure (part of Neo4j's link:{neo4j-docs-base-uri}/apoc/current/[APOC Core library]), which returns all nodes connected by the given relationship type within the specified distance (1 hop, in this case) and direction. .Regular procedure `CALL` [source, cypher] diff --git a/modules/ROOT/pages/clauses/delete.adoc b/modules/ROOT/pages/clauses/delete.adoc index 18669961e..c4a9dc4b7 100644 --- a/modules/ROOT/pages/clauses/delete.adoc +++ b/modules/ROOT/pages/clauses/delete.adoc @@ -13,7 +13,7 @@ This can be done by either explicitly deleting specific relationships, or by usi [NOTE] While the `DELETE` clause renders the deleted objects no longer accessible, the space occupied by the deleted nodes and relationships remain on the disk and is reserved for future transactions creating data. -For information about how to clear and reuse the space occupied by deleted objects, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/performance/space-reuse/[Operations Manual -> Space reuse]. +For information about how to clear and reuse the space occupied by deleted objects, see link:{neo4j-docs-base-uri}/operations-manual/current/performance/space-reuse/[Operations Manual -> Space reuse]. == Example graph @@ -120,7 +120,7 @@ Deleted 1 node, deleted 1 relationship [NOTE] ==== The `DETACH DELETE` clause may not be permitted to users with restricted security privileges. -For more information, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/access-control#detach-delete-restricted-user[Operations Manual -> Fine-grained access control]. +For more information, see link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/access-control#detach-delete-restricted-user[Operations Manual -> Fine-grained access control]. ==== diff --git a/modules/ROOT/pages/clauses/index.adoc b/modules/ROOT/pages/clauses/index.adoc index d0e421713..66969b94a 100644 --- a/modules/ROOT/pages/clauses/index.adoc +++ b/modules/ROOT/pages/clauses/index.adoc @@ -282,6 +282,6 @@ m| xref::constraints/syntax.adoc[CREATE \| SHOW \| DROP CONSTRAINT] Cypher includes commands to manage databases, aliases, servers, and role-based access control. To learn more about each of these, see: -* link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration[Operations Manual -> Database administration] -* link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/[Operations Manual -> Authentication and authorization] -* link:{neo4j-docs-base-uri}/operations-manual/{page-version}/clustering/[Operations Manual -> Clustering] +* link:{neo4j-docs-base-uri}/operations-manual/current/database-administration[Operations Manual -> Database administration] +* link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/[Operations Manual -> Authentication and authorization] +* link:{neo4j-docs-base-uri}/operations-manual/current/clustering/[Operations Manual -> Clustering] diff --git a/modules/ROOT/pages/clauses/listing-functions.adoc b/modules/ROOT/pages/clauses/listing-functions.adoc index 38d4ea035..e8e391eb9 100644 --- a/modules/ROOT/pages/clauses/listing-functions.adoc +++ b/modules/ROOT/pages/clauses/listing-functions.adoc @@ -55,13 +55,13 @@ m| BOOLEAN m| rolesExecution a| List of roles permitted to execute this function. -Is `null` without the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. +Is `null` without the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. m| LIST m| rolesBoostedExecution a| List of roles permitted to use boosted mode when executing this function. -Is `null` without the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. +Is `null` without the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. m| LIST m| isDeprecated @@ -81,7 +81,7 @@ m| STRING [NOTE] ==== -More details about the syntax descriptions can be found link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/syntax/#administration-syntax-reading[here]. +More details about the syntax descriptions can be found link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/syntax/#administration-syntax-reading[here]. ==== List functions, either all or only built-in or user-defined:: @@ -124,7 +124,7 @@ SHOW [ALL|BUILT IN|USER DEFINED] FUNCTION[S] EXECUTABLE BY username [RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]] ---- -Required privilege link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration#access-control-dbms-administration-user-management[`SHOW USER`]. +Required privilege link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration#access-control-dbms-administration-user-management[`SHOW USER`]. This command cannot be used for LDAP users. [NOTE] @@ -363,7 +363,7 @@ SHOW FUNCTIONS EXECUTABLE BY CURRENT USER YIELD * 6+d|Rows: 10 |=== -Notice that the two `roles` columns are empty due to missing the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. +Notice that the two `roles` columns are empty due to missing the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. Also note that the following columns are not present in the table: * `signature` diff --git a/modules/ROOT/pages/clauses/listing-procedures.adoc b/modules/ROOT/pages/clauses/listing-procedures.adoc index b79eba881..ed422d1c2 100644 --- a/modules/ROOT/pages/clauses/listing-procedures.adoc +++ b/modules/ROOT/pages/clauses/listing-procedures.adoc @@ -53,13 +53,13 @@ m| BOOLEAN m| rolesExecution a| List of roles permitted to execute this procedure. -Is `null` without the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. +Is `null` without the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. m| LIST m| rolesBoostedExecution a| List of roles permitted to use boosted mode when executing this procedure. -Is `null` without the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. +Is `null` without the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. m| LIST m| isDeprecated @@ -84,7 +84,7 @@ The deprecation information for procedures is returned both in the `isDeprecated [NOTE] ==== -More details about the syntax descriptions can be found link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/syntax/#administration-syntax-reading[here]. +More details about the syntax descriptions can be found link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/syntax/#administration-syntax-reading[here]. ==== List all procedures:: @@ -127,7 +127,7 @@ SHOW PROCEDURE[S] EXECUTABLE BY username [RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]] ---- -Requires the privilege link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration#access-control-dbms-administration-user-management[`SHOW USER`]. +Requires the privilege link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration#access-control-dbms-administration-user-management[`SHOW USER`]. This command cannot be used for LDAP users. [NOTE] @@ -246,7 +246,7 @@ SHOW PROCEDURES |=== The above table only displays the first 15 results of the query. -For a full list of all built-in procedures in Neo4j, visit the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures#/#_list_of_procedures[Operations Manual -> List of procedures]. +For a full list of all built-in procedures in Neo4j, visit the link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures#/#_list_of_procedures[Operations Manual -> List of procedures]. == Listing procedures with filtering on output columns @@ -285,7 +285,7 @@ WHERE admin |=== The above table only displays the first 15 results of the query. -For a full list of all procedures which require `admin` privileges in Neo4j, visit the {neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures#/#_list_of_procedures[Operations Manual -> List of procedures]. +For a full list of all procedures which require `admin` privileges in Neo4j, visit the link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures#/#_list_of_procedures[Operations Manual -> List of procedures]. == Listing procedures with other filtering @@ -401,7 +401,7 @@ SHOW PROCEDURES EXECUTABLE BY CURRENT USER YIELD * |=== The above table only displays the first 15 results of the query. -Note that the two `roles` columns are empty due to missing the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. +Note that the two `roles` columns are empty due to missing the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration#access-control-dbms-administration-role-management[`SHOW ROLE`] privilege. Also note that the following columns are not present in the table: * `mode` @@ -416,7 +416,7 @@ Also note that the following columns are not present in the table: The second option for using the `EXECUTABLE` clause is to filter the list to only contain procedures executable by a specific user. The below example shows the procedures available to the user `jake`, who has been granted the `EXECUTE PROCEDURE dbms.*` privilege by the `admin` of the database. -(More information about `DBMS EXECUTE` privilege administration can be found in the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration/#access-control-dbms-administration-execute[Operations Manual -> The `DBMS EXECUTE` privileges]). +(More information about `DBMS EXECUTE` privilege administration can be found in the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration/#access-control-dbms-administration-execute[Operations Manual -> The `DBMS EXECUTE` privileges]). .Query [source, cypher, role=test-result-skip] diff --git a/modules/ROOT/pages/clauses/listing-settings.adoc b/modules/ROOT/pages/clauses/listing-settings.adoc index 3b8490dfe..b29ee66ca 100644 --- a/modules/ROOT/pages/clauses/listing-settings.adoc +++ b/modules/ROOT/pages/clauses/listing-settings.adoc @@ -37,7 +37,7 @@ m| STRING m| isDynamic a| Whether the value of the setting can be updated dynamically, without restarting the server. -For dynamically updating a setting value, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/dynamic-settings/[Update dynamic settings]. +For dynamically updating a setting value, see link:{neo4j-docs-base-uri}/operations-manual/current/configuration/dynamic-settings/[Update dynamic settings]. label:default-output[] m| BOOLEAN @@ -73,7 +73,7 @@ m| BOOLEAN [NOTE] ==== -More details about the syntax descriptions can be found link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/syntax/#administration-syntax-reading[here]. +More details about the syntax descriptions can be found link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/syntax/#administration-syntax-reading[here]. ==== List settings:: @@ -174,7 +174,7 @@ SHOW SETTINGS |=== The above table only displays the first 10 results of the query. -For a full list of all available settings in Neo4j, refer to link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings[Configuration settings]. +For a full list of all available settings in Neo4j, refer to link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings[Configuration settings]. == Listing settings with filtering on output columns diff --git a/modules/ROOT/pages/clauses/load-csv.adoc b/modules/ROOT/pages/clauses/load-csv.adoc index 03faf9a30..4cb1bf357 100644 --- a/modules/ROOT/pages/clauses/load-csv.adoc +++ b/modules/ROOT/pages/clauses/load-csv.adoc @@ -22,7 +22,7 @@ Local paths are resolved relative to the Neo4j installation folder. [NOTE] ==== -Loading CSV files requires link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/load-privileges/[load privileges]. +Loading CSV files requires link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/load-privileges/[load privileges]. ==== == Import CSV data into Neo4j @@ -78,10 +78,10 @@ When using `+file:///+` URLs, spaces and other non-alphanumeric characters must ==== Configuration settings for file URLs -link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings#config_dbms.security.allow_csv_import_from_file_urls[dbms.security.allow_csv_import_from_file_urls]:: +link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings#config_dbms.security.allow_csv_import_from_file_urls[dbms.security.allow_csv_import_from_file_urls]:: This setting determines whether `+file:///+` URLs are allowed. -link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings#config_server.directories.import[server.directories.import]:: +link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings#config_server.directories.import[server.directories.import]:: This setting sets the root directory relative to which `+file:///+` URLs are parsed. @@ -95,9 +95,9 @@ It also follows redirects, except those changing the protocol (for security reas [IMPORTANT] ==== It is strongly recommended to permit resource loading only over secure protocols such as HTTPS instead of insecure protocols like HTTP. -This can be done by limiting the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/load-privileges/#access-control-load-cidr/[load privileges] to only trusted sources that use secure protocols. +This can be done by limiting the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/load-privileges/#access-control-load-cidr/[load privileges] to only trusted sources that use secure protocols. If allowing an insecure protocol is absolutely unavoidable, Neo4j takes measures internally to enhance the security of these requests within their limitations. -However, this means that insecure URLs on virtual hosts will not function unless you add the JVM argument `-Dsun.net.http.allowRestrictedHeaders=true` to the configuration setting link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_server.jvm.additional/[`server.jvm.additional`]. +However, this means that insecure URLs on virtual hosts will not function unless you add the JVM argument `-Dsun.net.http.allowRestrictedHeaders=true` to the configuration setting link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_server.jvm.additional/[`server.jvm.additional`]. ==== @@ -1099,8 +1099,8 @@ You may discover if this is the case by link:https://neo4j.com/docs/cypher-manua To help handle larger volumes of transactions, there are a few memory configuration settings you can tweak: -* link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_server.memory.heap.initial_size[`server.memory.heap.initial_size`] and link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_server.memory.heap.max_size[`server.memory.heap.max_size`]: set to at least 4G. -* link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_server.memory.pagecache.size[`server.memory.pagecache.size`]: ideally, a value large enough to keep the whole database in memory. +* link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_server.memory.heap.initial_size[`server.memory.heap.initial_size`] and link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_server.memory.heap.max_size[`server.memory.heap.max_size`]: set to at least 4G. +* link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_server.memory.pagecache.size[`server.memory.pagecache.size`]: ideally, a value large enough to keep the whole database in memory. // As a rule of thumb, you can create or update one million records in a single transaction per 2 GB of heap. //// @@ -1168,7 +1168,7 @@ With increasing amounts of data, it is more efficient to create _all_ nodes firs There are a few other tools to get CSV data into Neo4j. -1. *The link:{neo4j-docs-base-uri}/operations-manual/{page-version}/tools/neo4j-admin/neo4j-admin-import/[`neo4j-admin database import`] command* is the most efficient way of importing large CSV files. +1. *The link:{neo4j-docs-base-uri}/operations-manual/current/tools/neo4j-admin/neo4j-admin-import/[`neo4j-admin database import`] command* is the most efficient way of importing large CSV files. 2. Use a link:https://neo4j.com/docs/create-applications/[*language library*] to parse CSV data and run creation Cypher queries against a Neo4j database. Created as an extension library to provide common procedures and functions to developers. This library is especially helpful for complex transformations and data manipulations. diff --git a/modules/ROOT/pages/clauses/transaction-clauses.adoc b/modules/ROOT/pages/clauses/transaction-clauses.adoc index b1a099770..6adc11c60 100644 --- a/modules/ROOT/pages/clauses/transaction-clauses.adoc +++ b/modules/ROOT/pages/clauses/transaction-clauses.adoc @@ -208,7 +208,7 @@ The `SHOW TRANSACTIONS` command can be combined with multiple `SHOW TRANSACTIONS [NOTE] ==== -More details about the syntax descriptions can be found link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/syntax/#administration-syntax-reading[here]. +More details about the syntax descriptions can be found link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/syntax/#administration-syntax-reading[here]. ==== List transactions on the current server:: @@ -229,7 +229,7 @@ Transaction IDs must be supplied as one or more comma-separated quoted `STRING` When using the `RETURN` clause, the `YIELD` clause is mandatory and must not be omitted. ==== -A user with the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-transaction[`SHOW TRANSACTION`] privilege can view the currently executing transactions in accordance with the privilege grants. +A user with the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-transaction[`SHOW TRANSACTION`] privilege can view the currently executing transactions in accordance with the privilege grants. All users may view all of their own currently executing transactions. @@ -370,7 +370,7 @@ The `TERMINATE TRANSACTIONS` command can be combined with multiple `SHOW TRANSAC [NOTE] ==== -More details about the syntax descriptions can be found link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/syntax/#administration-syntax-reading[here]. +More details about the syntax descriptions can be found link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/syntax/#administration-syntax-reading[here]. ==== Terminate transactions by ID on the current server:: @@ -395,7 +395,7 @@ Transaction IDs must be supplied as one or more comma-separated quoted `STRING` When using the `WHERE` or `RETURN` clauses, the `YIELD` clause is mandatory and must not be omitted. ==== -A user with the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-transaction[`TERMINATE TRANSACTION`] privilege can terminate transactions in accordance with the privilege grants. +A user with the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-transaction[`TERMINATE TRANSACTION`] privilege can terminate transactions in accordance with the privilege grants. All users may terminate their own currently executing transactions. diff --git a/modules/ROOT/pages/clauses/use.adoc b/modules/ROOT/pages/clauses/use.adoc index 43959819f..1e79b1efa 100644 --- a/modules/ROOT/pages/clauses/use.adoc +++ b/modules/ROOT/pages/clauses/use.adoc @@ -24,7 +24,7 @@ Where `` refers to the name or alias of a database in the DBMS. [[query-use-syntax-composite]] === Composite database syntax -When running queries against a link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/composite-databases/concepts/[composite database], the `USE` clause can also appear as the first clause of: +When running queries against a link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/composite-databases/concepts/[composite database], the `USE` clause can also appear as the first clause of: * Union parts: + diff --git a/modules/ROOT/pages/constraints/managing-constraints.adoc b/modules/ROOT/pages/constraints/managing-constraints.adoc index 283d567e3..79f7bbf16 100644 --- a/modules/ROOT/pages/constraints/managing-constraints.adoc +++ b/modules/ROOT/pages/constraints/managing-constraints.adoc @@ -22,7 +22,7 @@ If a name is not explicitly given, a unique name will be auto-generated. [NOTE] -Creating a constraint requires the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-constraints[`CREATE CONSTRAINT` privilege]. +Creating a constraint requires the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-constraints[`CREATE CONSTRAINT` privilege]. [NOTE] Adding constraints is an atomic operation that can take a while -- all existing data has to be scanned before a Neo4j DBMS can use a constraint. @@ -1433,7 +1433,7 @@ One of the output columns from `SHOW CONSTRAINTS` is the name of the constraint. This can be used to drop the constraint with the xref::constraints/managing-constraints.adoc#drop-constraint[`DROP CONSTRAINT` command]. [NOTE] -Listing constraints requires the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-constraints[`SHOW CONSTRAINTS` privilege]. +Listing constraints requires the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-constraints[`SHOW CONSTRAINTS` privilege]. .List all constraints with default output columns ====== @@ -1679,7 +1679,7 @@ Constraints are dropped using the `DROP CONSTRAINT` command. For the full command syntax to drop constraints, see xref:constraints/syntax.adoc#drop-constraint[Syntax -> DROP CONSTRAINT]. [NOTE] -Dropping a constraint requires the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-constraints[`DROP CONSTRAINT` privilege]. +Dropping a constraint requires the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-constraints[`DROP CONSTRAINT` privilege]. [[drop-constraint-by-name]] === Drop a constraint by name diff --git a/modules/ROOT/pages/constraints/syntax.adoc b/modules/ROOT/pages/constraints/syntax.adoc index ba695630f..4347777d2 100644 --- a/modules/ROOT/pages/constraints/syntax.adoc +++ b/modules/ROOT/pages/constraints/syntax.adoc @@ -6,7 +6,7 @@ This page contains the syntax for creating, listing, and dropping the constraints available in Neo4j. -More details about the syntax can be found in the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/syntax/[Operations Manual -> Cypher syntax for administration commands]. +More details about the syntax can be found in the link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/syntax/[Operations Manual -> Cypher syntax for administration commands]. [[constraints-syntax-create]] == CREATE CONSTRAINT @@ -17,7 +17,7 @@ This name must be unique among both indexes and constraints. If a name is not explicitly given, a unique name will be auto-generated. [NOTE] -Creating a constraint requires the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-constraints[`CREATE CONSTRAINT` privilege]. +Creating a constraint requires the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-constraints[`CREATE CONSTRAINT` privilege]. The `CREATE CONSTRAINT` command is optionally idempotent. This means its default behavior is to throw an error if an attempt is made to create the same constraint twice. @@ -189,7 +189,7 @@ If only specific columns are required, use `SHOW CONSTRAINTS YIELD field[, ...]` The `SHOW CONSTRAINTS` clause can also be filtered using the xref:clauses/where.adoc[`WHERE`] clause. [NOTE] -Listing constraints requires the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-constraints[`SHOW CONSTRAINTS` privilege]. +Listing constraints requires the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-constraints[`SHOW CONSTRAINTS` privilege]. .Syntax to list constraints with default return columns @@ -304,7 +304,7 @@ Constraints are dropped using the `DROP` CONSTRAINT command. Dropping a constraint is done by specifying the name of the constraint. [NOTE] -Dropping a constraint requires the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-constraints[`DROP CONSTRAINT` privilege]. +Dropping a constraint requires the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-constraints[`DROP CONSTRAINT` privilege]. .Syntax for dropping a constraint by name diff --git a/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc b/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc index 78da37687..67212f833 100644 --- a/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc +++ b/modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc @@ -153,7 +153,7 @@ CALL db.schema.nodeTypeProperties() YIELD propertyTypes RETURN propertyTypes; CALL db.schema.relTypeProperties() YIELD propertyTypes RETURN propertyTypes; ---- a| -The column `propertyTypes` currently returned by the procedures link:{neo4j-docs-base-uri}/operations-manual/{page-version}/procedures/#procedure_db_schema_nodetypeproperties[`db.schema.nodeTypeProperties()`] and link:{neo4j-docs-base-uri}/operations-manual/{page-version}/procedures/#procedure_db_schema_reltypeproperties[`db.schema.relTypeProperties()`] produces a list of strings representing the potential Java types for a given property. +The column `propertyTypes` currently returned by the procedures link:{neo4j-docs-base-uri}/operations-manual/current/procedures/#procedure_db_schema_nodetypeproperties[`db.schema.nodeTypeProperties()`] and link:{neo4j-docs-base-uri}/operations-manual/current/procedures/#procedure_db_schema_reltypeproperties[`db.schema.relTypeProperties()`] produces a list of strings representing the potential Java types for a given property. In an upcoming major release of Neo4j, this will be updated to represent the possible Cypher types for that property instead. For all available Cypher types, see the section on xref::values-and-types/property-structural-constructed.adoc#types-synonyms[types and their synonyms]. @@ -166,7 +166,7 @@ CREATE DATABASE db OPTIONS { seedCredentials: ..., seedConfig: ... } ---- | The `CREATE DATABASE` option `seedCredentials` has been deprecated. For seeding from cloud storage, it is recommended to use `CloudSeedProvider` which will read cloud credentials and configuration from standard locations. -For further information, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/clustering/databases/#cloud-seed-provider[Managing databases in a cluster -> CloudSeedProvider]. +For further information, see link:{neo4j-docs-base-uri}/operations-manual/current/clustering/databases/#cloud-seed-provider[Managing databases in a cluster -> CloudSeedProvider]. a| label:functionality[] @@ -179,7 +179,7 @@ CREATE DATABASE db OPTIONS { storeFormat: 'high_limit' } ---- | The `standard` and `high_limit` store formats have been deprecated. Creating databases with these formats is therefore also deprecated. -For more information on the deprecation of these formats, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/store-formats/#format-deprecations[Store formats -> Format deprecations]. +For more information on the deprecation of these formats, see link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/store-formats/#format-deprecations[Store formats -> Format deprecations]. a| label:functionality[] @@ -212,7 +212,7 @@ USE graph.byElementId("4:c0a65d96-4993-4b0c-b036-e7ebd9174905:0") MATCH (n) RETURN n ---- -| xref:functions/graph.adoc#functions-graph-by-elementid[`graph.byElementId()`] can now be used on both link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/[standard and composite databases]. +| xref:functions/graph.adoc#functions-graph-by-elementid[`graph.byElementId()`] can now be used on both link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/[standard and composite databases]. Previously it could only be used on composite databases. a| @@ -226,7 +226,7 @@ CREATE DATABASE foo TOPOLOGY $p PRIMARIES $s SECONDARIES ---- ALTER DATABASE foo SET TOPOLOGY $p PRIMARIES $s SECONDARIES ---- -| The link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/standard-databases/create-databases/[`CREATE DATABASE`] and link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/standard-databases/alter-databases/[`ALTER DATABASE`] commands now accept parameters for `TOPOLOGY` configuration. +| The link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/standard-databases/create-databases/[`CREATE DATABASE`] and link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/standard-databases/alter-databases/[`ALTER DATABASE`] commands now accept parameters for `TOPOLOGY` configuration. a| label:functionality[] @@ -235,7 +235,7 @@ label:updated[] ---- GRANT READ {*} ON GRAPH * FOR (n) WHERE n.createdAt > date('2024-10-25') TO regularUsers ---- -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/property-based-access-control/[Property-based access control] now supports xref:values-and-types/spatial.adoc[spatial] and xref:values-and-types/temporal.adoc[temporal] values. +| link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/property-based-access-control/[Property-based access control] now supports xref:values-and-types/spatial.adoc[spatial] and xref:values-and-types/temporal.adoc[temporal] values. a| @@ -317,7 +317,7 @@ label:deprecated[] ---- CREATE DATABASE db OPTIONS { existingDataSeedInstance: ... } ---- -| The `CREATE DATABASE` option `existingDataSeedInstance` has been deprecated and replaced with the option link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/standard-databases/create-databases/#manage-databases-create-database-options[`existingDataSeedServer`]. The functionality is unchanged. +| The `CREATE DATABASE` option `existingDataSeedInstance` has been deprecated and replaced with the option link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/standard-databases/create-databases/#manage-databases-create-database-options[`existingDataSeedServer`]. The functionality is unchanged. |=== === Updated features @@ -335,7 +335,7 @@ label:updated[] CREATE (n:Label {property: 'name'}), ()-[r:REL_TYPE]->() ---- -| Neo4j's link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/store-formats/#store-format-overview[block format] now implements xref:appendix/gql-conformance/index.adoc[GQL's] limit on the maximum length of identifiers. +| Neo4j's link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/store-formats/#store-format-overview[block format] now implements xref:appendix/gql-conformance/index.adoc[GQL's] limit on the maximum length of identifiers. The maximum limit is set to 16,383 characters in an identifier. This means that node labels, relationship types, and property keys cannot include more than 16,383 characters. @@ -355,7 +355,7 @@ label:new[] ---- CREATE DATABASE db OPTIONS { existingDataSeedServer: ... } ---- -| The option link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/standard-databases/create-databases/#manage-databases-create-database-options[`existingDataSeedServer`] has been added to `CREATE DATABASE`. The functionality is the same as the deprecated option `existingDataSeedServer`, which this replaces. +| The option link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/standard-databases/create-databases/#manage-databases-create-database-options[`existingDataSeedServer`] has been added to `CREATE DATABASE`. The functionality is the same as the deprecated option `existingDataSeedServer`, which this replaces. |=== [[cypher-deprecations-additions-removals-5.24]] @@ -447,7 +447,7 @@ DROP [COMPOSITE] DATABASE ... [RESTRICT \| CASCADE ALIAS[ES]] | Added the ability to drop database aliases while deleting a database. This will affect local database aliases targeting the database and constituent database aliases belonging to the composite database. -For more information, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/standard-databases/delete-databases/#delete-databases-with-aliases[Delete a database with local database aliases targeting it] and link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/composite-databases/delete-composite-databases/#composite-databases-delete-with-aliases[Delete a composite database with constituent database aliases]. +For more information, see link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/standard-databases/delete-databases/#delete-databases-with-aliases[Delete a database with local database aliases targeting it] and link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/composite-databases/delete-composite-databases/#composite-databases-delete-with-aliases[Delete a composite database with constituent database aliases]. a| label:functionality[] @@ -475,7 +475,7 @@ SET AUTH 'native' { SET PASSWORD CHANGE REQUIRED } ---- -| Added the ability set which link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/auth-providers[auth providers] apply to a user (Enterprise Edition). +| Added the ability set which link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/auth-providers[auth providers] apply to a user (Enterprise Edition). Administration of the native (username / password) auth via the new syntax is also now supported (Community Edition). @@ -490,7 +490,7 @@ SET AUTH 'externalProviderName' { SET ID 'userIdForExternalProvider' } ---- -| Added the ability add and remove user link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/auth-providers[auth providers] via the `ALTER USER` command. +| Added the ability add and remove user link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/auth-providers[auth providers] via the `ALTER USER` command. Setting the native (username / password) auth provider via this new syntax is also supported (Community Edition), but removing any auth provider or setting a non-native auth provider is only supported in Enterprise Edition. @@ -513,7 +513,7 @@ label:new[] + SET AUTH ---- a| -New privilege that allows a user to modify user link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/auth-providers[auth providers]. +New privilege that allows a user to modify user link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/auth-providers[auth providers]. This is a sub-privilege of the `ALTER USER` privilege. Like all `GRANT`/`DENY` commands this is only available in Enterprise Edition. @@ -663,7 +663,7 @@ GRANT TRAVERSE ON GRAPH * FOR (n:Email) WHERE n.classification IS NULL TO regula ---- DENY MATCH {*} ON GRAPH * FOR (n) WHERE n.classification <> 'UNCLASSIFIED' TO regularUsers ---- -| Introduction of link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/property-based-access-control[property-based access control] for read privileges. The ability to read, traverse and match nodes based on node property values is now supported in Enterprise Edition. +| Introduction of link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/property-based-access-control[property-based access control] for read privileges. The ability to read, traverse and match nodes based on node property values is now supported in Enterprise Edition. a| label:functionality[] @@ -1095,7 +1095,7 @@ GRANT LOAD ON CIDR "127.0.0.1/32" TO role DENY LOAD ON CIDR "::1/128" TO role ---- | Added the ability to grant or deny `LOAD` privilege on a CIDR range. -For more information, see the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/load-privileges/#access-control-load-cidr[Operations Manual -> The CIDR privilege]. +For more information, see the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/load-privileges/#access-control-load-cidr[Operations Manual -> The CIDR privilege]. |=== @@ -1328,7 +1328,7 @@ CALL cdc.query(from, selectors) ---- | Introduction of the Change Data Capture (CDC) feature. -For details, see link:{neo4j-docs-base-uri}/cdc/{page-version}/[Change Data Capture]. +For details, see link:{neo4j-docs-base-uri}/cdc/current/[Change Data Capture]. a| label:functionality[] @@ -1948,7 +1948,7 @@ label:new[] `server.tag` a| New functionality to change tags at runtime via `ALTER SERVER`. -More information can be found in the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/clustering/servers#alter-server-options[Operations Manual -> `ALTER SERVER` options]. +More information can be found in the link:{neo4j-docs-base-uri}/operations-manual/current/clustering/servers#alter-server-options[Operations Manual -> `ALTER SERVER` options]. a| label:functionality[] @@ -4622,7 +4622,7 @@ EXECUTE ---- a| New Cypher commands for administering privileges for executing procedures and user defined functions. -See link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration/#access-control-dbms-administration-execute[The DBMS `EXECUTE` privileges]. +See link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration/#access-control-dbms-administration-execute[The DBMS `EXECUTE` privileges]. a| label:syntax[] @@ -4890,28 +4890,28 @@ New support for `YIELD` and `WHERE` clauses to allow filtering results. a| label:functionality[] label:new[] + -link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-transaction[TRANSACTION MANAGEMENT] privileges +link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-transaction[TRANSACTION MANAGEMENT] privileges a| New Cypher commands for administering transaction management. a| label:functionality[] label:new[] + -DBMS link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration/#access-control-dbms-administration-user-management[USER MANAGEMENT] privileges +DBMS link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration/#access-control-dbms-administration-user-management[USER MANAGEMENT] privileges a| New Cypher commands for administering user management. a| label:functionality[] label:new[] + -DBMS link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration/#access-control-dbms-administration-database-management[DATABASE MANAGEMENT] privileges +DBMS link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration/#access-control-dbms-administration-database-management[DATABASE MANAGEMENT] privileges a| New Cypher commands for administering database management. a| label:functionality[] label:new[] + -DBMS link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/dbms-administration/#access-control-dbms-administration-privilege-management[PRIVILEGE MANAGEMENT] privileges +DBMS link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/dbms-administration/#access-control-dbms-administration-privilege-management[PRIVILEGE MANAGEMENT] privileges a| New Cypher commands for administering privilege management. @@ -5284,21 +5284,21 @@ This Neo4j Enterprise Edition only feature involves a new runtime that has many a| label:functionality[] label:new[] + -link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/standard-databases/manage-databases/[Multi-database administration] +link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/standard-databases/manage-databases/[Multi-database administration] a| New Cypher commands for administering multiple databases. a| label:functionality[] label:new[] + -link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/[Access control] +link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/[Access control] a| New Cypher commands for administering role-based access control. a| label:functionality[] label:new[] + -link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/manage-privileges/[Fine-grained security] +link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/manage-privileges/[Fine-grained security] a| New Cypher commands for administering dbms, database, graph and sub-graph access control. diff --git a/modules/ROOT/pages/functions/graph.adoc b/modules/ROOT/pages/functions/graph.adoc index 839231680..81f176db1 100644 --- a/modules/ROOT/pages/functions/graph.adoc +++ b/modules/ROOT/pages/functions/graph.adoc @@ -16,7 +16,7 @@ .Considerations |=== -| `graph.names()` is only supported on link:{neo4j-docs-base-uri}/operations-manual/{page-version}/composite-databases[composite databases]. +| `graph.names()` is only supported on link:{neo4j-docs-base-uri}/operations-manual/current/composite-databases[composite databases]. |=== .+graph.names()+ @@ -71,8 +71,8 @@ The names of all graphs on the current composite database are returned. .Considerations |=== -| `graph.propertiesByName()` is only supported on link:{neo4j-docs-base-uri}/operations-manual/{page-version}/composite-databases[composite databases]. -| The properties in the returned `MAP` are set on the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/aliases/manage-aliases-standard-databases/[alias]that adds the graph as a constituent of a composite database. +| `graph.propertiesByName()` is only supported on link:{neo4j-docs-base-uri}/operations-manual/current/composite-databases[composite databases]. +| The properties in the returned `MAP` are set on the link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/aliases/manage-aliases-standard-databases/[alias]that adds the graph as a constituent of a composite database. |=== .+graph.propertiesByName()+ @@ -199,7 +199,7 @@ For more information, see xref:subqueries/call-subquery.adoc#import-variables[CA |=== | If the constituent database is not a standard database in the DBMS, an error will be thrown. | `graph.byElementId()` is only supported in the xref:clauses/use.adoc[`USE`] clause. -| As of Neo4j 5.26, `graph.byElementId()` is supported on both link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/[standard and composite databases]. +| As of Neo4j 5.26, `graph.byElementId()` is supported on both link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/[standard and composite databases]. On earlier versions, it is only supported on composite databases. | On a standard database, a `USE` clause with `graph.byElementId()` cannot be combined with other `USE` clauses unless the subsequent `USE` clauses reference the same element id. |=== diff --git a/modules/ROOT/pages/functions/index.adoc b/modules/ROOT/pages/functions/index.adoc index bb324d520..1e80dd74a 100644 --- a/modules/ROOT/pages/functions/index.adoc +++ b/modules/ROOT/pages/functions/index.adoc @@ -748,12 +748,12 @@ There are two main types of functions that can be developed and used: | Scalar | For each row the function takes parameters and returns a result. | xref::functions/user-defined.adoc#query-functions-udf[Using UDF] -| link:{neo4j-docs-base-uri}/java-reference/{page-version}/extending-neo4j/functions#extending-neo4j-functions[Extending Neo4j (UDF)] +| link:{neo4j-docs-base-uri}/java-reference/current/extending-neo4j/functions#extending-neo4j-functions[Extending Neo4j (UDF)] | Aggregating | Consumes many rows and produces an aggregated result. | xref::functions/user-defined.adoc#query-functions-user-defined-aggregation[Using aggregating UDF] -| link:{neo4j-docs-base-uri}/java-reference/{page-version}/extending-neo4j/aggregation-functions#extending-neo4j-aggregation-functions[Extending Neo4j (Aggregating UDF)] +| link:{neo4j-docs-base-uri}/java-reference/current/extending-neo4j/aggregation-functions#extending-neo4j-aggregation-functions[Extending Neo4j (Aggregating UDF)] |=== diff --git a/modules/ROOT/pages/functions/scalar.adoc b/modules/ROOT/pages/functions/scalar.adoc index cc17fdc3a..6ec56dd22 100644 --- a/modules/ROOT/pages/functions/scalar.adoc +++ b/modules/ROOT/pages/functions/scalar.adoc @@ -383,7 +383,7 @@ It is therefore recommended to use application-generated IDs instead. [NOTE] ==== -On a link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/composite-databases/concepts/[composite database], the `id()` function should be used with caution. +On a link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/composite-databases/concepts/[composite database], the `id()` function should be used with caution. It is recommended to use xref:functions/scalar.adoc#functions-elementid[`elementId()`] instead. When called in database-specific subqueries, the resulting ID value for a node or relationship is local to that database. diff --git a/modules/ROOT/pages/functions/user-defined.adoc b/modules/ROOT/pages/functions/user-defined.adoc index 6b3fb5209..c56b2e9a8 100644 --- a/modules/ROOT/pages/functions/user-defined.adoc +++ b/modules/ROOT/pages/functions/user-defined.adoc @@ -15,12 +15,12 @@ There are two main types of functions that can be developed and used: | Scalar | For each row the function takes parameters and returns a result. | xref::functions/user-defined.adoc#query-functions-udf[Using UDF] -| link:{neo4j-docs-base-uri}/java-reference/{page-version}/extending-neo4j/functions#extending-neo4j-functions[Extending Neo4j (UDF)] +| link:{neo4j-docs-base-uri}/java-reference/current/extending-neo4j/functions#extending-neo4j-functions[Extending Neo4j (UDF)] | Aggregating | Consumes many rows and produces an aggregated result. | xref::functions/user-defined.adoc#query-functions-user-defined-aggregation[Using aggregating UDF] -| link:{neo4j-docs-base-uri}/java-reference/{page-version}/extending-neo4j/aggregation-functions#extending-neo4j-aggregation-functions[Extending Neo4j (Aggregating UDF)] +| link:{neo4j-docs-base-uri}/java-reference/current/extending-neo4j/aggregation-functions#extending-neo4j-aggregation-functions[Extending Neo4j (Aggregating UDF)] |=== @@ -30,7 +30,7 @@ There are two main types of functions that can be developed and used: For each incoming row the function takes parameters and returns a single result. -For developing and deploying user-defined functions in Neo4j, see link:{neo4j-docs-base-uri}/java-reference/{page-version}/extending-neo4j/functions#extending-neo4j-functions[Extending Neo4j -> User-defined functions]. +For developing and deploying user-defined functions in Neo4j, see link:{neo4j-docs-base-uri}/java-reference/current/extending-neo4j/functions#extending-neo4j-functions[Extending Neo4j -> User-defined functions]. .Call a user-defined function diff --git a/modules/ROOT/pages/genai-integrations.adoc b/modules/ROOT/pages/genai-integrations.adoc index 2773b4848..7aeaa1d16 100644 --- a/modules/ROOT/pages/genai-integrations.adoc +++ b/modules/ROOT/pages/genai-integrations.adoc @@ -23,7 +23,7 @@ The GenAI plugin is enabled by default in Neo4j Aura. The plugin needs to be installed on self-managed instances. This is done by moving the `neo4j-genai.jar` file from `/products` to `/plugins` in the Neo4j home directory, or, if you are using Docker, by starting the Docker container with the extra parameter `--env NEO4J_PLUGINS='["genai"]'`. -For more information, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/plugins/[Operations Manual -> Configure plugins]. +For more information, see link:{neo4j-docs-base-uri}/operations-manual/current/configuration/plugins/[Operations Manual -> Configure plugins]. [NOTE] Prior to Neo4j 5.23, the GenAI plugin was only available on Neo4j Enterprise Edition. @@ -39,7 +39,7 @@ The graph contains 28863 nodes and 332522 relationships. There are 9083 `Movie` nodes with a `plot` and `title` property. To recreate the graph, download and import this link:https://github.com/neo4j-graph-examples/recommendations/blob/main/data/recommendations-embeddings-50.dump[dump file] to an empty Neo4j database (running version 5.17 or later). -Dump files can be imported for both link:{neo4j-docs-base-uri}/aura/auradb/importing/import-database/[Aura] and link:{neo4j-docs-base-uri}/operations-manual/{page-version}/backup-restore/restore-dump/[on-prem] instances. +Dump files can be imported for both link:{neo4j-docs-base-uri}/aura/auradb/importing/import-database/[Aura] and link:{neo4j-docs-base-uri}/operations-manual/current/backup-restore/restore-dump/[on-prem] instances. [NOTE] The embeddings on this are generated using link:https://platform.openai.com/docs/guides/embeddings[OpenAI] (model `text-embedding-ada-002`), producing 1536-dimensional vectors. diff --git a/modules/ROOT/pages/indexes/search-performance-indexes/managing-indexes.adoc b/modules/ROOT/pages/indexes/search-performance-indexes/managing-indexes.adoc index c523f2b77..3343bb9e3 100644 --- a/modules/ROOT/pages/indexes/search-performance-indexes/managing-indexes.adoc +++ b/modules/ROOT/pages/indexes/search-performance-indexes/managing-indexes.adoc @@ -38,7 +38,7 @@ However, not all indexes have available configuration settings. In those cases, nothing needs to be specified and the `OPTIONS` map should be omitted from the query. [TIP] -Creating an index requires link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-index[the `CREATE INDEX` privilege]. +Creating an index requires link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-index[the `CREATE INDEX` privilege]. [NOTE] An index cannot be used while its `state` is `POPULATING`, which occurs immediately after it is created. @@ -788,7 +788,7 @@ There already exists a constraint called 'bookRecommendations'. Listing indexes can be done with `SHOW INDEXES`. [TIP] -Listing indexes requires link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-index[the `SHOW INDEX` privilege]. +Listing indexes requires link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-index[the `SHOW INDEX` privilege]. [discrete] [[listing-indexes-examples]] @@ -1033,7 +1033,7 @@ With `IF EXISTS`, no error is thrown and nothing happens should the index not ex As of Neo4j 5.17, an informational notification is instead returned detailing that the index does not exist. [TIP] -Dropping an index requires link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/authentication-authorization/database-administration/#access-control-database-administration-index[the `DROP INDEX` privilege]. +Dropping an index requires link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/authentication-authorization/database-administration/#access-control-database-administration-index[the `DROP INDEX` privilege]. [discrete] [[drop-indexes-examples]] diff --git a/modules/ROOT/pages/indexes/search-performance-indexes/using-indexes.adoc b/modules/ROOT/pages/indexes/search-performance-indexes/using-indexes.adoc index e8c4eee44..7f0268162 100644 --- a/modules/ROOT/pages/indexes/search-performance-indexes/using-indexes.adoc +++ b/modules/ROOT/pages/indexes/search-performance-indexes/using-indexes.adoc @@ -28,7 +28,7 @@ image::using_indexes_example_graph.svg[width="600",role="middle"] In total, the graph contains 69165 nodes (of which 188 have the label `PointOfInterest`) and 152077 `ROUTE` relationships. To recreate the graph, download and import the link:https://github.com/neo4j-graph-examples/openstreetmap/blob/main/data/openstreetmap-50.dump[5.0 dump file] to an empty Neo4j database. -Dump files can be imported for both link:{neo4j-docs-base-uri}/aura/auradb/importing/import-database/[Aura] and link:{neo4j-docs-base-uri}/operations-manual/{page-version}/backup-restore/restore-dump/[on-prem] instances. +Dump files can be imported for both link:{neo4j-docs-base-uri}/aura/auradb/importing/import-database/[Aura] and link:{neo4j-docs-base-uri}/operations-manual/current/backup-restore/restore-dump/[on-prem] instances. [[token-lookup-indexes]] == Token lookup indexes diff --git a/modules/ROOT/pages/indexes/semantic-indexes/full-text-indexes.adoc b/modules/ROOT/pages/indexes/semantic-indexes/full-text-indexes.adoc index f2adb3aa6..475aa6308 100644 --- a/modules/ROOT/pages/indexes/semantic-indexes/full-text-indexes.adoc +++ b/modules/ROOT/pages/indexes/semantic-indexes/full-text-indexes.adoc @@ -42,7 +42,7 @@ As of Neo4j 5.17, an informational notification is instead returned showing the As of Neo4j 5.16, the index name can also be given as a parameter, `CREATE FULLTEXT INDEX $name FOR ...`. [TIP] -Creating a full-text index requires the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-index[`CREATE INDEX` privilege]. +Creating a full-text index requires the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-index[`CREATE INDEX` privilege]. When creating a full-text index, you need to specify the labels/relationship types and property names it should apply to. @@ -91,10 +91,10 @@ Removing stop words can help reduce the size of stored data and thereby improve In some cases, using different analyzers for the indexed values and query string is more appropriate. For example, if handling `STRING` values written in Swedish, it may be beneficial to select the `swedish` analyzer, which knows how to tokenize Swedish words, and will avoid indexing Swedish stop words. -The link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_fulltext_listavailableanalyzers[`db.index.fulltext.listAvailableAnalyzers()`] procedure shows all available analyzers. +The link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_fulltext_listavailableanalyzers[`db.index.fulltext.listAvailableAnalyzers()`] procedure shows all available analyzers. Neo4j also supports the use of custom analyzers. -For more information, see the link:{neo4j-docs-base-uri}/java-reference/{page-version}/extending-neo4j/full-text-analyzer-provider[Java Reference Manual -> Full-text index analyzer providers]. +For more information, see the link:{neo4j-docs-base-uri}/java-reference/current/extending-neo4j/full-text-analyzer-provider[Java Reference Manual -> Full-text index analyzer providers]. [[configuration-settings]] === Configuration settings @@ -129,13 +129,13 @@ The possible values for the `fulltext.analyzer` setting can be listed with the ` <2> The `fulltext.eventually_consistent` setting, if set to `true`, will put the index in an _eventually consistent_ update mode. This means that updates will be applied in a background thread "as soon as possible", instead of during a transaction commit, which is true for other indexes. -For more information on how to configure full-text indexes, refer to the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/performance/index-configuration#index-configuration-fulltext[Operations Manual -> Indexes to support full-text search]. +For more information on how to configure full-text indexes, refer to the link:{neo4j-docs-base-uri}/operations-manual/current/performance/index-configuration#index-configuration-fulltext[Operations Manual -> Indexes to support full-text search]. [[query-full-text-indexes]] == Query full-text indexes Unlike xref:indexes/search-performance-indexes/managing-indexes.adoc[search-performance indexes], full-text indexes are not automatically used by the xref:planning-and-tuning/execution-plans.adoc[Cypher query planner]. -To query a full-text index, use either the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_fulltext_querynodes[`db.index.fulltext.queryNodes`] or the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_fulltext_relationships[`db.index.fulltext.queryRelationships`] procedure. +To query a full-text index, use either the link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_fulltext_querynodes[`db.index.fulltext.queryNodes`] or the link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_fulltext_relationships[`db.index.fulltext.queryRelationships`] procedure. [NOTE] An index cannot be used while its `state` is `POPULATING`, which occurs immediately after it is created. @@ -391,7 +391,7 @@ The procedures for full-text indexes are listed in the table below: * Full-text indexes can be queried using the Lucene query language. * Full-text indexes are kept up to date automatically, as nodes and relationships are added, removed, and modified. * Full-text indexes will automatically populate newly created indexes with the existing data in a store. -* Full-text indexes can be checked by the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/tools/neo4j-admin/consistency-checker[consistency checker], and they can be rebuilt if there is a problem with them. +* Full-text indexes can be checked by the link:{neo4j-docs-base-uri}/operations-manual/current/tools/neo4j-admin/consistency-checker[consistency checker], and they can be rebuilt if there is a problem with them. * Newly created full-text indexes get automatically populated with the existing data in the database. * Full-text indexes can support any number of properties in a single index. * Full-text indexes are created, dropped, and updated transactionally, and are automatically replicated throughout a cluster. diff --git a/modules/ROOT/pages/indexes/semantic-indexes/vector-indexes.adoc b/modules/ROOT/pages/indexes/semantic-indexes/vector-indexes.adoc index b5d4f9bdb..0f60dca75 100644 --- a/modules/ROOT/pages/indexes/semantic-indexes/vector-indexes.adoc +++ b/modules/ROOT/pages/indexes/semantic-indexes/vector-indexes.adoc @@ -30,7 +30,7 @@ image::vector_index_graph.svg[width="600",role="middle"] The graph contains 28863 nodes and 332522 relationships. To recreate the graph, download and import this link:https://github.com/neo4j-graph-examples/recommendations/blob/main/data/recommendations-embeddings-50.dump[dump file] to an empty Neo4j database (running version 5.13 or later). -Dump files can be imported for both link:{neo4j-docs-base-uri}/aura/auradb/importing/import-database/[Aura] and link:{neo4j-docs-base-uri}/operations-manual/{page-version}/backup-restore/restore-dump/[on-prem] instances. +Dump files can be imported for both link:{neo4j-docs-base-uri}/aura/auradb/importing/import-database/[Aura] and link:{neo4j-docs-base-uri}/operations-manual/current/backup-restore/restore-dump/[on-prem] instances. [NOTE] The dump file used to load the dataset contains embeddings generated by https://openai.com/[OpenAI], using the model `text-embedding-ada-002`. @@ -84,7 +84,7 @@ The index name must be unique among both indexes and constraints. + A newly created index is not immediately available but is created in the background. [TIP] -Creating indexes requires link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-index[the `CREATE INDEX` privilege]. +Creating indexes requires link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-index[the `CREATE INDEX` privilege]. .Create vector index for `Movie` nodes on the `embedding` property label:new[Introduced in 5.15] [source, cypher] @@ -110,7 +110,7 @@ In this example, the vector dimension is explicitly set to `1536` and the vector To read more about the available similarity functions, see xref:indexes/semantic-indexes/vector-indexes.adoc#similarity-functions[]. [NOTE] -Prior to Neo4j 5.15, node vector indexes were created using the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_vector_createnodeindex[`db.index.vector.createNodeIndex`] procedure. +Prior to Neo4j 5.15, node vector indexes were created using the link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_vector_createnodeindex[`db.index.vector.createNodeIndex`] procedure. You can also create a vector index for relationships with a particular type on a given property using the following syntax: @@ -194,7 +194,7 @@ Default value::: `100` [[query-vector-index]] == Query vector indexes -To query a node vector index, use the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_vector_queryNodes[`db.index.vector.queryNodes`] procedure. +To query a node vector index, use the link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_vector_queryNodes[`db.index.vector.queryNodes`] procedure. [NOTE] An index cannot be used while its `state` is `POPULATING`, which occurs immediately after it is created. @@ -240,7 +240,7 @@ Note that all movies returned have a plot centred around criminal family organiz The `score` results are returned in _descending order_, where the best matching result entry is put first (in this case, `The Godfather` has a similarity score of `1.0`, which is to be expected as the index was queried with this specific property). If the query vector itself is not wanted, adding the predicate `WHERE score < 1` removes identical vectors. -To query a relationship vector index, use the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_vector_queryRelationships[`db.index.vector.queryRelationships`] procedure. +To query a relationship vector index, use the link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_vector_queryRelationships[`db.index.vector.queryRelationships`] procedure. .Signature for `db.index.vector.queryRelationships` label:new[Introduced in 5.18] [source,syntax] @@ -257,7 +257,7 @@ Use xref:functions/vector.adoc[] to compute the similarity score between two spe == Performance suggestions Vector indexes can take advantage of the incubated Java 20 Vector API for noticeable speed improvements. -If you are using a compatible version of Java, you can add the following setting to your link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_server.jvm.additional[configuration settings]: +If you are using a compatible version of Java, you can add the following setting to your link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_server.jvm.additional[configuration settings]: .Configuration settings [source,config] @@ -272,7 +272,7 @@ To list all vector indexes in a database, use the `SHOW VECTOR INDEXES` command. This is the same xref:indexes/search-performance-indexes/managing-indexes.adoc#list-indexes[`SHOW` command as for other indexes], with the index type filtering on `VECTOR`. [TIP] -Listing indexes requires link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-index[the `SHOW INDEX` privilege]. +Listing indexes requires link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-index[the `SHOW INDEX` privilege]. .Show all vector indexes ==== @@ -343,7 +343,7 @@ A vector index is dropped by using the xref:indexes/search-performance-indexes/m As of Neo4j 5.16, the index name can also be given as a parameter when dropping an index: `DROP INDEX $name`. [TIP] -Dropping indexes requires link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/authentication-authorization/database-administration/#access-control-database-administration-index[the `DROP INDEX` privilege]. +Dropping indexes requires link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/authentication-authorization/database-administration/#access-control-database-administration-index[the `DROP INDEX` privilege]. .Drop a vector index [source, cypher] @@ -478,30 +478,30 @@ image::euclidean_similarity_equation.svg["The Euclidean of vector v and vector u | Usage | Procedure | Description | Create node vector index. -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_vector_createnodeindex[`db.index.vector.createNodeIndex`] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_vector_createnodeindex[`db.index.vector.createNodeIndex`] | Create a vector index for the specified label and property with the given vector dimension using the given similarity function. Replaced by the `CREATE VECTOR INDEX` command. | Use node vector index. -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_vector_queryNodes[`db.index.vector.queryNodes`] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_vector_queryNodes[`db.index.vector.queryNodes`] | Query the given node vector index. Returns the requested number of approximate nearest neighbor nodes and their similarity score, ordered by score. | Use relationship vector index. -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_vector_queryRelationships[`db.index.vector.queryRelationships`] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_vector_queryRelationships[`db.index.vector.queryRelationships`] | Query the given relationship vector index. Returns the requested number of approximate nearest neighbor relationships and their similarity score, ordered by score. label:new[Introduced in 5.18] | Set node vector property. -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_create_setNodeVectorProperty[`db.create.setNodeVectorProperty`] -| Update a given node property with the given vector in a more space-efficient way than directly using xref:clauses/set.adoc#set-set-a-property[`SET`]. Replaces link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_create_setVectorProperty[`db.create.setVectorProperty`]. label:beta[] label:new[Introduced in 5.13] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_create_setNodeVectorProperty[`db.create.setNodeVectorProperty`] +| Update a given node property with the given vector in a more space-efficient way than directly using xref:clauses/set.adoc#set-set-a-property[`SET`]. Replaces link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_create_setVectorProperty[`db.create.setVectorProperty`]. label:beta[] label:new[Introduced in 5.13] | Set node vector property. -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_create_setVectorProperty[`db.create.setVectorProperty`] -| Replaced by link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_create_setNodeVectorProperty[`db.create.setNodeVectorProperty`]. label:deprecated[] label:beta[] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_create_setVectorProperty[`db.create.setVectorProperty`] +| Replaced by link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_create_setNodeVectorProperty[`db.create.setNodeVectorProperty`]. label:deprecated[] label:beta[] | Set relationship vector property. -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_create_setRelationshipVectorProperty[`db.create.setRelationshipVectorProperty`] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_create_setRelationshipVectorProperty[`db.create.setRelationshipVectorProperty`] | Update a given relationship property with the given vector in a more space-efficient way than directly using xref:clauses/set.adoc#set-set-a-property[`SET`]. label:beta[] label:new[Introduced in 5.18] |=== @@ -535,7 +535,7 @@ The following table lists the known issues and, if fixed, the version in which t |=== | Known issues | Fixed in -| The creation of a vector index using the legacy procedure link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_vector_createnodeindex[`db.index.vector.createNodeIndex`] may fail with an error in Neo4j 5.18 and later if the database was last written to with a version prior to Neo4j 5.11, and the legacy procedure is the first write operation used on the newer version. +| The creation of a vector index using the legacy procedure link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_vector_createnodeindex[`db.index.vector.createNodeIndex`] may fail with an error in Neo4j 5.18 and later if the database was last written to with a version prior to Neo4j 5.11, and the legacy procedure is the first write operation used on the newer version. In Neo4j 5.20, the error was clarified. [TIP] -- @@ -594,7 +594,7 @@ This is caused by an issue in the handling of index capabilities on followers. -- Because index capabilities will be correctly configured on a restart, this issue can be worked around by rolling the cluster after vector index creation. -For more information about clustering in Neo4j, see the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/clustering[Operations Manual -> Clustering]. +For more information about clustering in Neo4j, see the link:{neo4j-docs-base-uri}/operations-manual/current/clustering[Operations Manual -> Clustering]. -- | Neo4j 5.14 @@ -611,9 +611,9 @@ To work around this issue if you need to run multiple vector index queries and m | xref:clauses/listing-procedures.adoc[`SHOW PROCEDURES`] does not show the vector index procedures: -* link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_create_setVectorProperty[`db.create.setVectorProperty`] -* link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_vector_createNodeIndex[`db.index.vector.createNodeIndex`] -* link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_index_vector_queryNodes[`db.index.vector.queryNodes`] +* link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_create_setVectorProperty[`db.create.setVectorProperty`] +* link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_vector_createNodeIndex[`db.index.vector.createNodeIndex`] +* link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_index_vector_queryNodes[`db.index.vector.queryNodes`] [NOTE] -- @@ -636,7 +636,7 @@ d| The validation for xref:indexes/semantic-indexes/vector-indexes.adoc#similari This can lead to certain large component vectors being incorrectly indexed, and return a similarity score of `±0.0`. | Neo4j 5.12 -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/#procedure_db_index_vector_queryNodes[`db.index.vector.queryNodes`] query vector validation is incorrect with a xref:indexes/semantic-indexes/vector-indexes.adoc#similarity-functions[cosine] vector index. The {l2-norm} validation only considers the last component of the vector. If that component is `±0.0`, an otherwise valid query vector will be thrown as invalid. This can also result in some invalid vectors being used to query, and return a similarity score of `±0.0`. +| link:{neo4j-docs-base-uri}/operations-manual/current/#procedure_db_index_vector_queryNodes[`db.index.vector.queryNodes`] query vector validation is incorrect with a xref:indexes/semantic-indexes/vector-indexes.adoc#similarity-functions[cosine] vector index. The {l2-norm} validation only considers the last component of the vector. If that component is `±0.0`, an otherwise valid query vector will be thrown as invalid. This can also result in some invalid vectors being used to query, and return a similarity score of `±0.0`. [TIP] -- @@ -648,7 +648,7 @@ It is _recommended_ to normalize your vectors (if needed), and use a xref:indexe | The vector index `createStatement` field from xref:indexes/search-performance-indexes/managing-indexes.adoc#list-indexes[`SHOW INDEXES`] does not correctly escape single quotes in index names, labels, and property keys. | Neo4j 5.12 -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/backup-restore/copy-database/[Copying a database store] with a vector index does not log the recreation command, and instead logs an error: +| link:{neo4j-docs-base-uri}/operations-manual/current/backup-restore/copy-database/[Copying a database store] with a vector index does not log the recreation command, and instead logs an error: ---- ERROR: [StoreCopy] Unable to format statement for index 'index-name' ---- diff --git a/modules/ROOT/pages/indexes/syntax.adoc b/modules/ROOT/pages/indexes/syntax.adoc index 47183f194..e1536f2a9 100644 --- a/modules/ROOT/pages/indexes/syntax.adoc +++ b/modules/ROOT/pages/indexes/syntax.adoc @@ -4,7 +4,7 @@ This page contains the syntax for creating, listing, and dropping the indexes available in Neo4j. It also contains the signatures for the procedures necessary to call in order to use full-text and vector indexes. -More details about the syntax can be found in the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/syntax/[Operations Manual -> Cypher syntax for administration commands]. +More details about the syntax can be found in the link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/syntax/[Operations Manual -> Cypher syntax for administration commands]. [[create-index]] == CREATE INDEX @@ -32,7 +32,7 @@ However, not all indexes have available configuration settings. In those cases, nothing needs to be specified and the `OPTIONS` map should be omitted from the query. [TIP] -Creating an index requires link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-index[the `CREATE INDEX` privilege]. +Creating an index requires link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-index[the `CREATE INDEX` privilege]. [[create-range-index]] === Range indexes @@ -226,7 +226,7 @@ For more information, see xref:indexes/semantic-indexes/vector-indexes.adoc#crea == SHOW INDEX [TIP] -Listing indexes requires link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-index[the `SHOW INDEX` privilege]. +Listing indexes requires link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-index[the `SHOW INDEX` privilege]. .List indexes in the database (either all or filtered on index type) [source, syntax] @@ -304,7 +304,7 @@ With `IF EXISTS`, no error is thrown and nothing happens should the index not ex As of Neo4j 5.17, an informational notification is instead returned detailing that the index does not exist. [TIP] -Dropping indexes requires link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/database-administration/#access-control-database-administration-index[the `DROP INDEX` privilege]. +Dropping indexes requires link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/database-administration/#access-control-database-administration-index[the `DROP INDEX` privilege]. .Drop an index of any index type [source,syntax] diff --git a/modules/ROOT/pages/introduction/cypher-aura.adoc b/modules/ROOT/pages/introduction/cypher-aura.adoc index bd117c999..380ea527f 100644 --- a/modules/ROOT/pages/introduction/cypher-aura.adoc +++ b/modules/ROOT/pages/introduction/cypher-aura.adoc @@ -36,12 +36,12 @@ For example, it is not possible to create, alter, or drop databases using Aura, Additionally, some Cypher features are exclusive to AuraDB Business Critical and AuraDB Virtual Dedicated Cloud tiers. These primarily fall under database administration and role-based access control capabilities. -For more information, see the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/[Operations Manual -> Database administration] and the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/[Operations Manual -> Authentication and authorization]. +For more information, see the link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/[Operations Manual -> Database administration] and the link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/[Operations Manual -> Authentication and authorization]. == Aura and the Cypher Cheat Sheet Each different tier of Aura has a customized version of the Cypher Cheat Sheet which only shows the features of Cypher available for the chosen tier. -The Cypher Cheat Sheet can be accessed link:{neo4j-docs-base-uri}/cypher-cheat-sheet/{page-version}/auradb-enterprise/[here]. +The Cypher Cheat Sheet can be accessed link:{neo4j-docs-base-uri}/cypher-cheat-sheet/current/auradb-enterprise/[here]. You can select your desired Aura tier and Neo4j version by using the dropdown menus provided. Note that the default tier is AuraDB Virtual Dedicated Cloud. diff --git a/modules/ROOT/pages/introduction/cypher-neo4j.adoc b/modules/ROOT/pages/introduction/cypher-neo4j.adoc index 5d3482c59..6773e48ed 100644 --- a/modules/ROOT/pages/introduction/cypher-neo4j.adoc +++ b/modules/ROOT/pages/introduction/cypher-neo4j.adoc @@ -16,7 +16,7 @@ Cypher works almost identically between the two editions, but there are key area |=== | Feature | Enterprise Edition | Community Edition -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/[Multi-database] +| link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/[Multi-database] a| Any number of user databases. a| @@ -24,9 +24,9 @@ Only `system` and one user database. | Role-based security a| -User, role, and privilege management for flexible link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/manage-privileges/[access control] and link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/manage-privileges/[sub-graph access control]. +User, role, and privilege management for flexible link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/manage-privileges/[access control] and link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/manage-privileges/[sub-graph access control]. a| -link:{neo4j-docs-base-uri}/operations-manual/{page-version}authentication-authorization/manage-users[Multi-user management]. +link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/manage-users[Multi-user management]. All users have full access rights. | Constraints @@ -55,7 +55,7 @@ Normally there is only one graph within each database, and many administrative c Cypher queries executed in a session may declare which graph they apply to, or use a default, given by the session. Composite databases can contain multiple graphs, by means of aliases to other databases. Queries submitted to composite databases may refer to multiple graphs within the same query. -For more information, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/composite-databases/[Operations manual -> Composite databases]. +For more information, see link:{neo4j-docs-base-uri}/operations-manual/current/composite-databases/[Operations manual -> Composite databases]. *Database*:: A database is a storage and retrieval mechanism for collecting data in a defined space on disk and in memory. @@ -70,12 +70,12 @@ A fresh installation of Neo4j includes two databases: * `system` - the system database described above, containing meta-data on the DBMS and security configuration. * `neo4j` - the default database, named using the config option `dbms.default_database=neo4j`. -For more information about the _system_ database, see the sections on link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/[Database management] and link:{neo4j-docs-base-uri}/operations-manual/{page-version}/authentication-authorization/[Access control]. +For more information about the _system_ database, see the sections on link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/[Database management] and link:{neo4j-docs-base-uri}/operations-manual/current/authentication-authorization/[Access control]. === Query considerations Most of the time Cypher queries are reading or updating queries, which are run against a graph. -There are also link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-administration/syntax[administrative commands] that apply to a database, or to the entire DBMS. +There are also link:{neo4j-docs-base-uri}/operations-manual/current/database-administration/syntax[administrative commands] that apply to a database, or to the entire DBMS. Administrative commands cannot be run in a session connected to a normal user database, but instead need to be run within a session connected to the `system` database. Administrative commands execute on the `system` database. If an administrative command is submitted to a user database, it is rerouted to the system database. @@ -92,7 +92,7 @@ In short, an updating query always either fully succeeds or does not succeed at [NOTE] ==== A query that makes a large number of updates consequently uses large amounts of memory since the transaction holds changes in memory. -For memory configuration in Neo4j, see the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/performance/memory-configuration[Neo4j Operations Manual -> Memory configuration]. +For memory configuration in Neo4j, see the link:{neo4j-docs-base-uri}/operations-manual/current/performance/memory-configuration[Neo4j Operations Manual -> Memory configuration]. ==== === Explicit and implicit transactions @@ -119,9 +119,9 @@ Explicit transactions cannot be managed directly from queries, they must be mana For examples of the API, or the commands used to start and commit transactions, refer to the API or tool-specific documentation: * For information on using transactions with a Neo4j driver, see _The session API_ in the link:{docs-base-uri}[Neo4j Driver manuals]. -* For information on using transactions over the HTTP API, see the link:{neo4j-docs-base-uri}/http-api/{page-version}/actions#http-api-actions[HTTP API documentation -> Using the HTTP API]. -* For information on using transactions within the embedded Core API, see the link:{neo4j-docs-base-uri}/java-reference/{page-version}/java-embedded/cypher-java#cypher-java[Java Reference -> Executing Cypher queries from Java]. -* For information on using transactions within the Neo4j Browser or Cypher-shell, see the link:{neo4j-docs-base-uri}/browser-manual/current/reference-commands/[Neo4j Browser documentation] or the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/tools/cypher-shell/#cypher-shell-commands[Cypher-shell documentation]. +* For information on using transactions over the HTTP API, see the link:{neo4j-docs-base-uri}/http-api/current/actions#http-api-actions[HTTP API documentation -> Using the HTTP API]. +* For information on using transactions within the embedded Core API, see the link:{neo4j-docs-base-uri}/java-reference/current/java-embedded/cypher-java#cypher-java[Java Reference -> Executing Cypher queries from Java]. +* For information on using transactions within the Neo4j Browser or Cypher-shell, see the link:{neo4j-docs-base-uri}/browser-manual/current/reference-commands/[Neo4j Browser documentation] or the link:{neo4j-docs-base-uri}/operations-manual/current/tools/cypher-shell/#cypher-shell-commands[Cypher-shell documentation]. When writing procedures or using Neo4j embedded, remember that all iterators returned from an execution result should be either fully exhausted or closed. This ensures that the resources bound to them are properly released. diff --git a/modules/ROOT/pages/introduction/cypher-overview.adoc b/modules/ROOT/pages/introduction/cypher-overview.adoc index ebaac533c..865cde7bf 100644 --- a/modules/ROOT/pages/introduction/cypher-overview.adoc +++ b/modules/ROOT/pages/introduction/cypher-overview.adoc @@ -82,4 +82,4 @@ RETURN actor.name Neo4j supports the APOC (Awesome Procedures on Cypher) Core library. The APOC Core library provides access to user-defined procedures and functions which extend the use of the Cypher query language into areas such as data integration, graph algorithms, and data conversion. -For more details, visit the link:{neo4j-docs-base-uri}/apoc/{page-version}[APOC Core page]. +For more details, visit the link:{neo4j-docs-base-uri}/apoc/current[APOC Core page]. diff --git a/modules/ROOT/pages/introduction/index.adoc b/modules/ROOT/pages/introduction/index.adoc index 3026c693d..01fef1f03 100644 --- a/modules/ROOT/pages/introduction/index.adoc +++ b/modules/ROOT/pages/introduction/index.adoc @@ -13,10 +13,10 @@ Cypher is Neo4j’s declarative query language, allowing users to unlock the ful The Cypher Manual aims to be as instructive as possible to readers from a variety of backgrounds and professions, such as developers, administrators, and academic researchers. -If you are new to Cypher and Neo4j, you can visit the link:{neo4j-docs-base-uri}/getting-started/{page-version}/cypher-intro/[Getting Started Guide -> Introduction to Cypher] chapter. +If you are new to Cypher and Neo4j, you can visit the link:{neo4j-docs-base-uri}/getting-started/current/cypher-intro/[Getting Started Guide -> Introduction to Cypher] chapter. Additionally, https://graphacademy.neo4j.com/[Neo4j GraphAcademy] has a variety of free courses tailored for all levels of experience. -For a reference of all available Cypher features, see the link:{neo4j-docs-base-uri}/cypher-cheat-sheet/{page-version}/[Cypher Cheat Sheet]. +For a reference of all available Cypher features, see the link:{neo4j-docs-base-uri}/cypher-cheat-sheet/current/[Cypher Cheat Sheet]. For a downloadable PDF version of the Cypher Manual, visit the link:{neo4j-docs-base-uri}/resources/docs-archive/#_cypher_query_language[Neo4j documentation archive]. diff --git a/modules/ROOT/pages/patterns/reference.adoc b/modules/ROOT/pages/patterns/reference.adoc index 04f985752..a930a1c34 100644 --- a/modules/ROOT/pages/patterns/reference.adoc +++ b/modules/ROOT/pages/patterns/reference.adoc @@ -1371,7 +1371,7 @@ They are similar to `SHORTEST 1` and `ALL SHORTEST`, but with several difference * The path pattern is passed as an argument to the functions. * The path pattern is limited to a single relationship pattern. -* To return results where the first and last node in the path are the same requires a change to the configuration setting link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_dbms.cypher.forbid_shortestpath_common_nodes[`dbms.cypher.forbid_shortestpath_common_nodes`]. +* To return results where the first and last node in the path are the same requires a change to the configuration setting link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_dbms.cypher.forbid_shortestpath_common_nodes[`dbms.cypher.forbid_shortestpath_common_nodes`]. * The minimum path length, also called the lower bound of the variable-length relationship pattern, should be 0 or 1. Both functions will continue to be available, but they are not xref:appendix/gql-conformance/index.adoc[GQL conformant]. diff --git a/modules/ROOT/pages/planning-and-tuning/execution-plans.adoc b/modules/ROOT/pages/planning-and-tuning/execution-plans.adoc index 031723c36..ec6c0cb5c 100644 --- a/modules/ROOT/pages/planning-and-tuning/execution-plans.adoc +++ b/modules/ROOT/pages/planning-and-tuning/execution-plans.adoc @@ -91,7 +91,7 @@ MATCH (:Station { name: 'Denmark Hill' })<-[:CALLS_AT]-(d:Stop) RETURN count(*) ---- -This is the resulting execution planfootnote:[The format of the execution plans displayed in this section are those generated when using link:{neo4j-docs-base-uri}/operations-manual/{page-version}/tools/cypher-shell[Cypher Shell]. +This is the resulting execution planfootnote:[The format of the execution plans displayed in this section are those generated when using link:{neo4j-docs-base-uri}/operations-manual/current/tools/cypher-shell[Cypher Shell]. The execution plans generated by link:{neo4j-docs-base-uri}/browser-manual/current[Neo4j Browser] use a different format.]: [role="queryplan"] diff --git a/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc b/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc index fb1cfb99f..4240d527c 100644 --- a/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc +++ b/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc @@ -1522,7 +1522,7 @@ Total database accesses: 37 The `DirectedUnionRelationshipTypesScan` operator fetches all relationships and their start and end nodes with at least one of the provided types from the relationship type index. [NOTE] -As the block storage format becomes the default, this operator will cease to be used in generating plans. Please refer to link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/store-formats[Operations Manual -> Store formats] for futher details on the various store formats available. +As the block storage format becomes the default, this operator will cease to be used in generating plans. Please refer to link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/store-formats[Operations Manual -> Store formats] for futher details on the various store formats available. .DirectedUnionRelationshipTypesScan ====== @@ -1569,7 +1569,7 @@ The `PartitionedDirectedUnionRelationshipTypeScan` is a variant of the xref:plan It allows the index to be partitioned into different segments where each segment can be scanned independently in parallel. [NOTE] -As the block storage format becomes the default, this operator will cease to be used in generating plans. Please refer to link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/store-formats[Operations Manual -> Store formats] for futher details on the various store formats available. +As the block storage format becomes the default, this operator will cease to be used in generating plans. Please refer to link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/store-formats[Operations Manual -> Store formats] for futher details on the various store formats available. .PartitionedDirectedUnionRelationshipTypesScan ====== @@ -1615,7 +1615,7 @@ Total database accesses: 25 The `UndirectedUnionRelationshipTypesScan` operator fetches all relationships and their start and end nodes with at least one of the provided types from the relationship type index. [NOTE] -As the block storage format becomes the default, this operator will cease to be used in generating plans. Please refer to link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/store-formats[Operations Manual -> Store formats] for futher details on the various store formats available. +As the block storage format becomes the default, this operator will cease to be used in generating plans. Please refer to link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/store-formats[Operations Manual -> Store formats] for futher details on the various store formats available. .UndirectedUnionRelationshipTypeScan ====== @@ -1660,7 +1660,7 @@ The `PartitionedUndirectedUnionRelationshipTypeScan` is a variant of the xref:pl It allows the index to be partitioned into different segments where each segment can be scanned independently in parallel. [NOTE] -As the block storage format becomes the default, this operator will cease to be used in generating plans. Please refer to link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/store-formats[Operations Manual -> Store formats] for futher details on the various store formats available. +As the block storage format becomes the default, this operator will cease to be used in generating plans. Please refer to link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/store-formats[Operations Manual -> Store formats] for futher details on the various store formats available. .PartitionedUndirectedUnionRelationshipTypesScan ====== diff --git a/modules/ROOT/pages/planning-and-tuning/query-tuning.adoc b/modules/ROOT/pages/planning-and-tuning/query-tuning.adoc index b2ea62653..ad8cfbb3a 100644 --- a/modules/ROOT/pages/planning-and-tuning/query-tuning.adoc +++ b/modules/ROOT/pages/planning-and-tuning/query-tuning.adoc @@ -248,8 +248,8 @@ This setting is experimental, and using it in a production environment is discou Cypher replanning occurs in the following circumstances: * When the query is not in the cache. -This can either be when the server is first started or restarted, if the cache has recently been cleared, or if link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings#config_server.db.query_cache_size[server.db.query_cache_size] was exceeded. -* When the time has past the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings#config_dbms.cypher.min_replan_interval[dbms.cypher.min_replan_interval] value, and the database statistics have changed more than the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings#config_dbms.cypher.statistics_divergence_threshold[dbms.cypher.statistics_divergence_threshold] value. +This can either be when the server is first started or restarted, if the cache has recently been cleared, or if link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings#config_server.db.query_cache_size[server.db.query_cache_size] was exceeded. +* When the time has past the link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings#config_dbms.cypher.min_replan_interval[dbms.cypher.min_replan_interval] value, and the database statistics have changed more than the link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings#config_dbms.cypher.statistics_divergence_threshold[dbms.cypher.statistics_divergence_threshold] value. There may be situations where xref::planning-and-tuning/execution-plans.adoc[Cypher query planning] can occur at a non-ideal time. For example, when a query must be as fast as possible and a valid plan is already in place. @@ -328,4 +328,4 @@ Avoiding the inference of multiple labels improves accuracy for nodes with sever // In general, inferring more information should improve the estimation and thereby the planner's decisions. // Should this not be the case, this setting provides the means to disable inference. -If this query option is not provided, then the value set in link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_dbms.cypher.infer_schema_parts[Operations Manual -> Configuration settings -> dbms.cypher.infer_schema_parts] will be used. +If this query option is not provided, then the value set in link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_dbms.cypher.infer_schema_parts[Operations Manual -> Configuration settings -> dbms.cypher.infer_schema_parts] will be used. diff --git a/modules/ROOT/pages/planning-and-tuning/runtimes/reference.adoc b/modules/ROOT/pages/planning-and-tuning/runtimes/reference.adoc index 015a83712..f9de72cb0 100644 --- a/modules/ROOT/pages/planning-and-tuning/runtimes/reference.adoc +++ b/modules/ROOT/pages/planning-and-tuning/runtimes/reference.adoc @@ -27,7 +27,7 @@ For a full list of all available Cypher write clauses, see the xref:clauses/inde It is not possible to use the parallel runtime if a change has been made to the state of a transaction. -For example, the following transaction (initiated on link:{neo4j-docs-base-uri}/operations-manual/{page-version}/tools/cypher-shell[Cypher Shell]) will be rolled back, because executing a Cypher query will make changes to the state of a transaction. +For example, the following transaction (initiated on link:{neo4j-docs-base-uri}/operations-manual/current/tools/cypher-shell[Cypher Shell]) will be rolled back, because executing a Cypher query will make changes to the state of a transaction. .Step 1: Initiate a new transaction and change its state by creating a node [source, cypher, role=test-skip] @@ -49,7 +49,7 @@ RETURN 42 An error occurred while in an open transaction. The transaction will be rolled back and terminated. Error: The parallel runtime is not supported if there are changes in the transaction state. Use another runtime. ---- -For more information about transactions in Neo4j, see the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/transaction-management[Operations Manual -> Transaction management]. +For more information about transactions in Neo4j, see the link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/transaction-management[Operations Manual -> Transaction management]. [[configuration-settings]] == Configuration settings @@ -73,7 +73,7 @@ m| 0 Setting `server.cypher.parallel.worker_limit` to a negative number `-n` where `n` is greater than the total number of cores will disable the parallel runtime. -For more information about configuration settings in Neo4j, see the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration[Operations Manual -> Configuration.] +For more information about configuration settings in Neo4j, see the link:{neo4j-docs-base-uri}/operations-manual/current/configuration[Operations Manual -> Configuration.] [[aura]] == Aura @@ -103,7 +103,7 @@ Procedures and functions that read the database are supported by the parallel ru Apart from this, there are two categories of procedures and functions to keep in mind when using the parallel runtime. The first can be categorized as _updating procedures_. -These are procedures that update the graph with write queries, such as the Neo4j procedures link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_createlabel[db.createLabel] and link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_createproperty[db.createProperty]. +These are procedures that update the graph with write queries, such as the Neo4j procedures link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_createlabel[db.createLabel] and link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_createproperty[db.createProperty]. If such procedures are called in a query run on the parallel runtime, the query will fail. The second can be categorized as _non-thread-safe_ procedures and functions. @@ -129,66 +129,66 @@ Instead the query will automatically run on the pipelined runtime. | Procedure -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_awaitindex[db.awaitIndex] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_awaitindex[db.awaitIndex] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_awaitindexes[db.awaitIndexes] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_awaitindexes[db.awaitIndexes] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_checkpoint[db.checkpoint] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_checkpoint[db.checkpoint] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_info[db.info] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_info[db.info] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_labels[db.labels] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_labels[db.labels] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_listlocks[db.listLocks] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_listlocks[db.listLocks] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_ping[db.ping] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_ping[db.ping] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_propertykeys[db.propertyKeys] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_propertykeys[db.propertyKeys] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_prepareforreplanning[db.prepareForReplanning] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_prepareforreplanning[db.prepareForReplanning] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_relationshiptypes[db.relationshipTypes] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_relationshiptypes[db.relationshipTypes] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_resampleindex[db.resampleIndex] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_resampleindex[db.resampleIndex] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_resampleoutdatedindexes[db.resampleOutdatedIndexes] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_resampleoutdatedindexes[db.resampleOutdatedIndexes] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_schema_nodetypeproperties[db.schema.nodeTypeProperties] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_schema_nodetypeproperties[db.schema.nodeTypeProperties] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_schema_reltypeproperties[db.schema.relTypeProperties] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_schema_reltypeproperties[db.schema.relTypeProperties] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_db_schema_visualization[db.schema.visualization] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_db_schema_visualization[db.schema.visualization] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_dbms_checkconfigvalue[dbms.checkConfigValue] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_dbms_checkconfigvalue[dbms.checkConfigValue] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_dbms_listactivelocks[dbms.listActiveLocks] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_dbms_listactivelocks[dbms.listActiveLocks] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_dbms_listpools[dbms.listPools] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_dbms_listpools[dbms.listPools] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_dbms_scheduler_failedjobs[dbms.scheduler.failedJobs] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_dbms_scheduler_failedjobs[dbms.scheduler.failedJobs] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_dbms_scheduler_groups[dbms.scheduler.groups] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_dbms_scheduler_groups[dbms.scheduler.groups] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_dbms_scheduler_jobs[dbms.scheduler.jobs] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_dbms_scheduler_jobs[dbms.scheduler.jobs] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_dbms_upgrade[dbms.upgrade] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_dbms_upgrade[dbms.upgrade] -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures/#procedure_dbms_upgradestatus[dbms.upgradeStatus] +| link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures/#procedure_dbms_upgradestatus[dbms.upgradeStatus] |=== [[apoc]] === APOC -The link:{neo4j-docs-base-uri}/apoc/{page-version}/[APOC library] contains procedures and functions which extend the use of Cypher. +The link:{neo4j-docs-base-uri}/apoc/current/[APOC library] contains procedures and functions which extend the use of Cypher. There are a number of APOC procedures and functions that are not considered thread-safe, and *cannot* be run on the parallel runtime. -For information about these, refer to the pages of the individual link:{neo4j-docs-base-uri}/apoc/{page-version}/overview/[procedures and functions] in the APOC Manual. +For information about these, refer to the pages of the individual link:{neo4j-docs-base-uri}/apoc/current/overview/[procedures and functions] in the APOC Manual. [[user-defined-functions]] === User-defined functions User-defined functions are simpler forms of procedures that return a single value and are read-only. -To learn more about user-defined functions in Neo4j, see the link:{neo4j-docs-base-uri}/java-reference/{page-version}/extending-neo4j/functions/[Java Reference Manual -> User-defined functions]. +To learn more about user-defined functions in Neo4j, see the link:{neo4j-docs-base-uri}/java-reference/current/extending-neo4j/functions/[Java Reference Manual -> User-defined functions]. Similar to Neo4j and APOC procedures, any user-defined function that starts a new transaction by executing a Cypher query is not considered thread-safe and will not be supported by the parallel runtime (this includes all user-defined aggregating functions). diff --git a/modules/ROOT/pages/query-caches/index.adoc b/modules/ROOT/pages/query-caches/index.adoc index fb2bde480..57cc4d906 100644 --- a/modules/ROOT/pages/query-caches/index.adoc +++ b/modules/ROOT/pages/query-caches/index.adoc @@ -16,7 +16,7 @@ For more information, see xref:query-caches/unified-query-caches.adoc[Unifying q == Configure caches The following is a summary of the query cache configurations. -For more information, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/[Operations Manual -> Configuration settings]. +For more information, see link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/[Operations Manual -> Configuration settings]. .Query cache configurations [options="header", width="100%", cols="4m,3a,1m"] @@ -25,15 +25,15 @@ For more information, see link:{neo4j-docs-base-uri}/operations-manual/{page-ver | Description | Default -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_server.memory.query_cache.sharing_enabled[server.memory.query_cache.sharing_enabled] +| link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_server.memory.query_cache.sharing_enabled[server.memory.query_cache.sharing_enabled] | label:enterprise-edition[Enterprise only] Enable sharing cache space between different databases. With this option turned on, databases will share cache space, but not cache entries. | false -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_server.memory.query_cache.shared_cache_num_entries[server.memory.query_cache.shared_cache_num_entries] +| link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_server.memory.query_cache.shared_cache_num_entries[server.memory.query_cache.shared_cache_num_entries] |label:enterprise-edition[Enterprise only] The number of cached queries for all databases. This setting is only deciding cache size when `server.memory.query_cache.sharing_enabled` is set to `true`. | 1000 -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_server.memory.query_cache.per_db_cache_num_entries[server.memory.query_cache.per_db_cache_num_entries] +| link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_server.memory.query_cache.per_db_cache_num_entries[server.memory.query_cache.per_db_cache_num_entries] | The number of cached queries per database. This setting is only deciding cache size when `server.memory.query_cache.sharing_enabled` is set to `false`. | 1000 diff --git a/modules/ROOT/pages/query-caches/unified-query-caches.adoc b/modules/ROOT/pages/query-caches/unified-query-caches.adoc index 74aa3f86a..20c7a1ca8 100644 --- a/modules/ROOT/pages/query-caches/unified-query-caches.adoc +++ b/modules/ROOT/pages/query-caches/unified-query-caches.adoc @@ -12,12 +12,12 @@ To enable the unified query caches, set the option `server.memory.query_cache.sh | Description | Default -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_server.memory.query_cache.sharing_enabled[server.memory.query_cache.sharing_enabled] +| link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_server.memory.query_cache.sharing_enabled[server.memory.query_cache.sharing_enabled] | label:enterprise-edition[Enterprise only] Enable sharing cache space between different databases. With this option turned on, databases will share cache space, but not cache entries. | false -| link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings/#config_server.memory.query_cache.shared_cache_num_entries[server.memory.query_cache.shared_cache_num_entries] +| link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings/#config_server.memory.query_cache.shared_cache_num_entries[server.memory.query_cache.shared_cache_num_entries] | label:enterprise-edition[Enterprise only] The number of cached queries for all databases. This setting is only deciding cache size when `server.memory.query_cache.sharing_enabled` is set to `true`. | 1000 diff --git a/modules/ROOT/pages/subqueries/subqueries-in-transactions.adoc b/modules/ROOT/pages/subqueries/subqueries-in-transactions.adoc index 9fa9f20bf..5da6b9245 100644 --- a/modules/ROOT/pages/subqueries/subqueries-in-transactions.adoc +++ b/modules/ROOT/pages/subqueries/subqueries-in-transactions.adoc @@ -216,7 +216,7 @@ For larger data sets, you might want to use larger batch sizes, such as `10000 R [[composite-databases]] == Composite databases -As of Neo4j 5.18, `CALL { ... } IN TRANSACTIONS` can be used with link:{neo4j-docs-base-uri}/operations-manual/{page-version}/composite-databases[composite databases]. +As of Neo4j 5.18, `CALL { ... } IN TRANSACTIONS` can be used with link:{neo4j-docs-base-uri}/operations-manual/current/composite-databases[composite databases]. Even though composite databases allow accessing multiple graphs in a single query, only one graph can be modified in a single transaction. `CALL { ... } IN TRANSACTIONS` offers a way of constructing queries which modify multiple graphs. @@ -656,7 +656,7 @@ Use the xref:subqueries/subqueries-in-transactions.adoc#status-report[status rep When a write transaction occurs, Neo4j takes locks to preserve data consistency while updating. For example, when creating or deleting a relationship, a write lock is taken on both the specific relationship and its connected nodes. -A deadlock happens when two transactions are blocked by each other because they are attempting to concurrently modify a node or a relationship that is locked by the other transaction (for more information about locks and deadlocks in Neo4j, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/concurrent-data-access/#_locks[Operations Manual -> Concurrent data access]. +A deadlock happens when two transactions are blocked by each other because they are attempting to concurrently modify a node or a relationship that is locked by the other transaction (for more information about locks and deadlocks in Neo4j, see link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/concurrent-data-access/#_locks[Operations Manual -> Concurrent data access]. A deadlock may occur when using `CALL { ... } IN CONCURRENT TRANSACTIONS` if the transactions for two or more batches try to take the same locks in an order that results in a circular dependency between them. If so, the impacted transactions are always rolled back, and an error is thrown unless the query is appended with `ON ERROR CONTINUE` or `ON ERROR BREAK`. diff --git a/modules/ROOT/pages/syntax/naming.adoc b/modules/ROOT/pages/syntax/naming.adoc index a483e62f7..68e0824c2 100644 --- a/modules/ROOT/pages/syntax/naming.adoc +++ b/modules/ROOT/pages/syntax/naming.adoc @@ -76,7 +76,7 @@ Here are the recommended naming conventions: [[identifier-length-limit]] == Length limit of identifiers -Neo4j's link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/store-formats/#store-format-overview[block format] implements xref:appendix/gql-conformance/index.adoc[GQL's] limit on the maximum length of identifiers. +Neo4j's link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/store-formats/#store-format-overview[block format] implements xref:appendix/gql-conformance/index.adoc[GQL's] limit on the maximum length of identifiers. The maximum limit is set to 16,383 characters in an identifier. This means that node labels, relationship types, and property keys cannot include more than 16,383 characters. diff --git a/modules/ROOT/pages/syntax/parameters.adoc b/modules/ROOT/pages/syntax/parameters.adoc index 06a4f0605..f37a97fb4 100644 --- a/modules/ROOT/pages/syntax/parameters.adoc +++ b/modules/ROOT/pages/syntax/parameters.adoc @@ -32,11 +32,11 @@ Setting parameters when running a query is dependent on the client environment. For example: * To set a parameter in Cypher Shell use `+:param name => 'Joe'+`. - For more information refer to link:{neo4j-docs-base-uri}/operations-manual/{page-version}/tools/cypher-shell#cypher-shell-parameters[Operations Manual -> Cypher Shell - Query Parameters]. + For more information refer to link:{neo4j-docs-base-uri}/operations-manual/current/tools/cypher-shell#cypher-shell-parameters[Operations Manual -> Cypher Shell - Query Parameters]. * For Neo4j Browser use the same syntax as Cypher Shell, `+:param name => 'Joe'+`. * When using drivers, the syntax is dependent on the language choice. See the examples in _Transactions_ in the link:{docs-base-uri}[Neo4j Driver manuals]. -* For usage via the Neo4j HTTP API, see the link:{neo4j-docs-base-uri}/http-api/{page-version}/index#http-api[HTTP API documentation]. +* For usage via the Neo4j HTTP API, see the link:{neo4j-docs-base-uri}/http-api/current/index#http-api[HTTP API documentation]. We provide below a comprehensive list of examples of parameter usage. In these examples, parameters are given in JSON; the exact manner in which they are to be submitted depends upon the driver being used. diff --git a/modules/ROOT/pages/values-and-types/maps.adoc b/modules/ROOT/pages/values-and-types/maps.adoc index 8d50aae27..a3e005a04 100644 --- a/modules/ROOT/pages/values-and-types/maps.adoc +++ b/modules/ROOT/pages/values-and-types/maps.adoc @@ -17,7 +17,7 @@ The behavior of the `[]` operator with respect to `null` is detailed xref::value == Literal maps The key names in a map must be literals. -If returned through an link:{neo4j-docs-base-uri}/http-api/{page-version}[HTTP API call], a JSON object will be returned. +If returned through an link:{neo4j-docs-base-uri}/http-api/current[HTTP API call], a JSON object will be returned. If returned in Java, an object of type `java.util.Map` will be returned. diff --git a/modules/ROOT/pages/values-and-types/temporal.adoc b/modules/ROOT/pages/values-and-types/temporal.adoc index 546668428..ddcb589c1 100644 --- a/modules/ROOT/pages/values-and-types/temporal.adoc +++ b/modules/ROOT/pages/values-and-types/temporal.adoc @@ -75,7 +75,7 @@ See xref::values-and-types/temporal.adoc#cypher-temporal-specify-time-zone[speci The named time zone form uses the rules of the IANA time zone database to manage _daylight savings time_ (DST). -The default time zone of the database can be configured using the configuration option link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/configuration-settings#config_db.temporal.timezone[`db.temporal.timezone`]. +The default time zone of the database can be configured using the configuration option link:{neo4j-docs-base-uri}/operations-manual/current/configuration/configuration-settings#config_db.temporal.timezone[`db.temporal.timezone`]. This configuration option influences the creation of temporal types for the following functions: * Getting the current date and time without specifying a time zone. From 230001bb576dab9332f50c017414aeec8a8e044e Mon Sep 17 00:00:00 2001 From: Gem Lamont <106068376+gem-neo4j@users.noreply.github.com> Date: Thu, 23 Jan 2025 08:54:04 +0100 Subject: [PATCH 29/32] Remove invalid duration field (#1174) --- modules/ROOT/pages/functions/temporal/duration.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/functions/temporal/duration.adoc b/modules/ROOT/pages/functions/temporal/duration.adoc index 68f69f9d5..74503b98f 100644 --- a/modules/ROOT/pages/functions/temporal/duration.adoc +++ b/modules/ROOT/pages/functions/temporal/duration.adoc @@ -19,7 +19,7 @@ See also xref::values-and-types/temporal.adoc[Temporal values] and xref::syntax/ | *Syntax* 3+| `duration(input)` | *Description* 3+| Creates a `DURATION` value. .2+| *Arguments* | *Name* | *Type* | *Description* -| `input` | `ANY` | A map optionally containing the following keys: 'years', 'quarters', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds', or 'nanoseconds'. +| `input` | `ANY` | A map optionally containing the following keys: 'years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds', or 'nanoseconds'. | *Returns* 3+| `DURATION` |=== From df9e288cce7d9dbe258114dda4968ae547c3878a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Tue, 28 Jan 2025 14:33:18 +0100 Subject: [PATCH 30/32] Revert changes to pattern query plans (#1176) Reverts changes made here: https://github.com/neo4j/docs-cypher/pull/1166 due to a rolback in product --- .../operators/operators-detail.adoc | 236 +++++++++--------- 1 file changed, 113 insertions(+), 123 deletions(-) diff --git a/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc b/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc index 4240d527c..720d0d721 100644 --- a/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc +++ b/modules/ROOT/pages/planning-and-tuning/operators/operators-detail.adoc @@ -4118,32 +4118,30 @@ Runtime version {neo4j-version} Batch size 128 -+--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | -+--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +ProduceResults | 0 | me, friend | 3 | 34 | 136 | 0 | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +Filter | 1 | friend:Person | 3 | 34 | 68 | | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +NullifyMetadata | 10 | | 3 | 34 | 0 | | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +Repeat(Trail) | 2 | (me) (...){1, 2} (friend) | 3 | 34 | 0 | 30000 | 0/0 | 5.379 | Fused in Pipeline 2 | -| |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| | +Filter | 3 | NOT anon_5 = anon_3 AND (NOT cache[a.name] = cache[c.name] AND NOT cache[b.name] = cache[c.name]) AN | 6 | 34 | 92 | | | | | -| | | | | D isRepeatTrailUnique(anon_5) | | | | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | 4 | (b)-[anon_5:FRIENDS_WITH]-(c) | 26 | 92 | 138 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Filter | 5 | NOT cache[a.name] = cache[b.name] AND isRepeatTrailUnique(anon_3) | 15 | 46 | 132 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | 6 | (a)-[anon_3:FRIENDS_WITH]-(b) | 31 | 66 | 100 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +CacheProperties | 7 | cache[a.name] | 18 | 34 | 68 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Argument | 8 | a | 18 | 34 | 0 | 15880 | 2/0 | 5.556 | Fused in Pipeline 1 | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +NodeByLabelScan | 9 | me:Person | 14 | 14 | 15 | 376 | 1/0 | 0.727 | In Pipeline 0 | -+--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ ++------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | ++------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +ProduceResults | 0 | me, friend | 2 | 34 | 136 | 0 | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +Filter | 1 | friend:Person | 2 | 34 | 68 | | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +NullifyMetadata | 9 | | 2 | 34 | 0 | | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +Repeat(Trail) | 2 | (me) (...){1, 2} (friend) | 2 | 34 | 0 | 30112 | 0/0 | 4.943 | Fused in Pipeline 2 | +| |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| | +Filter | 3 | NOT anon_5 = anon_3 AND (NOT cache[a.name] = cache[c.name] AND NOT cache[b.name] = cache[c.name]) AN | 1 | 34 | 92 | | | | | +| | | | | D isRepeatTrailUnique(anon_5) | | | | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Expand(All) | 4 | (b)-[anon_5:FRIENDS_WITH]-(c) | 3 | 92 | 138 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Filter | 5 | NOT cache[a.name] = cache[b.name] AND isRepeatTrailUnique(anon_3) | 5 | 46 | 198 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Expand(All) | 6 | (a)-[anon_3:FRIENDS_WITH]-(b) | 10 | 66 | 100 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Argument | 7 | a | 15 | 34 | 0 | 15992 | 2/0 | 5.253 | Fused in Pipeline 1 | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +NodeByLabelScan | 8 | me:Person | 14 | 14 | 15 | 376 | 1/0 | 1.130 | In Pipeline 0 | ++------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ Total database accesses: 747, total allocated memory: 45832 ---- @@ -4179,32 +4177,30 @@ Runtime version {neo4j-version} Batch size 128 -+--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | -+--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +ProduceResults | 0 | me, friend | 3 | 34 | 136 | 0 | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +Filter | 1 | friend:Person | 3 | 34 | 68 | | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +NullifyMetadata | 10 | | 3 | 34 | 0 | | | | | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| +Repeat(Trail) | 2 | (me) (...){1, 2} (friend) | 3 | 34 | 0 | 30000 | 0/0 | 5.379 | Fused in Pipeline 2 | -| |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| | +Filter | 3 | NOT anon_5 = anon_3 AND (NOT cache[a.name] = cache[c.name] AND NOT cache[b.name] = cache[c.name]) AN | 6 | 34 | 92 | | | | | -| | | | | D isRepeatTrailUnique(anon_5) | | | | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | 4 | (b)-[anon_5:FRIENDS_WITH]-(c) | 26 | 92 | 138 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Filter | 5 | NOT cache[a.name] = cache[b.name] AND isRepeatTrailUnique(anon_3) | 15 | 46 | 132 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | 6 | (a)-[anon_3:FRIENDS_WITH]-(b) | 31 | 66 | 100 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +CacheProperties | 7 | cache[a.name] | 18 | 34 | 68 | | | | | -| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | -| | +Argument | 8 | a | 18 | 34 | 0 | 15880 | 2/0 | 5.556 | Fused in Pipeline 1 | -| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +NodeByLabelScan | 9 | me:Person | 14 | 14 | 15 | 376 | 1/0 | 0.727 | In Pipeline 0 | -+--------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ ++------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | ++------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +ProduceResults | 0 | me, friend | 2 | 34 | 136 | 0 | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +Filter | 1 | friend:Person | 2 | 34 | 68 | | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +NullifyMetadata | 9 | | 2 | 34 | 0 | | | | | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| +Repeat(Trail) | 2 | (me) (...){1, 2} (friend) | 2 | 34 | 0 | 30112 | 0/0 | 4.824 | Fused in Pipeline 2 | +| |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| | +Filter | 3 | NOT anon_5 = anon_3 AND (NOT cache[a.name] = cache[c.name] AND NOT cache[b.name] = cache[c.name]) AN | 1 | 34 | 92 | | | | | +| | | | | D isRepeatTrailUnique(anon_5) | | | | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Expand(All) | 4 | (b)-[anon_5:FRIENDS_WITH]-(c) | 3 | 92 | 138 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Filter | 5 | NOT cache[a.name] = cache[b.name] AND isRepeatTrailUnique(anon_3) | 5 | 46 | 198 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Expand(All) | 6 | (a)-[anon_3:FRIENDS_WITH]-(b) | 10 | 66 | 100 | | | | | +| | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | | +| | +Argument | 7 | a | 15 | 34 | 0 | 15992 | 2/0 | 5.307 | Fused in Pipeline 1 | +| | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +NodeByLabelScan | 8 | me:Person | 14 | 14 | 15 | 376 | 1/0 | 0.183 | In Pipeline 0 | ++------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ Total database accesses: 747, total allocated memory: 45832 ---- @@ -4410,27 +4406,25 @@ Runtime SLOTTED Runtime version {neo4j-version} -+--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | -+--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +ProduceResults | 0 | `other.name` | 35 | 24 | 0 | 0 | 0/0 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +Projection | 1 | cache[other.name] AS `other.name` | 35 | 24 | 0 | | 0/0 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +TriadicSelection | 2 | WHERE NOT (me)--(other) | 35 | 24 | 0 | | 0/0 | -| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| | +CacheProperties | 3 | cache[other.name] | 16 | 24 | 24 | | 0/0 | -| | | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| | +Filter | 4 | NOT anon_2 = anon_0 | 16 | 24 | 0 | | 0/0 | -| | | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| | +Expand(All) | 5 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | 0/0 | -| | | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| | +Argument | 6 | anon_1, anon_0 | 24 | 24 | 0 | | 0/0 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +Expand(All) | 7 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | 2/0 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ -| +NodeByLabelScan | 8 | me:Person | 14 | 14 | 15 | | 1/0 | -+--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ ++-------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | ++-------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +ProduceResults | 0 | `other.name` | 15 | 24 | 0 | 0 | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +Projection | 1 | other.name AS `other.name` | 15 | 24 | 24 | | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +Filter | 2 | NOT anon_2 = anon_0 | 15 | 24 | 0 | | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +TriadicSelection | 3 | WHERE NOT (me)--(other) | 15 | 48 | 0 | | 0/0 | +| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| | +Expand(All) | 4 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | 0/0 | +| | | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| | +Argument | 5 | anon_1, anon_0 | 24 | 24 | 0 | | 0/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +Expand(All) | 6 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | 2/0 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+ +| +NodeByLabelScan | 7 | me:Person | 14 | 14 | 15 | | 1/0 | ++-------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+ Total database accesses: 246, total allocated memory: 64 ---- @@ -4471,31 +4465,29 @@ Runtime version {neo4j-version} Batch size 128 -+--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | -+--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +ProduceResults | 0 | `other.name` | 35 | 24 | 0 | 0 | 0/0 | 0.180 | | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +Projection | 1 | cache[other.name] AS `other.name` | 35 | 24 | 0 | | 0/0 | 0.064 | | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +TriadicFilter | 11 | WHERE NOT (me)--(other) | 35 | 24 | 0 | 7512 | 0/0 | 0.303 | In Pipeline 3 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Apply | 10 | | 16 | 24 | 0 | | 0/0 | | | -| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| | +CacheProperties | 3 | cache[other.name] | 16 | 24 | 48 | | | | | -| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Filter | 4 | NOT anon_2 = anon_0 | 16 | 24 | 0 | | | | | -| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | 5 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | | | | -| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Argument | 6 | anon_1, anon_0 | 24 | 24 | 0 | 4464 | 0/0 | 0.575 | Fused in Pipeline 2 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +TriadicBuild | 9 | (me)--(anon_1) | 24 | 24 | 0 | 1080 | 0/0 | 1.608 | In Pipeline 1 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Expand(All) | 7 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | | | | -| | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| +NodeByLabelScan | 8 | me:Person | 14 | 14 | 15 | 376 | 3/0 | 0.559 | Fused in Pipeline 0 | -+--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +ProduceResults | 0 | `other.name` | 15 | 24 | 0 | 0 | 0/0 | 0.172 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +Projection | 1 | other.name AS `other.name` | 15 | 24 | 48 | | 0/0 | 0.162 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +Filter | 2 | NOT anon_2 = anon_0 | 15 | 24 | 0 | | 0/0 | 0.134 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +TriadicFilter | 10 | WHERE NOT (me)--(other) | 15 | 48 | 0 | 7216 | 0/0 | 0.251 | In Pipeline 3 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Apply | 9 | | 16 | 48 | 0 | | 0/0 | | | +| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| | +Expand(All) | 4 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | | | | +| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| | +Argument | 5 | anon_1, anon_0 | 24 | 24 | 0 | 4464 | 0/0 | 0.384 | Fused in Pipeline 2 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +TriadicBuild | 8 | (me)--(anon_1) | 24 | 24 | 0 | 1080 | 0/0 | 1.670 | In Pipeline 1 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Expand(All) | 6 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | | | | +| | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| +NodeByLabelScan | 7 | me:Person | 14 | 14 | 15 | 376 | 3/0 | 0.361 | Fused in Pipeline 0 | ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ Total database accesses: 256, total allocated memory: 7376 ---- @@ -4536,31 +4528,29 @@ Runtime version {neo4j-version} Batch size 128 -+--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | -+--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +ProduceResults | 0 | `other.name` | 35 | 24 | 0 | 0 | 0/0 | 0.198 | | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +Projection | 1 | cache[other.name] AS `other.name` | 35 | 24 | 0 | | 0/0 | 0.095 | | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | -| +TriadicFilter | 11 | WHERE NOT (me)--(other) | 35 | 24 | 0 | 7512 | 0/0 | 0.176 | In Pipeline 3 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Apply | 10 | | 16 | 24 | 0 | | 0/0 | | | -| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| | +CacheProperties | 3 | cache[other.name] | 16 | 24 | 48 | | | | | -| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Filter | 4 | NOT anon_2 = anon_0 | 16 | 24 | 0 | | | | | -| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Expand(All) | 5 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | | | | -| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| | +Argument | 6 | anon_1, anon_0 | 24 | 24 | 0 | 4464 | 0/0 | 0.990 | Fused in Pipeline 2 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +TriadicBuild | 9 | (me)--(anon_1) | 24 | 24 | 0 | 1080 | 0/0 | 0.304 | In Pipeline 1 | -| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ -| +Expand(All) | 7 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | | | | -| | +----+----------------------------------------+----------------+------+---------+----------------+ | | | -| +NodeByLabelScan | 8 | me:Person | 14 | 14 | 15 | 376 | 3/0 | 0.399 | Fused in Pipeline 0 | -+--------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline | ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +ProduceResults | 0 | `other.name` | 15 | 24 | 0 | 0 | 0/0 | 0.413 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +Projection | 1 | other.name AS `other.name` | 15 | 24 | 48 | | 0/0 | 0.302 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +Filter | 2 | NOT anon_2 = anon_0 | 15 | 24 | 0 | | 0/0 | 0.268 | | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ | +| +TriadicFilter | 10 | WHERE NOT (me)--(other) | 15 | 48 | 0 | 7216 | 0/0 | 0.298 | In Pipeline 3 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Apply | 9 | | 16 | 48 | 0 | | 0/0 | | | +| |\ +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| | +Expand(All) | 4 | (anon_1)-[anon_2:FRIENDS_WITH]-(other) | 16 | 48 | 72 | | | | | +| | | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| | +Argument | 5 | anon_1, anon_0 | 24 | 24 | 0 | 4464 | 0/0 | 0.563 | Fused in Pipeline 2 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +TriadicBuild | 8 | (me)--(anon_1) | 24 | 24 | 0 | 1080 | 0/0 | 0.403 | In Pipeline 1 | +| | +----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ +| +Expand(All) | 6 | (me)-[anon_0:FRIENDS_WITH]-(anon_1) | 24 | 24 | 38 | | | | | +| | +----+----------------------------------------+----------------+------+---------+----------------+ | | | +| +NodeByLabelScan | 7 | me:Person | 14 | 14 | 15 | 376 | 3/0 | 0.530 | Fused in Pipeline 0 | ++------------------+----+----------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+ Total database accesses: 256, total allocated memory: 7376 ---- From c4762e722f5528db7189f33efce873ded3bad73c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Thu, 30 Jan 2025 11:05:57 +0100 Subject: [PATCH 31/32] Better Unicode example on Parsing page (#1177) --- modules/ROOT/pages/syntax/parsing.adoc | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/modules/ROOT/pages/syntax/parsing.adoc b/modules/ROOT/pages/syntax/parsing.adoc index 54db83bde..66887f583 100644 --- a/modules/ROOT/pages/syntax/parsing.adoc +++ b/modules/ROOT/pages/syntax/parsing.adoc @@ -6,10 +6,20 @@ This page provides a general overview of how Cypher parses an input `STRING`. The Cypher parser takes an arbitrary input `STRING`. -While the syntax of Cypher is described in subsequent chapters, the following details the general rules on which characters are considered valid input. +This page details the general rules on which characters are considered valid input. == Using unicodes in Cypher + Unicodes can generally be escaped as `\uxxx`. +For example, the below query uses the Unicode `u00B0` to search for any recipe descriptions containing the degree symbol, `º`: + +.Using Unicodes in `STRING` matching +[source, cypher] +---- +MATCH (r:Recipe) +WHERE r.description CONTAINS "\u00B0" +RETURN r +---- Additional documentation on escaping rules for `STRING` literals, names and regular expressions can be found here: @@ -17,13 +27,6 @@ Additional documentation on escaping rules for `STRING` literals, names and regu * xref::syntax/naming.adoc#symbolic-names-escaping-rules[Using special characters in names] * xref::clauses/where.adoc#escaping-in-regular-expressions[Regular expressions] -The following example escapes the unicode character `A` (`\u0041`) in the keyword `MATCH`: - -[source, syntax] ----- -M\u0041TCH (m) RETURN m; ----- - The Unicode version used by Cypher depends on the running JVM version. [options="header", cols="1,2,3"] From 9c85b23c9febb91869b5fe5a8e1cfb0152fcf249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Thu, 30 Jan 2025 14:12:37 +0100 Subject: [PATCH 32/32] Fix tables (#1178) --- modules/ROOT/pages/clauses/call.adoc | 6 +-- modules/ROOT/pages/clauses/where.adoc | 3 +- modules/ROOT/pages/functions/aggregating.adoc | 2 +- modules/ROOT/pages/syntax/operators.adoc | 51 +++++++++++-------- .../ROOT/pages/values-and-types/temporal.adoc | 1 - 5 files changed, 37 insertions(+), 26 deletions(-) diff --git a/modules/ROOT/pages/clauses/call.adoc b/modules/ROOT/pages/clauses/call.adoc index 283b594d2..c007a50f4 100644 --- a/modules/ROOT/pages/clauses/call.adoc +++ b/modules/ROOT/pages/clauses/call.adoc @@ -86,7 +86,7 @@ CALL dbms.checkConfigValue('server.bolt.enabled', 'true') | "valid" | "message" | true | "requires restart" -2+d|Rows: 2 +2+d|Rows: 1 |=== ==== @@ -118,7 +118,7 @@ CALL dbms.checkConfigValue($setting, $value) | "valid" | "message" | true | "requires restart" -2+d|Rows: 2 +2+d|Rows: 1 |=== [NOTE] @@ -153,7 +153,7 @@ CALL dbms.checkConfigValue($setting, 'true') | "valid" | "message" | true | "requires restart" -2+d|Rows: 2 +2+d|Rows: 1 |=== ==== diff --git a/modules/ROOT/pages/clauses/where.adoc b/modules/ROOT/pages/clauses/where.adoc index 060b49136..9a3bb0c25 100644 --- a/modules/ROOT/pages/clauses/where.adoc +++ b/modules/ROOT/pages/clauses/where.adoc @@ -384,7 +384,8 @@ For more information, see the section about the xref:syntax/operators.adoc#match | 'Andy' | 'Timothy' | 'Peter' -1+|Rows: 3 + +1+d|Rows: 3 |=== Note that the `IS NORMALIZED` operator returns `null` when used on a non-`STRING` value. diff --git a/modules/ROOT/pages/functions/aggregating.adoc b/modules/ROOT/pages/functions/aggregating.adoc index 9bb8d535f..9e57a6d1d 100644 --- a/modules/ROOT/pages/functions/aggregating.adoc +++ b/modules/ROOT/pages/functions/aggregating.adoc @@ -312,8 +312,8 @@ The `Guy Pearce` node will, therefore, get counted twice when not using `DISTINC | friendOfFriend.name | count(friendOfFriend) | count(ALL friendOfFriend) | count(DISTINCT friendOfFriend) | "Guy Pearce" | 2 | 2 | 1 -4+d|Rows: 1 +4+d|Rows: 1 |=== ====== diff --git a/modules/ROOT/pages/syntax/operators.adoc b/modules/ROOT/pages/syntax/operators.adoc index 599ccf677..1da8140a2 100644 --- a/modules/ROOT/pages/syntax/operators.adoc +++ b/modules/ROOT/pages/syntax/operators.adoc @@ -55,10 +55,8 @@ Even though both *'Anne'* and *'Carol'* have blue eyes, *'blue'* is only returne | +p.eyeColor+ | +"blue"+ | +"brown"+ -1+d|Rows: 2 + -Nodes created: 3 + -Properties set: 6 + -Labels added: 3 + +1+d|Rows: 2 |=== `DISTINCT` is commonly used in conjunction with xref::functions/aggregating.adoc[aggregating functions]. @@ -102,10 +100,8 @@ RETURN p.name | +p.name+ | +"Jane"+ | +"Tom"+ -1+d|Rows: 2 + -Nodes created: 2 + -Properties set: 4 + -Labels added: 2 + +1+d|Rows: 2 |=== @@ -131,10 +127,8 @@ RETURN DISTINCT restaurant.name |=== | +restaurant.name+ | +"Hungry Jo"+ -1+d|Rows: 1 + -Nodes created: 4 + -Properties set: 8 + -Labels added: 4 + +1+d|Rows: 1 |=== See xref::clauses/where.adoc#query-where-basic[Basic usage] for more details on dynamic property access. @@ -165,10 +159,8 @@ All the existing properties on the node are replaced by those provided in the ma |=== | +p.name+ | +p.age+ | +p.livesIn+ | +"Ellen"+ | ++ | +"London"+ -3+d|Rows: 1 + -Nodes created: 1 + -Properties set: 5 + -Labels added: 1 + +3+d|Rows: 1 |=== See xref::clauses/set.adoc#set-replace-properties-using-map[Replace all properties using a map and `=`] for more details on using the property replacement operator `=`. @@ -194,10 +186,8 @@ The properties on the node are updated as follows by those provided in the map: |=== | +p.name+ | +p.age+ | +p.livesIn+ | +"Ellen"+ | +20+ | +"London"+ -3+d|Rows: 1 + -Nodes created: 1 + -Properties set: 4 + -Labels added: 1 + +3+d|Rows: 1 |=== See xref::clauses/set.adoc#set-setting-properties-using-map[Mutate specific properties using a map and `+=`] for more details on using the property mutation operator `+=`. @@ -250,6 +240,7 @@ RETURN b - a AS result |=== | +result+ | +7+ + 1+d|Rows: 1 |=== @@ -292,6 +283,7 @@ RETURN one > two AS result |=== | +result+ | +true+ + 1+d|Rows: 1 |=== @@ -317,6 +309,7 @@ RETURN candidate | +candidate+ | +"John"+ | +"Jonathan"+ + 1+d|Rows: 2 |=== @@ -531,6 +524,7 @@ RETURN number | +4+ | +7+ | +9+ + 1+d|Rows: 3 |=== @@ -560,6 +554,7 @@ RETURN 'neo' + '4j' AS result |=== | +result+ | +"neo4j"+ + 1+d|Rows: 1 |=== @@ -605,6 +600,7 @@ RETURN "the \u212B char" IS NORMALIZED AS normalized |=== | normalized | false + 1+|Rows: 1 |=== @@ -632,6 +628,7 @@ RETURN "the \u212B char" IS NOT NORMALIZED AS notNormalized |=== | notNormalized | true + 1+|Rows: 1 |=== @@ -752,6 +749,7 @@ RETURN aDateTime + aDuration, aDateTime - aDuration |=== | +aDateTime + aDuration+ | +aDateTime - aDuration+ | +1996-10-11T12:31:14.000000002+ | +1972-10-11T12:31:13.999999998+ + 2+d|Rows: 1 |=== @@ -791,6 +789,7 @@ RETURN |=== | +date1+ | +date2+ | +2012-02-28+ | +2012-02-29+ + 2+d|Rows: 1 |=== @@ -812,6 +811,7 @@ RETURN duration1, duration2, duration1 + duration2, duration1 - duration2 |=== | +duration1+ | +duration2+ | +duration1 + duration2+ | +duration1 - duration2+ | +P12Y5M14DT16H13M10.000000001S+ | +P1M-14DT15H49M10S+ | +P12Y6MT32H2M20.000000001S+ | +P12Y4M28DT24M0.000000001S+ + 4+d|Rows: 1 |=== @@ -833,6 +833,7 @@ RETURN aDuration, aDuration * 2, aDuration / 3 |=== | +aDuration+ | +aDuration * 2+ | +aDuration / 3+ | +P14DT13M10.000000001S+ | +P28DT26M20.000000002S+ | +P4DT16H4M23.333333333S+ + 3+d|Rows: 1 |=== @@ -867,6 +868,7 @@ RETURN p.person.name |=== | +p.person.name+ | +"Anne"+ + 1+d|Rows: 1 |=== @@ -896,6 +898,7 @@ RETURN a[$myKey] AS result |=== | +result+ | +"Anne"+ + 1+d|Rows: 1 |=== @@ -930,6 +933,7 @@ RETURN [1,2,3,4,5] + [6,7] AS myList |=== | +myList+ | +[1,2,3,4,5,6,7]+ + 1+d|Rows: 1 |=== @@ -948,6 +952,7 @@ RETURN [1,2,3,4,5] || [6,7] AS myList |=== | myList | [1,2,3,4,5,6,7] + 1+d|Rows: 1 |=== @@ -971,6 +976,7 @@ RETURN number | +number+ | +2+ | +3+ + 1+d|Rows: 2 |=== @@ -997,6 +1003,7 @@ If the left-hand operator had been `[1, 2]` instead of `[2, 1]`, the query would |=== | +inList+ | +true+ + 1+d|Rows: 1 |=== @@ -1015,6 +1022,7 @@ However, `IN` evaluates to `false` as the right-hand operand does not contain an |=== | +inList+ | +false+ + 1+d|Rows: 1 |=== @@ -1047,6 +1055,7 @@ The square brackets will extract the elements from the start index `1`, and up t |=== | +result+ | +["John","Bill"]+ + 1+d|Rows: 1 |=== @@ -1076,6 +1085,7 @@ RETURN names[$myIndex] AS result |=== | +result+ | +"John"+ + 1+d|Rows: 1 |=== @@ -1097,6 +1107,7 @@ RETURN 3 IN l[0] AS result |=== | +result+ | +true+ + 1+d|Rows: 1 |=== diff --git a/modules/ROOT/pages/values-and-types/temporal.adoc b/modules/ROOT/pages/values-and-types/temporal.adoc index ddcb589c1..9d7fd4a25 100644 --- a/modules/ROOT/pages/values-and-types/temporal.adoc +++ b/modules/ROOT/pages/values-and-types/temporal.adoc @@ -505,7 +505,6 @@ For more information, see the xref::values-and-types/temporal.adoc#cypher-tempor | | | - |===