Skip to content

[compat] DuckDB unsupported metadata source freshness parity #210

Description

@sabino

Objective

Implement the first safe child slice from #206: DuckDB metadata-only source freshness should fail with a dbt-grounded unsupported metadata runtime-error row instead of inventing DuckDB metadata freshness behavior.

Current Reality

#206 established that dbt Core can use adapter metadata freshness only when the adapter advertises TableLastModifiedMetadata / related metadata APIs. The current dbt-duckdb path does not expose a safe upstream-backed metadata freshness implementation. dxt already supports DuckDB loaded_at_field, loaded_at_query, freshness inheritance, relation identity, and Sources v3-shaped success/runtime-error output.

Role and Labels

  • role: role:worker
  • labels: type:compat, area:parser, area:artifacts, area:duckdb, artifact:sources, command:source-freshness
  • readiness: status:ready, ready-for-agent

Priority

priority:p1: source freshness artifacts feed selector behavior and public fixture compatibility.

Dependencies / Sequencing

Acceptance Criteria

  • For selected DuckDB sources with freshness but neither loaded_at_field nor loaded_at_query, dxt source freshness emits a Sources v3 runtime-error row with a dbt-grounded unsupported metadata message.
  • Other selected sources with loaded_at_field / loaded_at_query still run and emit success/warn/error rows as before.
  • No DuckDB metadata execution is invented from file mtimes, information_schema, local state, or private dxt fields.
  • Runtime behavior remains Zig-only.

Validation

  • native Zig test in src/project/source_freshness.zig for the unsupported metadata reason/writer boundary
  • focused pytest through the Zig binary for a metadata-only DuckDB source freshness fixture
  • Sources v3 schema slice validation
  • python scripts/check_runtime_boundary.py
  • python scripts/check_public_safety.py

Stop Condition

Stop and split if the implementation requires a general adapter capability matrix, get_relation_last_modified, non-DuckDB adapter behavior, source-status selector changes, or any Python product runtime behavior.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions