Skip to content

#3952 fix: Cypher -> EXISTS { MATCH (p)-[:WORKS_WITH]->() } returns false when relationship type embeds a Cypher keyword after underscore#3962

Merged
robfrank merged 3 commits intomainfrom
fix/3952-exists-match-subquery-relationship-type
Apr 22, 2026
Merged

#3952 fix: Cypher -> EXISTS { MATCH (p)-[:WORKS_WITH]->() } returns false when relationship type embeds a Cypher keyword after underscore#3962
robfrank merged 3 commits intomainfrom
fix/3952-exists-match-subquery-relationship-type

Conversation

@robfrank
Copy link
Copy Markdown
Collaborator

Summary

Fixes #3952.

EXISTS { MATCH (p)-[:WORKS_WITH]->(:Person) } returned false for every row even when the pattern clearly matched, while the equivalent WHERE (p)-[:WORKS_WITH]->() predicate worked correctly.

Root cause: ExistsExpression.matchesKeywordAt() used Character.isLetterOrDigit() for word-boundary detection. Because underscore _ is not a letter or digit in Java, "WITH" inside "WORKS_WITH" was falsely recognised as the Cypher WITH clause keyword. This caused injectWhereConditions() to split the relationship type name mid-token, producing an invalid query such as:

MATCH (p), (p)-[:WORKS_WHERE id(p) = $__exists_p WITH]->(:Person)

The resulting parse error was silently caught in evaluate() and returned false. Any relationship type whose name ends with a Cypher keyword after an underscore (_WITH, _WHERE, _RETURN, _ORDER, _SKIP, _LIMIT, _UNION) was affected.

Fix: Replaced the Character.isLetterOrDigit(c) boundary check in matchesKeywordAt() with a new isCypherIdentifierChar(c) helper that also returns true for _, consistent with Cypher identifier rules.

Changes

  • engine/src/main/java/com/arcadedb/query/opencypher/ast/ExistsExpression.java - fix in matchesKeywordAt() + new isCypherIdentifierChar() helper
  • engine/src/test/java/com/arcadedb/query/opencypher/CypherExistsUnderscoreRelationshipTypeTest.java - regression test (3 cases: WORKS_WITH, KNOWS_WHERE, and control KNOWS)

Test plan

🤖 Generated with Claude Code

…hen relationship type name embeds a Cypher keyword after underscore

Closes #3952

`matchesKeywordAt()` in ExistsExpression used `Character.isLetterOrDigit()`
for word-boundary detection. Because underscore is not a letter or digit in
Java, "WITH" inside "WORKS_WITH" was falsely matched as the Cypher WITH
clause keyword, corrupting the injected subquery and causing a
silently-caught parse exception that returned false.

Fix: replace the boundary check with `isCypherIdentifierChar()` which also
treats `_` as part of an identifier, consistent with Cypher identifier rules.
Affects any relationship type whose name ends with a Cypher keyword after an
underscore (e.g. _WITH, _WHERE, _RETURN).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@codacy-production
Copy link
Copy Markdown

codacy-production Bot commented Apr 22, 2026

Not up to standards ⛔

🔴 Issues 1 minor

Alerts:
⚠ 1 issue (≤ 0 issues of at least minor severity)

Results:
1 new issue

Category Results
CodeStyle 1 minor

View in Codacy

🟢 Coverage 90.91% diff coverage · -7.48% coverage variation

Metric Results
Coverage variation -7.48% coverage variation
Diff coverage 90.91% diff coverage

View coverage diff in Codacy

Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (627d421) 119294 86800 72.76%
Head commit (b0dad27) 150544 (+31250) 98270 (+11470) 65.28% (-7.48%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#3962) 11 10 90.91%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes. Give us feedback

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request addresses issue #3952, where EXISTS { MATCH } subqueries incorrectly returned false for relationship types containing Cypher keyword fragments (e.g., WORKS_WITH). The fix introduces a helper method to include underscores in word boundary checks. Feedback suggests that the boundary logic should be further hardened to include characters like ':', '.', and '$' to prevent false matches in labels or properties. Additionally, it is recommended to apply the new identifier check to variable detection to ensure variables containing underscores are handled correctly.

Comment on lines 212 to 217
if (pos > 0 && isCypherIdentifierChar(upper.charAt(pos - 1)))
return false;
// Check word boundary after
final int end = pos + keyword.length();
if (end < upper.length() && Character.isLetterOrDigit(upper.charAt(end)))
if (end < upper.length() && isCypherIdentifierChar(upper.charAt(end)))
return false;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The word boundary check for Cypher keywords is still incomplete. While adding the underscore fixes the reported issue for relationship types like WORKS_WITH, the logic will still incorrectly match keywords when they are part of a label (e.g., :WITH), a property access (e.g., .WITH), or a parameter (e.g., $WITH).

To be more robust, the boundary check should also consider characters like :, ., and $ as part of a token, which should prevent a keyword match.

    if (pos > 0) {
      final char c = upper.charAt(pos - 1);
      if (isCypherIdentifierChar(c) || c == ':' || c == '.' || c == '$')
        return false;
    }
    // Check word boundary after
    final int end = pos + keyword.length();
    if (end < upper.length()) {
      final char c = upper.charAt(end);
      if (isCypherIdentifierChar(c) || c == ':' || c == '.' || c == '$')
        return false;
    }

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in commit b0dad27. Added ':' '.' '$' to the boundary checks in matchesKeywordAt alongside the existing isCypherIdentifierChar check, so [:WITH], n.with, and $with are no longer misidentified as standalone clause keywords.

Comment on lines +221 to +223
private static boolean isCypherIdentifierChar(final char c) {
return Character.isLetterOrDigit(c) || c == '_';
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This new helper method is useful for identifier boundary detection. It should also be applied to the variableUsedInSubquery method (specifically at lines 104 and 108) to ensure that variables containing underscores are correctly identified and to prevent partial matches (e.g., matching var inside var_2).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in commit b0dad27. variableUsedInSubquery now uses isCypherIdentifierChar (which includes '_') at both boundary positions, so outer variable 'p' no longer false-matches inside 'p_node' or similar names.

robfrank and others added 2 commits April 22, 2026 22:11
- Apply isCypherIdentifierChar (includes underscore) to variableUsedInSubquery
  so outer variable 'p' no longer false-matches inside 'p_node' or similar
- Extend matchesKeywordAt boundary checks to also reject ':' '.' '$' as
  preceding/following chars, preventing false keyword matches in label
  selectors ([:WITH]), property access (n.with), or parameters ($with)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@robfrank robfrank changed the title fix: Cypher -> EXISTS { MATCH (p)-[:WORKS_WITH]->() } returns false when relationship type embeds a Cypher keyword after underscore #3952 fix: Cypher -> EXISTS { MATCH (p)-[:WORKS_WITH]->() } returns false when relationship type embeds a Cypher keyword after underscore Apr 22, 2026
@robfrank robfrank merged commit 5bd27e3 into main Apr 22, 2026
21 of 29 checks passed
@robfrank robfrank deleted the fix/3952-exists-match-subquery-relationship-type branch April 22, 2026 21:07
@robfrank robfrank added this to the 26.4.1 milestone Apr 22, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 23, 2026

Codecov Report

❌ Patch coverage is 27.27273% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 64.22%. Comparing base (627d421) to head (b0dad27).
⚠️ Report is 5 commits behind head on main.

Files with missing lines Patch % Lines
...rcadedb/query/opencypher/ast/ExistsExpression.java 27.27% 1 Missing and 7 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #3962      +/-   ##
============================================
+ Coverage     63.89%   64.22%   +0.32%     
- Complexity        0      424     +424     
============================================
  Files          1593     1593              
  Lines        119294   119305      +11     
  Branches      25384    25386       +2     
============================================
+ Hits          76228    76619     +391     
+ Misses        32524    31993     -531     
- Partials      10542    10693     +151     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

mergify Bot added a commit that referenced this pull request May 3, 2026
…skip ci]

Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.10 to 42.7.11.
Release notes

*Sourced from [org.postgresql:postgresql's releases](https://github.com/pgjdbc/pgjdbc/releases).*

> v42.7.11
> --------
>
> Security
> --------
>
> * fix: Limit SCRAM PBKDF2 iterations accepted from the server.
>   pgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.
>   See the [Security Advisory](GHSA-98qh-xjc8-98pq) for more detail.
>   The following [CVE-2026-42198](https://nvd.nist.gov/vuln/detail/CVE-2026-42198) has been issued.
>
> Changes
> -------
>
> * fix: Add sources and javadocs to shaded published lib generation [`@​sehrope`](https://github.com/sehrope) ([#4043](https://redirect.github.com/pgjdbc/pgjdbc/issues/4043))
> * update Changelog and website for release of 42.7.11 [`@​davecramer`](https://github.com/davecramer) ([#4042](https://redirect.github.com/pgjdbc/pgjdbc/issues/4042))
> * Fix scram fix location in changelog and update published artifact developer list [`@​sehrope`](https://github.com/sehrope) ([#4041](https://redirect.github.com/pgjdbc/pgjdbc/issues/4041))
> * Restrict test with scram\_iterations to v16+ and release notes [`@​sehrope`](https://github.com/sehrope) ([#4040](https://redirect.github.com/pgjdbc/pgjdbc/issues/4040))
> * chore(deps): update ubuntu:24.04 docker digest to 84e77de [`@​renovate-bot`](https://github.com/renovate-bot) ([#4017](https://redirect.github.com/pgjdbc/pgjdbc/issues/4017))
> * test: add tests for QueryExecutor#getTransactionState [`@​vlsi`](https://github.com/vlsi) ([#4006](https://redirect.github.com/pgjdbc/pgjdbc/issues/4006))
> * chore(deps): update actions/create-github-app-token action to v2.2.2 [`@​renovate-bot`](https://github.com/renovate-bot) ([#3983](https://redirect.github.com/pgjdbc/pgjdbc/issues/3983))
> * fix: fix flaky CopyBothResponseTest by using WAL flush LSN [`@​vlsi`](https://github.com/vlsi) ([#3979](https://redirect.github.com/pgjdbc/pgjdbc/issues/3979))
> * fix: fix flaky replication restart tests by waiting for confirmed\_flush\_lsn [`@​vlsi`](https://github.com/vlsi) ([#3975](https://redirect.github.com/pgjdbc/pgjdbc/issues/3975))
> * test: fix flaky LogicalReplicationStatusTest by polling pg\_stat\_replication [`@​vlsi`](https://github.com/vlsi) ([#3974](https://redirect.github.com/pgjdbc/pgjdbc/issues/3974))
> * chore: replace Appveyor with ikalnytskyi/action-setup-postgres [`@​vlsi`](https://github.com/vlsi) ([#3966](https://redirect.github.com/pgjdbc/pgjdbc/issues/3966))
> * test: move test table creation from [`@​BeforeEach`](https://github.com/BeforeEach) to [`@​BeforeAll`](https://github.com/BeforeAll) [`@​vlsi`](https://github.com/vlsi) ([#3967](https://redirect.github.com/pgjdbc/pgjdbc/issues/3967))
> * Return jsonb as PGObject fixes Issue [#3926](https://redirect.github.com/pgjdbc/pgjdbc/issues/3926) [`@​davecramer`](https://github.com/davecramer) ([#3956](https://redirect.github.com/pgjdbc/pgjdbc/issues/3956))
> * Update docker scripts [`@​davecramer`](https://github.com/davecramer) ([#3958](https://redirect.github.com/pgjdbc/pgjdbc/issues/3958))
> * implement require\_auth, this is pretty much how libpq does this. [`@​davecramer`](https://github.com/davecramer) ([#3895](https://redirect.github.com/pgjdbc/pgjdbc/issues/3895))
> * docs: add SCRAM authentication test setup section to TESTING.md [`@​emmaeng700`](https://github.com/emmaeng700) ([#3945](https://redirect.github.com/pgjdbc/pgjdbc/issues/3945))
> * Add RequireServerVersion annotation for tests [`@​sehrope`](https://github.com/sehrope) ([#3939](https://redirect.github.com/pgjdbc/pgjdbc/issues/3939))
>
> 🐛 Bug Fixes
> -----------
>
> * fix: ensure extended protocol messages end with Sync message [`@​vlsi`](https://github.com/vlsi) ([#3728](https://redirect.github.com/pgjdbc/pgjdbc/issues/3728))
> * fix: enable cursor-based fetching in extended protocol when transaction started via SQL command [`@​vlsi`](https://github.com/vlsi) ([#3996](https://redirect.github.com/pgjdbc/pgjdbc/issues/3996))
> * fix: retry with SSL on IOException when sslMode=ALLOW [`@​vlsi`](https://github.com/vlsi) ([#3973](https://redirect.github.com/pgjdbc/pgjdbc/issues/3973))
> * fix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in [`@​vlsi`](https://github.com/vlsi) ([#3968](https://redirect.github.com/pgjdbc/pgjdbc/issues/3968))
> * fix: catch SecurityException from setContextClassLoader on ForkJoinPool workers [`@​vlsi`](https://github.com/vlsi) ([#3962](https://redirect.github.com/pgjdbc/pgjdbc/issues/3962))
> * fix: use compareTo for LogSequenceNumber comparison [`@​vlsi`](https://github.com/vlsi) ([#3961](https://redirect.github.com/pgjdbc/pgjdbc/issues/3961))
> * fix: release COPY lock on IOException to prevent connection hang ([#3957](https://redirect.github.com/pgjdbc/pgjdbc/issues/3957)) [`@​vlsi`](https://github.com/vlsi) ([#3960](https://redirect.github.com/pgjdbc/pgjdbc/issues/3960))
>
> 🧰 Maintenance
> -------------
>
> * style: replace [`@​exception`](https://github.com/exception) with [`@​throws`](https://github.com/throws) in getBoolean javadoc [`@​vlsi`](https://github.com/vlsi) ([#4035](https://redirect.github.com/pgjdbc/pgjdbc/issues/4035))
> * chore: use `@​vlsi/github-actions-random-matrix` npm package [`@​vlsi`](https://github.com/vlsi) ([#4008](https://redirect.github.com/pgjdbc/pgjdbc/issues/4008))
> * chore: use tag names for pinning github actions, pin ikalnytskyi/action-setup-postgres [`@​vlsi`](https://github.com/vlsi) ([#4007](https://redirect.github.com/pgjdbc/pgjdbc/issues/4007))
> * chore: bump errorprone to 2.48.0 [`@​vlsi`](https://github.com/vlsi) ([#4005](https://redirect.github.com/pgjdbc/pgjdbc/issues/4005))
> * test: add [`@​DisableLogger`](https://github.com/DisableLogger) annotation to suppress expected log warnings in tests [`@​vlsi`](https://github.com/vlsi) ([#3971](https://redirect.github.com/pgjdbc/pgjdbc/issues/3971))
> * chore: suppress deprecations in test code to reduce build verbosity [`@​vlsi`](https://github.com/vlsi) ([#3972](https://redirect.github.com/pgjdbc/pgjdbc/issues/3972))
> * chore: replace log warning in ConnectionFactory.closeStream with Throwable.addSuppressed [`@​vlsi`](https://github.com/vlsi) ([#3970](https://redirect.github.com/pgjdbc/pgjdbc/issues/3970))
> * chore: use greedy pairwise coverage for CI matrix generation [`@​vlsi`](https://github.com/vlsi) ([#3965](https://redirect.github.com/pgjdbc/pgjdbc/issues/3965))
> * chore: use full version tags in GitHub Actions comments [`@​vlsi`](https://github.com/vlsi) ([#3963](https://redirect.github.com/pgjdbc/pgjdbc/issues/3963))
>
> ⬆️ Dependencies
> ---------------

... (truncated)


Changelog

*Sourced from [org.postgresql:postgresql's changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md).*

> [42.7.11] (2026-04-28)
> ----------------------
>
> ### Security
>
> * fix: Limit SCRAM PBKDF2 iterations accepted from the server.
>   pgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.
>   See the [Security Advisory](GHSA-98qh-xjc8-98pq) for more detail.
>   The following [CVE-2026-42198](https://nvd.nist.gov/vuln/detail/CVE-2026-42198) has been issued.
>
> ### Added
>
> * feat: implement require\_auth connection property, aligning with libpq behavior [PR [#3895](https://redirect.github.com/pgjdbc/pgjdbc/issues/3895)]([pgjdbc/pgjdbc#3895](https://redirect.github.com/pgjdbc/pgjdbc/pull/3895))
>
> ### Changed
>
> * chore: replace Appveyor CI with ikalnytskyi/action-setup-postgres [PR [#3966](https://redirect.github.com/pgjdbc/pgjdbc/issues/3966)]([pgjdbc/pgjdbc#3966](https://redirect.github.com/pgjdbc/pgjdbc/pull/3966))
> * chore: upgrade Gradle to v9 [PR [#3978](https://redirect.github.com/pgjdbc/pgjdbc/issues/3978)]([pgjdbc/pgjdbc#3978](https://redirect.github.com/pgjdbc/pgjdbc/pull/3978))
>
> ### Fixed
>
> * fix: ensure extended protocol messages end with Sync message [PR [#3728](https://redirect.github.com/pgjdbc/pgjdbc/issues/3728)]([pgjdbc/pgjdbc#3728](https://redirect.github.com/pgjdbc/pgjdbc/pull/3728))
> * fix: enable cursor-based fetching in extended protocol when transaction started via SQL command [PR [#3996](https://redirect.github.com/pgjdbc/pgjdbc/issues/3996)]([pgjdbc/pgjdbc#3996](https://redirect.github.com/pgjdbc/pgjdbc/pull/3996))
> * fix: retry with SSL on IOException when sslMode=ALLOW [PR [#3973](https://redirect.github.com/pgjdbc/pgjdbc/issues/3973)]([pgjdbc/pgjdbc#3973](https://redirect.github.com/pgjdbc/pgjdbc/pull/3973))
> * fix: make sure the driver honours connectTimeout when retrying the connection [PR [#3968](https://redirect.github.com/pgjdbc/pgjdbc/issues/3968)]([pgjdbc/pgjdbc#3968](https://redirect.github.com/pgjdbc/pgjdbc/pull/3968))
> * fix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in [PR [#3968](https://redirect.github.com/pgjdbc/pgjdbc/issues/3968)]([pgjdbc/pgjdbc#3968](https://redirect.github.com/pgjdbc/pgjdbc/pull/3968))
> * fix: catch SecurityException from setContextClassLoader on ForkJoinPool workers [PR [#3962](https://redirect.github.com/pgjdbc/pgjdbc/issues/3962)]([pgjdbc/pgjdbc#3962](https://redirect.github.com/pgjdbc/pgjdbc/pull/3962))
> * fix: use compareTo for LogSequenceNumber comparison to handle unsigned values correctly [PR [#3961](https://redirect.github.com/pgjdbc/pgjdbc/issues/3961)]([pgjdbc/pgjdbc#3961](https://redirect.github.com/pgjdbc/pgjdbc/pull/3961))
> * fix: release COPY lock on IOException to prevent connection hang [PR [#3957](https://redirect.github.com/pgjdbc/pgjdbc/issues/3957)]([pgjdbc/pgjdbc#3957](https://redirect.github.com/pgjdbc/pgjdbc/pull/3957))
> * fix: return jsonb as PGObject instead of String [PR [#3956](https://redirect.github.com/pgjdbc/pgjdbc/issues/3956)]([pgjdbc/pgjdbc#3956](https://redirect.github.com/pgjdbc/pgjdbc/pull/3956))
> * fix: align SSL key file permission check with libpq [PR [#3952](https://redirect.github.com/pgjdbc/pgjdbc/issues/3952)]([pgjdbc/pgjdbc#3952](https://redirect.github.com/pgjdbc/pgjdbc/pull/3952))
> * fix: guard connection closed flag with a reentrant lock to protect against concurrent close [PR [#3905](https://redirect.github.com/pgjdbc/pgjdbc/issues/3905)]([pgjdbc/pgjdbc#3905](https://redirect.github.com/pgjdbc/pgjdbc/pull/3905))


Commits

* [`78e261f`](pgjdbc/pgjdbc@78e261f) fix: Add sources and javadocs to shaded published lib generation
* [`1e09fa0`](pgjdbc/pgjdbc@1e09fa0) update Changelog and website for release of 42.7.11 ([#4042](https://redirect.github.com/pgjdbc/pgjdbc/issues/4042))
* [`d479fa5`](pgjdbc/pgjdbc@d479fa5) Fix scram fix location in changelog and update published artifact developer l...
* [`b04fc46`](pgjdbc/pgjdbc@b04fc46) docs: Add scram max iters fix to changelog
* [`cf54822`](pgjdbc/pgjdbc@cf54822) test: Disable scram test on older version without scram\_iterations GUC
* [`7dbcc79`](pgjdbc/pgjdbc@7dbcc79) test: Add SCRAM max iteration tests
* [`c9d41d1`](pgjdbc/pgjdbc@c9d41d1) fix: Limit SCRAM PBKDF2 iterations accepted from the server
* [`a340cb2`](pgjdbc/pgjdbc@a340cb2) style: replace [`@​exception`](https://github.com/exception) with [`@​throws`](https://github.com/throws) in getBoolean javadoc
* [`77837f8`](pgjdbc/pgjdbc@77837f8) fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite....
* [`23af03b`](pgjdbc/pgjdbc@23af03b) chore(deps): update actions/checkout action to v6
* Additional commits viewable in [compare view](pgjdbc/pgjdbc@REL42.7.10...REL42.7.11)
  
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility\_score?dependency-name=org.postgresql:postgresql&package-manager=maven&previous-version=42.7.10&new-version=42.7.11)](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 show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

EXISTS { MATCH ... } subqueries may incorrectly return false for some relationship types even when the same pattern clearly matches.

1 participant