Skip to content

feat(gfql): same-path WHERE executor (restack)#917

Merged
lmeyerov merged 57 commits intomasterfrom
restack/where-core
Mar 1, 2026
Merged

feat(gfql): same-path WHERE executor (restack)#917
lmeyerov merged 57 commits intomasterfrom
restack/where-core

Conversation

@lmeyerov
Copy link
Copy Markdown
Contributor

@lmeyerov lmeyerov commented Feb 5, 2026

Summary

  • add same-path WHERE executor (df_executor + same_path modules)
  • add list-form g.gfql([...], where=...) support and empty-chain guard
  • add extensive GFQL WHERE tests and mypy/lint fixes

Status

Testing

  • uv run python -m pytest graphistry/tests/compute/test_chain_where.py -q
  • uv run env PYTHONPATH=. python -m pytest tests/gfql/ref/test_df_executor_patterns.py -q

WHERE Examples

  • imports
from graphistry.compute import n, e_forward
from graphistry.compute.gfql.same_path_types import col, compare
  • Equality across node aliases:
    • g.gfql([n(name="a"), e_forward(name="r"), n(name="c")], where=[compare(col("a", "owner_id"), "==", col("c", "id"))])
  • Inequality across node aliases:
    • g.gfql([n(name="start"), e_forward(), n(name="end")], where=[compare(col("start", "score"), "<", col("end", "score"))])
  • Edge-to-edge comparison in a multi-edge chain:
    • g.gfql([n(name="a"), e_forward(name="e1"), n(name="b"), e_forward(name="e2"), n(name="c")], where=[compare(col("e1", "weight"), ">=", col("e2", "weight"))])
  • JSON/dict form (API/serialized usage):
    • {"chain": [...], "where": [{"eq": {"left": "a.owner_id", "right": "c.id"}}, {"gt": {"left": "start.score", "right": "end.score"}}]}

@lmeyerov lmeyerov force-pushed the restack/where-core branch from 3af0e9e to e03871e Compare March 1, 2026 04:29
Comment thread CHANGELOG.md Outdated

### Tests
- **GFQL / df_executor**: Added comprehensive test suite (core, amplify, patterns, dimension) with 200+ tests covering Yannakakis semijoin, WHERE clause filtering, multi-hop paths, and pandas/cuDF parity.
- **GFQL / cuDF same-path**: Added strict/auto mode coverage for cuDF executor fallback behavior.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

move

@lmeyerov lmeyerov merged commit 4b7ecdd into master Mar 1, 2026
64 checks passed
@lmeyerov lmeyerov deleted the restack/where-core branch March 1, 2026 18:22
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