Member Junction
    Preparing search index...

    QueryCompositionEngine resolves {{query:"CategoryPath/QueryName(params)"}} tokens in query SQL into Common Table Expressions (CTEs). It handles:

    • Recursive resolution of nested compositions
    • Cycle detection via an in-progress set
    • Parameter modes: static literals and pass-through from outer query
    • Deduplication of identical query+params references
    • Platform-aware SQL resolution via QueryInfo.GetPlatformSQL()

    This engine runs BEFORE Nunjucks template processing, so regular {{param}} tokens are preserved for later substitution.

    Index

    Constructors

    Methods

    • Checks whether SQL contains any {{query:"..."}} composition tokens. Use this as a fast guard before calling ResolveComposition(). Only considers tokens outside of SQL comments.

      Parameters

      • sql: string

      Returns boolean

    • Parses all {{query:"..."}} tokens from SQL without resolving them. Useful for dependency extraction during the save pipeline. Only considers tokens outside of SQL comments.

      Uses MJLexer for structured tokenization instead of regex, providing full parsing of category paths, query names, and parameter lists.

      Parameters

      • sql: string

        The SQL text to parse

      Returns ParsedCompositionToken[]

      Array of parsed token metadata

    • Resolves all {{query:"..."}} composition tokens in the given SQL into CTEs.

      Parameters

      • sql: string

        The SQL containing composition tokens

      • platform: DatabasePlatform

        Target database platform for SQL resolution

      • contextUser: UserInfo

        User context for permission checks on referenced queries

      • OptionalouterParams: Record<string, string>

        Parameter values from the outer/parent query (for pass-through resolution)

      • OptionalinlineDependencies: QueryDependencySpec[]

        Optional inline dependency specs for transient query testing. When provided, these are checked first before falling back to Metadata.Provider.Queries. Inline dependencies skip governance validation (Reusable, IsApproved, UserCanRun).

      Returns CompositionResult

      CompositionResult with fully resolved SQL and provenance metadata

      Error if a referenced query is not found, not composable, or creates a cycle