Skip to content

conformance: EXISTS existentialsubquery TCK scenarios green (tck-gfql#193)#1698

Merged
lmeyerov merged 4 commits into
masterfrom
fix/existentialsubquery-entity-text-whitespace
Jul 6, 2026
Merged

conformance: EXISTS existentialsubquery TCK scenarios green (tck-gfql#193)#1698
lmeyerov merged 4 commits into
masterfrom
fix/existentialsubquery-entity-text-whitespace

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Makes the tck-gfql CI job green. No pygraphistry code change — pygraphistry already renders these scenarios correctly; the fix is entirely harness-side in the paired tck-gfql#193.

This PR shares its branch name with tck-gfql#193, so pygraphistry's tck-gfql CI job resolves the tck-gfql ref to that fix branch (per the same-named-branch resolution in ci.yml) and runs the reconciled suite → 4145 passed, 0 failed.

Why tck-gfql was red (and why pygraphistry is correct)

expr-existentialsubquery1-1 (MATCH (n) WHERE exists { (n)-->() } RETURN n) executes correctly on pygraphistry and returns node a rendered (:A {prop: 1}). The only diff from the openCypher TCK oracle was the property-map key-colon spacing — pygraphistry's pervasive {prop: 1} convention (~350 own tests) vs the oracle's {prop:1}. Both are valid Cypher; the whitespace is insignificant. Changing pygraphistry's convention would churn those ~350 tests for a cosmetic alignment, so the reconciliation belongs in the harness comparison.

What tck-gfql#193 does

  1. Entity-text property-map whitespace normalization (scoped to node/edge entity-text, not map/list literals).
  2. Promote expr-existentialsubquery1-1 / 1-3 xfail → supported (they now pass).
  3. Deflake the pre-existing scipy-svds firstparty-networkx-hits-1 fixture (degenerate/disconnected graph → NaN/tiny-negative; now a connected fixture + IS NOT NULL presence check).

Only change here: a CHANGELOG note. Merge tck-gfql#193 first (or together) so master's tck-gfql job stays green on the resolved main.

🤖 Generated with Claude Code

https://claude.ai/code/session_01W5vkD2ZCyv3bmecBYoYYQy

lmeyerov and others added 4 commits July 5, 2026 19:54
…-gfql#193)

pygraphistry renders expr-existentialsubquery1-1/1-3 correctly; the tck-gfql
red was a property-map display-whitespace convention, reconciled harness-side
in tck-gfql#193. No pygraphistry code change. This PR shares its branch name
with tck-gfql#193 so the tck-gfql CI job resolves to that fix branch and runs
green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ext (tck-gfql#193)

Pins that MATCH (n) WHERE EXISTS { (n)-->() } RETURN n keeps only the node
with an out-edge and renders (:A {prop: 1}) — the openCypher TCK
expr-existentialsubquery1-1 scenario. Proves pygraphistry handles the
whole-entity RETURN over a simple-pattern EXISTS correctly (no leaked marker
columns). Also makes this PR touch a gfql path so the tck-gfql CI job runs
against the paired fix branch.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tck-gfql#193)

render_entity_text renders `(:A {prop: 1})` (space after colon) — our display
convention; the openCypher TCK oracle omits it. Whitespace is insignificant
Cypher, so tck-gfql#193 normalizes it harness-side rather than churning ~350
pygraphistry tests. Docstring-only; no behavior change. (Also lets this PR's
tck-gfql CI job run against the paired fix branch.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adversarial review findings:
- (IMPORTANT) pandas-only in a cross-engine conformance file — add the file's
  parity-or-NIE invariant (_assert_invariant): non-pandas engines match pandas
  or decline honestly; whole-entity RETURN declines (NIE) on polars.
- add explicit `len(pdf) == 1` so the guard is row-count-independent, not
  implicit in the single-row asserts.
- document the string-id dependency (numeric id would render as a property)
  and that `n.id` is the #1650 internal flattened-projection column.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@lmeyerov lmeyerov merged commit 05b3dbe into master Jul 6, 2026
69 checks passed
@lmeyerov lmeyerov deleted the fix/existentialsubquery-entity-text-whitespace branch July 6, 2026 04:15
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