Skip to content

Native Polars unlabeled whole-entity projection is ambiguous to the TCK adapter (match3-19) #200

Description

@lmeyerov

Current main a3b24fd still fails test_cypher_tck_scenario[match3-19] with TEST_POLARS=1 against pygraphistry a5b3e2c6e: expected whole-node column x, actual flat x.name. Query: MATCH (a {name: 'A'}), (b {name: 'B'}) MATCH (a)-->(x)<-->(b) RETURN x.

The fixture has unlabeled x1/x2 nodes. pandas returns identity/property columns plus whole-entity metadata. Polars returns correct x1/x2 property rows without metadata or label markers. _whole_entity_aliases therefore cannot distinguish RETURN x from RETURN x.name. The adapter heuristic dates to June27 structured-return integration.

Pressure controls preserve both rows with identical properties on different IDs, RETURN DISTINCT x preserves both identities, and count(DISTINCT x)=2 on pandas/Polars. This is a metadata/adapter contract gap, not demonstrated row-count corruption.

Acceptance:

  • Whole-node projections reconstruct expected entities using explicit projection provenance or product metadata; scalar property projections remain scalar.
  • Paired unlabeled/labeled, node/edge, null/empty, identical-properties/different-ID, multiplicity and DISTINCT controls.
  • Current scenario runner passes this case without new xfail/skip or value-normalization shortcuts.
  • Product changes, if needed, have corresponding pygraphistry tests and relevant cuDF/polars-gpu coverage.

PR #199 concerns alias-property restoration and product graphistry/pygraphistry#2072; that is a different reproducer and is not credited as this fix. The other 18 old review failures are already covered by merged #193/#194/#195/#197 and match4-4 fixture commit66fee100.

Tracked by graphistry/pygraphistry#2074

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions