Skip to content

feat: wire altimate-core 0.5.1 equivalence dialect + decidable into dbt review #926

Description

@anandgupta42

Description

altimate-core was bumped 0.4.0 → 0.5.1 (#925). 0.5.1 adds net-new equivalence surface that altimate-code does not yet consume:

  1. checkEquivalence(sqlA, sqlB, schema, dialect?) — a new optional dialect parameter. The dbt PR reviewer already resolves and threads a dialect end-to-end (orchestrate → runner → dispatcher), but a prior commit (89f77a75ca) had to drop it at the engine boundary because 0.4.0 only accepted 3 params. The carefully-resolved dialect never reaches the engine.
  2. EquivalenceResult.decidable: boolean — a new authoritative flag for "the engine could not decide." The runner currently guesses decidability via validation_errors.

Goal

  • Forward the dialect hint to core.checkEquivalence in the native equivalence handler and the sql.diff handler so dialect-specific compiled warehouse SQL parses and becomes decidable instead of abstaining on a syntax error.
  • Honor the engine's authoritative decidable flag in the review runner (strictly safer — only ever abstains more; preserves FP-safety).
  • Add extensive E2E tests against the real engine, including the full runReview pipeline.

Acceptance

  • dialect reaches core.checkEquivalence in both handlers
  • Empty-string dialect (the ReviewConfig.dialect default) is coerced to "no hint" (engine throws on unknown dialect '')
  • Runner honors decidable === false and stays backward-compatible when the field is absent (0.4.0 shape)
  • Real-engine native tests + full-pipeline E2E tests, all green; typecheck + marker check clean

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions