Skip to content

feat(cypher): support comma-separated node-only MATCH - #1019

Merged
lmeyerov merged 4 commits into
masterfrom
feat/issue-990-comma-match-cartesian
Apr 2, 2026
Merged

lmeyerov merged 4 commits into
masterfrom
feat/issue-990-comma-match-cartesian

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Apr 2, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Implements #990 by supporting comma-separated node-only Cypher MATCH cartesian products in the local compiler.

Closes #990
Prerequisite for #1010

What changed

  • lower disconnected comma-separated node-only MATCH clauses without forcing them through the connected-path stitcher
  • materialize cartesian bindings rows through rows(binding_ops=...) for node-only alias sets
  • support scalar projection, cross-alias row filters, grouped/global aggregates, and staged WITH over those cartesian rows
  • fall back from the simple graph-projection path to general row execution for cartesian multi-alias expressions like RETURN n.ts < m.ts AS lt
  • teach static schema validation that rows(binding_ops=...) exposes alias-backed row columns

Tests

  • added RED/GREEN regressions for cartesian scalar projection, grouped/global count, cross-alias WHERE, staged WITH, and non-simple scalar expressions in graphistry/tests/compute/gfql/cypher/test_lowering.py
  • added direct rows(binding_ops=[Node, Node]) cartesian row-materialization coverage in graphistry/tests/test_compute_chain.py

Verification

  • python3.12 -B -m pytest -q graphistry/tests/test_compute_chain.py -k 'ChainBindingsTable' -> 36 passed, 32 deselected
  • python3.12 -B -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k 'cartesian_node_only or multi_alias_return or multi_alias_with_stage_still_rejected or cypher_to_gfql_supports_multi_alias_scalar_projection' -> 19 passed, 544 deselected

@lmeyerov lmeyerov changed the title feat(cypher): claim #990 comma-separated MATCH support feat(cypher): support comma-separated node-only MATCH Apr 2, 2026
@lmeyerov
lmeyerov marked this pull request as ready for review April 2, 2026 03:08
@lmeyerov
lmeyerov merged commit a916c18 into master Apr 2, 2026
54 of 75 checks passed
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(cypher): support comma-separated MATCH patterns (cartesian product)

1 participant