Skip to content

[WIP] Fix #1413 joined-row aggregation residual#1422

Merged
lmeyerov merged 2 commits into
masterfrom
issue-1413-joined-row-aggregation
May 11, 2026
Merged

[WIP] Fix #1413 joined-row aggregation residual#1422
lmeyerov merged 2 commits into
masterfrom
issue-1413-joined-row-aggregation

Conversation

@lmeyerov
Copy link
Copy Markdown
Contributor

@lmeyerov lmeyerov commented May 10, 2026

Summary

Fixes the IC4/new-topics half of #1413 by allowing chained comparisons inside CASE WHEN conditions before joined-row aggregation validation.

Issue

Partially addresses #1413 (IC4/new-topics half)
Related: #880, #992, #1259

Target Lanes

Changes

  • Rewrites chained comparisons inside unquoted CASE WHEN ... THEN conditions, e.g. $startDate <= post.creationDate < $endDate.
  • Preserves unchanged CASE expressions so unrelated CASE bodies do not fall through to whole-expression chained-comparison rewriting.
  • Uses explicit capture extraction in _rewrite_match_text instead of tuple/list-driven group-name extraction.
  • Adds adversarial coverage for exact IC4, multiple chained CASE arms, unrelated CASE comparisons, and multiple chained CASE flags in one joined-row aggregation.
  • Adds an unreleased CHANGELOG.md entry under Development / Fixed.

Local Validation

  • PYTHONPATH=/tmp/pygraphistry-issue-1413-deps python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k 'issue_1413_ic4_new_topics_exact_ldbc_reference_query or supports_generic_match_where_chained_comparison or multi_alias_with_three_stage_case_aggregation or multi_alias_with_distinct_count_projection'
    • superseded by amplified suite below
  • PYTHONPATH=/tmp/pygraphistry-issue-1413-deps python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k 'issue_1413 or supports_generic_match_where_chained_comparison or multi_alias_with_three_stage_case_aggregation or multi_alias_with_distinct_count_projection'
    • 7 passed, 984 deselected, 4 warnings
  • python3 -m ruff check graphistry/compute/gfql/cypher/lowering.py graphistry/tests/compute/gfql/cypher/test_lowering.py
    • All checks passed!
  • python3 -m py_compile graphistry/compute/gfql/cypher/lowering.py graphistry/tests/compute/gfql/cypher/test_lowering.py
    • ok
  • python3 bin/ci_cypher_surface_guard.py
    • pass
  • Post-Add GFQL row join apply (#1411) #1426 rebase:
  • DGX Spark RAPIDS matrix:

Notes:

  • ./bin/typecheck.sh graphistry/compute/gfql/cypher/lowering.py is blocked by existing imported-module mypy debt in graphistry/_version.py:57.
  • Local minimal-lite-equivalent run is blocked by this workstation's missing CUDA/optional GPU/text/UMAP environment; CI should be the full matrix arbiter.

CI

gh pr checks 1422 --watch --interval 10 completed green after rebasing onto current origin/master at 8e7d66c8 (#1426 / #1411).

@lmeyerov lmeyerov force-pushed the issue-1413-joined-row-aggregation branch from 6907215 to 566e169 Compare May 10, 2026 23:15
@lmeyerov lmeyerov marked this pull request as ready for review May 11, 2026 00:17
@lmeyerov lmeyerov force-pushed the issue-1413-joined-row-aggregation branch 3 times, most recently from 3985292 to afd6ffe Compare May 11, 2026 05:14
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