Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- **GFQL / native chain reply-author row-shaping locks (#1412, #880)**: Added native GFQL `rows()` + explicit `rows(binding_ops=...)` regression coverage for the SNB IC8 `recent-replies` and IS7 `message-replies` reply-author projection shapes, locking the pygraphistry-side behavior needed to retire adapter-local reply-author joins in benchmark coverage.
- **GFQL / Cypher two-MATCH reentry varlen regression hardening (#1001)**: Strengthened reentry varlen acceptance assertions from shape-only checks to exact expected rows, and added forward/reverse split-vs-connected query equivalence regressions to guard against wrong-row drift in the `match5-25/26` query family.
- **GFQL / Cypher reentry ordered-top-k amplification (#1342, #880 partial)**: Added lowering regressions for MATCH-after-WITH re-entry with single-column and multi-column ordered top-k prefixes, carried-scalar top-k alignment, `LIMIT 0` empty-prefix behavior, `SKIP` failfast retention, plus cuDF parity coverage for the multi-row top-k lane.
- **GFQL / Cypher tag-cooccurrence join+aggregation cardinality amplification (#1396, #880 residual lane)**: Added focused IC6-shape regression coverage for `collect(distinct friend) -> UNWIND -> connected comma MATCH -> WITH tag.name, count(post)` with non-trivial grouped counts (`Alpha=2`, `Beta=1`) plus cuDF parity guard, so the residual tag-cooccurrence join-aggregation lane is pinned without adapter-side workaround assumptions.
- **GFQL / Cypher tag-cooccurrence join+aggregation cardinality amplification (#1396, #1415, #880 residual lane)**: Added focused IC6-shape regression coverage for `collect(distinct friend) -> UNWIND -> connected comma MATCH -> WITH tag.name, count(post)` with non-trivial grouped counts (`Alpha=2`, `Beta=1`) plus cuDF parity guard, so the residual tag-cooccurrence join-aggregation lane is pinned without adapter-side workaround assumptions.
- **DataFrame join helper branch coverage expansion + RAPIDS matrix validation (#1380)**: Expanded `graphistry/tests/compute/dataframe/test_join.py` to cover non-overwrite and empty-join schema branches (`joined_hidden_scalar_columns`, `joined_alias_columns`, `connected_inner_join_rows`), prefix/no-label projection behavior (`project_node_attrs`), inequality branch coverage (`ineq_eval_pairs`), and semijoin no-shared/delegation paths (`semijoin_eval_pairs`). Kept GFQL reentry/collision semantics in integration suites. Validated on DGX GPU for both RAPIDS `25.02` and `26.02` using `docker/test-rapids-official-local.sh` with GFQL profile + dataframe join tests.

### Internal
Expand Down
4 changes: 2 additions & 2 deletions graphistry/tests/compute/gfql/cypher/test_lowering.py
Original file line number Diff line number Diff line change
Expand Up @@ -11055,7 +11055,7 @@ def test_string_cypher_executes_issue_1000_ic6_exact_runtime_minimal_on_cudf() -
]


def test_issue_1396_tag_cooccurrence_join_aggregation_counts() -> None:
def test_issue_1396_issue_1415_tag_cooccurrence_join_aggregation_counts() -> None:
"""IC6 tag-cooccurrence join+aggregation shape keeps grouped post cardinality."""
result = _mk_issue_1396_tag_cooccurrence_join_aggregation_graph().gfql(
_issue_1000_ic6_query(),
Expand All @@ -11068,7 +11068,7 @@ def test_issue_1396_tag_cooccurrence_join_aggregation_counts() -> None:
]


def test_issue_1396_tag_cooccurrence_join_aggregation_counts_on_cudf() -> None:
def test_issue_1396_issue_1415_tag_cooccurrence_join_aggregation_counts_on_cudf() -> None:
pytest.importorskip("cudf")

result = _mk_issue_1396_tag_cooccurrence_join_aggregation_graph_cudf().gfql(
Expand Down
Loading