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 = 'CREATE VIEW handling needs DROP VIEW IF EXISTS CASCADE before CREATE OR REPLACE when DDL has changed (column lists may differ), topological sort of view dependencies, and WITH CHECK OPTION handling. sqlglot does not perform DDL-aware DROP+CREATE or dependency ordering.'

    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 = 'ViewRule'

    Human-readable name for logging/debugging

    Priority: number = 20

    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