Package com.darkcollective.relix.semantic.graph


package com.darkcollective.relix.semantic.graph
Join-path resolution over the schema graph.

JoinPathResolver takes a generated query and the session's SchemaGraph, finds the base- relation join at the program's core, and searches the graph for the minimal connected path spanning those relations. It returns a JoinResolution: a Resolved program whose join conditions the graph corrected, an Ambiguous enumeration of equally-minimal paths (the two-FK "did you mean?" case), or a Passthrough when the graph cannot improve on the model's program.

This inverts the model's role: the model extracts what the user wants; the engine assembles how to join it. The rewrite is applied only where it is provably semantics-preserving (a pure join over the same base relations, correcting conditions only); everything else passes through.