Skip to content

feat: mark pattern predicates as complete (#216)#230

Merged
DecisionNerd merged 2 commits intomainfrom
feature/216-pattern-predicates
Feb 18, 2026
Merged

feat: mark pattern predicates as complete (#216)#230
DecisionNerd merged 2 commits intomainfrom
feature/216-pattern-predicates

Conversation

@DecisionNerd
Copy link
Owner

Closes #216

Summary

Pattern predicates (WHERE inside relationship patterns) are fully implemented and tested. This PR updates documentation to reflect COMPLETE status.

Implementation Details

  • Grammar: (pattern_where rule)
  • Parser: (RelationshipPattern.predicate)
  • Executor: , (predicate evaluation)
  • Tests: 16 comprehensive integration tests (all passing)

Supported Features

✅ Property comparisons (r.since > 2020)
✅ Complex expressions (AND, OR, NOT)
✅ Function calls (length(r.name) = 3)
✅ NULL handling
✅ Variable-length paths with predicates
✅ Undirected relationships
✅ Multiple patterns with different predicates

Testing

All 16 integration tests in tests/integration/test_pattern_predicates.py pass:

  • Basic property filters
  • Equality/inequality predicates
  • Undirected relationships
  • Complex AND/OR expressions
  • Variable-length paths
  • Combinations with external WHERE
  • NULL handling
  • Edge cases (always true/false, empty results)

Changes

  • Updated docs/reference/implementation-status/patterns.md:
    • Changed Pattern Predicates status from PARTIAL to COMPLETE
    • Added comprehensive implementation details
    • Updated overall completion percentage to 87.5% (7/8 pattern types)

DecisionNerd and others added 2 commits February 17, 2026 19:02
Remove experimental agent teams workflow documentation to simplify
the developer guide and focus on core GraphForge development patterns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pattern predicates (WHERE inside relationship patterns) are fully
implemented and tested. Update documentation to reflect COMPLETE status.

Implementation details:
- Grammar: cypher.lark:119 (pattern_where rule)
- Parser: parser.py:481-484 (RelationshipPattern.predicate)
- Executor: executor.py:617-622, 904-918 (predicate evaluation)
- Tests: 16 comprehensive integration tests (all passing)

Supported features:
- Property comparisons (r.since > 2020)
- Complex expressions (AND, OR, NOT)
- Function calls (length(r.name) = 3)
- NULL handling
- Variable-length paths with predicates
- Undirected relationships
- Multiple patterns with different predicates

Closes #216

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link

coderabbitai bot commented Feb 18, 2026

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (2)
  • CLAUDE.md is excluded by !**/*.md
  • docs/reference/implementation-status/patterns.md is excluded by !**/*.md, !**/docs/**

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/216-pattern-predicates

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@DecisionNerd DecisionNerd merged commit 4c16512 into main Feb 18, 2026
22 checks passed
@DecisionNerd DecisionNerd deleted the feature/216-pattern-predicates branch February 18, 2026 02:16
@codecov
Copy link

codecov bot commented Feb 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.33%. Comparing base (96bf63b) to head (5d07edb).
⚠️ Report is 2 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #230   +/-   ##
=======================================
  Coverage   92.33%   92.33%           
=======================================
  Files          38       38           
  Lines        8075     8075           
  Branches     1833     1833           
=======================================
  Hits         7456     7456           
  Misses        500      500           
  Partials      119      119           
Flag Coverage Δ
full-coverage 92.33% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
parser 98.27% <ø> (ø)
planner 94.54% <ø> (ø)
executor 90.39% <ø> (ø)
storage 92.97% <ø> (ø)
ast 96.03% <ø> (ø)
types 98.06% <ø> (ø)

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 96bf63b...5d07edb. Read the comment docs.

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.

feat: complete pattern predicates implementation

1 participant