Skip to content

docs(path): document the completed path module config, uniqueness NODE_GLOBAL and filter sequences - #1718

Draft
imilinovic wants to merge 4 commits into
release/3.13from
feat/path-subgraph-node-filters
Draft

docs(path): document the completed path module config, uniqueness NODE_GLOBAL and filter sequences#1718
imilinovic wants to merge 4 commits into
release/3.13from
feat/path-subgraph-node-filters

Conversation

@imilinovic

@imilinovic imilinovic commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Release note

Documents the completed path module config map, the repeating filter sequences, and the filter
behaviour changes:

  • path.expand_config(), the node-identity filters (allowlistNodes, denylistNodes, endNodes,
    terminatorNodes), limit, the minLevel/maxLevel aliases, and the |-separated string form of
    relationshipFilter and labelFilter.
  • uniqueness, including NODE_GLOBAL — one path per reachable node, what a node being spent by the
    first path that reaches it means for minHops, how several start nodes behave, and why it is the one
    mode an absent maxHops is safe under.
  • A new Sequences section: comma-separated steps in labelFilter and relationshipFilter, the
    sequence key, and beginSequenceAtStart — which now shifts the sequence rather than only exempting
    the start node from the label filter. Covers which procedures accept them and which steps are
    rejected.
  • * as a label wildcard under all four prefixes, added to the label filter tables, together with the
    note that it is not a relationship wildcard and what to write instead.
  • Corrects the relationship filter tables — a direction marker now counts wherever it appears in an
    entry and < takes precedence, so <TYPE> is an incoming filter rather than the reciprocal-pair one
    the tables described — and records which keys are accepted and ignored, which are errors, and the
    start-node, hop-bound and depth-cap behaviour.

Three statements that no longer held are corrected: that the traversal-wide uniqueness modes are
unavailable, that sequence is unimplemented, and that beginSequenceAtStart is accepted and ignored
(the last two were also stated for path.subgraph_nodes and path.subgraph_all, where both keys do
apply).

Related product PRs

memgraph/memgraph#4530

Checklist:

  • Add appropriate milestone (current release cycle)
  • Add bugfix or feature label, based on the product PR type you're documenting
  • Make sure all relevant tech details are documented
  • Check all content with Grammarly
  • Perform a self-review of my code
  • The build passes locally
  • My changes generate no new warnings or errors

Every example output on this page was produced by running the query against a build of
memgraph/memgraph#4530, not written by hand — including the ones in the new Sequences section and
the NODE_GLOBAL example, all of which run against the graph the page already builds.

One thing left alone deliberately: expand()'s Example 2 omits the zero-hop Dog path from its
output table. That is a pre-existing inaccuracy — the current release returns it too — so it is not
part of this change.

Adds `expand_config()`, the config-map form of `expand()`, with the full config
table, the keys that are accepted and ignored, and three worked examples.

Extends the `subgraph_all()` and `subgraph_nodes()` config tables with the
node-identity filters, `limit`, and the `minLevel`/`maxLevel` aliases, and
records that `bfs`, `uniqueness` and `beginSequenceAtStart` are accepted there
and ignored while an unrecognized key is an error.

Corrects the relationship filter tables: a direction marker now counts wherever
it appears in an entry and `<` wins over `>`, so `<TYPE>` is an incoming filter
rather than a reciprocal-pair one. Documents the `|`-separated string form of
both filters, the merge of two entries for the same type, that a `:` is ignored,
that an empty or bare-prefix entry is an error, that a termination label below
the lower hop bound no longer ends the walk, that the start node is exempt from
the label filter unless `filterStartNode` is set, and the `-1` hop-bound and
depth-cap behaviour.
@imilinovic imilinovic added this to the 3.13 milestone Aug 10, 2026
@imilinovic imilinovic added the feature Documentation related to a new product feature of feature update label Aug 10, 2026
@imilinovic imilinovic self-assigned this Aug 10, 2026
@vercel

vercel Bot commented Aug 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
documentation Ready Ready Preview Aug 11, 2026 2:04pm

Request Review

Follows the two fixes made after review: an entry made only of separators, such
as ':', is rejected rather than quietly filtering out every relationship, and a
limit now follows the order the start nodes were listed in.
…ences

`uniqueness` gains `NODE_GLOBAL`, which returns one path per reachable node. The
config table, the surrounding prose and a worked example cover what that means
for a node reachable at two depths, for a `minHops` above every node's own depth,
and for several start nodes.

A new Sequences section covers the comma-separated steps of `labelFilter` and
`relationshipFilter`, the `sequence` key that spells both in one alternating
string, and `beginSequenceAtStart` -- which now acts rather than being ignored,
including on the two subgraph procedures. Every example runs against the graph
the page already builds, and its output is the measured one.

Corrects three statements that no longer hold: that the traversal-wide uniqueness
modes are unavailable, that `sequence` is unimplemented, and that
`beginSequenceAtStart` is accepted and ignored. Adds `*` to the label filter
tables as the wildcard it now is, notes that it is not one in a relationship
filter, and records the step-with-no-filter and comma-in-a-list-entry errors.
@imilinovic imilinovic changed the title docs(path): document the completed path module config and the filter changes docs(path): document the completed path module config, uniqueness NODE_GLOBAL and filter sequences Aug 11, 2026
…rule

An exempt start node is not returned under a '>' or '/' prefix, whatever its own
labels are, and setting filterStartNode is what lets one carrying an end or
termination label come back. Only the hop aliases are rejected when both
spellings are given; the deprecated node-list spellings are read, preferred
key first.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Documentation related to a new product feature of feature update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant