Skip to content

GFQL polars general path drops null-id node rows and collapses duplicate ids on node-only op lists (pandas keeps them) #2071

Description

@lmeyerov

Found by

The route harness (frame variants, PR #2070) on the productized polars single-node route.

Repro

Node frame with a null id row (nullable Int64) or a duplicated id row; op list [n()] or [n({"w": GT(2)})].

frame engine lane general path
null-ids pandas [1,2,3,4,5,None] [1,2,3,4,5,None]
null-ids polars [1,2,3,4,5,None] [1,2,3,4,5]
dup-ids pandas [n()] [1,1,2,3,4,5] [1,1,2,3,4,5]
dup-ids polars [n()] [1,1,2,3,4,5] [1,2,3,4,5]

The pandas oracle keeps both; the polars single-node lane matches it; the polars general chain drops the null-id row and collapses the duplicate. Related: #2034 (duplicate-id contract on node lookups vs hops).

Where

graphistry/compute/gfql/lazy/engine/polars/chain.py general forward/backward passes for a node-only op list (the endpoint/closure joins never link a null id and dedupe by id, which is right for hops but not for a bare node lookup).

Ledger

("polars-single-node", "null-ids") in the route harness KNOWN map until fixed.

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