Member Junction
    Preparing search index...

    Interface for a single conversion rule.

    Rules are applied to statements that match their AppliesTo list. They can pre-process (before sqlglot), post-process (after sqlglot), or fully bypass sqlglot by setting BypassSqlglot = true.

    Implements

    Index

    Constructors

    Properties

    AppliesTo: StatementType[] = ...

    Statement types this rule applies to

    BypassJustification: string = 'T-SQL CREATE PROCEDURE → PG CREATE FUNCTION conversion: parameter renaming (@param → p_param), DECLARE handling, RAISERROR → RAISE EXCEPTION, INSERT...OUTPUT handling, RETURN value semantics, and SETOF return types. This is structural transformation sqlglot does not perform.'

    If BypassSqlglot is true, this field documents WHY sqlglot is bypassed. Intended audience: future maintainers deciding whether the bypass is still needed (e.g., after a sqlglot upgrade). Should describe:

    • What sqlglot fails to handle for this statement type
    • The specific T-SQL → PG transformation we need that sqlglot doesn't produce
    • A link to an upstream sqlglot issue if applicable

    Required when BypassSqlglot is true. Helps with the architecture goal of "SQLGlot handles >90% of statements" by making the bypass surface auditable.

    BypassSqlglot: boolean = true

    If true, this rule handles conversion entirely — skip sqlglot. The PostProcess method receives the original SQL as both parameters.

    Name: string = 'ProcedureToFunctionRule'

    Human-readable name for logging/debugging

    Priority: number = 30

    Priority — lower numbers run first (default: 100)

    SourceDialect: string = 'tsql'

    Source SQL dialect this rule converts from (e.g., 'tsql')

    TargetDialect: string = 'postgres'

    Target SQL dialect this rule converts to (e.g., 'postgres')

    Methods