Skip to content

Preserve named path and relationship values - #47

Merged
prrao87 merged 10 commits into
codex/issue-20-paths-curated-basefrom
codex/issue-20-path-null-recheck
Oct 26, 2026
Merged

prrao87 merged 10 commits into
codex/issue-20-paths-curated-basefrom
codex/issue-20-path-null-recheck

Conversation

@stugorf

@stugorf stugorf commented Oct 26, 2026

Copy link
Copy Markdown
Member

Problem and change

Part of #20. Keep the tracker open for the other feature groups.

Named paths now retain ordered node and actual relationship occurrences through RETURN, collect and
UNWIND. Parallel relationships remain distinguishable even with identical endpoints and properties.
relationships, startNode and endNode expose the stored records. Public nodes(path) remains a list
of integer keys; property comprehensions use typed node records to preserve identity across labels.
Shortest paths that cross labels retain that identity even when only length or keys are requested.
Homogeneous length/key consumers keep their compact CSR route through WITH aliases.

Validation

Head d595e377322e2105f7fbd1bb16d11f6afd776198; frozen parent 84fcac65be2d4f5104061da1af16294656875b1a. Focused checks and regression details record commands, results, documentation and compatibility. The release receipt pins wheel/archive identity and 961 installed tests.

Both complete workloads pass unchanged goldens in memory and lazy modes. Retained first-pass geometric mean speedups are below (greater than one is faster). Per-query results and paired investigations remain in the audit archive.

Workload/mode Main Actual parent
Q30 memory 0.970 1.008
Q30 lazy 0.945 0.984
IC memory 1.286 0.985
IC lazy 1.332 1.031

Measurements use the same Apple M4 Max (16 cores, 128 GiB), macOS 26.6.2 arm64 and Python 3.13.17, with Q30 revision 6260689 and IC revision c185123. Reproduction instructions pin settings, data checksums, locks and commands. The frozen main baseline is code-identical to current main 90114f3; the equivalence check also verifies clean prospective main-target merges.

This is a coordinated draft. Preserve its frozen-head outcomes and apply the shared corrections in the qualified integration; changing the actual target requires requalification. The accepted combined engine source is 7d2ef3e; its current-main documentation merge is 5fe24cd.

User impact

Named paths retain ordered node and real relationship occurrences, including parallel edges. Edge identities are query-local; rich inventory memory scales with source tables. Compact consumers retain their CSR route. Record contracts, Rust migration and examples are documented.

Review ledger · Current contribution guide

Audit archive: 47,675,190 bytes; SHA-256 b3486fb30a34639c830b5d49353b3838f96369f95df959ac35f85511f7f8b2de. The small current-main supplement preserves the documentation update. Original absolute paths in receipts map to included records through the archive index.

Submitted by David Hughes (@stugorf), with AI Collaboration.

Retain actual edge occurrences and typed endpoint records through named paths, collect, and UNWIND. Keep length/node-only shortest queries on CSR and reuse cooperative bidirectional search for rich path values.

Part of #20. Submitted by David Hughes (@stugorf), with AI Collaboration.
Preserve inventory source coalescing and refresh output partitioning after optimizer rewrites. Cover Arrow and Lance scans beyond the first source partition and the unmodified IC14 query over real relationship records.
Materialize path records only when their consumers need values or relationships. Track shortest-path aliases before checking demand and retain node labels for homogeneous property comprehensions.
@prrao87
prrao87 marked this pull request as ready for review October 26, 2026 16:49
@prrao87
prrao87 merged commit 791bf09 into codex/issue-20-paths-curated-base Oct 26, 2026
8 checks passed
@prrao87
prrao87 deleted the codex/issue-20-path-null-recheck branch October 26, 2026 16:54
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.

2 participants