fix(gfql): preserve explicit whole-entity projection provenance - #2079
Draft
lmeyerov wants to merge 7 commits into
Draft
fix(gfql): preserve explicit whole-entity projection provenance#2079lmeyerov wants to merge 7 commits into
lmeyerov wants to merge 7 commits into
Conversation
lmeyerov
marked this pull request as ready for review
September 13, 2026 01:31
…jection-provenance
lmeyerov
marked this pull request as draft
September 13, 2026 02:43
This was referenced Sep 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Unlabeled whole-entity results can lack physical identity columns, leaving the adapter unable to distinguish
RETURN xfrom property returns. This records projection kind and source presence independently of identity, preserving present entities with all-null properties, absent entities, OPTIONAL null insertion and reentry row alignment. Property/text projections clear provenance; input graphs remain unchanged.Presence alignment uses native vectorized gather/reindex rather than a DataFrame per result segment. The paired adapter change is graphistry/tck-gfql#201; merge this product PR before that adapter PR. Tracks #2074 and graphistry/tck-gfql#200.
Final product:
e1e22d196aa21b27fa748108cc49e31284252e47. Paired TCK:9b5079eecc116dd334d32c4373903e56fc13b0a9. No scenario or expected-result snapshots changed.Validation:
Performance: final OPTIONAL comparisons measured +6.4%/+1.58% at100/1000 seeds after replacing per-segment allocation. One separate-process ordinary-projection comparison exceeded the investigation threshold; an interleaved control measured +0.195ms/+6.12%, below the joint threshold (>20% AND >0.2ms). This retains measurement variance and modest overhead as limitations; no GPU throughput improvement is claimed.
Ruff/type-hygiene guards pass. Five local mypy dependency-profile diagnostics reproduce baseline. Exact commands, source/image pins, XML, review reports and raw timings are retained under local
plans/gfql-2073-followups/. Ready for maintainer review; not merged automatically.Current-base verification after2072
Product head
10e3b4484d5f27715e10dc2a2e869e06df0101caincludes master2ca98922c; the Polars source-node-ID argument and entity presence/provenance are both preserved. Two clean catch-up source waves complete. Local entity/projection/reentry422passed; combinedTCK3840passed (327explicit Polars declines). Exact pairCI34733762397 verifies this product head with TCK9b5079eecc116dd334d32c4373903e56fc13b0a9:4169passed,13skipped,689xfail.Earlier device/performance evidence above uses historical product heads. Product2079 is draft pending refreshed final device/performance and productCI gates. TCK201 remains dependent on2079; both remain unmerged.