Class IrTransforms

java.lang.Object
org.eclipse.rdf4j.queryrender.sparql.ir.util.IrTransforms

public final class IrTransforms extends Object
IR transformation pipeline (best‑effort). Design: - Transform passes are small, focused, and avoid mutating existing nodes; they return new IR blocks. - Safety heuristics: path fusions only occur across parser‑generated bridge variables (names prefixed with _anon_path_) so user‑visible variables are never collapsed or inverted unexpectedly. - Ordering matters: early passes normalize obvious shapes (collections, zero‑or‑one, simple paths), mid passes perform fusions that can unlock each other, late passes apply readability and canonicalization tweaks (e.g., parentheses, NPS orientation). The pipeline is intentionally conservative: it prefers stable, readable output and round‑trip idempotence over aggressive rewriting.
  • Method Details

    • transformUsingChildren

      public static IrSelect transformUsingChildren(IrSelect select, TupleExprIRRenderer r)
      Apply the ordered transform pipeline to the WHERE block of a SELECT IR. This function uses IrNode#transformChildren to descend only into BGP-like containers, keeping subselects intact.