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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions