docs(path): document the completed path module config, uniqueness NODE_GLOBAL and filter sequences - #1718
Draft
imilinovic wants to merge 4 commits into
Draft
docs(path): document the completed path module config, uniqueness NODE_GLOBAL and filter sequences#1718imilinovic wants to merge 4 commits into
imilinovic wants to merge 4 commits into
Conversation
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.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release note
Documents the completed
pathmodule config map, the repeating filter sequences, and the filterbehaviour changes:
path.expand_config(), the node-identity filters (allowlistNodes,denylistNodes,endNodes,terminatorNodes),limit, theminLevel/maxLevelaliases, and the|-separated string form ofrelationshipFilterandlabelFilter.uniqueness, includingNODE_GLOBAL— one path per reachable node, what a node being spent by thefirst path that reaches it means for
minHops, how several start nodes behave, and why it is the onemode an absent
maxHopsis safe under.labelFilterandrelationshipFilter, thesequencekey, andbeginSequenceAtStart— which now shifts the sequence rather than only exemptingthe 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 thenote that it is not a relationship wildcard and what to write instead.
entry and
<takes precedence, so<TYPE>is an incoming filter rather than the reciprocal-pair onethe 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
uniquenessmodes areunavailable, that
sequenceis unimplemented, and thatbeginSequenceAtStartis accepted and ignored(the last two were also stated for
path.subgraph_nodesandpath.subgraph_all, where both keys doapply).
Related product PRs
memgraph/memgraph#4530
Checklist:
bugfixorfeaturelabel, based on the product PR type you're documentingEvery 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_GLOBALexample, all of which run against the graph the page already builds.One thing left alone deliberately:
expand()'s Example 2 omits the zero-hopDogpath from itsoutput table. That is a pre-existing inaccuracy — the current release returns it too — so it is not
part of this change.