Skip to content

feat: add support for Gremlin negated text predicates - #340

Open
jakeboone02 wants to merge 5 commits into
GrafeoDB:mainfrom
jakeboone02:feature/gremlin-negated-text-predicates
Open

feat: add support for Gremlin negated text predicates#340
jakeboone02 wants to merge 5 commits into
GrafeoDB:mainfrom
jakeboone02:feature/gremlin-negated-text-predicates

Conversation

@jakeboone02

@jakeboone02 jakeboone02 commented May 11, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds support for Gremlin negated text predicates notContaining, notStartingWith, and notEndingWith.

How was it tested?

Local cargo test --all-features --workspace.

Community PR checklist

  • No unsolicited architecture changes. New crates, new workspace dependencies, changes to grafeo-core/grafeo-engine internals, or new feature flags were either (a) requested in the linked issue or (b) discussed and approved in a GitHub Discussion before this PR was opened.
  • No changes to shared infrastructure. CI workflows (.github/workflows/), the root Cargo.toml, codecov.yml, and scripts/ are not modified unless the change is the explicit purpose of this PR.
  • No naming or concept conflicts. I have searched the codebase and existing issues/discussions to confirm that any new types, modules, or subsystem names do not duplicate or conflict with existing ones.

Summary by cubic

Adds support for Gremlin negated text predicates: notContaining, notStartingWith, and notEndingWith. Enables negative substring, prefix, and suffix filters in has(), and removes redundant Gremlin tests.

  • New Features
    • Lexer, parser, and AST recognize notContaining, notStartingWith, notEndingWith.
    • Translator emits logical NOT of Contains/StartsWith/EndsWith.
    • Expanded translator unit tests and engine/spec tests for has('prop', not...()) cases.

Written for commit 1d458c7. Summary will update on new commits.

@jakeboone02
jakeboone02 requested a review from StevenBtw as a code owner May 11, 2026 00:32

@cubic-dev-ai cubic-dev-ai Bot left a comment

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.

No issues found across 6 files

@codecov

codecov Bot commented May 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@codspeed-hq

codspeed-hq Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 70 untouched benchmarks


Comparing jakeboone02:feature/gremlin-negated-text-predicates (1d458c7) with main (4ebae02)

Open in CodSpeed

@jakeboone02

Copy link
Copy Markdown
Contributor Author

I had some trouble running tests locally, and I'm not sure why the Benchmark (PR) CI job failed, but otherwise I think this is ready to go.

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.

1 participant